Есть ли способ для bash-скрипта найти имя текущего рабочего пространства (виртуальный рабочий стол)?
Это кажется действительно полезным для таких вещей, как настройка поведения в моем файле .bashrc на основе рабочего стола, на котором была создана оболочка.
wmctrl -d | grep '*' | sed 's/.* //g'
Ответы:
Вы можете сделать это с помощью
wmctrl -d
списка всех рабочих пространств.*
Представляет текущее рабочее пространство:Итак, чтобы получить только текущий, grep для
*
:Надеюсь это поможет!
источник
wmctrl -d
wmctrl -d
.Окна просмотра в Unity
Если вы используете Unity , текущий видовой экран не может быть получен непосредственно из
поскольку Unity имеет видовые окна, которые не обнаруживаются напрямую
wmctrl -d
. Вывод покажет только одно рабочее пространство:xrandr
)5040x2100
. Это 3x2 окна просмотра: 5040/1680 = 3 и 2100/1050 = 2.1680,1050
(х, у)Сценарий ниже вычисляет текущий видовой экран из этой информации:
Использовать:
устанавливать
wmctrl
Запустите его по команде
Он выведет 1, 2, 3 или любой другой текущий видовой экран. Он автоматически подсчитывает строки / столбцы, которые может содержать ваша конфигурация окна просмотра.
объяснение
Сценарий
xrandr
, включая возможные дополнительные мониторы.источник
По крайней мере, в оболочке Gnome, но, вероятно, и в других WM, вы можете напрямую спросить Xserver (если в Wayland, не знаю).
В основном, команда
xprop
вернетсяи тогда вы можете немного помассировать информацию, чтобы получить то, что вам нужно.
источник
_NET_DESKTOP_NAMES
.