Расширение Xmonad для циклического переключения последних окон

Я считаю, что в xmonad немного неудобно переключаться между двумя окнами. Есть ли расширение (или часть ядра xmonad), которое позволяет это сделать?

Например, я хочу часто переключаться между firefox и emacs, и они могут не находиться в одном рабочем пространстве. В настоящее время я делаю это с помощью gotoMenu, набирая M-g firefox<cr> и M-g emacs<cr>, но это неудобно, особенно если существует более одного экземпляра любого приложения. В идеале я хотел бы, чтобы один ярлык выполнял действие, такое как предоставление фокуса последнему использованному окну без фокуса, которое я мог бы просто нажимать снова и снова, чтобы переключаться назад и вперед.


person Matthew Gilliard    schedule 18.12.2013    source источник
comment
Я не думаю, что этот вопрос относится к stackoverflow, так как он не связан с программированием.   -  person Flow    schedule 18.12.2013
comment
Возможно, нет, хотя есть много других вопросов о том, как настроить xmonad (что вы делаете, программируя на Haskell).   -  person Matthew Gilliard    schedule 18.12.2013
comment
Вы видели toggleWS в XMonad.Actions.CycleWS для переключения между текущим и последним просмотренным скрытым рабочим пространством?   -  person Garrett    schedule 21.12.2013
comment
Да, но это для рабочих мест, а не для окон.   -  person Matthew Gilliard    schedule 06.01.2014


Ответы (1)


XMonad.Actions.GroupNavigation кажется идеальным вариантом. Чтобы модуль мог отслеживать историю ваших окон, убедитесь, что logHook вызывает historyHook. Например:

import XMonad.Actions.GroupNavigation
...
main = xmonad $ defaultConfig {
   ...
   , logHook = myLogHook xmobars >> historyHook
}

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

("M-x", nextMatch History (return True))
person Garrett    schedule 06.01.2014
comment
Это работает отлично, хотя моя привязка клавиш выглядит как ((modm, xK_x), nextMatch History (return True)) - person Matthew Gilliard; 07.01.2014
comment
@Matthew Если вы используете XMonad.Util.EZConfig.additionalKeysP для добавления дополнительных привязок клавиш, вместо этого вы можете указать их в этом строковом формате. Либо (импорт оттуда же), можно с помощью additionalKeys добавить их как делаете (с (modm, xK_x)). - person Squidly; 07.01.2014
comment
мне пришлось удалить xmobars - person Toothrot; 11.01.2020