Etkin olan dışındaki tüm pencereleri küçültmek için bir klavye kısayolu var mı?


21

GIMP gibi programları açarken, arka plan pencerelerinin dikkatini dağıtacağını açık buluyorum çünkü GIMP'nin kendisiyle ilişkili üç ayrı penceresi var.

En aza indirgemek için, Gimp dışındaki diğer tüm pencerelere manuel olarak gitmeniz gerekir. İhtiyacım olan, Ubuntu'da Windows Super+ Homekısayolu ile eşleşen bir klavye kısayolu. Etkin olan dışındaki tüm pencereleri küçültür.

Ubuntu'da bu davranışı başarmak mümkün mü?


İlginç fikir! İşaretçiler için buradaki ilk cevaba bir göz atın: askubuntu.com/questions/13709/… Bu gönderi, en aza indirecek bir işlev eklemekle ilgili. Bir satır ekleyerek bakarak Gönderen 'maksimize önceki mevcut aktif' veya hile yapacağını sonra 'Geçerli etkin biri dışında en aza indirmek' değişen (?)
Rinzwind

geliştiricilerin gelecekteki Ubuntu sürümlerinde Klavye Kısayolu menüsünde "Tümünü Küçült" Ama Etkin Pencereyi Küçült "seçeneği ekleme şansı var mı? Bu şekilde, bu bağlama, kullanıcılar Ubuntu'yu kurduğunda yapılandırılmayı "hazır ve bekliyor" olur.
Chad

Yanıtlar:


20

Bunu bir python betiği ile elde etmek mümkündür. Komut gerektirir python-wnckve python-gtkben bu zaten varsayılan olarak yüklü düşünüyorum rağmen, iş için kurulacak.

Bunu bir metin düzenleyiciye kopyalayıp yapıştırın ve makul bir yere kaydedin (örneğin , ana klasörünüzdeki 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()

Klavye Kısayollarını açarak klavye kısayolunu ayarlayabilirsiniz.

Dash'deki Klavye Kısayolları

Yeni bir kısayol oluşturmak için Ekle'ye tıklayın .

Klavye Kısayolları penceresi

Komutu kullanın bash -c 'python ~/minimise.py'(bu, ana klasörünüze minimise.py olarak kaydettiğinizi varsaymaktadır ).

kısayol oluştur

Ardından tercih ettiğiniz klavye kombinasyonunu bu eyleme atayabilirsiniz.

Komut, aktif olmayan tüm pencereleri en aza indirecektir. Bunun kullanım durumunuz için çok faydalı olduğunu sanmıyorum çünkü tüm Gimp pencerelerini açmak isteyeceksiniz. Geçerli uygulamadan olmayan tüm pencereleri simge durumuna küçültmek için biraz farklı bir komut dosyası kullanabilirsiniz:

#!/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()

4
1! Bu yüzden Linux'u seviyorum! Mükemmel. @chad: eğer gimp pencereleri bir sorunsa, gimp in 1 pencere gibi davranmasının bir yolu var gibi görünüyor. Hata! 2.6'dan varsayılan gibi görünüyor (şekil rakam; uzun zamandır gimp kullanmıyorum).
Rinzwind

Bu yüzden Python'u seviyorum - her şeyin bir modülü var!
dv3500ea

1
python-wnck'ın sistemime kurulması gerekiyordu, 14.04. Ancak, python kabuğunun içinde gtk.main_loop kısmı olmadan tamam çalışıyor, ancak betiğin içinde olmadan, sorun yok. Bu nedenle, temel olarak komut dosyasını bir .py dosyasından çalıştırılabilir yapmak için, gtk.main_loop bölümü bir zorunluluktur. Birisi nedenini açıklayabilir mi?
Sergiy Kolodyazhnyy

Neden bash -c 'python... ve sadece değil python ...?
Michael Campbell

1

Python-wnck artık uygun depoda olmadığından (Kubuntu 18.04 Bionic), aşağıda değiştirilmiş python kodu verilmiştir (yukarıdaki cevaptan @Aditya ve @ dv3500ea).

Python3'ten itibaren wnck GObject Introspection API'sinin ( kaynak ) bir parçasıdır . Bu nedenle, wnck (ve Gtk nesnelerini) içe aktarma sözdizimi değişmiştir.

#!/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()

sonra kısayolu python betiğine atayın: (Kubuntu'da) kmenueditor -> yeni bir öğe oluşturun -> script bash -c 'python path_to_the_python_script.py'-> istediğiniz bir kısayolu atayın

GÜNCELLEME (Mayıs'19):

Kubuntu 19.04'te yukarıdaki betiği çalıştırmak için gir1.2-wnck-3.0 modülünü kurmam gerekiyordu.

$ python -V
Python 2.7.16
$ sudo apt-get install python3-gi gir1.2-wnck-3.0

1

xdotool kullanarak bash betiği:

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

sadece mevcut masaüstündeki pencereleri küçültür.

Tüm masaüstlerinde pencereleri küçültmek için:

currentwindowid=$(xdotool getactivewindow)

for w in $(xdotool search --all --maxdepth 3 --name ".*"); do
  if [ $w -ne $currentwindowid ] ; then
    xdotool windowminimize "$w"
  fi
done

Farklı Python sürümleriyle ilgili problemler göz önüne alındığında, bu bash çözümünü tercih ediyorum.
WinEunuuchs2Unix
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.