Как заставить клавиатуру работать как OSX System Wide?

Я постоянно переключаюсь между двумя компьютерами:

  • OSX Snow Leopard
  • Ubuntu 10.10

Я хотел бы иметь возможность заставить Ubuntu использовать те же сочетания клавиш, что и в OSX System Wide , только для следующих последовательностей клавиатуры (т.е. я не хочу, чтобы Ctrl действовал как Super)

  • Super + C -> Копировать

  • Super + V -> Вставить

  • Super + T -> Откройте новую вкладку в любом браузере.

  • Super + W -> Закрыть tab в любом браузере, в котором я нахожусь.

Короче говоря, могу ли я в любом случае сопоставить просто эти последовательности клавиш для следующей системы широкий?

  • Super + C -> Ctrl + C
  • Super + V -> Ctrl + V
  • Супер + T -> Ctrl + T
  • Super + W -> Ctrl + W

Я знаю, что есть у меня есть способы сделать это для vim и Firefox, и я уверен, что это определенно для большинства приложений ... но я бы предпочел сделать это только один раз и заставить его работать таким образом для всей системы !

Я использую стандартную клавиатуру ПК, то есть «Универсальный 105-клавишный ПК» в Ubuntu. Я также использую ту же клавиатуру на своем Mac mini.

141
задан 11 December 2013 в 15:04

15 ответов

Если вы устанавливаете пакет xautomation, вы можете добавить команду в System/Preferences/Keyboard Shortcuts/Custom like:

xte "keyup Meta_L" "keyup c" "keydown Control_L" "key c" "keyup Control_L"

и отобразить ее в Meta-C.


Альтернативное решение:

Установите AutoKey (apt-get install autokey-gtk) и установите фразу:

Phrase Text: <ctrl>+C (actually type out the <ctrl>+ here)
Paste Using: Keyboard
Abbreviation: None
Hotkey: <super>+v
Window Filter: None
44
ответ дан 11 December 2013 в 15:04

Это простая задача, как только вы знаете, как это сделать.

  1. Проверьте код клавиши вашего ключа. Запустите эту программу на терминале.

    xev
    .

    В данном примере терминал показывает, что код клавиши для моего k равен "45".

  2. Измените их так, как вам нравится при создании этого файла:

    gedit ~/.Xmodmap
    .
  3. Содержимое должно выглядеть следующим образом:

    код клавиши 64 = Alt_L Meta_L Alt_L Meta_L 
    код клавиши 108 = ISO_Level3_Shift Нет Символ ISO_Level3_Shift 
    

    (При необходимости измените код клавиши - смотрите на шаг "1")

    Ilustration:

    Obs.: если я хочу изменить свой k, я должен использовать "код клавиши 45", как показано на шаге "1".

  4. Logout and log back or reboot or run this:

    xmodmap ~/.Xmodmap
    .

    Надеюсь, вам понравится ;-)

4
ответ дан 11 December 2013 в 15:04

Чтобы расширить подсказку cscarney AutoKey , я разрабатываю свою конфигурацию AutoKey для достижения всего этого в Ubuntu (OS X-подобная + c , + v , ... В стиле Emacs + f , + b , ...) в моем репозитории точечных файлов .

Я не использую базовые фразы (где фильтрация окон в настоящее время не работает ), но скрипты Python, чтобы можно было отключить AutoKey в таких приложениях, как Emacs, Eclipse, Vim, gnome-terminal ... где я не хочу портить существующие ярлыки.

Вы можете проверить README внизу для получения инструкций о том, как его настроить.

8
ответ дан 11 December 2013 в 15:04

Начиная с Ubuntu 14 вы можете использовать Настройки GNOME :

sudo apt install gnome-tweaks # formerly gnome-tweak-tool

Затем найдите Инструмент настройки> Клавиатура и мышь> Дополнительные параметры макета> Поведение клавиш Alt / Win.

И проверьте: Ctrl сопоставлен клавишам Win и обычным клавишам Ctrl.

screenshot

30
ответ дан 11 December 2013 в 15:04

