私はXmonadを使い始めたばかりで(昨日インストールしたばかりです)、以前にhaskellを使用したことがないため、構成が少しわかりにくいことに気づきました。 xmobarとトレーラーをいくらか作成しましたが、マルチメディアキーを作成して音量を調整する方法を知りません。誰かがそれを手伝ってくれる?
追加の質問:xmonadでボリュームをどのように管理しますか。トレイアイコンなどを使っていますか?
これが私のxmonad設定です:
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.EZConfig(additionalKeys)
import System.IO
main = xmonad =<< statusBar myBar myPP toggleStrutKey myConfig
-- Command to launch the bar
myBar = "xmobar"
-- Custom PP, it determines what is written to the bar
myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" }
-- Key bindings to toggle the gap for the bar
toggleStrutKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)
myConfig = defaultConfig {
manageHook = manageDocks <+> manageHook defaultConfig,
layoutHook = avoidStruts $ layoutHook defaultConfig,
modMask = mod4Mask -- Rebind Mod to windows key
} `additionalKeys`
[ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock")
]
「xev」を使用してマルチメディアキーをタップし、名前を見つけます。 1つは「XF86XK_AudioMute」かもしれません。次に、「/ usr/include/X11/XF86keysym.h」の内容を見て、名前を探します。私のシステムでは、「XF86XK_AudioMute」は「0x1008FF12」です。
設定ファイルのキーを置く場所にドロップします。次のようになります。
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.EZConfig(additionalKeys)
import System.IO
-切る-
} `additionalKeys`
[ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock"),
((0 , 0x1008FF11), spawn "amixer -q sset Master 2%-"),
((0 , 0x1008FF13), spawn "amixer -q sset Master 2%+"),
((0 , 0x1008FF12), spawn "amixer set Master toggle")
]
'amixer'はボリュームを設定します。 mod4Maskの代わりに「0」を使用すると、modキーを押さなくてもマルチメディアキーをタップできます。
必要なキーについては Graphics.X11.ExtraTypes.XF86 を参照し、構成ファイルに追加してください:
import Graphics.X11.ExtraTypes.XF86
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
[ ...
, ((0, xF86XK_AudioLowerVolume ), spawn "amixer set Master 2-")
, ((0, xF86XK_AudioRaiseVolume ), spawn "amixer set Master 2+")
, ((0, xF86XK_AudioMute ), spawn "amixer set Master toggle")
...]
Pulseaudioを使用している場合は、pactl
も機能するはずです。
, ((0 , xF86XK_AudioRaiseVolume), spawn "pactl set-sink-volume 0 +1.5%")
, ((0 , xF86XK_AudioLowerVolume), spawn "pactl set-sink-volume 0 -- -1.5%")
, ((0 , xF86XK_AudioMute), spawn "pactl set-sink-mute 0 toggle")
]
0
はシンクIDです。 pactl list short sinks
はシンクリストを表示します。
pactl stat|grep 'Default Sink' | cut -f2 -d':'
現在のデフォルトシンクが表示されます。数値IDの代わりにシンク名を使用できます。
ドルブルダッシュ--
は、「-hのようにこれはオプションではなく、単なる値」であることをpactl
に伝えます。
amixer set Master 2-
が機能しない場合。代わりにamixer -D Pulse set Master 2-
をお試しください。また、2%-
と2%+
を使用すると、音量が2%変更され、使いやすくなる場合があります。これらのコマンドをターミナルでテストして、xmonad構成ファイルに配置する前に、好みに合わせて調整できます。