1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# -*- coding: utf-8 -*-
"""
Display a 'SHOT' button in your i3bar allowing you to take screenshot and directly send (if wanted) the file to your online server, as long the screenshot
has been taken, 'SHOT' is replaced by the file_name generated
Configuration parameters:
- save_path: Directory where to store your screenshots.
- file_length: generated file_name length
- push: True/False if yo want to push your screenshot to your server
- upload_server: your server address
- upload_path: the remote path where to push the screenshot
- upload_user: your ssh user
@author Amaury Brisou <py3status AT puzzledge.org>
"""
import time, os, string, random, subprocess
class Py3status:
cache_timeout = 5
save_path = "%s%s" % (os.environ['HOME'] , "/Pictures/")
file_length = 4
upload_path = "/files"
upload_server = 'puzzledge.org'
upload_user = 'erol'
push = True
full_text = ""
def __init__(self):
pass
def kill(self, i3s_output_list, i3s_config):
pass
def on_click(self, i3s_output_list, i3s_config, event):
file_name = self._filename_generator(self.file_length)
command = "%s %s/%s%s" % ('gnome-screenshot -f', self.save_path, file_name, '.jpg')
subprocess.Popen(command.split())
self.full_text = "%s%s" % (file_name, '.jpg')
if self.push and self.upload_server and self.upload_user and self.upload_path:
command = "scp %s/%s%s %s@%s:%s" % (self.save_path, file_name, '.jpg', self.upload_user, self.upload_server, self.upload_path)
subprocess.Popen(command.split())
def _filename_generator(self, size=6, chars=string.ascii_lowercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
def screenshot(self, i3s_output_list, i3s_config):
if self.full_text == "":
self.full_text = "SHOT"
response = {
'cached_until': time.time() + self.cache_timeout,
'full_text': self.full_text,
'color': i3s_config['color_good'],
}
return response
if __name__ == "__main__":
from time import sleep
x = Py3status()
config = {
'color_bad': '#FF0000',
'color_degraded': '#FFFF00',
'color_good': '#00FF00',
}
while True:
print(x.screenshot([], config))
sleep(1)
|