Hasonló és alapú mások kiváló munkájára készítettem egy repót az Autokey parancsikonjaimmal és az utasításokkal a beállítás elvégzéséhez:

https://github.com/bliles/autokey-macos

3
ответ дан 11 December 2013 в 15:04

Первый
компакт-диск с гостевыми дополнениями ( Устройства-> Вставить образ компакт-диска с гостевыми дополнениями ).

Активируйте совместное использование буфера обмена
Затем после перезагрузки в Virtualbox перейдите на Компьютер-> Настройки-> Общие-> Дополнительно и установите
Общий буфер обмена: Двуректный

Изменить ключ хоста VirtualBox
В Vitualbox / Preferences / Input / Virtual Machine / Host Key Combination
выберите что-то другое, чем

Key Mapping :
Для сопоставления cmd / ctrl для меня добавление английской (Macintosh) клавиатуры кажется наиболее удобным решением :)

Перейдите в Настройки Ubuntu-> Ввод текста
(я думаю в более старых версиях это могло быть в настройках раскладки клавиатуры)
В разделе Используемые источники ввода: нажмите плюс (+)
добавить Английский (Macintosh)

Я использую Ubuntu 14.04.3 LTS 64bit в VirtualBox 5.0.4

1
ответ дан 11 December 2013 в 15:04

Некоторые из вышеперечисленных решений устарели и не работают с Ubuntu 18.04. Вот обновленный ответ

  1. Установить gnome-tweaks , если он не установлен в системе

    sudo apt-get install gnome-tweaks

  2. Откройте список приложений, нажав Показать приложения в левом нижнем углу.

  3. Обратите внимание, что это изменит только поведение клавиши WINDOWS на клавишу CMD и сохранит клавишу CTRL, как и раньше (у вас будет 2 клавиши CTRL). Если вам это не нравится, пропустите шаг 4 и перейдите к шагу 5.

  4. Найдите приложение Tweaks -> Клавиатура и мышь -> Дополнительные параметры макета -> Поведение Alt / Win -> Выбрать элемент управления сопоставлен с клавишами Win и обычными клавишами Ctrl .

  5. Пропустите этот шаг, если вы выполнили шаг 4. На этом шаге поведение клавиши Windows будет заменено на Ctrl и наоборот. Найдите приложение Tweaks -> Клавиатура и мышь -> Дополнительные параметры макета -> Положение Ctrl -> Выберите «Поменять местами левую победу и левый Ctrl»

  6. Еще одна вещь, которую мне не хватает в macOS, - это возможность переключать окна с помощью CMD + Tab (в данном случае Windows + Tab). Для этого перейдите в Настройки -> Клавиатура -> Найдите переключатель Windows в разделе навигации -> Дважды щелкните по нему и нажмите Windows + Tab, когда появится всплывающее окно

10
ответ дан 11 December 2013 в 15:04

Изменить: простой подход, который я здесь описываю, имеет некоторые недостатки (упомянутые ниже, наиболее заметно с залипающими клавишами). Итак, теперь я рекомендую проверить Kinto , который позволяет избежать таких проблем за счет активного переназначения клавиатуры.


Мне нужно было решение, которое будет работать в любой среде рабочего стола / оконном менеджере, поэтому я объединил предложение cscarney использовать xautomation с SXHKD (простой демон горячих клавиш X).

Вот базовый ~ / .config / sxhkd / sxhkdrc файл конфигурации, который я создал.

Дополнительно: My ] последняя версия является более полной и может отправлять разные нажатия клавиш для разных приложений, но для нее требуется внешний скрипт и, вероятно, есть некоторые привязки, которые вам не нужны.

Вот фрагмент:

# Reload this config
control + alt + shift + r
  killall -USR1 -u "$USER" sxhkd && echo 'sxhkd config reloaded'

# Cut, copy and paste
alt + x
  xte "keyup x" "keyup Meta_L" "keydown Control_L" "key x" "keyup Control_L" "keydown Meta_L"
alt + c
  xte "keyup c" "keyup Meta_L" "keydown Control_L" "key c" "keyup Control_L" "keydown Meta_L"    
