Add signal to autostart

This commit is contained in:
qvalentin 2022-04-21 13:42:43 +02:00
parent f96ce2e628
commit 64ca36c417
Signed by: qvalentin
GPG Key ID: C979FA1EAFCABF1C
1 changed files with 71 additions and 50 deletions

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,13 +123,14 @@ 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 $
def
{ modMask = mod4Mask, { modMask = mod4Mask,
terminal = "st", terminal = "st",
startupHook = myStartupHook, startupHook = myStartupHook,
borderWidth = 2, borderWidth = 2,
normalBorderColor = "#000000", normalBorderColor = head colors,
focusedBorderColor = colors !! 7, focusedBorderColor = colors !! 4,
workspaces = myWorkspaces, workspaces = myWorkspaces,
manageHook = myManageHook, manageHook = myManageHook,
layoutHook = myLayout, layoutHook = myLayout,
@ -130,6 +140,7 @@ main = do
`additionalKeysP` [ ("M-S-z", spawn "xscreensaver-command -lock"), `additionalKeysP` [ ("M-S-z", spawn "xscreensaver-command -lock"),
("M-S-s", unGrab *> spawn "cast_screenshot"), ("M-S-s", unGrab *> spawn "cast_screenshot"),
("M-f", runOrRaise "brave" (className =? "Brave-browser")), ("M-f", runOrRaise "brave" (className =? "Brave-browser")),
("M-o", runOrRaise "emacs" (className =? "Emacs")),
("M-i", raise (className =? "jetbrains-idea")), ("M-i", raise (className =? "jetbrains-idea")),
("M-<Space>", spawn "rofi -show drun"), ("M-<Space>", spawn "rofi -show drun"),
("M-p", spawn "dmenu-with-suggestions"), ("M-p", spawn "dmenu-with-suggestions"),
@ -141,16 +152,21 @@ main = do
("<XF86AudioPrev>", spawn "playerctl previous"), ("<XF86AudioPrev>", spawn "playerctl previous"),
("<XF86AudioNext>", spawn "playerctl next"), ("<XF86AudioNext>", spawn "playerctl next"),
-- window navigation -- window navigation
("M-l", sendMessage $ Go R), ("M-l", windowGo R False),
("M-h", sendMessage $ Go L), ("M-h", windowGo L False),
("M-S-h", sendMessage Shrink), -- Shrink horiz window width ("M-S-h", sendMessage Shrink), -- Shrink horiz window width
("M-S-l", sendMessage Expand), -- Expand horiz window width ("M-S-l", sendMessage Expand), -- Expand horiz window width
-- layout switching -- layout switching
("M-<Tab>", sendMessage NextLayout), ("M-<Tab>", sendMessage NextLayout),
("M-<F11>", sendMessage $ JumpToLayout "Full"), -- jump directly to the Full layout
-- dmenu stuff -- dmenu stuff
("M1-<F4>", spawn "powerbutton"), ("M1-<F4>", spawn "powerbutton"),
-- lockscreen -- lockscreen
("M-<Escape>", spawn "betterlockscreen -l") ("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
@ -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