from gp import dmenu, msgn, msgc, dorm, remove_leading_zeros, get_datetime modes = [ 'at relative time (e.g. 30, 600, etc)', 'at specific time (e.g. 14:25)' ] mode = dmenu(modes, title='reminder') if 'relative' in mode: try: relative = int(dmenu(title='relative time')) except Exception as exc: msgc('ERROR', f'{exc!r}') exit() message = dmenu(title='message') msgn(f'Reminder in {relative} seconds', message) dorm(relative) msgc('Reminder', message) elif 'specific' in mode: try: specific = dmenu(title='specific time') specific2 = specific.replace(':', '') specific2 = remove_leading_zeros(specific2) specific2 = int(specific2) except Exception as exc: msgc('ERROR', f'{exc!r}') exit() message = dmenu(title='message') msgn(f'Reminder at {specific}', message) while True:
set_widget('weather', 'markup', text) elif arg == 'forecast': try: resp = get_info() ## current message = f'<span color=\"{getenv("orange")}\">Current</span>\n' weekday, temp, description = get_current() message = f'{message}{weekday}\t{temp}°\t\t\t{description}' ## forecast message = f'{message}\n\n<span color=\"{getenv("orange")}\">Forecast</span>\n' days = resp['daily'] ## list for day in days: ## day is a dict weekday, temp_min, temp_max, description = get_forecast() if weekday == 'Fri' or weekday == 'Sat': tabs = '\t' * 2 else: tabs = '\t' message = f'{message}{weekday}{tabs}{temp_min}° {temp_max}°\t{description}\n' message = message.strip() msgn(message, duration=20) except Exception as exc: msgc('ERROR', f'gettin forecast\n{exc!r}', f'{getenv("HOME")}/linux/themes/alert-w.png')
cmd = run(f'sudo chattr -R -i {base}', shell=True, universal_newlines=True, capture_output=True) cmd_error = cmd.stderr.strip() if not cmd_error: if path.isdir(base): attribution = check_output( f'lsattr {base}', shell=True, universal_newlines=True).strip() else: attribution = check_output( f'lsattr {base}', shell=True, universal_newlines=True).split()[0] msgn( 'mutable', f'<span color=\"{getenv("orange")}\">{base}</span>\n({attribution})' ) else: msgc( 'ERROR', f'making <span color=\"{getenv("orange")}\">{base}</span> mutable\n{cmd_error}', f'{getenv("HOME")}/linux/themes/alert-w.png') dorm(0.1) elif main_item == 'immutable': for f in files: _, base = path.split(f) cmd = run(f'sudo chattr -R +i {f}', shell=True, universal_newlines=True, capture_output=True)
#!/usr/bin/env python from os import path, listdir, getenv, chdir from clipboard import copy as clipboard_copy from gp import Color, fzf, msgn title = path.basename(__file__).replace('.py', '') chdir(f'{getenv("HOME")}/linux/emojis') print(Color().heading(title)) main_items = listdir() main_item = fzf(main_items) print(main_item) with open(main_item, 'r') as FILE: all_content = FILE.read().strip().split('\n') lines = list(filter(lambda line: not line.startswith('#'), all_content)) ## remove comments line = fzf(lines) emoji = line.split()[0] clipboard_copy(emoji) msgn(f'copied <span color=\"{getenv("orange")}\">{emoji}</span>')
## }}} getopts() print(Color().heading(title)) main_items = [ 'string', 'file', 'command', 'datetime', 'jalali datetime', 'help' ] main_item = fzf(main_items) if main_item == 'string': prompt('-s') clipboard_copy(string) msgn(f'copied\n<span color=\"{getenv("orange")}\">{string}</span>') elif main_item == 'file': prompt('-f') with open(file, 'r') as F: content = F.read().strip() clipboard_copy(content) msgn(f'copied\n<span color=\"{getenv("orange")}\">{content}</span>') elif main_item == 'command': prompt('-c') cmd = run(command, shell=True, universal_newlines=True, capture_output=True) cmd_output = cmd.stdout.strip() clipboard_copy(cmd_output) msgn(f'copied\n<span color=\"{getenv("orange")}\">{cmd_output}</span>')
now = get_datetime('jymdhms') global output output = f'{getenv("HOME")}/downloads/{now}-SS.png' scr_1_name, scr_1_res, scr_1_x, scr_1_y = Screen().screen_1() scr_2_name, scr_2_res, scr_2_x, scr_2_y = Screen().screen_2() scr_all_res = Screen().screen_all() ## https://askubuntu.com/questions/1011507/screenshot-of-an-active-application-using-python if main_item == 'screen 1': countdown() window = Gdk.get_default_root_window() pb = Gdk.pixbuf_get_from_window(window, 0, 0, int(scr_1_x), int(scr_1_y)) pb.savev(output, 'png', (), ()) # convert_to_jpg(output) msgn('screen 1', f'<span color=\"{getenv("orange")}\">{output}</span>') elif main_item == 'screen 2': countdown() window = Gdk.get_default_root_window() pb = Gdk.pixbuf_get_from_window(window, int(scr_1_x), 0, int(scr_2_x), int(scr_2_y)) pb.savev(output, 'png', (), ()) # convert_to_jpg(output) msgn('screen 2', f'<span color=\"{getenv("orange")}\">{output}</span>') elif main_item == 'screen all': countdown() window = Gdk.get_default_root_window() pb = Gdk.pixbuf_get_from_window(window, *window.get_geometry()) pb.savev(output, 'png', (), ()) # convert_to_jpg(output) msgn('screen all', f'<span color=\"{getenv("orange")}\">{output}</span>')