экранируйте + энергия — Какой-либо способ автоматически определить экранное имя окна для открытия имени файла энергии?

Запустите программу xev в терминале. Переместите мышь в xev окно; Вы будете видеть много прокрутки материала. Нажмите каждую кнопку в свою очередь. Затем переключитесь назад на окно терминала и нажмите Ctrl+C. xev показывает описание каждого входного события, в особенности ButtonPress и ButtonRelease для щелчков мышью (Вы будете также видеть много MotionNotify для движений мыши и других событий).

Вероятно, что Ваши вперед и кнопки "Назад" отображаются на кнопках мыши, возможно, кнопки 8 и 9:

ButtonPress event, serial 29, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100159, (166,67), root:(1769,98),
    state 0x0, button 8, same_screen YES

Если это так, повторно отобразите эти кнопки на другое действие в Вашем браузере, если Вы можете. С другой стороны, можно повторно отобразить кнопки на различные номера кнопки, на которые браузер не реагирует или отключает кнопки в целом на системном уровне. Чтобы сделать это, поместите эти строки в названный файл ~/.Xmodmap:

! Remap button 8 to 10 and disable button 9.
pointer = 1 2 3 4 5 6 7 10 0

Протестируйте его с командой xmodmap ~/.Xmodmap. Большинство настольных сред и менеджеров окон выполняют эту команду автоматически, когда Вы входите в систему; если Ваш не делает, принимают меры, чтобы это работало, когда X запускается.

Также возможно, что Ваша мышь отправляет событие клавиатуры при нажатии этих кнопок:

KeyPress event, serial 32, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100963, (957,357), root:(2560,388),
    state 0x0, keycode 166 (keysym 0x1008ff26, XF86Back), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

В этом случае поместите строки как они в ~/.Xmodmap:

keycode 166 = NoSymbol
keycode 167 = NoSymbol
10
16.02.2011, 01:47
2 ответа

Установите title опция. Это работает из поля на меня в xterm и т.п., но не на экране. Эта подсказка работы:

if &term == "screen"
  set t_ts="\ek"
  set t_fs="\e\\"
  set title
endif

Другой подход должен записать a preexec функционируйте в своей оболочке, которая устанавливает заголовок окна на выполняемую команду. Поддержки Zsh preexec исходно, и удар может сделать это также. Вот zsh пример.

5
27.01.2020, 20:03
  • 1
    Привет. Это не работало на меня, но я думаю, что это из-за того, как мой .screenrc файл является установкой. 1 termcapinfo xterm* ti @:te 2 строковых % 'hardstatus alwayslastline 3 hardstatus {GK} [% {G} %H % {г}] [% = % % {неделя}? %-Lw %? % {=b криптон} (% {W} %n* % f %t %? (% u) %? % {=b криптон}) % {= kw} %? % +Lw %? %? % = % {г}] [% {Y} %l % {г}] % {= b C} [%m / % d %c] % {Вт}' –  user4785 16.02.2011, 18:24
  • 2
    @user4785: Если Ваша подсказка может установить заголовок окна Screen, Vim должен смочь сделать это также. Какова Ваша подсказка? Делает мой .vimrc работа отрывка без Вашего .screenrc? –  Gilles 'SO- stop being evil' 16.02.2011, 22:34

Я сделал это немного более хакерским способом: Используя tcsh, я поместил следующее в свой .cshrc

# escape sequence to set the screen title
alias stitle 'echo -n "^[k\!*^[\\"'
# shorthand to set the screen title to the hostname
alias H stitle `hostname -s`
# shorthand to set the screen title to the filename, launch vim, and then set it back
alias vis 'stitle \!* ; vim \!* ; H'

Если вы не забываете использовать vis вместо vim, когда хотите, чтобы заголовок там был, он работает .

Я также добавил

set notitle

в свой .vimrc, чтобы vim не устанавливал заголовок окна, в котором работал экран.

1
27.01.2020, 20:03

Теги

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