Compare commits

...

2 Commits

Author SHA1 Message Date
qvalentin 64ca36c417
Add signal to autostart 2022-04-21 13:42:43 +02:00
qvalentin f96ce2e628 update submodules 2022-02-19 11:33:58 +01:00
3 changed files with 73 additions and 52 deletions

2
xmonad

@ -1 +1 @@
Subproject commit e25d090112f2a76364a10b88a729b8586c18145b Subproject commit f4a5b88e64b2e9b80ddf81a0ba178ec4d005cfa8

@ -1 +1 @@
Subproject commit 28d86f3a28ad36cf47de3421c201523f6021c6aa Subproject commit ee3ea2402dee7876eccb32fc8a83bb2f3d3198bc

121
xmonad.hs
View File

@ -30,26 +30,35 @@ import XMonad
terminal, terminal,
workspaces workspaces
), ),
button1,
button3,
className, className,
composeAll, composeAll,
doF, doF,
doFloat, doFloat,
doIgnore, doIgnore,
doShift, doShift,
focus,
handleEventHook, handleEventHook,
mod4Mask, mod4Mask,
mouseMoveWindow,
mouseResizeWindow,
resource, resource,
sendMessage, sendMessage,
shiftMask,
spawn, spawn,
title, title,
withWindowSet, withWindowSet,
xmonad, xmonad,
(-->), (-->),
(.|.),
(<&&>), (<&&>),
(<+>), (<+>),
(=?), (=?),
(|||), (|||),
) )
import XMonad.Actions.FloatSnap
import XMonad.Actions.Navigation2D (windowGo, withNavigation2DConfig)
import XMonad.Actions.WindowGo (raise, runOrRaise) import XMonad.Actions.WindowGo (raise, runOrRaise)
import XMonad.Hooks.DynamicLog import XMonad.Hooks.DynamicLog
( PP ( PP
@ -84,8 +93,8 @@ import XMonad.Hooks.StatusBar
statusBarProp, statusBarProp,
withEasySB, withEasySB,
) )
import XMonad.Layout (Resize (Expand, Shrink)) import XMonad.Layout (JumpToLayout (JumpToLayout), Resize (Expand, Shrink))
import XMonad.Layout.Fullscreen (fullscreenEventHook) import XMonad.Layout.Fullscreen (fullscreenEventHook, fullscreenFull, fullscreenManageHook)
import XMonad.Layout.LayoutModifier import XMonad.Layout.LayoutModifier
import qualified XMonad.Layout.LayoutModifier import qualified XMonad.Layout.LayoutModifier
import XMonad.Layout.Named (named) import XMonad.Layout.Named (named)
@ -102,7 +111,7 @@ import XMonad.Layout.WindowNavigation
windowNavigation, windowNavigation,
) )
import XMonad.StackSet (RationalRect (RationalRect), Stack (Stack), Workspace (tag), currentTag, greedyView, integrate', shift, stack) import XMonad.StackSet (RationalRect (RationalRect), Stack (Stack), Workspace (tag), currentTag, greedyView, integrate', shift, stack)
import XMonad.Util.EZConfig (additionalKeysP) import XMonad.Util.EZConfig (additionalKeysP, additionalMouseBindings)
import XMonad.Util.Font (fi) import XMonad.Util.Font (fi)
import XMonad.Util.Loggers (logTitles, wrapL) import XMonad.Util.Loggers (logTitles, wrapL)
import XMonad.Util.SpawnOnce (spawnOnce) import XMonad.Util.SpawnOnce (spawnOnce)
@ -114,44 +123,51 @@ main = do
colors <- getWalColors colors <- getWalColors
xmonad . ewmhFullscreen . ewmh xmonad . ewmhFullscreen . ewmh
. withEasySB (statusBarProp "xmobar ~/.config/xmobar/xmobarrc" (pure $ myXmobarPP colors)) defToggleStrutsKey . withEasySB (statusBarProp "xmobar ~/.config/xmobar/xmobarrc" (pure $ myXmobarPP colors)) defToggleStrutsKey
$ def $ withNavigation2DConfig def $
{ modMask = mod4Mask, def
terminal = "st", { modMask = mod4Mask,
startupHook = myStartupHook, terminal = "st",
borderWidth = 2, startupHook = myStartupHook,
normalBorderColor = "#000000", borderWidth = 2,
focusedBorderColor = colors !! 7, normalBorderColor = head colors,
workspaces = myWorkspaces, focusedBorderColor = colors !! 4,
manageHook = myManageHook, workspaces = myWorkspaces,
layoutHook = myLayout, manageHook = myManageHook,
handleEventHook = layoutHook = myLayout,
handleEventHook def <+> fullscreenEventHook handleEventHook =
} handleEventHook def <+> fullscreenEventHook
`additionalKeysP` [ ("M-S-z", spawn "xscreensaver-command -lock"), }
("M-S-s", unGrab *> spawn "cast_screenshot"), `additionalKeysP` [ ("M-S-z", spawn "xscreensaver-command -lock"),
("M-f", runOrRaise "brave" (className =? "Brave-browser")), ("M-S-s", unGrab *> spawn "cast_screenshot"),
("M-i", raise (className =? "jetbrains-idea")), ("M-f", runOrRaise "brave" (className =? "Brave-browser")),
("M-<Space>", spawn "rofi -show drun"), ("M-o", runOrRaise "emacs" (className =? "Emacs")),
("M-p", spawn "dmenu-with-suggestions"), ("M-i", raise (className =? "jetbrains-idea")),
-- audio settings ("M-<Space>", spawn "rofi -show drun"),
("<XF86AudioLowerVolume>", spawn "amixer set Master 5%- unmute"), ("M-p", spawn "dmenu-with-suggestions"),
("<XF86AudioRaiseVolume>", spawn "amixer set Master 5%+ unmute"), -- audio settings
("<XF86AudioMute>", spawn "amixer set Master toggle"), ("<XF86AudioLowerVolume>", spawn "amixer set Master 5%- unmute"),
("<XF86AudioPlay>", spawn "playerctl play-pause"), ("<XF86AudioRaiseVolume>", spawn "amixer set Master 5%+ unmute"),
("<XF86AudioPrev>", spawn "playerctl previous"), ("<XF86AudioMute>", spawn "amixer set Master toggle"),
("<XF86AudioNext>", spawn "playerctl next"), ("<XF86AudioPlay>", spawn "playerctl play-pause"),
-- window navigation ("<XF86AudioPrev>", spawn "playerctl previous"),
("M-l", sendMessage $ Go R), ("<XF86AudioNext>", spawn "playerctl next"),
("M-h", sendMessage $ Go L), -- window navigation
("M-S-h", sendMessage Shrink), -- Shrink horiz window width ("M-l", windowGo R False),
("M-S-l", sendMessage Expand), -- Expand horiz window width ("M-h", windowGo L False),
-- layout switching ("M-S-h", sendMessage Shrink), -- Shrink horiz window width
("M-<Tab>", sendMessage NextLayout), ("M-S-l", sendMessage Expand), -- Expand horiz window width
-- dmenu stuff -- layout switching
("M1-<F4>", spawn "powerbutton"), ("M-<Tab>", sendMessage NextLayout),
-- lockscreen ("M-<F11>", sendMessage $ JumpToLayout "Full"), -- jump directly to the Full layout
("M-<Escape>", spawn "betterlockscreen -l") -- dmenu stuff
] ("M1-<F4>", spawn "powerbutton"),
-- lockscreen
("M-<F1>", spawn "betterlockscreen -l & sleep 4 && xdg-screensaver activate")
]
`additionalMouseBindings` [ ((mod4Mask, button1), \w -> focus w >> mouseMoveWindow w >> afterDrag (snapMagicMove (Just 200) (Just 200) w)),
((mod4Mask .|. shiftMask, button1), \w -> focus w >> mouseMoveWindow w >> afterDrag (snapMagicResize [L, R, U, D] (Just 200) (Just 200) w)),
((mod4Mask, button3), \w -> focus w >> mouseResizeWindow w >> afterDrag (snapMagicResize [R, D] (Just 50) (Just 50) w))
]
myXmobarPP :: [String] -> PP myXmobarPP :: [String] -> PP
myXmobarPP colors = myXmobarPP colors =
@ -159,8 +175,8 @@ myXmobarPP colors =
{ ppSep = walXmobarColor 1 " \63617 ", { ppSep = walXmobarColor 1 " \63617 ",
ppTitleSanitize = xmobarStrip, ppTitleSanitize = xmobarStrip,
ppCurrent = wrap " " "" . xmobarBorder "Top" (colors !! 6) 2, ppCurrent = wrap " " "" . xmobarBorder "Top" (colors !! 6) 2,
ppHidden = white . wrap " " "", ppHidden = walXmobarColor 2 . wrap " " "",
ppHiddenNoWindows = lowWhite . wrap " " "", ppHiddenNoWindows = walXmobarColor 1 . wrap " " "",
ppUrgent = red . wrap (yellow "!") (yellow "!"), ppUrgent = red . wrap (yellow "!") (yellow "!"),
ppVisible = wrap " " "" . xmobarBorder "Bottom" (colors !! 6) 2, ppVisible = wrap " " "" . xmobarBorder "Bottom" (colors !! 6) 2,
ppOrder = \[ws, l, _, wins] -> [ws, l, wins], ppOrder = \[ws, l, _, wins] -> [ws, l, wins],
@ -168,8 +184,8 @@ myXmobarPP colors =
ppSort = hideWorkspaces ppSort = hideWorkspaces
} }
where where
formatFocused = wrap (walXmobarColor 7 "<fn=2>\58279</fn>") (walXmobarColor 7 "<fn=2>\58254</fn>") . walXmobarColor 7 . ppWindow formatFocused = wrap (walXmobarColor 4 "<fn=2>\58279</fn>") (walXmobarColor 4 "<fn=2>\58254</fn>") . walXmobarColor 4 . ppWindow
formatUnfocused = wrap (walXmobarColor 4 "<fn=2>\58279</fn>") (walXmobarColor 4 "<fn=2>\58254</fn>") . walXmobarColor 4 . ppWindow formatUnfocused = wrap (walXmobarColor 7 "<fn=2>\58279</fn>") (walXmobarColor 7 "<fn=2>\58254</fn>") . walXmobarColor 7 . ppWindow
walXmobarColor index = xmobarColor (colors !! index) "" walXmobarColor index = xmobarColor (colors !! index) ""
ppWindow :: String -> String ppWindow :: String -> String
ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30 ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30
@ -193,10 +209,14 @@ myXmobarPP colors =
myStartupHook :: X () myStartupHook :: X ()
myStartupHook = do myStartupHook = do
spawnOnce "picom &" mapM_
spawnOnce "sh $HOME/.fehbg" spawnOnce
spawnOnce "setxkbmap -option caps:escape" [ "picom --experimental-backends &",
spawnOnce "xset r rate 300 50" "sh $HOME/.fehbg",
"setxkbmap -option caps:escape",
"xset r rate 300 50",
"signal-deskto &"
]
getWalColors :: IO [String] getWalColors :: IO [String]
getWalColors = do getWalColors = do
@ -212,7 +232,7 @@ mySpacing' i = spacingRaw True (Border i 0 i i) True (Border i 0 i i) True
myWorkspaces :: [String] myWorkspaces :: [String]
myWorkspaces = show <$> ([1 .. 9] :: [Integer]) myWorkspaces = show <$> ([1 .. 9] :: [Integer])
myLayout = smartBorders $ windowNavigation tiled ||| smartBorders Full ||| Mirror (fullWSpacing 8 $ Tall nmaster delta ratio) myLayout = fullscreenFull $ smartBorders $ tiled ||| smartBorders Full ||| Mirror (fullWSpacing 8 $ Tall nmaster delta ratio)
where where
tiled = named "Tall" $ mySpacing' 8 $ Tall nmaster delta ratio tiled = named "Tall" $ mySpacing' 8 $ Tall nmaster delta ratio
nmaster = 1 -- Default number of windows in the master pane nmaster = 1 -- Default number of windows in the master pane
@ -251,6 +271,7 @@ myManageHook =
(className =? "TelegramDesktop") <&&> (title ~=? "Media viewer") --> doFloat (className =? "TelegramDesktop") <&&> (title ~=? "Media viewer") --> doFloat
] ]
<+> insertPosition End Newer <+> insertPosition End Newer
<+> fullscreenManageHook
where where
viewShift = doF . liftM2 (.) greedyView shift viewShift = doF . liftM2 (.) greedyView shift