Как сопоставить кепки с клавишами со стрелками?

Редактирование: на основе комментария doug, который много работает с mpv, можно просто отредактировать ~/.config/mpv.conf, чтобы добавить screenshot-directory=~/Public/, если $HOME/Public - желаемый пункт назначения. [ ! d3]

Следующее работает с mpv/xenial,now 2:0.28.0~xenial1 amd64 [installed] и с mpv/bionic,now 0.27.0-2ubuntu4 amd64 [installed]. Я не тестировал версию, доступную в 17.10.

Я скопировал с /usr/share/applications/mpv.desktop на $HOME/.local/share/applications.

Затем я модифицировал строку Exec из

Exec=mpv --player-operation-mode=pseudo-gui -- %U

в

Exec=mpv --player-operation-mode=pseudo-gui --screenshot-directory=$HOME/Public/ -- %U

и сохранено SHOME/.local/share/applications/mpv.desktop. Теперь, когда я открываю видео с помощью mpv и снимаю снимок экрана, снимок экрана сохраняется на $HOME/Public.

Прочитайте комментарий doug для настройки качества снимков экрана, именования их и желаемого формата.

5
задан 6 February 2018 в 13:42

3 ответа

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

xmodmap

Перемещение вверх и вниз по CAPS и Shift + CAPS работает на моя система с заданным .Xmodmap, как ожидалось.

Вы проверяете, действительно ли ваши настройки влияют, вызывая

$ xmodmap -pk | grep ^\\s*66
     66     0xffe5 (Caps_Lock)  0x0000 (NoSymbol)   0xffe5 (Caps_Lock)
$ setxkbmap -layout us && xmodmap ~/.Xmodmap
$ xmodmap -pk | grep ^\\s*66
     66     0xff54 (Down)   0xff52 (Up)

модификатор LEVEL2

Там это еще одна (настоящая) проблема к вашему вопросу следующего:

Модификатор LEVEL2 <SHIFT>, который активируется нажатием кнопки CAPS , позволяет визуально маркировать символы в тексте редактор при перемещении по линиям с помощью клавиш со стрелками. Если вы присвойте <UP> ↑ второму уровню <CAPS>, то, что вы делаете эффективно, нажмите Shift + ↑. Вы должны деактивировать модификатор Shift только для этого сценария. Afaik вы не можете сделать это с помощью xmodmap.

перенаправление LEVEL2 Modifier

«Реальный путь» изменения карт ключей - с xkb. Я нашел решение в старой рассылке xorg. УРОВЕНЬ 2 из должен быть перенаправлен на клавишу ↑ (<UP>) (бит вверх-клавиши имеет только один уровень.) На X.org вы можете отключить CAPS 6] во время перенаправления со встроенной функцией RedirectKey(key=<UP>, clearmods=Shift). clearmods «высвобождает» модификатор Shift перед нажатием клавиши.

файл макета

Самый простой способ активировать поведение - создать новый файл макета: 23]

/ usr / share / X11 / xkb / symbols / capslockarrow

default partial xkb_symbols "basic" {

    include "de(basic)"
    include "shift(both_capslock_cancel)"

    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = own, NoSymbol ],
        actions[Group1] = [ NoAction(), RedirectKey(key=<UP>, clearmods=Shift) ]
    };
 };

активировать новый макет с помощью

setxkbmap capslockarrow

Примечания к файлу макета [!d26 ] Новый файл макета происходит из de(basic). Это макет стандартной немецкой клавиатуры. Вы можете добавить любой другой макет, например us(basic) или us(euro). см. /usr/share/X11/xkb/symbols/, чтобы взглянуть на то, что возможно. Двухбуквенным кодом является имя файла, а в скобках - соответствующее определение xkb_symbols из файла. У вас больше не будет модификатора ключа крышки. Поэтому я добавил некоторую замену Caps: shift(both_capslock_cancel) Нажимая оба LSHIFT и RSHIFT вместе, вы можете активировать CAPS Lock, и вы снова отпустите Lock, нажав любую клавишу Shift. Если кто-то задается вопросом, почему я не использовал новое определение типа для этого: я просто не мог освободить модификатор Shift до того, как было активировано действие Up Key. Освобождение клавиши Shift должно быть возможным, явно вызвав preserve[Shift] = None в spearated xkb_types. Как указано в комментариях ниже, Wayland также будет полагаться на XKB, но не разрешит перенаправления.