alt + v
  xte "keyup v" "keyup Meta_L" "keydown Control_L" "key v" "keyup Control_L" "keydown Meta_L"

# Open tab, close tab, restore closed tab
alt + t
  xte "keyup t" "keyup Meta_L" "keydown Control_L" "key t" "keyup Control_L" "keydown Meta_L"
alt + w
  xte "keyup w" "keyup Meta_L" "keydown Control_L" "key w" "keyup Control_L" "keydown Meta_L"    
alt + shift + t
  xte "keyup t" "keyup Meta_L" "keydown Control_L" "key t" "keyup Control_L" "keydown Meta_L"

# Move to home/end
alt + Left
  xte "keyup Meta_L" "keyup Left" "key Home" "keydown Meta_L"
alt + Right
  xte "keyup Meta_L" "keyup Right" "key End" "keydown Meta_L"
alt + shift + Left
  xte "keyup Meta_L" "keyup Left" "key Home" "keydown Meta_L"
alt + shift + Right
  xte "keyup Meta_L" "keyup Right" "key End" "keydown Meta_L"

# Move one word
super + Left
  xte "keyup Super_L" "keyup Left" "keydown Control_L" "key Left" "keyup Control_L" "keydown Super_L"
super + Right
  xte "keyup Super_L" "keyup Right" "keydown Control_L" "key Right" "keyup Control_L" "keydown Super_L"
super + shift + Left
  xte "keyup Super_L" "keyup Left" "keydown Control_L" "key Left" "keyup Control_L" "keydown Super_L"
super + shift + Right
  xte "keyup Super_L" "keyup Right" "keydown Control_L" "key Right" "keyup Control_L" "keydown Super_L"

Примечание:

  • Как видите, если я нажимаю исходную клавишу-модификатор перед выполнением виртуального штриха, то после этого я снова нажимаю ее. Это означает, что пользователь может повторять нажатие клавиши без необходимости отпускать и снова нажимать клавишу-модификатор. Другими словами, после нажатия Alt-W система видит, что клавиша Alt нажата.

Предостережения:

  • Это может быть проблемой (особенно на более медленных машинах), если вы отпускаете клавишу Alt во время выполнения команды xte все еще работает . В итоге вы получите «залипшую» клавишу Alt, потому что xte нажал ее за вас!

  • При таком подходе триггеры не будут повторяться , если клавиша удерживается нажатой. (Таким образом, вы не можете переместить 12 слов, удерживая Super-Left.)

8
ответ дан 11 December 2013 в 15:04

Автоключи действительно работали для меня. Теперь win + c (v, x, a) работает в моей системе, как я и ожидал.

1. Установите autokeys

sudo apt install autokey-gtk

2. Настройте автоключи

  1. Добавьте корневую папку, назовите ее как-нибудь вроде MacKeys или как-нибудь
  2. Вы создадите там 4 сценария для ctrl-c, v, x и
  3. назначьте каждому сценарию горячую клавишу super-c, super -v и т. д.
  4. заполните скрипты приведенным ниже кодом (замените букву c на другие комбинации)

winClass = window.get_active_class () keys = " + c" если winClass == "gnome-terminal-server.Gnome-terminal": keys = " + + c"; keyboard.send_keys (ключи)

4a. Для CmdZ, CmdA или CmdX работают с более простым скриптом, например keyboard.send_keys (" + x")

3. Добавьте / usr / bin / autokey-gtk в запускаемые приложения

4. Отключите win-A в настройках клавиатуры

Обычно win-a переключается на обзор.

5. Необязательно, полностью предотвратить выигрыш, чтобы переключить обзор

Вероятно, вы захотите удалить его. Установите gnome-tweak-tool, перейдите на клавиатуру и повторно запустите переключение с рабочего стола на обзор. Это сработало для моего gnome ubuntu 16.04.

0
ответ дан 11 December 2013 в 15:04

У меня нет Ubuntu в руках (Mac здесь, Ubu в офисе), но я использую клавиатуру Mac там, и по тем же причинам, как вы, хотел сделать это.

