bash 프롬프트 또는 일부 설치 가능한 유틸리티를 통해 모든 최소화를 취소하는 빠른 방법은 무엇입니까?

bash 프롬프트 또는 일부 설치 가능한 유틸리티를 통해 모든 최소화를 취소하는 빠른 방법은 무엇입니까?

XFCE와 함께 compiz-manjaro를 사용하고 있습니다. 창이 데스크톱(또는 Compiz에서 호출되는 뷰포트)에서 최소화된 경우 해당 뷰포트로 제한된 창 전환 플러그인을 사용할 때 표시되지 않는다는 사실을 제외하고는 잘 작동합니다. 모든 창) 모든 뷰포트, 최소화된 창이 표시되지만 해당 뷰포트에 대한 창 사이를 전환하면 최소화된 창이 표시되지 않습니다.

최소화된 창을 모두 복원하는 스크립트를 작성하여 이 제한/버그를 해결하려고 노력하고 있지만 최선의 접근 방식이 무엇인지 잘 모르겠습니다.

Greg Till이라는 사람이 2009년에 Compiz Scale을 시작하기 전에 Wnck를 사용하여 모든 창을 최대화하는 Python 스크립트를 작성했습니다.http://pastebin.com/mCRKZkVb(작동하도록 업데이트했습니다.) 하지만 이렇게 하면 속도가 매우 느립니다.

내가 아는 한 Compiz에는 최소화된 창을 복원하는 기능이 없습니다. 그렇지 않으면 이에 대한 키 입력을 설정하고 두 기능을 스크립트에 결합했을 것입니다. 최소화된 창을 빠르게 복원할 수 있도록 bash에 미리 만들어진 기능이나 설치할 수 있는 유틸리티가 있습니까?

답변1

다음 명령으로 이 문제가 해결되기를 바랍니다 xdotool search --onlyvisible --name '.*' windowactivate %@. Quick Breakdown: xdotool터미널에서 창, 커서 및 키보드 이벤트를 조작하는 데 사용하는 유틸리티입니다. 명령의 첫 번째 부분은 search --onlyvisible --name '.*'상호 작용하려는 창을 선택합니다. 이는 search설명이 필요 없으며 --onlyvisible우리가 해당 항목만 검색하고 싶다는 의미입니다.할 수 있는이것이 나타납니다(첫 번째 시도에는 --onlyvisiblegnome 설정과 같은 작업을 최소화하지 않아 세션을 완전히 망칠 수 있는 옵션이 없었습니다) --name '.*'.가지다.*창 이름, 클래스 이름 또는 클래스에 대한 일치 기준이 주어지면 창이 정규식과 일치하기를 원한다고 말합니다. 이는 말 그대로 모든 문자의 수를 의미합니다. 두 번째 부분은 이전 검색( ) 에서 반환된 모든 창을 windowactivate %@올리거나 최소화 해제( )하려는 것을 의미합니다 .windowactive%@

답변2

나는 Greg Till의 스크립트를 더 가볍고 효율적으로 만들기 위해 완전히 다시 작성했습니다. 확대/축소 플러그인을 실행한 후 최소화된 창을 원래 최소화된 상태로 복원하는 기능을 제거했습니다. 왜냐하면 그것이 중요하지 않다고 생각하고 이로 인해 스크립트가 부풀어오르기 때문입니다.

저는 7년 된 노트북과 최첨단 게이밍 데스크탑에서 새 스크립트를 테스트했습니다. 내 경험을 바탕으로 5년 이상 데스크톱을 사용하는 모든 사람에게 이 스크립트를 추천하고 싶습니다. 대부분의 노트북은 데스크톱보다 훨씬 느리기 때문에 상대적으로 새롭지 않은 노트북이나 Eurocoms, Saeger, Origin PC, AW 15인치 또는 17인치(11인치는 아님)와 같은 강력한 게임용 노트북은 권장하지 않습니다. 이 스크립트를 그 사람에게).

모든 설치 지침은 스크립트 시작 부분의 주석에 있습니다.

#!/usr/bin/env python

# Written by: Fadi R (November 2016)

# Rewrite of Greg Till's 2009 python script which get's around compiz's minimized window switching limitation
# Original Script and Thread here: https://ubuntuforums.org/showthread.php?t=976002
# Public domain software

# Installation: 

# Install the following packages: libwnck3, xdotool, wmctrl
# In Compiz, go to Scale plugin and set "initiate window picker" to the following key combo: Ctrl-Super-Alt 1
#   if you are unhappy with combo, just change it to what you want at the end of script.
# go to "Command Plugin" and make a new command. For the actual command line itself, input /path/to/this/script/./scale.py 
#   (don't forget to give this script execute permission), once you're done with that, bind the new 
#   command to the key combination you usually use to start the scale plugin (for example Alt-Tab. Same deal for corners 
#   and buttons if you use them.

#  This script is for fast machines. I wouldn't use it on a 7 year old portable for example, it will add alot of lague.
#  On the other hand, there will be little to no lague on a relatively recent desktop or a even more recent gaming laptop 
#  with a non-bs/mobile CPU/GPU (I'm talking to you Dell).

import gi
gi.require_version('Wnck', '3.0')
from gi.repository import Wnck
import os
import subprocess


def determine_minimized(windows):
    #Determine which windows in a given list are minimized
    minimizedWindows = []
    for window in windows:
    if window.is_minimized():
            minimizedWindows.append(window)
    return minimizedWindows



def main():
        # ************************************************************************
        # Unminimize all minimized viewport windows
        # ************************************************************************
    eligibleWindows = []
    screen = Wnck.Screen.get_default()
    screen.force_update()
    allWindows = screen.get_windows_stacked()
    workspace = screen.get_active_workspace()
    for window in allWindows:
        if window.is_in_viewport(workspace):
            eligibleWindows.append(window)

    if eligibleWindows:
        minimizedWindows = determine_minimized(eligibleWindows)
    else:
        os._exit(0)


    if minimizedWindows:
            for window in minimizedWindows:
                subprocess.call('wmctrl -ia ' + str(window.get_xid()), shell=True)



    # ************************************************************************
    # Launch the Scale plugin of the Compiz window manager using hotkeys via xdotool

    subprocess.call("xdotool keydown Control keydown Super keydown Alt key 1 keyup Alt keyup Super keyup Control", shell=True)  




if __name__ == '__main__':
    main()
    os._exit(1)

관련 정보