xdotool 데스크탑 전송 F5를 선택하고 돌아가는 방법?


3

간단하게 들립니다. xdotool바탕 화면을 선택 F5하고 키 누름을 시뮬레이션 하고 호출 창 / 프로그램으로 포커스를 되돌립니다.

인터넷 검색 후 더 이상 간단하게 들리지 않습니다.

bash / gnome-shell 에서이 작업을 수행해야합니다.

어떤 아이디어?


이 프로젝트는 모니터의 크기가 다르기 때문에 아이콘이 왼쪽 화면에서 검은 색 전체로 떨어지는 Q & A와 관련이 있습니다.

Podesta의 도움 덕분 에이 코드를 만들었습니다.

TestIcons () {

    [[ $TestSeconds == "" ]] || [[ $TestSeconds == 0 ]] && TestSeconds=5

    local i Position File
    for (( i=0; i<${#IconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
        File="$ICONS_DIR"/"${IconsArr[((i+ICON_NAME_NDX))]}"
        Position="${IconsArr[((i+ICON_COL_NDX))]},${IconsArr[((i+ICON_ROW_NDX))]}"
        gvfs-set-attribute -t string "$File" \
                'metadata::nautilus-icon-position' "$Position"
    done

    wmctrl -k on        # Show desktop
    xdotool key F5      # Refresh desktop (show icon new positions)
    sleep $TestSeconds  # Pause for view
    wmctrl -k off       # Restore windows

    for (( i=0; i<${#OldIconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
        File="$ICONS_DIR"/"${OldIconsArr[((i+ICON_NAME_NDX))]}"
        Position="${OldIconsArr[((i+ICON_COL_NDX))]},${OldIconsArr[((i+ICON_ROW_NDX))]}"
        gvfs-set-attribute -t string "$File" \
                'metadata::nautilus-icon-position' "$Position"

    done

    wmctrl -k on        # Show desktop
    xdotool key F5      # Refresh desktop (show icon new positions)
    wmctrl -k off       # Restore windows

} # TestIcons

화면은 다음과 같습니다.

아이코닉 2 optimize.gif


데스크 스톱을 선택한다는 것은 무슨 뜻입니까?
Podesta

@Podesta 초점을 데스크탑으로 이동합니다. 현재 창 밖으로 커서를 이동하고 왼쪽 클릭하는 것과 같은 것.
WinEunuuchs2Unix

모든 창을 최소화하는 것과 같은 것이 트릭을 수행합니까? 나는 xdotool로 조금 연주했으며 꽤 직선적 인 것 같습니다. 나는 무언가를 게시하려고 노력할 것이다. 특히 문제가 있다고 생각 했습니까?
Podesta

@Podesta 몇 년 동안 Conky가 다시 나타나지 않기 때문에 Show desktop을 사용해 본 적이 없습니다. 그러나 나는이 프로젝트와 관련이 있고 해결 해야하는 더 성가신 문제입니다.
WinEunuuchs2Unix

창이 하나만 열려있는 경우 windowminimize에도 쇼 데스크탑 바로 가기없이 트릭을 수행해야합니다. 그렇지 않으면 모든 것을 최소화하기 위해 루프를 만들 수도 있습니다.
Podesta

답변:


4

@ WinEunuuchs2Unix의 작업 아래 스크립트 는 최종 솔루션입니다. 내 원래 답변은 끝났습니다.

#!/bin/bash

TestIcons () {

    [[ $TestSeconds == "" ]] || [[ $TestSeconds == 0 ]] && TestSeconds=5

    local i Position File
    for (( i=0; i<${#IconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
        File="$ICONS_DIR"/"${IconsArr[((i+ICON_NAME_NDX))]}"
        Position="${IconsArr[((i+ICON_COL_NDX))]},${IconsArr[((i+ICON_ROW_NDX))]}"
        gvfs-set-attribute -t string "$File" \
                'metadata::nautilus-icon-position' "$Position"
    done

    wmctrl -k on        # Show desktop
    xdotool key F5      # Refresh desktop (show icon new positions)
    sleep $TestSeconds  # Pause for view
    wmctrl -k off       # Restore windows

    for (( i=0; i<${#OldIconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
        File="$ICONS_DIR"/"${OldIconsArr[((i+ICON_NAME_NDX))]}"
        Position="${OldIconsArr[((i+ICON_COL_NDX))]},${OldIconsArr[((i+ICON_ROW_NDX))]}"
        gvfs-set-attribute -t string "$File" \
                'metadata::nautilus-icon-position' "$Position"

    done

    wmctrl -k on        # Show desktop
    xdotool key F5      # Refresh desktop (show icon new positions)
    wmctrl -k off       # Restore windows

} 
TestIcons

xdotools비슷한 상황에서 유용 할 수있는 몇 가지 다른 명령 :

창 관리자에 데스크탑 표시 명령이 있으면 모든 창을 최소화하고 다시 가져 오는 것이 유용 할 수 있습니다. 일반적으로 다음과 같이 설정됩니다 ctrl+alt+d.

xdotool key ctrl+alt+d

현재 활성화 된 창을 저장하고 나중에 다시 가져 오려면 다음을 사용할 수 있습니다.

myWindow="$(xdotool getactivewindow)"

Ti는 사용할 수있는 창을 최소화합니다. 루프에 추가하면 쇼 데크 스톱의 대안으로 모든 창을 최소화 할 수 있습니다.

xdotool windowminimize $(xdotool getactivewindow)

저장 한 활성 창을 다시 초점으로 가져 오려면 :

xdotool windowactivate "$myWindow"

활성 창을 닫으려면 다음을 사용하십시오.

xdotool getactivewindow windowkill

그리고 가장 중요한 것은 활성 창에서 사용할 수있는 모든 명령을 실제로 검색하여 특정 사례에 적용 할 수 있다는 것입니다. 예를 들어 제목을 기준으로이 특정 창을 검색합니다.

xdotool search --desktop 0 --name "command line - xdotool" windowactivate

제목, 클래스, 표시되는 경우 등을 기준으로 창을 검색하는 방법에는 여러 가지가 있습니다. 창 위치와 마우스를 모두 조작 할 수도 있습니다. xdotol의 맨 페이지는 매우 포괄적입니다. 그것들을 bash 스크립트와 결합하면 대부분의 것을 성취 할 수있는 많은 자유를 줄 것입니다.


퇴근 후 시도하겠습니다. 감사합니다
WinEunuuchs2Unix

걱정마 실제로 실제로 원하는지 확실하지 않습니다. 데스크탑에서 아이콘을 사용하지 않기 때문에 조금 잃어버린 것 같습니다. 더 구체적으로 논의하고 반복 할 수 있도록 게시했습니다.
Podesta

1
창을 복원하려고 할 때 시스템에 결함이있는 것 같습니다. "CRTC"오류가 처음으로 나타 났으며 아무것도 복원되지 않았습니다. 두 번째로 오류는 없지만 여전히 복원 된 것은 없습니다. wmctrl -k on데스크탑 을 표시하고 wmctrl -k off창을 복원 하는 더 나은 솔루션을 찾았습니다 (바탕 화면 숨기기?). 귀하의 답변에 추가하고 싶다면 기꺼이 도와 드리겠습니다. 나중에 .gif애니메이션으로 최종 솔루션을 보여주기 위해 질문을 변경하겠습니다 . 오늘 밤 :)
WinEunuuchs2Unix

2
로 질문을 업데이트했습니다 .gif. show desktop 명령으로 창을 최소화하면 화면을 기록하기가 실제로 어렵습니다.
WinEunuuchs2Unix

1
여전히 귀하의 답변을 수락하고 싶지만 먼저 솔루션을 복사하여 붙여 넣어야합니다.
WinEunuuchs2Unix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.