Первое, что нужно сделать, это убедиться, что ваша клавиатура установлена как клавиатура Mac. Я думаю, что вы можете изменить это в системе -> настройки -> клавиатура. Пока вы там находитесь, одна из вкладок приведет вас на страницу сопоставления клавиш, где вы сможете настроить, как работает клавиша cmd.

Как я уже сказал, я не могу точно вспомнить - я могу указать на биты на моем экране здесь, но это не работает, потому что меня там нет.

Если вы все еще застряли завтра, я посмотрю еще раз.

0
ответ дан 11 December 2013 в 15:04

Есть способ отобразить Ctrl на Win/Super ключ:

  1. перейти к system->preferences->клавиатуре,

  2. открыть вкладку Layouts,

  3. нажать Options.... ,

  4. откройте Alt/Win поведение клавиш,

  5. и выберите Управление отображено на Win клавиши

А для консоли есть сообщение на форуме, как это сделать here.

Для более подробной информации проверьте общую клавиатуру Linux HOWTO here.

учитывая

14
ответ дан 11 December 2013 в 15:04

Удар! Ваши мизинцы будут благодарить меня

Вся моя мышечная память основана на Mac, и я использую Mac на работе и в личной жизни, но я случайно наткнулся на Dell Latitude E7470 и решил, что с таким же успехом могу попробовать и Linux (поскольку мой Macbook Pro 2012 года выпуска и он довольно тяжелый, и я просто не хотел возиться с окончаниями строк \ r \ n ) . Так что работа над тем, чтобы понять, как изменить систему, чтобы она соответствовала моей мышечной памяти, велась медленно, вместо повторного изучения сочетаний клавиш.

