LINUX.ORG.RU

Xmonad: переназначение клавиши meta «на лету»

 , ,


0

3

Приветствую всех!

Вопрос к знатокам xmonad.

Можно ли переназначать значение клавиши meta при переключении фокуса на определенную программу?

Поясню. У меня в xmonad клавишей мета работает alt. Но, например, в emacs, клавиша alt активно используется. Поэтому, идеальные настройки были бы такие: переключились на emacs, meta переназначилась на клавишу win; вышли из emacs или переключили фокус на другую программу — alt снова стал клавишей meta. Такое поведение xmonad можно настроить?


Как костыль, напиши скрипт, который будет определять имя/класс активного окна и если нужно переключать мета через xmodmap.

hope13 ★★★ ()

почему бы просто не назначить mod4 как modMask в xmonad?

f1u77y ★★★ ()
Последнее исправление: f1u77y (всего исправлений: 1)

если хочешь именно так, как просил в начале, то можешь сделать следующее: вместо

((modm, xK_a), action)
пиши примерно так(псевдокод):
((modm, xK_a), unless currentWindowIsEmacs action)
((mod4Mask, xK_a), when currentWindowIsEmacs action)

если умеешь, генерируй из того, что было, с помощью templatehaskell

и да, могут возникнуть проблемы с тем, что даже так xmonad не будет давать emacs'у его хоткеи. тогда делай так, чтобы он давал(помницца, он так умеет).

f1u77y ★★★ ()

ещё есть ну совсем уж адски костыльное решение: скомпилировать 2 конфига(один — с mod1, другой — с mod4) и делать replace, когда переключаешься на/с emacs'а

f1u77y ★★★ ()

Попробуй в manageHook что-то допилить.
Но лучше по умолчанию поставить Win, как нормальные люди советуют

I60R ★★ ()
Ответ на: комментарий от I60R

в manageHook что-то допилить

отличная подсказка. что нужно делать че-то там, и дураку ясно, а вот как менять модмаск в рантайме, это уже другой вопрос. судя по тому, что он находится в MonadReader, этого вообще делать нельзя, так что приходится лишь искать workaround'ы

f1u77y ★★★ ()
Ответ на: комментарий от f1u77y

Очень просто.

Если ты печатаешь на клавиатуре всеми десятью пальцами, то, например, в xmonad комбинации alt-1 alt будешь нажимать пальцами правой руки, а в комбинации alt-9 — alt будешь нажимать пальцами левой руки. То есть должна быть клавиша meta и для правой, и для левой руки. То же самое и в клавиатурных комбинациях для emacs. Поэтому одна meta клавиша, в частности клавиша win, в xmonad для людей, владеющих «слепым» методом печати — это просто не удобно.

pol01 ()
Ответ на: комментарий от f1u77y

что нужно делать че-то там, и дураку ясно

Но здесь могут быть люди которые не знают где делать это что-то там.

как менять модмаск в рантайме

Например, через xmodmap биндить

I60R ★★ ()
Ответ на: Очень просто. от pol01

Можно через xmodmap забиндить клавишу «Menu» на «Super», если она есть и если она не используется по назначению.
Динамические хоткеи, как по мне, неудобно потому что нужно иметь в виду в какой программе сейчас находишься чтобы нажать верный

I60R ★★ ()
Ответ на: Очень просто. от pol01

Вот не надо! Я скромно печатаю, есть такое. И клавиатура не особо стандартная, тоже такое есть. Но связка на meta (alt) переключения окон - зло!
Это, как евший кактус 2 недели, пишу. Дело привычки двух дней. Поставь на win key переключалку и буде счастье.

Потому как если пользоваться буферами Emacs (было дело, мучил и даже в форум писал), то это всё хрень и костыль в иксах и тайловом WM.

Замер показал, что педаль win+j,k ЗАМЕТНО! шустрее, чем встроенное в emacs. Так что удачи, и велосипеды тут не нужен.

dodevich ()
Последнее исправление: dodevich (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.