diff options
Diffstat (limited to 'xmonad/xmonad.hs')
-rw-r--r-- | xmonad/xmonad.hs | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/xmonad/xmonad.hs b/xmonad/xmonad.hs deleted file mode 100644 index 6383265..0000000 --- a/xmonad/xmonad.hs +++ /dev/null @@ -1,108 +0,0 @@ --- --- xmonad example config file. --- --- A template showing all available configuration hooks, --- and how to override the defaults in your own xmonad.hs conf file. --- --- Normally, you'd only override those defaults you care about. --- - -import XMonad -import XMonad.Actions.CycleWS -import XMonad.Hooks.ManageDocks -import XMonad.Hooks.DynamicLog -import XMonad.Hooks.FadeInactive -import XMonad.Hooks.UrgencyHook -import XMonad.Layout.Reflect -import XMonad.Layout.WindowNavigation -import XMonad.Prompt -import XMonad.Prompt.AppLauncher -import XMonad.Prompt.Input -import XMonad.Prompt.Shell -import XMonad.Prompt.XMonad -import XMonad.Util.Font(stringToPixel) -import XMonad.Util.Run(spawnPipe) -import XMonad.Util.EZConfig(additionalKeysP) -import qualified XMonad.StackSet as W -import System.IO -import Data.List -import System.Directory -import Data.Char - -main = do - xmproc <- spawnPipe "xmobar" - xmonad $ withUrgencyHookC BorderUrgencyHook urgencyConfig { suppressWhen = Never } $ defaultConfig { - terminal = "urxvtc", - modMask = mod4Mask, - normalBorderColor = "#000000", - focusedBorderColor = "#aaaaaa", - workspaces = ["term", "browser", "docs", "4", - "5", "6", "7", "8", "9"], - layoutHook = avoidStruts myLayout, - manageHook = myManageHook <+> - manageDocks <+> - manageHook defaultConfig, - logHook = myFadeInactiveLogHook >> - (myXmobarLogHook xmproc) - } `additionalKeysP` [("C-M1-o", spawn "urxvtc") - ,("C-M1-b", spawn "firefox") - ,("C-S-l", spawn "xscreensaver-command -lock") - -- ugh, can't customize the prompt text - ,("C-M1-i", launchApp defaultXPConfig "urxvtc -name pwsafe -geometry 47x2 -e pwsafe -p") - ,("C-M1-r", shellPrompt defaultXPConfig) - ,("C-M1-x", xmonadPrompt defaultXPConfig) - ,("C-M1-q", killAllPrompt) - ,("C-M1-c", restart "xmonad" True) - ,("C-M1-<Left>", prevWS) - ,("C-M1-<Right>", nextWS) - ,("C-M1-<Up>", focusUrgent) - ,("C-S-M1-<Left>", shiftToPrev) - ,("C-S-M1-<Right>", shiftToNext) - ,("M1-<Tab>", windows W.focusDown) - ,("M1-S-<Tab>", windows W.focusUp) - ,("C-M1-h", sendMessage $ Go L) - ,("C-M1-j", sendMessage $ Go D) - ,("C-M1-k", sendMessage $ Go U) - ,("C-M1-l", sendMessage $ Go R) - ] - -myLayout = configurableNavigation noNavigateBorders (tiled ||| Mirror tiled ||| Full) - where - tiled = reflectHoriz $ Tall nmaster delta ratio - nmaster = 2 - ratio = 0.662 - delta = 0.0005 - -myFadeInactiveLogHook = - fadeInactiveLogHook 0xbbbbbbbb - -myXmobarLogHook xmproc = - dynamicLogWithPP $ xmobarPP - { ppOutput = hPutStrLn xmproc - , ppTitle = xmobarColor "green" "" . shorten 100 - , ppUrgent = xmobarColor "yellow" "red" . xmobarStrip - } - -data BorderUrgencyHook = BorderUrgencyHook deriving (Read, Show) - -instance UrgencyHook BorderUrgencyHook where - urgencyHook _ win = - do color <- withDisplay (\display -> io (stringToPixel display "#ff0000")); withDisplay (\display -> io (setWindowBorder display win color)) - -myManageHook = composeAll [ resource =? "xmessage" --> doFloat - , resource =? "qemu" --> doFloat - , resource =? "pwsafe" --> doFloat - , resource =? "urxvt-kuake" --> doFloat - , resource =? "qemu-system-x86_64" --> doFloat - , resource =? "plugin-container" --> doFloat - , resource =? "explorer.exe" --> doFloat - , stringProperty "WM_WINDOW_ROLE" =? "CallWindow" --> doFloat - , resource =? "firefox-bin" --> doF (W.shift "browser") - , resource =? "win" --> doF (W.shift "docs") -- xpdf - , resource =? "feh" --> doF (W.shift "docs") - ] - -killAllPrompt = inputPromptWithCompl defaultXPConfig "killall" runningProcessesCompl ?+ killAll -killAll procName = spawn ("killall " ++ procName) -runningProcessesCompl str = runningProcesses >>= (\procs -> return $ filter (\proc -> str `isPrefixOf` proc) procs) -runningProcesses = getDirectoryContents "/proc" >>= (\dir -> return $ map (\pid -> "/proc/" ++ pid ++ "/comm") $ filter (\dir -> all isDigit dir) $ dir) >>= (\filenames -> sequence $ map (\filename -> openFile filename ReadMode >>= hGetContents) filenames) >>= (\procs -> return $ sort $ nub $ map (\proc -> init proc) procs) |