Сначала я просто использовал настройки Клавиатура> Макеты> Параметры ... для «Ctrl сопоставлен с Alt; Alt сопоставлен с Win» , но, и это очень второстепенная вещь, Мне не понравилось, что мои настройки не применялись до , после того как я прошел мимо приветствующего. У меня также были проблемы с запуском ~ / .Xmodmap при запуске (либо отдельно, либо как часть.xinitrc и в качестве настраиваемой команды запуска в запускаемых приложениях и в / etc / default /

Сейчас я использую Ubuntu MATE 19.10 (Eoan) , и клавиатура распознается как pc105

Вам нужно будет изменить приведенный ниже сценарий (или отдельные файлы, если вы уже внесли в них другие изменения, которые хотите сохранить), чтобы они соответствовали клавиатуре вашего компьютера.

Создайте ~ / .Xmodmap:

echo '! -*- coding: utf-8 -*-
! keycode  37 = Control_L NoSymbol Control_L
! keycode  64 = Alt_L Meta_L Alt_L Meta_L
! keycode 105 = Control_R NoSymbol Control_R
! keycode 108 = Alt_R Meta_R Alt_R Meta_R
! keycode 133 = Super_L NoSymbol Super_L
! keycode 134 = Super_R NoSymbol Super_R
! keycode 135 = Menu NoSymbol Menu
! keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
! keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
! keycode 206 = NoSymbol Super_L NoSymbol Super_L
!
! keycode 105 = Alt_R Meta_R
clear control
clear mod1
clear mod4
keycode 37 = Super_L
keycode 105 = Super_R
keycode 133 = Alt_L Meta_L
keycode 64 = Control_L
keycode 108 = Control_R
add control = Control_L Control_R
add mod1 = Alt_L Meta_L
add mod4 = Super_L Super_R' > ~/.Xmodmap

make ~ / .xinitrc:

echo 'if [ -s ~/.Xmodmap ]; then
    xmodmap ~/.Xmodmap
fi
xmodmap ~/.Xmodmap' > ~/.xinitrc

Измените файл символов клавиатуры X11 для вашей клавиатуры (важная часть здесь - include "altwin (ctrl_alt_win)" до // Конец сопоставлений модификаторов . Это немодифицированный иным образом файл / usr / share / X11 / xkb / symbols / pc):

echo 'default  partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {

    key <ESC>  {    [ Escape        ]   };

    // The extra key on many European keyboards:
    key <LSGT> {    [ less, greater, bar, brokenbar ] };

    // The following keys are common to all layouts.
    key <BKSL> {    [ backslash,    bar ]   };
    key <SPCE> {    [    space      ]   };

    include "srvr_ctrl(fkey2vt)"
    include "pc(editing)"
    include "keypad(x11)"

    key <BKSP> {    [ BackSpace, BackSpace  ]   };

    key  <TAB> {    [ Tab,  ISO_Left_Tab    ]   };
    key <RTRN> {    [ Return        ]   };

    key <CAPS> {    [ Caps_Lock     ]   };
    key <NMLK> {    [ Num_Lock      ]   };

    key <LFSH> {    [ Shift_L       ]   };
    key <LCTL> {    [ Control_L     ]   };
    key <LWIN> {    [ Super_L       ]   };

    key <RTSH> {    [ Shift_R       ]   };
    key <RCTL> {    [ Control_R     ]   };
    key <RWIN> {    [ Super_R       ]   };
    key <MENU> {    [ Menu          ]   };

    // Beginning of modifier mappings.
    modifier_map Shift  { Shift_L, Shift_R };
    modifier_map Lock   { Caps_Lock };
    modifier_map Control{ Control_L, Control_R };
    modifier_map Mod2   { Num_Lock };
    modifier_map Mod4   { Super_L, Super_R };

    // Fake keys for virtual<->real modifiers mapping:
    key <LVL3> {    [ ISO_Level3_Shift  ]   };
    key <MDSW> {    [ Mode_switch       ]   };
    modifier_map Mod5   { <LVL3>, <MDSW> };

    key <ALT>  {    [ NoSymbol, Alt_L   ]   };
    include "altwin(meta_alt)"

    key <META> {    [ NoSymbol, Meta_L  ]   };
    modifier_map Mod1   { <META> };

    key <SUPR> {    [ NoSymbol, Super_L ]   };
    modifier_map Mod4   { <SUPR> };

    key <HYPR> {    [ NoSymbol, Hyper_L ]   };
    modifier_map Mod4   { <HYPR> };
    include "altwin(ctrl_alt_win)"
    // End of modifier mappings.

    key <OUTP> { [ XF86Display ] };
    key <KITG> { [ XF86KbdLightOnOff ] };
    key <KIDN> { [ XF86KbdBrightnessDown ] };
    key <KIUP> { [ XF86KbdBrightnessUp ] };
};

hidden partial alphanumeric_keys
xkb_symbols "editing" {
    key <PRSC> {
    type= "PC_ALT_LEVEL2",
    symbols[Group1]= [ Print, Sys_Req ]
    };
    key <SCLK> {    [  Scroll_Lock      ]   };
    key <PAUS> {
    type= "PC_CONTROL_LEVEL2",
    symbols[Group1]= [ Pause, Break ]
    };
    key  <INS> {    [  Insert       ]   };
    key <HOME> {    [  Home         ]   };
    key <PGUP> {    [  Prior        ]   };
    key <DELE> {    [  Delete       ]   };
    key  <END> {    [  End          ]   };
    key <PGDN> {    [  Next         ]   };

    key   <UP> {    [  Up           ]   };
    key <LEFT> {    [  Left         ]   };
    key <DOWN> {    [  Down         ]   };
    key <RGHT> {    [  Right        ]   };
};' >/usr/share/x11/xkb/symbols/pc

И на всякий случай вот соответствующая часть / usr / share / X11 / xkb / symbols / altwin, если вам нужно добавить его вручную:

// Ctrl is mapped to the Alt, Alt to the Super, and Win to the Ctrl keys.
partial modifier_keys
xkb_symbols "ctrl_alt_win" {
    key <LALT> { [ Control_L, Control_L  ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Control_R, Control_R ] };
    key <LWIN> { [ Alt_L, Meta_L ] };
    key <RWIN> { [ Alt_R, Meta_R ] };
    key <LCTL> { [ Super_L ] };
    key <RCTL> { [ Super_R ] };
    modifier_map Control { <RALT>, <LALT> };
    modifier_map Mod1 { <LWIN>, <RWIN> };
    modifier_map Mod4 { <LCTL>, <RCTL> };
};

Измените / etc / defaults / keyboard:

echo '# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="caps:shift_nocancel,ctrl:alt,alt:win,win:ctrl"

BACKSPACE="guess"' >/etc/default/keyboard

И, наконец, вот мои дампы dconf привязки клавиш GNOME и Marco:

GNOME:

[org/gnome/desktop/wm/keybindings]
activate-window-menu=['disabled']
begin-move=['disabled']
close=['<Control>q']
maximize=['<Alt><Super>m']
minimize=['<Control>m']
move-to-corner-ne=['disabled']
move-to-corner-nw=['disabled']
move-to-corner-se=['disabled']
move-to-corner-sw=['disabled']
move-to-side-e=['disabled']
move-to-side-n=['disabled']
move-to-side-s=['disabled']
move-to-side-w=['disabled']
move-to-workspace-1=['<Shift><Super>Home']
move-to-workspace-down=['<Shift><Super>Next']
move-to-workspace-up=['<Shift><Super>Prior']
show-desktop=['<Control>F3']
switch-to-workspace-1=['<Super>Home']
switch-to-workspace-down=['<Super>Next']
switch-to-workspace-up=['<Super>Prior']
switch-windows=['disabled']
switch-windows-backward=['disabled']
toggle-fullscreen=['<Control><Super>f']
toggle-maximized=['<Shift><Control>m']
toggle-shaded=['<Alt><Super>s']
unmaximize=['<Control><Alt>m']

Marco:

[org/mate/marco/global-keybindings]
cycle-group='<Primary>grave'
cycle-panels='disabled'
cycle-windows='<Alt>grave'
run-command-screenshot='<Primary><Shift>numbersign'
run-command-window-screenshot='<Primary><Shift>dollar'
show-desktop='<Primary>F3'
switch-group='<Alt>Tab'
switch-to-workspace-1='<Primary><Mod4>1'
switch-to-workspace-2='<Primary><Mod4>3'
switch-to-workspace-3='<Primary><Mod4>2'
switch-to-workspace-4='<Primary><Mod4>4'
switch-to-workspace-down='<Mod4>Down'
switch-to-workspace-left='<Mod4>Left'
switch-to-workspace-prev='<Shift><Mod4>Tab'
switch-to-workspace-right='<Mod4>Right'
switch-to-workspace-up='<Mod4>Up'
switch-windows='<Primary>Tab'

[org/mate/marco/window-keybindings]
activate-window-menu='disabled'
begin-move='<Primary><Shift><Mod4>m'
begin-resize='<Primary><Shift><Mod4>r'
close='<Primary>q'
maximize='<Alt><Mod4>m'
maximize-horizontally='<Alt><Mod4>h'
maximize-vertically='<Alt><Mod4>v'
minimize='<Primary>m'
move-to-corner-ne='<Alt><Mod4>2'
move-to-corner-nw='<Alt><Mod4>1'
move-to-corner-se='<Alt><Mod4>4'
move-to-corner-sw='<Alt><Mod4>3'
move-to-side-e='<Alt><Mod4>Left'
move-to-side-n='<Alt><Mod4>Up'
move-to-side-s='<Alt><Mod4>Down'
move-to-side-w='<Alt><Mod4>Right'
move-to-workspace-1='<Primary><Alt><Mod4>1'
move-to-workspace-2='<Primary><Alt><Mod4>2'
move-to-workspace-3='<Primary><Alt><Mod4>3'
move-to-workspace-4='<Primary><Alt><Mod4>4'
move-to-workspace-down='<Primary><Mod4>Down'
move-to-workspace-left='<Primary><Mod4>Left'
move-to-workspace-right='<Primary><Mod4>Right'
move-to-workspace-up='<Primary><Mod4>Up'
tile-to-corner-ne='<Shift><Alt>at'
tile-to-corner-nw='<Shift><Alt>exclam'
tile-to-corner-se='<Shift><Alt>dollar'
tile-to-corner-sw='<Shift><Alt>numbersign'
tile-to-side-e='<Shift><Alt>Right'
tile-to-side-w='<Shift><Alt>Left'
toggle-fullscreen='<Primary><Mod4>f'
toggle-maximized='<Primary><Shift>m'
toggle-shaded='<Alt><Mod4>s'
unmaximize='<Alt><Mod4>r'
8
ответ дан 16 November 2019 в 09:36

У меня алюминиевая клавиатура Apple. Небольшая модификация (с использованием Super_L вместо Meta_L) предложения @cscarney заставила его работать в Ubuntu 18.04

Command: xte "keyup Super_L" "keyup c" "keydown Control_L" "key c" "keyup Control_L"
Short cut: Super+C

Command: xte "keyup Super_L" "keyup v" "keydown Control_L" "key v" "keyup Control_L"
Short cut: Super+V
1
ответ дан 16 November 2019 в 09:36

Вот очень простое решение, Kinto. Я работал над этим в течение 3 лет теперь.. и наконец чувствуйте, что я могу внести что-то назад из-за того, как хорошо это работает, в отличие от моих последних 2 попыток. Это предназначается для x11, и systemd основывал дистрибутивы, но понятие перенесет на Уэйленд, после того как я нахожу хороший способ реализовать его, несмотря на улучшать безопасность, которая мешает работать с.

1) Суть (для тех, которые просто хотят видеть предпосылку или реализовать их собственное переменное решение, пограничные случаи, не покрытые).

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

