Не могу установить клавиши управления яркостью и мультимедиа в Xmonad

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

Поэтому я пытался копировать из точечных файлов других людей, но всегда получал ошибки компиляции. Здесь я копирую конфигурацию XMonad Деррека Тейлора, особенно часть, относящуюся к проблеме. Итак, я скопировал:

 -- Multimedia Keys
    , ("<XF86AudioPlay>", spawn (myTerminal ++ "mocp --play"))
    , ("<XF86AudioPrev>", spawn (myTerminal ++ "mocp --previous"))
    , ("<XF86AudioNext>", spawn (myTerminal ++ "mocp --next"))
    , ("<XF86AudioMute>",   spawn "amixer set Master toggle")
    , ("<XF86AudioLowerVolume>", spawn "amixer set Master 5%- unmute")
    , ("<XF86AudioRaiseVolume>", spawn "amixer set Master 5%+ unmute")
    , ("<XF86HomePage>", spawn "firefox")
    , ("<XF86Search>", safeSpawn "firefox" ["https://www.duckduckgo.com/"])
    , ("<XF86Mail>", runOrRaise "thunderbird" (resource =? "thunderbird"))
    , ("<XF86Calculator>", runOrRaise "qalculate-gtk" (resource =? "qalculate-gtk"))
    , ("<XF86Eject>", spawn "toggleeject")
    , ("<Print>", spawn "scrotd 0")
    ]

Из его dotfiles, которые находятся по этой ссылке.

Я получаю следующую ошибку при компиляции (извиняюсь за то, что не вставил сам текст, поскольку никакая комбинация клавиш, которую я пробовал, не работала):

Сообщение об ошибке

Что касается импорта, у меня есть следующее:

import XMonad
 11 import Data.Monoid
 12 import System.Exit
 13 import XMonad.Util.SpawnOnce
 14 import XMonad.Util.Run
 15 import XMonad.Hooks.ManageDocks
 16 import qualified XMonad.StackSet as W
 17 import qualified Data.Map        as M
 18 import XMonad.Hooks.DynamicLog
 19 import XMonad.Hooks.ManageHelpers
 20 import XMonad.Hooks.UrgencyHook
 21 import XMonad.Util.WorkspaceCompare
 22 import XMonad.Util.EZConfig
 23 import Graphics.X11.ExtraTypes
 24 import XMonad.Hooks.EwmhDesktops
 

Не могли бы вы мне помочь ? Клавиши управления яркостью и мультимедиа, а позже и виджет батареи на XMobar (выложу в другой пост, если сам не разберусь) — последнее, что мне нужно сделать, прежде чем мой ноутбук будет готов на 100% процентов. Мне очень понравилось путешествие, и я многому научился, поэтому был бы рад, если бы вы не только помогли мне решить проблему, но и объяснили ее такому нубу, как я.

Заранее спасибо !


person ficonni    schedule 17.02.2021    source источник
comment
Обычно полезно опубликовать точное сообщение об ошибке, которое у вас есть, а не ссылку на снимок экрана. Также облегчает поиск этого вопроса другим пользователям с такой же проблемой.   -  person Chris Stryczynski    schedule 18.02.2021
comment
@ChrisStryczynski Спасибо, но я прекрасно знаю об этом. Проблема заключалась в том, что я не мог найти способ скопировать вывод, так как он не порождает терминал, который я использую, и теперь как копировать текст, поэтому я был вынужден это сделать, как сказано в сообщении.   -  person ficonni    schedule 26.02.2021
comment
Ах, извините, я пропустил это. :)   -  person Chris Stryczynski    schedule 26.02.2021


Ответы (1)


Итак, кажется, я случайно решил свою проблему, но самым необычным образом:

  1. Я перешел на этот сайт, потому что искал, как управлять яркостью. Буквально только что зашел в Duck Duck Go и поставил как контролировать яркость XMonad или что там еще. Установил Lux, программу для этого. По какой-то причине после попытки XBrightness он не зарегистрировал мой экран или было обнаружено какое-то другое сообщение об ошибке, которое не имеет отношения к этому обсуждению, поэтому я просто остановился на Lux.

  2. Однако, хотя общий синтаксис казался хорошим, теперь я заметил, что конфигурация DT, на которую я дал ссылку выше, имеет другое имя для ключей XF. Ну, я только что обнаружил, когда писал это, что причиной проблем была конфигурация раскладки клавиатуры EZ - DT использовал ее, а я, похоже, нет. Однако это осознание пришло намного позже выполнения шага 3.

3. Я взял на форк DWM Люка Смита, который я использовал некоторое время, прежде чем переключиться на XMonad. Оказывается, имена раскладок разные, и я попробовал их вместо этого. Затем заметил, что X в XF86AudioLowerVolume, например, был написан с большой буквы, а в чем-то вроде , ((0, xF86XK_MonBrightnessUp), spawn "lux -a 10%") из шага 1 - нет. Поскольку в этот момент Lux работал, я просто играл в игру, чтобы убедиться, что синтаксис одинаков для обоих случаев. В конце концов я также понял, что dwm-форк Люка содержит точные имена клавиш, включая строчные буквы, поэтому я просто копировал синтаксис и менял соответствующие сочетания клавиш. Через несколько сообщений об ошибках компиляции XMonad все заработало!

Теперь мои элементы управления выглядят следующим образом:

 , ((0, xF86XK_MonBrightnessUp), spawn "lux -a 10%")
 , ((0, xF86XK_MonBrightnessDown), spawn "lux -s 10%")
 , ((0, xF86XK_AudioMute), spawn "amixer set Master toggle")
 , ((0, xF86XK_AudioLowerVolume), spawn "amixer set Master 5%- unmute")
 , ((0, xF86XK_AudioRaiseVolume), spawn "amixer set Master 5%+ unmute")

Вместо того, чтобы заставить меня ненавидеть оконные менеджеры, я теперь заинтригован. Думаю, я должен изучить некоторые основы программирования :)

Надеюсь, это было полезно для всех, у кого есть проблемы с XMonad.

Ваше здоровье !

person ficonni    schedule 18.02.2021