# HG changeset patch # User Jeff Hammel # Date 1300473236 25200 # Node ID 83bc1e6e5b5409fd496cc0e687bca4f0148dfc78 # Parent 57069bd1a46a5fa2e40e50f142437ca439768b75 part of a dream realized diff -r 57069bd1a46a -r 83bc1e6e5b54 .fluxbox/keys --- a/.fluxbox/keys Mon Mar 14 09:34:26 2011 -0700 +++ b/.fluxbox/keys Fri Mar 18 11:33:56 2011 -0700 @@ -47,6 +47,7 @@ F11 :Fullscreen # commands +Control Mod1 a :ExecCommand xclip -o | window_path.py | xclip -i Control Mod1 b :ExecCommand sleep 1; xset dpms force off # blank screen Control Mod1 c :ExecCommand xterm -geometry 21x9 -T "`date +'%b %-d'`" -e 'cal; sleep 10' # calender Control Mod1 d :ExecCommand date | xclip -i # put now's date on the X clipboard diff -r 57069bd1a46a -r 83bc1e6e5b54 python/window_path.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/window_path.py Fri Mar 18 11:33:56 2011 -0700 @@ -0,0 +1,17 @@ +#!/usr/bin/env python + +import os +import subprocess +import sys +import window_title + +def main(filename): + title = window_title.active_window_title() + path = os.path.expanduser(title) + if not os.path.exists(path): + return + path = os.path.abspath(path) + return os.path.join(path, filename) + +if __name__ == '__main__': + print main(sys.stdin.read().strip()) diff -r 57069bd1a46a -r 83bc1e6e5b54 python/window_title.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/window_title.py Fri Mar 18 11:33:56 2011 -0700 @@ -0,0 +1,35 @@ +#!/usr/bin/env python + +""" +get the active window title +""" + +import re +import subprocess + +def active_window_id(): + process = subprocess.Popen(['xprop', '-root'], stdout=subprocess.PIPE) + stdout, stderr = process.communicate() + for line in stdout.splitlines(): + if '_NET_ACTIVE_WINDOW(WINDOW):' in line: + return line.rsplit(None, 1)[-1] + +def window_title(window_id): + process = subprocess.Popen(['xprop', '-id', window_id], stdout=subprocess.PIPE) + stdout, stderr = process.communicate() + for line in stdout.splitlines(): + match = re.match("WM_NAME\((?P.+)\) = (?P.+)", line) + if match: + type = match.group("type") + if type == "STRING" or type == "COMPOUND_TEXT": + return match.group("name").strip('"') + +def active_window_title(): + return window_title(active_window_id()) + +def main(): + title = active_window_title() + print title + +if __name__ == '__main__': + main() diff -r 57069bd1a46a -r 83bc1e6e5b54 python/window_title.pyc Binary file python/window_title.pyc has changed