2) Полное на установщике, который использует systemd, удар и xprop. (Пограничные случаи, как Chromebook покрыты, было удивительно трудно поддерживать, но я наслаждаюсь моим, таким образом, все могут извлечь выгоду!)

https://github.com/rbreaves/kinto

Причина для Kinto, японский язык для зеркального отражения, является этим - даже если Вы усовершенствовали ключевое переотображение для каждого нормального приложения для GUI с помощью некоторого другого метода, Вы не собираетесь иметь тот же Терминальный тип опыта, легко, на Linux, как Вы делаете на Mac. И это неудачно - потому что Mac портят нас разработчики с контурной картой, которая работает удивительно хорошо на Терминальные приложения. Точка того, что я сделал путем изменения контурной карты на 1 из 2 параметров макета через setxkbmap и используемое активное приложение, то, что это приводит к Вам имеющий необходимость создать наименьшее количество дополнительных сочетаний клавиш, характерных для какого-то конкретного приложения.

По существу с этим решением Вы не боретесь, как правильно создать новые сочетания клавиш или старающиеся избегать конфликты ярлыка в Ваших Терминальных приложениях по сравнению с остальной частью Ваших приложений для GUI. Вы просто получаете лучшее из обоих слов, и это работает так беспрепятственно, как это может - вне включения файлов конфигурации ярлыка по умолчанию для различных терминалов и популярных текстовых редакторов, которые я могу включать позже. Даже текстовые редакторы как Сублимат просто не выгружают ключ Cmd с Ctrl на каждом ярлыке, но он выравнивает правильно приблизительно 95% или больше времени, которое я сказал бы.

И разговор об Уэйленде у меня действительно есть подтверждение концепции того, как сделать эту контурную карту keyswap работой приема над KDE Plasma 5 с существующим виджетом, который вытягивает на названия приложения. Если у кого-либо есть лучшее решение затем, я внимательно слушаю, особенно если оно может работать над x11 также. Xprop абсолютно достаточен на x11, но очевидно бывший бесполезный на Уэйленде.

https://github.com/rbreaves/applet-window-title/commit/ff17e694579a52a9848d6bea87b2d11f22033718

1
ответ дан 22 November 2019 в 22:59

Вы можете захотеть ознакомьтесь с Kinto , который представляет собой довольно комплексное решение с полным репозиторием GitHub.

«Лучшая раскладка клавиатуры Linux и Windows для профессиональных пользователей Mac»

Это позволяет избежать некоторых проблем, с которыми я имел sxhkd, потому что он не интерпретирует заново нажатия клавиш, а преобразует их заранее, используя xmodmap .

В частности,он наблюдает за вашим сеансом X, чтобы увидеть, когда изменяется фокус окна, а затем быстро переключается на соответствующие сочетания клавиш для этого приложения.

1
ответ дан 5 January 2021 в 23:58

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

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