これらは任意のキーを押下すると,Terminalを表示したり非表示にしたり出来るアプリです.
僕はGuakeをUbuntuで使用しています.
これらはとても便利なのですが,Terminal以外もこのような動作をさせられたら便利だと思い,それに近いことを実現するプログラムを書きました.
Ubuntu12.04で動作を確認しています.
カレントウィンドウの取得はStackOverFlowのこのスレッドを参考にしています.
http://stackoverflow.com/questions/3551754/xorg-python-and-current-window-title
続きは使用方法とプログラムのソースコードです.
コマンド経由でウィンドウを操作する以下のパッケージに依存しているため,先にインストールします.
% sudo apt-get install wmctrl xwit
ccsmがインストールされていない場合はこれも実行してください.
% sudo apt-get install compizconfig-settings-manager
quakeapp.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from subprocess import PIPE, Popen
import os
import sys
def get_current_window_name():
for i in Popen(['xprop', '-root'], stdout=PIPE).stdout:
if '_NET_ACTIVE_WINDOW(WINDOW):' in i:
for j in Popen(['xprop', '-id', i.split()[4]], stdout=PIPE).stdout:
if 'WM_ICON_NAME(STRING)' in j:
return j.split()[2][1:][:-1]
def toggle_foreground(app_name):
app = get_current_window_name()
if not app or not 0 is app.find(app_name):
os.system('wmctrl -a ' + app_name)
else:
os.system('xwit -iconify -names ' + app_name)
if __name__ == '__main__':
if 2 > len(sys.argv):
print(u'最前面,最小化の対象にしたいアプリケーションの名前を与えてください.')
else:
toggle_foreground(sys.argv[1])
Gist: https://gist.github.com/4072339
quakemacs.sh
#!/bin/sh quakeapp emacs23X201s
このemacs23X201sの部分は任意のアプリケーションのものに変えてください.
これらを任意のディレクトリに置き,実行権限を与え,パスの通ったディレクトリからシンボリックリンクを張ります.
僕はquakeappとquakemacsという名前でシンボリックリンクを張っています.
次にCompizConfig設定マネージャを起動します.
コマンドを有効にし,コマンドを開きます
コマンドを割り当てます.
割り当てたコマンドを実行するキーを選択します.
僕はCtrl + F12にしています.
以上です.設定後にCtrl + F12を押すと指定したアプリケーションが最前面に移動してきたり,最小化したりするはずです.



0 件のコメント:
コメントを投稿