활성 창을 제외한 모든 창을 최소화하기위한 키보드 단축키가 있습니까?


21

김프와 같은 프로그램을 열 때 김프와 관련된 세 개의 별도 창이 있기 때문에 배경 창이 열리게됩니다.

최소화하기 위해 김프가 아닌 다른 모든 창으로 수동으로 이동해야하는 부담이 있습니다. 필요한 것은 우분투의 키보드 단축키로 Windows Super+ Home단축키 와 일치합니다 . 활성 창을 제외한 모든 창을 최소화하는 것.

우분투에서이 동작을 수행 할 수 있습니까?


재미있는 아이디어! askubuntu.com/questions/13709 / ... 포인터에 대한 첫 번째 답변을 살펴보십시오. 그 게시물은 모든 것을 최소화하는 기능을 추가하는 것에 관한 것입니다. 트릭을 수행 한 후 '이전 현재 활성 최대화'라인을 추가하거나 '현재 활성 활성 제외 제외'로 변경하는 것을
살펴보면

개발자들이 향후 Ubuntu 버전의 키보드 바로 가기 메뉴에 "최소한의 활성 창"옵션을 추가 할 가능성이 있습니까? 이 방법으로 사용자가 Ubuntu를 설치할 때이 바인드를 "준비 및 대기"할 수 있습니까?
차드

답변:


20

파이썬 스크립트로 이것을 달성 할 수 있습니다. 스크립트는 기본적으로 설치되어 있다고 생각하지만 작동 하려면 스크립트가 필요 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()

그런 다음 키보드 단축키를 열어 키보드 단축키를 설정할 수 있습니다.

대시의 키보드 단축키

추가 를 클릭 하여 새 바로 가기를 만듭니다.

키보드 단축키 창

명령을 사용하십시오 bash -c 'python ~/minimise.py'(이것은 홈 폴더에 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()

4
+1! 이것이 제가 리눅스를 좋아하는 이유입니다! 우수한. @ 차드 : 김프의 여러 창에 문제가 있으면 김프가 1 창으로 작동하는 방법이있는 것 같습니다. 죄송합니다. 2.6에서 기본값 인 것 같습니다 (그림 참조 : 김프를 오랫동안 사용하지 않았습니다).
Rinzwind

이것이 내가 파이썬을 좋아하는 이유입니다. 모든 것을위한 모듈이 있습니다!
dv3500ea

1
python-wnck가 14.04 시스템에 설치되어 있어야합니다. 그러나 파이썬 쉘에서는 gtk.main_loop 부분이 없으면 정상적으로 작동하지만 스크립트 안에는 없으면 작동하지 않습니다. 따라서 기본적으로 .py 파일에서 스크립트를 실행 가능하게하려면 gtk.main_loop 부분이 필수입니다. 누군가 이유를 설명 할 수 있습니까?
Sergiy Kolodyazhnyy

bash -c 'python... 뿐 아니라 python ...?
Michael Campbell

1

python-wnck는 더 이상 apt 저장소 (Kubuntu 18.04 Bionic)에 없으므로 수정 된 python 코드는 다음과 같습니다 (위의 @Aditya 및 @ dv3500ea).

python3부터 wnck는 GObject Introspection API ( source )의 일부입니다 . 따라서 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()

그런 다음 파이썬 스크립트에 단축키를 지정하십시오 : (쿠분투에서) 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

1

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

다른 Python 버전의 문제를 감안할 때이 bash 솔루션을 선호합니다.
WinEunuuchs2Unix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.