Установите _NET _WM _NAME для текущей команды в Linux

Если вы пытаетесь использовать xmodmapкоманды (на X, а не на Weyland ), и вы получаете сообщение об ошибке BadValue (integer parameter out of range for operation)в X_SetPointerMapping, вам может потребоваться вместо этого использовать xinput. Запустите xinputбез параметров, чтобы получить идентификаторы устройств (найдите один для указателя ), затем запустите

xinput set-button-map [pointer-device-id] 1 2 3 4 5 0 0 0 0

В моем случае моя мышь была устройством #4, и мне нужно было превратить кнопки 6 и 7 в 8 и 9, чтобы двигаться вперед и назад, поэтому я использовал

xinput set-button-map 4 1 2 3 4 5 8 9 8 9

(Я оставил кнопки 8 и 9 также привязанными к 8 и 9 на случай смены мышей.)

1
28.10.2020, 04:58
1 ответ

Так же, как в xterm или большинстве других эмуляторов терминала:

printf '\033]2;%s\033\\' whatever

Остальное зависит от оболочки --, например, в bash вы можете использовать ловушку DEBUG:

set_title(){
   local cmd=$BASH_COMMAND
   case $cmd in
   fg) cmd=$(jobs %); cmd=${cmd##"${cmd%  *}  "};;
   fg\ *|%*) cmd=$(jobs "${cmd#fg }"); cmd=${cmd##"${cmd%  *}  "};;
   esac
   printf '\e]2;%s\e\\' "${TERM%%-*} ${cmd//[$'\e\a']/#}"
}
trap set_title DEBUG

Установка только этого свойства окна также может быть выполнена с помощью:

xprop -id "$WINDOWID" -f _NET_WM_NAME 8u -set _NET_WM_NAME whatever

но это не будет надежно работать из-под su, ssh, screen, tmux и т. д.

0
18.03.2021, 22:54

Теги

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