Как я могу скрыть скрытие запуска с помощью скрипта, когда я максимизирую браузер?

Я пытался контролировать поведение Ubuntu 14.4.1 Launcher. Я хочу, чтобы он автоматически скрывался каждый раз, когда у меня появилось окно браузера, например firefox maxmaized. Я нашел это решение:

#!/bin/bash

## Change value of "hide" to the command which worked for you to hide the panel
hide='gsettings set com.canonical.Unity2d.Launcher hide-mode 1;'

## Change value of "show" to the command which worked for you to show the panel when it was hidden
show='gsettings set com.canonical.Unity2d.Launcher hide-mode 0;'

## Look for the grep value, add a new browser or application name followed by "\|" eg: 'firefox\|google\|chromium'
while [ 1 ]
 do z=$(wmctrl -l -p | grep -i 'firefox\|google');
    if [ -n "$z" ]; then 
        eval $hide
    else
        eval $show
    fi;
    sleep 2;
done;

, но кажется слишком старым, чтобы работать, тогда я нашел это

. Я попытался объединить два сценария вместе, вот что я сделал:

#!/bin/bash

AUTOHIDE=$(dconf read /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode)
if [[ $AUTOHIDE -eq 1 ]]
then
     dconf write /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode 0
else
     dconf write /org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode 1
fi

## Look for the grep value, add a new browser or application name followed by "\|" eg: 'firefox\|google\|chromium'
while [ 1 ]
 do z=$(wmctrl -l -p | grep -i 'firefox\|google');
    if [ -n "$z" ]; then 
        eval $hide
    else
        eval $show
    fi;
    sleep 2;
done;

Но скрипт не работает. может ли кто-нибудь улучшить этот сценарий для меня и заставить его работать?

1
задан 13 April 2017 в 15:24

1 ответ

Здесь вы идете ребята. Протестировано на моем Ubuntu 14.04 с оригинальной средой Unity. Надеюсь, кто-то оценит мою маленькую работу ...

Подходит для одного окна браузера

#!/bin/bash
## Tested with Ubuntu 14.04 Unity
## Auto hide Unity Launcher when web browser is maximized 
## wmctrl is required: sudo apt-get install wmctrl
## ~pba


## Change value of "key" to the command which worked for you
key='gsettings set org.compiz.unityshell:/org/compiz/profiles/unity/plugins/unityshell/ launcher-hide-mode';

while [ 1 ];
 do
 p=$(wmctrl -lG);
 a=($(echo -E "$p" | grep -i "unity-launcher"));
 w=($(echo -E "$p" | grep -i "firefox\|google\|chromium\|opera"));
 if [ ${w[0]} ]; then
 e=$(xwininfo -all -id ${w[0]});
 l=( $(echo -E "$e" | grep -ci '   Hidden')
     $(echo -E "$e" | grep -ci '   Maximized Vert')
     $(echo -E "$e" | grep -ci '   Maximized Horz') );
 b=($(echo -E "$p" | grep -i "unity-panel"));
 if [ ${l[0]} -ne "1" -a ${l[1]} -eq "1" -a ${l[2]} -eq "1" -a ${w[2]} -eq ${a[4]} -a ${w[3]} -eq ${b[5]} ]; then 
  eval "$key 1"; 
   elif [ ${l[0]} -ne "1" -a ${l[1]} -ne "1" -a ${l[2]} -ne "1" -a ${a[3]} -lt "0" ]; then 
    eval "$key 0";
   elif [ ${l[0]} -eq "1" -a ${a[3]} -lt "0" -a ${w[2]} -ne "1" ]; then 
    eval "$key 0";
   elif [ ${l[0]} -ne "1" -a ${l[1]} -eq "1" -a ${l[2]} -eq "1" -a ${a[3]} -lt "0" -a ${w[2]} -ne "0" ]; then 
    eval "$key 0";
   elif [ ${l[0]} -ne "1" -a ${l[1]} -eq "1" -a ${l[2]} -eq "1" -a ${a[3]} -lt "0" -a ${w[3]} -ne ${b[5]} -a ${w[3]} -ne "0" ]; then 
    eval "$key 0";
 fi;
 elif [ ${a[3]} -lt "0" ]; then eval "$key 0";
 fi;
 sleep 2;
done;

Старые сценарии

4
ответ дан 24 May 2018 в 01:35
  • 1
    Великий. Я немного поработал над вашим скриптом , чтобы сделать его короче. но у вас есть или [We;)] есть ошибка. В нашем скрипте: он захватывает только firefox, потому что вы получаете только $3 первого браузера. вам нужно сохранить все $3 всех браузеров в массив и проверить внутри условия if, когда один из них идет, чтобы максимизировать. +1 к вашему скрипту специально для поиска значения 65 для максимального окна;) – αғsнιη 25 November 2014 в 22:46
  • 2
    Очень хорошо! только то, что он также скрывает пусковую установку на рабочих пространствах, где нет максимизированного окна (если есть одно из рабочих пространств. – Jacob Vlijm 25 November 2014 в 23:08
  • 3
    --- И это работает непредсказуемо, иногда, у меня оно работает, нигде не было развернуто окно, в рабочем пространстве 2/4 оно автоматически скрывается? – Jacob Vlijm 25 November 2014 в 23:34
  • 4
    Большое спасибо! Очень красивый сценарий KasiyA. У меня есть grep unit-launcher, потому что, если вы измените единицу, значок размера значка не будет работать со значением 65, поэтому я его буду использовать. Примерно в 3 доллара я никогда не видел людей, которые одновременно используют два разных браузера (возможно, кроме tor): P, но да, я согласен, что это работа для большего скрипта. – Paul B 25 November 2014 в 23:57
  • 5
    Джейкоб, может быть, потому что, когда вы открываете новое окно браузера (или что-то еще), позиция этого нового окна по умолчанию равна 65. Даже если вы захватите и переместите свой браузер рукой, чтобы позиция 65 на экранной панели скроется. : P Я не знаю, как обращаться с рабочими пространствами, я даже их не использую. Это простое рабочее место звучит как тяжелая работа для меня. – Paul B 26 November 2014 в 00:09

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

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