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