GIMPのようなプログラムを開くと、GIMPには3つの独立したウィンドウが関連付けられているため、バックグラウンドウィンドウを開くと気が散ります。
他のすべての非Gimpウィンドウに手動で移動して最小化するのは負担です。必要なのは、WindowsのSuper+ Homeショートカットに一致するUbuntuのキーボードショートカットです。アクティブなウィンドウを除くすべてのウィンドウを最小化するもの。
Ubuntuでこの動作を実現することは可能ですか?
GIMPのようなプログラムを開くと、GIMPには3つの独立したウィンドウが関連付けられているため、バックグラウンドウィンドウを開くと気が散ります。
他のすべての非Gimpウィンドウに手動で移動して最小化するのは負担です。必要なのは、WindowsのSuper+ Homeショートカットに一致するUbuntuのキーボードショートカットです。アクティブなウィンドウを除くすべてのウィンドウを最小化するもの。
Ubuntuでこの動作を実現することは可能ですか?
回答:
Pythonスクリプトを使用してこれを実現することが可能です。スクリプトは動作するためにインストールする必要がpython-wnck
ありpython-gtk
ますが、とにかくデフォルトでインストールされると思います。
これをコピーしてテキストエディターに貼り付け、適切な場所に保存します(たとえば、ホームフォルダーにminimise.pyとして):
#!/usr/bin/env python
import wnck
import gtk
screen = wnck.screen_get_default()
while gtk.events_pending():
gtk.main_iteration()
windows = screen.get_windows()
active = screen.get_active_window()
for w in windows:
if not w == active:
w.minimize()
その後、キーボードショートカットを開いてキーボードショートカットを設定できます。
[ 追加]をクリックして、新しいショートカットを作成します。
コマンドを使用します(ホームフォルダーにminimise.pybash -c 'python ~/minimise.py'
として保存したことを前提としています)。
その後、好みのキーボードの組み合わせをこのアクションに割り当てることができます。
スクリプトは、アクティブでないウィンドウをすべて最小化します。すべてのGimpウィンドウを開いておく必要があるので、これはユースケースにはあまり役に立たないと思います。少し異なるスクリプトを使用して、代わりに現在のアプリケーションからではないすべてのウィンドウを最小化できます。
#!/usr/bin/env python
import wnck
import gtk
screen = wnck.screen_get_default()
while gtk.events_pending():
gtk.main_iteration()
windows = screen.get_windows()
active_app = screen.get_active_window().get_application()
for w in windows:
if not w.get_application() == active_app:
w.minimize()
bash -c 'python...
だけではなくpython ...
?
python-wnckはaptリポジトリ(Kubuntu 18.04 Bionic)に含まれていないため、変更されたpythonコードは(上記の@Adityaおよび@ dv3500eaによる回答から)です。
python3以降、wnckはGObject Introspection APIの一部です(ソース)。そのため、wnck(およびGtkオブジェクト)をインポートするための構文が変更されました。
#!/usr/bin/env python
# import necessary objects
import gi
gi.require_version('Wnck', '3.0') # specify Wnck version
from gi.repository import Wnck
from gi.repository import Gtk
# the script itself
screen = Wnck.Screen.get_default()
while Gtk.events_pending():
Gtk.main_iteration()
windows = screen.get_windows()
active = screen.get_active_window()
for w in windows:
if not w == active:
w.minimize()
次に、pythonスクリプトにショートカットを割り当てます:(Kubuntuで)kmenueditor->新しいアイテムを作成->スクリプトbash -c 'python path_to_the_python_script.py'
->目的のショートカットを割り当てます
更新(5月19日):
Kubuntu 19.04でgir1.2-wnck-3.0モジュールをインストールして、上記のスクリプトを機能させる必要がありました。
$ python -V
Python 2.7.16
$ sudo apt-get install python3-gi gir1.2-wnck-3.0
xdotoolを使用したbashスクリプト:
currentwindowid=$(xdotool getactivewindow)
currentdesktopid=$(xdotool get_desktop)
for w in $(xdotool search --all --maxdepth 3 --desktop $currentdesktopid --name ".*"); do
if [ $w -ne $currentwindowid ] ; then
xdotool windowminimize "$w"
fi
done
現在のデスクトップ上のウィンドウのみを最小化します。
すべてのデスクトップでウィンドウを最小化するには:
currentwindowid=$(xdotool getactivewindow)
for w in $(xdotool search --all --maxdepth 3 --name ".*"); do
if [ $w -ne $currentwindowid ] ; then
xdotool windowminimize "$w"
fi
done