3
ответ дан 22 May 2018 в 15:15
  • 1
    wayland использует XKB (через xkbcommon, а не библиотеку X11), поэтому будут изменены модифицированные параметры XKB. (по крайней мере, если они помещены в системные файлы XKB.) xmodmap не будет работать. – quixotic 4 February 2018 в 04:32
  • 2
    Спасибо за объяснение. Я решил, что я отправляю смену + вверх. Теперь я вижу, что когда я выделяю текст в хроме. Я предполагаю, что реальный вопрос заключается в том, как отключить переключатель уровня 2, только для этого сценария – Jared Beach 4 February 2018 в 08:40
  • 3
    Я нашел решение и обновил свой пост. – ukos 5 February 2018 в 05:57
  • 4
    хорошее решение, спасибо. Я не знаю, будет ли это работать в таких контекстах, как wayland, которые используют xkbcommon - действия перенаправления, перечисленные среди текущих несовместимостей, хотя это может быть исправлено в будущем. – quixotic 6 February 2018 в 12:50
  • 5
    @ jared-beach сделано – ukos 11 February 2018 в 05:02

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

xmodmap

Перемещение вверх и вниз по CAPS и Shift + CAPS работает на моя система с заданным .Xmodmap, как ожидалось.

Вы проверяете, действительно ли ваши настройки влияют, вызывая

$ xmodmap -pk | grep ^\\s*66 66 0xffe5 (Caps_Lock) 0x0000 (NoSymbol) 0xffe5 (Caps_Lock) $ setxkbmap -layout us && xmodmap ~/.Xmodmap $ xmodmap -pk | grep ^\\s*66 66 0xff54 (Down) 0xff52 (Up)

модификатор LEVEL2

Там это еще одна (настоящая) проблема к вашему вопросу следующего:

Модификатор LEVEL2 <SHIFT>, который активируется нажатием кнопки CAPS , позволяет визуально маркировать символы в тексте редактор при перемещении по линиям с помощью клавиш со стрелками. Если вы присвойте <UP> ↑ второму уровню <CAPS>, то, что вы делаете эффективно, нажмите Shift + ↑. Вы должны деактивировать модификатор Shift только для этого сценария. Afaik вы не можете сделать это с помощью xmodmap.

перенаправление LEVEL2 Modifier

«Реальный путь» изменения карт ключей - с xkb. Я нашел решение в старой рассылке xorg. УРОВЕНЬ 2 из должен быть перенаправлен на клавишу ↑ (<UP>) (бит вверх-клавиши имеет только один уровень.) На X.org вы можете отключить CAPS во время перенаправления со встроенной функцией RedirectKey(key=<UP>, clearmods=Shift). clearmods «высвобождает» модификатор Shift перед нажатием клавиши.

файл макета

Самый простой способ активировать поведение - создать новый файл макета:

/ usr / share / X11 / xkb / symbols / capslockarrow

default partial xkb_symbols "basic" { include "de(basic)" include "shift(both_capslock_cancel)" key <CAPS> { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Down, NoSymbol ], actions[Group1] = [ NoAction(), RedirectKey(key=<UP>, clearmods=Shift) ] }; };

активировать новый макет с помощью

setxkbmap capslockarrow

Примечания к файлу макета

