mirror of
https://codeberg.org/frosty/dotfiles.git
synced 2024-09-19 11:47:09 -04:00
(xmonad): combine xmonad and xmobar into single cabal project
This commit is contained in:
parent
ff57c00793
commit
1f70d1f07e
1
.config/xmobar/.gitignore
vendored
1
.config/xmobar/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
/dist-*
|
|
|
@ -1,10 +0,0 @@
|
||||||
cabal-version: 3.0
|
|
||||||
name: xmobar-frosty
|
|
||||||
version: 0.1.0.0
|
|
||||||
build-type: Simple
|
|
||||||
|
|
||||||
executable xmobar
|
|
||||||
main-is: xmobar.hs
|
|
||||||
build-depends: base ^>=4.17.2.1
|
|
||||||
, xmobar >=0.48.1
|
|
||||||
default-language: Haskell2010
|
|
4
.config/xmonad/build
Executable file
4
.config/xmonad/build
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd "$XDG_CONFIG_HOME/xmonad" || exit
|
||||||
|
cabal install --overwrite-policy=always
|
|
@ -5,9 +5,26 @@ build-type: Simple
|
||||||
|
|
||||||
executable xmonad
|
executable xmonad
|
||||||
main-is: xmonad.hs
|
main-is: xmonad.hs
|
||||||
build-depends: base ^>=4.17.2.1
|
ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
|
||||||
, xmonad >=0.18
|
build-depends:
|
||||||
, xmonad-contrib >=0.18
|
, base
|
||||||
, containers
|
, containers
|
||||||
, X11
|
, X11
|
||||||
default-language: Haskell2010
|
, xmonad >=0.18
|
||||||
|
, xmonad-contrib >=0.18
|
||||||
|
|
||||||
|
default-language: GHC2021
|
||||||
|
default-extensions: ImportQualifiedPost
|
||||||
|
|
||||||
|
executable xmobar
|
||||||
|
main-is: xmobar.hs
|
||||||
|
ghc-options:
|
||||||
|
-O2 -Wall -Wcompat -Wincomplete-record-updates
|
||||||
|
-Wredundant-constraints -rtsopts -threaded -with-rtsopts=-N
|
||||||
|
|
||||||
|
build-depends:
|
||||||
|
, base
|
||||||
|
, xmobar >=0.48
|
||||||
|
|
||||||
|
default-language: GHC2021
|
||||||
|
default-extensions: ImportQualifiedPost
|
||||||
|
|
|
@ -1,4 +1,19 @@
|
||||||
|
import Data.Map qualified as M
|
||||||
|
import Data.Monoid
|
||||||
|
import Graphics.X11.ExtraTypes.XF86
|
||||||
|
import System.Exit
|
||||||
|
import Text.Printf
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Actions.CycleWS
|
||||||
|
import XMonad.Actions.Submap
|
||||||
|
import XMonad.Actions.ToggleFullFloat
|
||||||
|
import XMonad.Hooks.DynamicLog
|
||||||
|
import XMonad.Hooks.EwmhDesktops
|
||||||
|
import XMonad.Hooks.InsertPosition
|
||||||
|
import XMonad.Hooks.ManageDocks (ToggleStruts (..), avoidStruts, manageDocks)
|
||||||
|
import XMonad.Hooks.Place
|
||||||
|
import XMonad.Hooks.StatusBar
|
||||||
|
import XMonad.Hooks.WindowSwallowing
|
||||||
import XMonad.Layout.CircleEx
|
import XMonad.Layout.CircleEx
|
||||||
import XMonad.Layout.Grid
|
import XMonad.Layout.Grid
|
||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
|
@ -6,23 +21,8 @@ import XMonad.Layout.NoBorders (noBorders, smartBorders)
|
||||||
import XMonad.Layout.Renamed (named)
|
import XMonad.Layout.Renamed (named)
|
||||||
import XMonad.Layout.ShowWName
|
import XMonad.Layout.ShowWName
|
||||||
import XMonad.Layout.Spacing
|
import XMonad.Layout.Spacing
|
||||||
import XMonad.Hooks.DynamicLog
|
import XMonad.StackSet qualified as W
|
||||||
import XMonad.Hooks.EwmhDesktops
|
|
||||||
import XMonad.Hooks.InsertPosition
|
|
||||||
import XMonad.Hooks.ManageDocks (avoidStruts, manageDocks, ToggleStruts(..))
|
|
||||||
import XMonad.Hooks.Place
|
|
||||||
import XMonad.Hooks.StatusBar
|
|
||||||
import XMonad.Hooks.WindowSwallowing
|
|
||||||
import XMonad.Util.NamedScratchpad
|
import XMonad.Util.NamedScratchpad
|
||||||
import XMonad.Actions.CycleWS
|
|
||||||
import XMonad.Actions.Submap
|
|
||||||
import XMonad.Actions.ToggleFullFloat
|
|
||||||
import Data.Monoid
|
|
||||||
import Graphics.X11.ExtraTypes.XF86
|
|
||||||
import System.Exit
|
|
||||||
import Text.Printf
|
|
||||||
import qualified XMonad.StackSet as W
|
|
||||||
import qualified Data.Map as M
|
|
||||||
|
|
||||||
-- MAIN OPTIONS --------------------------------------------------------
|
-- MAIN OPTIONS --------------------------------------------------------
|
||||||
|
|
||||||
|
@ -47,100 +47,93 @@ swallowClasses = ["St", "XTerm"]
|
||||||
-- KEY BINDS -----------------------------------------------------------
|
-- KEY BINDS -----------------------------------------------------------
|
||||||
|
|
||||||
myKeys :: XConfig Layout -> M.Map (KeyMask, KeySym) (X ())
|
myKeys :: XConfig Layout -> M.Map (KeyMask, KeySym) (X ())
|
||||||
myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
|
myKeys conf@(XConfig {XMonad.modMask = modMask}) =
|
||||||
|
M.fromList $
|
||||||
-- Spawning programs
|
-- Spawning programs
|
||||||
[ ((modMask, xK_Return), spawn myTerminal)
|
[ ((modMask, xK_Return), spawn myTerminal),
|
||||||
, ((modMask, xK_p), spawnDmenu "dmenu_run")
|
((modMask, xK_p), spawnDmenu "dmenu_run"),
|
||||||
, ((modMask, xK_w), spawn "firefox")
|
((modMask, xK_w), spawn "firefox"),
|
||||||
, ((modMask .|. controlMask, xK_q), spawn "qutebrowser")
|
((modMask .|. controlMask, xK_q), spawn "qutebrowser"),
|
||||||
, ((modMask, xK_e), spawnTerminal myEditor)
|
((modMask, xK_e), spawnTerminal myEditor),
|
||||||
, ((modMask, xK_f), spawnTerminal "lf")
|
((modMask, xK_f), spawnTerminal "lf"),
|
||||||
, ((modMask, xK_t), spawnTerminal "ncmpcpp")
|
((modMask, xK_t), spawnTerminal "ncmpcpp"),
|
||||||
, ((modMask .|. controlMask, xK_e), spawnTerminal "ncspot")
|
((modMask .|. controlMask, xK_e), spawnTerminal "ncspot"),
|
||||||
, ((modMask, xK_v), spawnTerminal "pulsemixer")
|
((modMask, xK_v), spawnTerminal "pulsemixer"),
|
||||||
, ((modMask .|. controlMask, xK_y), spawn "pavucontrol")
|
((modMask .|. controlMask, xK_y), spawn "pavucontrol"),
|
||||||
, ((modMask .|. controlMask, xK_semicolon), spawn "simplescreenrecorder")
|
((modMask .|. controlMask, xK_semicolon), spawn "simplescreenrecorder"),
|
||||||
, ((modMask .|. controlMask, xK_apostrophe), spawn "obs")
|
((modMask .|. controlMask, xK_apostrophe), spawn "obs"),
|
||||||
, ((modMask .|. controlMask, xK_o), spawnTerminal "cava")
|
((modMask .|. controlMask, xK_o), spawnTerminal "cava"),
|
||||||
, ((modMask .|. controlMask, xK_l), spawn "run-i3lock")
|
((modMask .|. controlMask, xK_l), spawn "run-i3lock"),
|
||||||
, ((modMask .|. controlMask, xK_d), spawn "arandr")
|
((modMask .|. controlMask, xK_d), spawn "arandr"),
|
||||||
, ((modMask .|. controlMask, xK_v), spawn "screenlayouts-open")
|
((modMask .|. controlMask, xK_v), spawn "screenlayouts-open"),
|
||||||
, ((modMask .|. controlMask, xK_w), spawn "wallpapers-open")
|
((modMask .|. controlMask, xK_w), spawn "wallpapers-open"),
|
||||||
, ((modMask .|. controlMask, xK_bracketright), spawn "find ~/pictures/screenshots -type f | nsxiv -ti")
|
((modMask .|. controlMask, xK_bracketright), spawn "find ~/pictures/screenshots -type f | nsxiv -ti"),
|
||||||
|
|
||||||
-- Screenshotting
|
-- Screenshotting
|
||||||
, ((0, xK_Print), spawn "epicshot -cs select")
|
((0, xK_Print), spawn "epicshot -cs select"),
|
||||||
, ((controlMask, xK_Print), spawn "epicshot -cs full")
|
((controlMask, xK_Print), spawn "epicshot -cs full"),
|
||||||
, ((modMask, xK_Print), spawn "epicshot -so select")
|
((modMask, xK_Print), spawn "epicshot -so select"),
|
||||||
, ((modMask .|. controlMask, xK_r), spawn "epicshot -cs select")
|
((modMask .|. controlMask, xK_r), spawn "epicshot -cs select"),
|
||||||
, ((modMask .|. controlMask, xK_t), spawn "epicshot -cs full")
|
((modMask .|. controlMask, xK_t), spawn "epicshot -cs full"),
|
||||||
, ((modMask .|. controlMask, xK_g), spawn "epicshot -so select")
|
((modMask .|. controlMask, xK_g), spawn "epicshot -so select"),
|
||||||
|
|
||||||
-- Custom function row
|
-- Custom function row
|
||||||
, ((modMask .|. controlMask, xK_F5), spawn "mpc prev")
|
((modMask .|. controlMask, xK_F5), spawn "mpc prev"),
|
||||||
, ((modMask .|. controlMask, xK_F6), spawn "mpc next")
|
((modMask .|. controlMask, xK_F6), spawn "mpc next"),
|
||||||
, ((modMask .|. controlMask, xK_F7), spawn "mpc toggle")
|
((modMask .|. controlMask, xK_F7), spawn "mpc toggle"),
|
||||||
, ((modMask .|. controlMask, xK_F8), spawn "mpc stop")
|
((modMask .|. controlMask, xK_F8), spawn "mpc stop"),
|
||||||
, ((modMask .|. controlMask, xK_F9), spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && pipe_volume")
|
((modMask .|. controlMask, xK_F9), spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && pipe_volume"),
|
||||||
, ((modMask .|. controlMask, xK_F10), spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && pipe_volume")
|
((modMask .|. controlMask, xK_F10), spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && pipe_volume"),
|
||||||
, ((modMask .|. controlMask, xK_F11), spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && pipe_volume")
|
((modMask .|. controlMask, xK_F11), spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && pipe_volume"),
|
||||||
, ((modMask .|. controlMask, xK_F12), spawn "run-i3lock")
|
((modMask .|. controlMask, xK_F12), spawn "run-i3lock"),
|
||||||
|
|
||||||
-- XF86 keys
|
-- XF86 keys
|
||||||
, ((0, xF86XK_Explorer), spawnTerminal "nnn")
|
((0, xF86XK_Explorer), spawnTerminal "nnn"),
|
||||||
, ((0, xF86XK_Search), spawnDmenu "dmenu_run")
|
((0, xF86XK_Search), spawnDmenu "dmenu_run"),
|
||||||
, ((0, xF86XK_Calculator), spawnTerminal "bc -i")
|
((0, xF86XK_Calculator), spawnTerminal "bc -i"),
|
||||||
, ((0, xF86XK_Tools), spawnTerminal "ncmpcpp")
|
((0, xF86XK_Tools), spawnTerminal "ncmpcpp"),
|
||||||
, ((0, xF86XK_AudioPrev), spawn "mpc prev")
|
((0, xF86XK_AudioPrev), spawn "mpc prev"),
|
||||||
, ((0, xF86XK_AudioNext), spawn "mpc next")
|
((0, xF86XK_AudioNext), spawn "mpc next"),
|
||||||
, ((0, xF86XK_AudioPlay), spawn "mpc toggle")
|
((0, xF86XK_AudioPlay), spawn "mpc toggle"),
|
||||||
, ((0, xF86XK_AudioStop), spawn "mpc stop")
|
((0, xF86XK_AudioStop), spawn "mpc stop"),
|
||||||
, ((0, xF86XK_AudioMute), spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && pipe_volume")
|
((0, xF86XK_AudioMute), spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && pipe_volume"),
|
||||||
, ((0, xF86XK_AudioLowerVolume), spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ 5%- && pipe_volume")
|
((0, xF86XK_AudioLowerVolume), spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ 5%- && pipe_volume"),
|
||||||
, ((0, xF86XK_AudioRaiseVolume), spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ 5%+ && pipe_volume")
|
((0, xF86XK_AudioRaiseVolume), spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ 5%+ && pipe_volume"),
|
||||||
|
|
||||||
-- Layouts
|
-- Layouts
|
||||||
, ((modMask, xK_a), submap . M.fromList $
|
( (modMask, xK_a),
|
||||||
[ ((modMask, xK_t), sendMessage $ JumpToLayout "Tall")
|
submap . M.fromList $
|
||||||
, ((modMask, xK_y), sendMessage $ JumpToLayout "Wide")
|
[ ((modMask, xK_t), sendMessage $ JumpToLayout "Tall"),
|
||||||
, ((modMask, xK_g), sendMessage $ JumpToLayout "Grid")
|
((modMask, xK_y), sendMessage $ JumpToLayout "Wide"),
|
||||||
, ((modMask, xK_a), sendMessage $ NextLayout)
|
((modMask, xK_g), sendMessage $ JumpToLayout "Grid"),
|
||||||
|
((modMask, xK_a), sendMessage NextLayout)
|
||||||
]
|
]
|
||||||
)
|
),
|
||||||
, ((modMask, xK_b), sendMessage ToggleStruts)
|
((modMask, xK_b), sendMessage ToggleStruts),
|
||||||
|
|
||||||
-- Window focus/swap
|
-- Window focus/swap
|
||||||
, ((modMask, xK_j), windows W.focusDown)
|
((modMask, xK_j), windows W.focusDown),
|
||||||
, ((modMask, xK_k), windows W.focusUp)
|
((modMask, xK_k), windows W.focusUp),
|
||||||
, ((modMask .|. shiftMask, xK_j), windows W.swapDown)
|
((modMask .|. shiftMask, xK_j), windows W.swapDown),
|
||||||
, ((modMask .|. shiftMask, xK_k), windows W.swapUp)
|
((modMask .|. shiftMask, xK_k), windows W.swapUp),
|
||||||
|
|
||||||
-- Master control
|
-- Master control
|
||||||
, ((modMask, xK_h), sendMessage Shrink)
|
((modMask, xK_h), sendMessage Shrink),
|
||||||
, ((modMask, xK_l), sendMessage Expand)
|
((modMask, xK_l), sendMessage Expand),
|
||||||
, ((modMask, xK_i), sendMessage $ IncMasterN 1)
|
((modMask, xK_i), sendMessage $ IncMasterN 1),
|
||||||
, ((modMask, xK_d), sendMessage $ IncMasterN $ -1)
|
((modMask, xK_d), sendMessage $ IncMasterN $ -1),
|
||||||
, ((modMask, xK_s), windows W.focusMaster)
|
((modMask, xK_s), windows W.focusMaster),
|
||||||
, ((modMask .|. shiftMask, xK_s), windows W.swapMaster)
|
((modMask .|. shiftMask, xK_s), windows W.swapMaster),
|
||||||
|
|
||||||
-- Window actions
|
-- Window actions
|
||||||
, ((modMask .|. shiftMask, xK_c), kill)
|
((modMask .|. shiftMask, xK_c), kill),
|
||||||
, ((modMask .|. shiftMask, xK_f), withFocused toggleFullFloat)
|
((modMask .|. shiftMask, xK_f), withFocused toggleFullFloat),
|
||||||
, ((modMask .|. shiftMask, xK_space), withFocused toggleFloat)
|
((modMask .|. shiftMask, xK_space), withFocused toggleFloat),
|
||||||
|
|
||||||
-- Scratchpads
|
-- Scratchpads
|
||||||
, ((modMask .|. controlMask, xK_Return), namedScratchpadAction myScratchPads "terminal")
|
((modMask .|. controlMask, xK_Return), namedScratchpadAction myScratchPads "terminal"),
|
||||||
, ((modMask .|. controlMask, xK_c), namedScratchpadAction myScratchPads "ncmpcpp")
|
((modMask .|. controlMask, xK_c), namedScratchpadAction myScratchPads "ncmpcpp"),
|
||||||
|
|
||||||
-- Session
|
-- Session
|
||||||
, ((modMask .|. controlMask, xK_Delete), io $ exitWith ExitSuccess)
|
((modMask .|. controlMask, xK_Delete), io $ exitWith ExitSuccess),
|
||||||
, ((modMask .|. controlMask, xK_s), spawn "xmonad --recompile && xmonad --restart")
|
((modMask .|. controlMask, xK_s), spawn "xmonad --recompile && xmonad --restart && notify-send 'xmonad' 'Successfully rebuilt and restarted.'")
|
||||||
] ++
|
]
|
||||||
|
++
|
||||||
-- View and send windows to workspaces 1-9
|
-- View and send windows to workspaces 1-9
|
||||||
[ ((modMask .|. m, k), windows $ f i)
|
[ ((modMask .|. m, k), windows $ f i)
|
||||||
| (k, i) <- zip [xK_1 .. xK_9] (XMonad.workspaces conf)
|
| (k, i) <- zip [xK_1 .. xK_9] (XMonad.workspaces conf),
|
||||||
, (m, f) <- [(0, W.view), (shiftMask, W.shift)]
|
(m, f) <- [(0, W.view), (shiftMask, W.shift)]
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
toggleFloat :: Window -> X ()
|
toggleFloat :: Window -> X ()
|
||||||
|
@ -165,71 +158,78 @@ myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
|
||||||
-- MOUSE BINDS ---------------------------------------------------------
|
-- MOUSE BINDS ---------------------------------------------------------
|
||||||
|
|
||||||
myMouseBindings :: XConfig Layout -> M.Map (KeyMask, Button) (Window -> X ())
|
myMouseBindings :: XConfig Layout -> M.Map (KeyMask, Button) (Window -> X ())
|
||||||
myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
|
myMouseBindings (XConfig {XMonad.modMask = modMask}) =
|
||||||
|
M.fromList $
|
||||||
-- Set the window to floating mode and move by dragging
|
-- Set the window to floating mode and move by dragging
|
||||||
[ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w))
|
[ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w)),
|
||||||
-- Raise the window to the top of the stack
|
-- Raise the window to the top of the stack
|
||||||
, ((modMask, button2), (\w -> focus w >> windows W.shiftMaster))
|
((modMask, button2), (\w -> focus w >> windows W.shiftMaster)),
|
||||||
-- Set the window to floating mode and resize by dragging
|
-- Set the window to floating mode and resize by dragging
|
||||||
, ((modMask, button3), (\w -> focus w >> mouseResizeWindow w))
|
((modMask, button3), (\w -> focus w >> mouseResizeWindow w)),
|
||||||
-- Switch to previous workspace
|
-- Switch to previous workspace
|
||||||
, ((modMask, button4), (\_ -> prevWS))
|
((modMask, button4), (\_ -> prevWS)),
|
||||||
-- Switch to next workspace
|
-- Switch to next workspace
|
||||||
, ((modMask, button5), (\_ -> nextWS))
|
((modMask, button5), (\_ -> nextWS)),
|
||||||
-- Send client to previous workspace
|
-- Send client to previous workspace
|
||||||
, ((modMask .|. shiftMask, button4), (\_ -> shiftToPrev >> prevWS))
|
((modMask .|. shiftMask, button4), (\_ -> shiftToPrev >> prevWS)),
|
||||||
-- Send client to next workspace
|
-- Send client to next workspace
|
||||||
, ((modMask .|. shiftMask, button5), (\_ -> shiftToNext >> nextWS))
|
((modMask .|. shiftMask, button5), (\_ -> shiftToNext >> nextWS))
|
||||||
]
|
]
|
||||||
|
|
||||||
-- LAYOUTS -------------------------------------------------------------
|
-- LAYOUTS -------------------------------------------------------------
|
||||||
|
|
||||||
myLayoutHook =
|
myLayoutHook =
|
||||||
avoidStruts
|
avoidStruts $
|
||||||
$ tall ||| wide ||| grid
|
tall ||| wide ||| grid
|
||||||
where
|
where
|
||||||
tall = named "Tall"
|
tall =
|
||||||
$ Tall 1 (3/100) (1/2)
|
named "Tall" $
|
||||||
wide = named "Wide"
|
Tall 1 (3 / 100) (1 / 2)
|
||||||
$ Mirror tall
|
wide =
|
||||||
grid = named "Grid"
|
named "Wide" $
|
||||||
$ Grid
|
Mirror tall
|
||||||
|
grid =
|
||||||
|
named "Grid" $
|
||||||
|
Grid
|
||||||
|
|
||||||
mySWNConfig :: SWNConfig
|
mySWNConfig :: SWNConfig
|
||||||
mySWNConfig = def
|
mySWNConfig =
|
||||||
{ swn_font = "Fira Mono 24"
|
def
|
||||||
, swn_fade = 1.0
|
{ swn_font = "Fira Mono 24",
|
||||||
, swn_bgcolor = "#121212"
|
swn_fade = 1.0,
|
||||||
, swn_color = "#cccccc"
|
swn_bgcolor = "#121212",
|
||||||
|
swn_color = "#cccccc"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- SCRATCHPADS ---------------------------------------------------------
|
-- SCRATCHPADS ---------------------------------------------------------
|
||||||
|
|
||||||
myScratchPads :: [NamedScratchpad]
|
myScratchPads :: [NamedScratchpad]
|
||||||
myScratchPads =
|
myScratchPads =
|
||||||
[ constructScratchpad "terminal" "scTerminal" Nothing
|
[ constructScratchpad "terminal" "scTerminal" Nothing,
|
||||||
, constructScratchpad "ncmpcpp" "scNcmpcpp" (Just "ncmpcpp")
|
constructScratchpad "ncmpcpp" "scNcmpcpp" (Just "ncmpcpp")
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
constructScratchpad :: String -> String -> Maybe String -> NamedScratchpad
|
constructScratchpad :: String -> String -> Maybe String -> NamedScratchpad
|
||||||
constructScratchpad name cls maybeExec =
|
constructScratchpad name cls maybeExec =
|
||||||
NS name
|
NS
|
||||||
(case maybeExec of
|
name
|
||||||
|
( case maybeExec of
|
||||||
Just exec -> printf "%s -c %s -e %s" myTerminal cls exec
|
Just exec -> printf "%s -c %s -e %s" myTerminal cls exec
|
||||||
Nothing -> printf "%s -c %s" myTerminal cls
|
Nothing -> printf "%s -c %s" myTerminal cls
|
||||||
)
|
)
|
||||||
(className =? cls)
|
(className =? cls)
|
||||||
(customFloating $ W.RationalRect (3/5) (4/6) (1/5) (1/6))
|
(customFloating $ W.RationalRect (3 / 5) (4 / 6) (1 / 5) (1 / 6))
|
||||||
|
|
||||||
-- HOOKS ---------------------------------------------------------------
|
-- HOOKS ---------------------------------------------------------------
|
||||||
|
|
||||||
myManageHook :: ManageHook
|
myManageHook :: ManageHook
|
||||||
myManageHook = composeAll
|
myManageHook =
|
||||||
[ placeHook $ smart (0.5, 0.5)
|
composeAll
|
||||||
, namedScratchpadManageHook myScratchPads
|
[ placeHook $ smart (0.5, 0.5),
|
||||||
, insertPosition End Newer
|
namedScratchpadManageHook myScratchPads,
|
||||||
, manageDocks
|
insertPosition End Newer,
|
||||||
, composeAll [ className =? c --> doFloat | c <- floatClasses ]
|
manageDocks,
|
||||||
|
composeAll [className =? c --> doFloat | c <- floatClasses]
|
||||||
]
|
]
|
||||||
|
|
||||||
myEventHook :: Event -> X All
|
myEventHook :: Event -> X All
|
||||||
|
@ -243,11 +243,12 @@ myStartupHook = do
|
||||||
-- XMOBAR --------------------------------------------------------------
|
-- XMOBAR --------------------------------------------------------------
|
||||||
|
|
||||||
myPP :: PP
|
myPP :: PP
|
||||||
myPP = def
|
myPP =
|
||||||
{ ppSep = sep " | "
|
def
|
||||||
, ppCurrent = current . wrap "" "*"
|
{ ppSep = sep " | ",
|
||||||
, ppHidden = noScratchPad
|
ppCurrent = current . wrap "" "*",
|
||||||
, ppHiddenNoWindows = \_ -> ""
|
ppHidden = noScratchPad,
|
||||||
|
ppHiddenNoWindows = \_ -> ""
|
||||||
}
|
}
|
||||||
where
|
where
|
||||||
noScratchPad :: String -> String
|
noScratchPad :: String -> String
|
||||||
|
@ -260,25 +261,24 @@ myPP = def
|
||||||
-- MAIN ----------------------------------------------------------------
|
-- MAIN ----------------------------------------------------------------
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = xmonad
|
main =
|
||||||
|
xmonad
|
||||||
. withSB (statusBarProp "xmobar" $ pure myPP)
|
. withSB (statusBarProp "xmobar" $ pure myPP)
|
||||||
. toggleFullFloatEwmhFullscreen
|
. toggleFullFloatEwmhFullscreen
|
||||||
. ewmhFullscreen
|
. ewmhFullscreen
|
||||||
. ewmh
|
. ewmh
|
||||||
$ myConfig
|
$ def
|
||||||
|
{ borderWidth = myBorderWidth,
|
||||||
myConfig = def
|
normalBorderColor = myNormalBorderColor,
|
||||||
{ borderWidth = myBorderWidth
|
focusedBorderColor = myFocusedBorderColor,
|
||||||
, normalBorderColor = myNormalBorderColor
|
layoutHook = myLayoutHook,
|
||||||
, focusedBorderColor = myFocusedBorderColor
|
workspaces = myWorkspaces,
|
||||||
, layoutHook = myLayoutHook
|
manageHook = myManageHook,
|
||||||
, workspaces = myWorkspaces
|
handleEventHook = myEventHook,
|
||||||
, manageHook = myManageHook
|
startupHook = myStartupHook,
|
||||||
, handleEventHook = myEventHook
|
focusFollowsMouse = True,
|
||||||
, startupHook = myStartupHook
|
clickJustFocuses = False,
|
||||||
, focusFollowsMouse = True
|
modMask = mod4Mask,
|
||||||
, clickJustFocuses = False
|
mouseBindings = myMouseBindings,
|
||||||
, modMask = mod4Mask
|
keys = myKeys
|
||||||
, mouseBindings = myMouseBindings
|
|
||||||
, keys = myKeys
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue