Add signal to autostart
This commit is contained in:
parent
f96ce2e628
commit
64ca36c417
57
xmonad.hs
57
xmonad.hs
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue