暫無描述

xmonad.hs 2.5KB

    import XMonad import XMonad.Actions.SpawnOn (manageSpawn, spawnHere) import DBus.Client (connectSession) import System.Taffybar.XMonadLog (dbusLog) import XMonad.Hooks.ManageDocks (ToggleStruts(..), manageDocks, avoidStruts) import XMonad.Hooks.ManageHelpers import XMonad.Hooks.SetWMName import XMonad.Layout.NoBorders (smartBorders) import XMonad.Layout.Fullscreen (fullscreenEventHook, fullscreenManageHook) import XMonad.Util.Run (spawnPipe) import XMonad.Util.EZConfig (additionalKeys) import Graphics.X11.ExtraTypes.XF86 import qualified XMonad.StackSet as W import System.IO (hPutStrLn) import Data.IORef.MonadIO (newIORef, readIORef, modifyIORef) import Control.Monad (when) import Data.Monoid (All (All)) -- My XMonad config (right now it's mostly copied from elsewhere... -- -- Whishes: -- * Some kind of launcher -- * Logging framework (like reading urls from Firefox and the like) (??) :: Query a -> (a -> Bool) -> Query Bool (??) = flip fmap main = do dbusClient <- connectSession xmonad $ defaultConfig { modMask = mod4Mask, terminal = "sakura -x tmux", startupHook = setWMName "LG3D", -- Ignore docks (via some WM_* attribute?) manageHook = composeAll [ className ?? (\cn -> any (cn ==) ["Skype", "Pidgin", "Geary"]) --> doF (W.shift "3"), className =? "Exe" --> doFullFloat, manageSpawn, manageDocks, fullscreenManageHook ] <+> manageHook defaultConfig, -- Don't overwrite the section used by docks layoutHook = avoidStruts $ smartBorders $ layoutHook defaultConfig, handleEventHook = fullscreenEventHook, logHook = dbusLog dbusClient } `additionalKeys` [ ((mod4Mask, xK_b), spawnHere "chromium --allow-file-access-from-files"), ((mod4Mask .|. shiftMask, xK_b), spawnHere "chromium --incognito --allow-file-access-from-files"), ((0, xF86XK_AudioMute), spawn "amixer set Master toggle"), ((0, xF86XK_AudioLowerVolume), spawn "amixer set Master 5%-"), ((0, xF86XK_AudioRaiseVolume), spawn "amixer set Master 5%+"), ((mod4Mask .|. shiftMask, xK_m), spawnHere "quodlibet"), ((mod4Mask .|. shiftMask, xK_Tab), spawn "xkbswap"), ((mod4Mask .|. shiftMask, xK_l), spawn "slock"), ((0, xK_Print), spawn "scrot -e 'mv $f ~/m/pictures/ 2>/dev/null'"), ((mod4Mask, xK_f), sendMessage ToggleStruts), ((mod4Mask, xK_q), restart "xmonad" True) ]