Сверните несколько окон одновременно

Я использую Ubuntu 18.04 с GNOME. Я хотел бы знать, есть ли какая-либо функциональность, которая позволяет ассоциировать несколько окон таким образом, чтобы при закрытии одного из окон все другие тоже были, а когда окно восстанавливалось, все остальные тоже.

то есть. Я работаю с несколькими окнами терминалов, и я хотел бы сгруппировать терминалы в N групп таким образом, чтобы при минимизации окна терминалов все другие окна терминалов, которые принадлежат этой группе, также минимизировались.

5
задан 22 July 2019 в 18:51

3 ответа

Следующая процедура только за $XDG_SESSION_TYPE x11.

Примечания:

  • Это использует xdotool, который находится в репозитории Вселенной.
  • Это предполагает категоризацию окон терминала таким способом, которым у каждой группы есть общая строка в заголовке (не существующий в любых других открытых окнах).
  • В примере ниже, существует две группы каждый с тремя открытыми окнами терминала гнома:
    • Земля 1
    • Земля 2
    • Заземлите 3 и
    • Ветер 1
    • Ветер 2
    • Ветер 3

Важный:
Чтобы гарантировать, что заголовок окна терминала не изменяется, я должен был сначала прокомментировать следующие строки от ~/.bashrc. Если это не будет сделано, то заголовок отразит текущий рабочий каталог вместо того, чтобы сохранить заголовок, который Вы устанавливаете:

case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

Я назвал каждое использование окна

echo -en "\033]0;New title\a"

Обратите внимание, что xdotool, как используется здесь, не обработает названное использование окон

wmctrl -r :ACTIVE: -N "New title"

См. ответ на Установку заголовка окна терминала: wmctrl по сравнению с xdotool для полного объяснения.

Следующий анимированный gif проиллюстрирует использование другого "основного" терминала, расположенного наверху экрана в изображении, для издания кода, чтобы минимизировать или максимизировать конкретную группу окон.

Для этого я добавил следующие функции к своему ~/.bashrc:

mmm(){
    echo "enter KEYWORD" && read KEYWORD && xdotool search --name --onlyvisible "$KEYWORD" > /tmp/tmp.txt
}

xwn() {
    while read p; do xdotool windowminimize "$p"; done </tmp/tmp.txt
}

xwx() {
    while read p; do xdotool windowactivate "$p"; done </tmp/tmp.txt
}
  • mmm использование xdotool для поиска строки "КЛЮЧЕВОЕ СЛОВО", обеспеченное пользователем. "земля" в этом примере, характерно для одной группы окон терминала, которые будут действоваться на. xdotool производит их идентификаторы окна, который направлен к временному файлу.
  • xwn windowminimize действие xdotool использования для уменьшения окон, указанных во временном файле.
  • xwx windowactivate действие xdotool использования для максимизации окон, указанных во временном файле.
  • Обратите внимание, что, в зависимости от того, что еще было сделано, это, возможно, необходимый для выполнения mmm сразу прежде xwn или xwx.

Using xdotool to minimize/maximize groups of terminal windows


Я должен был использовать mogrify -type Grayscale -depth 7 *.png уменьшать масштаб размера gif.

4
ответ дан 23 November 2019 в 09:04

Я не знаю ни о чем, что обеспечивает точно, что Вы ищете, но можно попробовать этот вид ужасного обходного решения путем выполнения шагов ниже.

  1. Установите прикрепление Ubuntu на витрины только из текущей рабочей области.
  2. Включите, 'минимизируют по щелчку' на прикреплении Ubuntu. После того как Вы делаете это, Вы сможете минимизировать или восстановить все окна, принадлежащие определенному приложению из текущей рабочей области путем нажатия на ее значок в прикреплении.
  3. Используйте различные рабочие области, чтобы сгруппировать окна, например, сохранить все Окна терминала, принадлежащие первой группе в рабочей области 1, второй группе в рабочей области 2 и так далее.
3
ответ дан 23 November 2019 в 09:04

Ubuntu 19.04 я не протестировал этот сценарий, не стесняются исправлять меня на тех нажатиях клавиш. Вы могли использовать сценарий для уменьшения окна и других окон путем выбора их из списка имен и отправки минимизировать нажатия клавиши им. к сожалению, я не вижу, минимизируют ярлык окна в сочетаниях клавиш Gnome. установите сочетание клавиш в Gnome для запущения этого скрипта. высокий звук keydown + располагает выпуск с интервалами затем m (или войдите, как минимизируют, является первым в моем окне список min/max/move), добился бы цели, хотя, xdotool нажимает на справку здесь https://www.linux.org/threads/xdotool-keyboard.10528/

#!/bin/bash
names="Firefox Thunderbird Kate Konsole"
echo "$names"
for name in $names
 do
    #         id=$(xdotool search --onlyvisible --name 
"$name")
             id=$(xdotool search --desktop 0 --class  
"$name")
    echo $name $id
if  [ "x$id" = "x" ]
    then
        echo " window not found for "$name""
    else
          xdotool windowactivate --sync $id key  -- 
 clearmodifiers  --delay 100 keydown alt+space 
 xdotool windowactivate --sync $id key  -- 
 clearmodifiers  --delay 100 key enter
     # you can set sleep by a lesser value here like a 
  fraction 0.1   
  sleep 1
  fi
done
0
ответ дан 23 November 2019 в 09:04

Другие вопросы по тегам:

Похожие вопросы: