diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/i3ws | 35 | ||||
-rwxr-xr-x | bin/nowplaying | 2 |
2 files changed, 37 insertions, 0 deletions
diff --git a/bin/i3ws b/bin/i3ws new file mode 100755 index 0000000..a1c487a --- /dev/null +++ b/bin/i3ws @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +from functools import partial +import json +from subprocess import check_output +import sys + +def get_unique(func, wss): + return list(set(map(func, wss))) + +def get_unique_key(key, wss): + return get_unique(lambda ws: ws[key], wss) + +def show_workspace(ws): + color = 'f00' if ws['urgent'] else \ + '00fcff' if ws['focused'] else \ + '6aa3f8' if ws['visible'] else \ + '777' + return '<fc=#%s>%s</fc>' % (color, ws['name']) + +def show_output(wss, op): + wss = list(filter(lambda ws: ws['output'] == op, wss)) + wss.sort(key=lambda ws: ws['name']) + + return op + ' ' + ' '.join(map(show_workspace, wss)) + +def main(): + i3ws = check_output(['i3-msg', '-t', 'get_workspaces']).decode('utf-8') + wss = json.loads(i3ws) + + outputs = sorted(get_unique_key('output', wss)) + print(' * '.join(map(partial(show_output, wss), outputs))) + +if __name__ == '__main__': + main() + diff --git a/bin/nowplaying b/bin/nowplaying new file mode 100755 index 0000000..650e6e8 --- /dev/null +++ b/bin/nowplaying @@ -0,0 +1,2 @@ +#!/bin/sh +cmus-remote -Q | grep '^tag \(artist\|album\|title\) ' | cut -d' ' -f 3- | tr '\n' '\t' | awk 'BEGIN { FS = "\t" } ; { print $3 " (" $2 ", " $1 ")" }'; echo -n ' ' |