Last active
March 21, 2019 08:50
-
-
Save toastal/15fcaa4f0a4be8fff17599a80270be0b to your computer and use it in GitHub Desktop.
xmonad confs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- vim: noai ts=2 sw=2 | |
-- vim: filetype=haskell | |
Config | |
{ font = "xft:Terminus:size=16:regular:antialias=false" | |
, additionalFonts = | |
[ "xft:TerminessTTF Nerd Font:size=18:medium:antialias=true" | |
, "xft:Fixedsys Excelsior:size=22:regular:antialias=false" | |
] | |
, border = NoBorder | |
, borderColor = "#131217" | |
, bgColor = "#131217" | |
, fgColor = "grey" | |
, alpha = 255 | |
, position = Bottom | |
, textOffset = -1 | |
, iconOffset = -1 | |
, lowerOnStart = True | |
, pickBroadest = False | |
, persistent = False | |
, hideOnStart = False | |
, iconRoot = "." | |
, allDesktops = True | |
, overrideRedirect = True | |
, commands = | |
--Run Brightness | |
--[ "--template", " %" | |
--, "-D", "intel_backlight" | |
--, "-C", "actual_brightness" | |
--, "-M", "max_brightness" | |
--] 100 | |
--Run MPD | |
--[ "--template", " |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- vim: noai ts=2 sw=2 | |
{-# LANGUAGE UnicodeSyntax #-} | |
import Data.Monoid (Endo, (<>)) | |
import GHC.IO.Handle.Types (Handle) | |
import XMonad | |
import XMonad.Actions.UpdatePointer (updatePointer) | |
import XMonad.Config.Desktop (desktopConfig) | |
import XMonad.Hooks.DynamicLog (PP, dynamicLogWithPP, ppCurrent, | |
ppOutput, ppSort, ppTitle, | |
shorten, statusBar, wrap, | |
xmobarColor, xmobarPP) | |
import XMonad.Hooks.EwmhDesktops (fullscreenEventHook) | |
import XMonad.Hooks.FadeInactive (fadeIf, fadeOutLogHook) | |
import XMonad.Hooks.ManageDocks (AvoidStruts, avoidStruts) | |
import XMonad.Hooks.ManageHelpers (doFullFloat, isFullscreen) | |
import XMonad.Layout.LayoutModifier (ModifiedLayout) | |
import XMonad.Layout.NoBorders (SmartBorder, smartBorders) | |
import XMonad.Layout.ThreeColumns (ThreeCol (..)) | |
import XMonad.Util.EZConfig (additionalKeysP) | |
import XMonad.Util.NamedScratchpad (namedScratchpadFilterOutWorkspace) | |
import XMonad.Util.Run (spawnPipe) | |
import XMonad.Util.WorkspaceCompare (getSortByTag) | |
main ∷ IO () | |
main = do | |
xmobarConf ← statusBar "xmobar" xmobarPP' toggleStrutsKey xmonadConf | |
xmonad xmobarConf | |
xmonadConf ∷ XConfig (ModifiedLayout SmartBorder (ModifiedLayout AvoidStruts (Choose Tall (Choose (Mirror Tall) (Choose ThreeCol Full))))) | |
xmonadConf = | |
desktopConfig | |
{ borderWidth = 1 | |
, normalBorderColor = "#3e4074" | |
, focusedBorderColor = "#bfcdcc" | |
, handleEventHook = fullscreenEventHook -- fixes fullscreen bug in Chromium | |
, layoutHook = smartBorders . avoidStruts $ layoutHook' | |
, manageHook = manageHook' | |
, modMask = mod4Mask -- Super as mod | |
, terminal = "kitty" -- "termite" | |
, workspaces = workspaces' | |
} `additionalKeysP` | |
keys' | |
keys' ∷ [(String, X ())] | |
keys' = | |
[ ("M-o", spawn "rofi -show run") | |
, ("M-u", spawn "xkblayout-state set +1") | |
, ("M-i", spawn "xkblayout-state set -1") | |
] | |
xmobarPP' ∷ PP | |
xmobarPP' = | |
xmobarPP | |
{ ppCurrent = xmobarColor "#ff8787" "" . wrap "[" "]" -- #9BC1B2 | |
, ppTitle = xmobarColor "#00d7ff" "" . shorten 58 -- #9BC1B2 | |
, ppSort = fmap (. namedScratchpadFilterOutWorkspace) getSortByTag | |
} | |
toggleStrutsKey ∷ XConfig Layout → ( KeyMask, KeySym ) | |
toggleStrutsKey XConfig { XMonad.modMask = modMask } = | |
( modMask, xK_b ) | |
layoutHook' ∷ Choose Tall (Choose (Mirror Tall) (Choose ThreeCol Full)) a | |
layoutHook' = | |
tall ||| Mirror tall ||| three ||| Full | |
where | |
tall = Tall 1 (1/100) (1/2) | |
three = ThreeCol 1 (3/100) (1/2) | |
-- Window management | |
manageHook' ∷ Query (Endo WindowSet) | |
manageHook' = | |
composeAll | |
[ className =? "MPlayer" --> doFloat | |
, className =? "mpv" --> doFloat | |
, className =? "zoom" --> doFloat | |
, className =? "peek" --> doFloat | |
, className =? "stalonetray" --> doIgnore | |
, isFullscreen --> doFullFloat | |
] | |
workspaces' ∷ [String] | |
workspaces' = | |
map xdo | |
[ ( 1, "๑" ) | |
, ( 2, "๒" ) | |
, ( 3, "๓" ) | |
, ( 4, "๔" ) | |
, ( 5, "๕" ) | |
, ( 6, "๖" ) | |
, ( 7, "๗" ) | |
, ( 8, "๘" ) | |
, ( 9, "๙" ) | |
] | |
where | |
xdo ( n, s ) = | |
" show n <> "`>" <> s <> "" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment