Как связать. Вкладка SOLLY = TAB, но вкладка с другой ключей = WinKey + другой ключ

Мне нравится perl , поэтому я предлагаю решение Perlish:

#!/usr/bin/env perl
use strict;
use warnings;
my %highest_version_of;

for ( glob ( "*.flg" ) ) { 
    my ( $filename, $version ) = m/^(\w+)_V(\d+).flg/; 
    if ( $highest_version_of{$filename} //= 0 < $version ) { $highest_version_of{$filename} = $version }; 
}
foreach my $filename ( sort keys %highest_version_of ) {
    print "${filename}_$highest_version_of{$filename}.flg\n";
}
1
20.09.2018, 00:23
2 ответа

@Goro в своем ответе перечислил хорошие инструменты для распознавания нажатой клавиши, например xev . Но вторая часть его ответа была не тем, что я искал.

Я хотел изменить поведение клавиши Tab , а не клавиши Windows . Например, чтобы активировать скрипт в оконном менеджере i3 для смены окна, я могу нажать Tab + 1, чтобы переключиться на первый экран. Win + 1(по умолчанию ). Но я все еще могу использовать Вкладку , чтобы сделать отступ, если нажму только ее.

Чтобы заставить его работать, я использовал xmodmap и xcape .

spare_modifier="Super_L"
echo $spare_modifier
xmodmap -e "keycode 23 = $spare_modifier"
xmodmap -e "remove mod4 = $spare_modifier"
xmodmap -e "add Win = $spare_modifier"
xmodmap -e "add mod4 = $spare_modifier"
xmodmap -e "keycode any = Tab"
xcape -e "$spare_modifier=Tab"
0
28.01.2020, 00:27

Вам нужны две командные -линейные инструменты, xev и xmodmap .

Вы можете использовать xevдля переназначения клавиши. Запустите окно терминала и запустите xev, затем нажмите клавишу, поведение которой вы хотите изменить. В вашем случае клавиша Tab .

xevпокажет вам информацию о клавише Tab . такие как:

 KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0x75, subw 0x0, time 4090453521, (461,542), root:(468,620),
    state 0x10, keycode 23 (keysym 0xff09, Tab), same_screen YES,
    XLookupString gives 1 bytes: (09) " "
    XFilterEvent returns: False

Третья строка является наиболее важной, где Tab— это имя поведения, которому назначена клавиша в данный момент, числовой код клавиши 23— это внутренний идентификатор для распознавания клавиши Tab.

или информация о клавише Windows :

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0x75, subw 0x0, time 4090816069, (681,389), root:(688,467),
    state 0x10, keycode 115 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Опять же, третья строка является наиболее важной, где Super_L— это имя поведения, которому назначена клавиша в данный момент, числовой код клавиши 115— это внутренний идентификатор для распознавания ключа Windwos.

Вы можете использовать xmodmap, чтобы поменять местами две клавиши. Вот туториал . Например:

xmodmap -e "keycode 115 = Tab"

Это изменит поведение клавиши Windows и сделает ее точно такой же, как клавиша Tab. или

xmodmap -e "keycode 115 = Tab j"

Это изменит поведение клавиши Вкладка + j и сделает ее поведение аналогично клавише Вкладка .

0
28.01.2020, 00:27

Теги

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