Новый файл макета происходит из de(basic). Это макет стандартной немецкой клавиатуры. Вы можете добавить любой другой макет, например us(basic) или us(euro). см. /usr/share/X11/xkb/symbols/, чтобы взглянуть на то, что возможно. Двухбуквенным кодом является имя файла, а в скобках - соответствующее определение xkb_symbols из файла. У вас больше не будет модификатора ключа крышки. Поэтому я добавил некоторую замену Caps: shift(both_capslock_cancel) Нажимая оба LSHIFT и RSHIFT вместе, вы можете активировать CAPS Lock, и вы снова отпустите Lock, нажав любую клавишу Shift. Если кто-то задается вопросом, почему я не использовал новое определение типа для этого: я просто не мог освободить модификатор Shift до того, как было активировано действие Up Key. Освобождение клавиши Shift должно быть возможным, явно вызвав preserve[Shift] = None в spearated xkb_types. Как указано в комментариях ниже, Wayland также будет полагаться на XKB, но не разрешит перенаправления.
3
ответ дан 17 July 2018 в 22:04

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

xmodmap

Перемещение вверх и вниз по CAPS и Shift + CAPS работает на моя система с заданным .Xmodmap, как ожидалось.

Вы проверяете, действительно ли ваши настройки влияют, вызывая

$ xmodmap -pk | grep ^\\s*66 66 0xffe5 (Caps_Lock) 0x0000 (NoSymbol) 0xffe5 (Caps_Lock) $ setxkbmap -layout us && xmodmap ~/.Xmodmap $ xmodmap -pk | grep ^\\s*66 66 0xff54 (Down) 0xff52 (Up)

модификатор LEVEL2

Там это еще одна (настоящая) проблема к вашему вопросу следующего:

Модификатор LEVEL2 <SHIFT>, который активируется нажатием кнопки CAPS , позволяет визуально маркировать символы в тексте редактор при перемещении по линиям с помощью клавиш со стрелками. Если вы присвойте <UP> ↑ второму уровню <CAPS>, то, что вы делаете эффективно, нажмите Shift + ↑. Вы должны деактивировать модификатор Shift только для этого сценария. Afaik вы не можете сделать это с помощью xmodmap.

перенаправление LEVEL2 Modifier

«Реальный путь» изменения карт ключей - с xkb. Я нашел решение в старой рассылке xorg. УРОВЕНЬ 2 из должен быть перенаправлен на клавишу ↑ (<UP>) (бит вверх-клавиши имеет только один уровень.) На X.org вы можете отключить CAPS во время перенаправления со встроенной функцией RedirectKey(key=<UP>, clearmods=Shift). clearmods «высвобождает» модификатор Shift перед нажатием клавиши.

файл макета

Самый простой способ активировать поведение - создать новый файл макета:

/ usr / share / X11 / xkb / symbols / capslockarrow

default partial xkb_symbols "basic" { include "de(basic)" include "shift(both_capslock_cancel)" key <CAPS> { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Down, NoSymbol ], actions[Group1] = [ NoAction(), RedirectKey(key=<UP>, clearmods=Shift) ] }; };

активировать новый макет с помощью

setxkbmap capslockarrow

Примечания к файлу макета

Новый файл макета происходит из de(basic). Это макет стандартной немецкой клавиатуры. Вы можете добавить любой другой макет, например us(basic) или us(euro). см. /usr/share/X11/xkb/symbols/, чтобы взглянуть на то, что возможно. Двухбуквенным кодом является имя файла, а в скобках - соответствующее определение xkb_symbols из файла. У вас больше не будет модификатора ключа крышки. Поэтому я добавил некоторую замену Caps: shift(both_capslock_cancel) Нажимая оба LSHIFT и RSHIFT вместе, вы можете активировать CAPS Lock, и вы снова отпустите Lock, нажав любую клавишу Shift. Если кто-то задается вопросом, почему я не использовал новое определение типа для этого: я просто не мог освободить модификатор Shift до того, как было активировано действие Up Key. Освобождение клавиши Shift должно быть возможным, явно вызвав preserve[Shift] = None в spearated xkb_types. Как указано в комментариях ниже, Wayland также будет полагаться на XKB, но не разрешит перенаправления.
3
ответ дан 23 July 2018 в 22:41

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

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