Compare commits

..

No commits in common. "64ca36c4174c09821d3774de3816fba964ce2de4" and "2f21a5ac514ab44dcabbd1fa21bb938c2d458d91" have entirely different histories.

3 changed files with 52 additions and 73 deletions

2
xmonad

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

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

121
xmonad.hs
View File

@ -30,35 +30,26 @@ 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
@ -93,8 +84,8 @@ import XMonad.Hooks.StatusBar
statusBarProp,
withEasySB,
)
import XMonad.Layout (JumpToLayout (JumpToLayout), Resize (Expand, Shrink))
import XMonad.Layout.Fullscreen (fullscreenEventHook, fullscreenFull, fullscreenManageHook)
import XMonad.Layout (Resize (Expand, Shrink))
import XMonad.Layout.Fullscreen (fullscreenEventHook)
import XMonad.Layout.LayoutModifier
import qualified XMonad.Layout.LayoutModifier
import XMonad.Layout.Named (named)
@ -111,7 +102,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, additionalMouseBindings)
import XMonad.Util.EZConfig (additionalKeysP)
import XMonad.Util.Font (fi)
import XMonad.Util.Loggers (logTitles, wrapL)
import XMonad.Util.SpawnOnce (spawnOnce)
@ -123,51 +114,44 @@ main = do
colors <- getWalColors
xmonad . ewmhFullscreen . ewmh
. withEasySB (statusBarProp "xmobar ~/.config/xmobar/xmobarrc" (pure $ myXmobarPP colors)) defToggleStrutsKey
$ 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))
]
$ 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")
]
myXmobarPP :: [String] -> PP
myXmobarPP colors =
@ -175,8 +159,8 @@ myXmobarPP colors =
{ ppSep = walXmobarColor 1 " \63617 ",
ppTitleSanitize = xmobarStrip,
ppCurrent = wrap " " "" . xmobarBorder "Top" (colors !! 6) 2,
ppHidden = walXmobarColor 2 . wrap " " "",
ppHiddenNoWindows = walXmobarColor 1 . wrap " " "",
ppHidden = white . wrap " " "",
ppHiddenNoWindows = lowWhite . wrap " " "",
ppUrgent = red . wrap (yellow "!") (yellow "!"),
ppVisible = wrap " " "" . xmobarBorder "Bottom" (colors !! 6) 2,
ppOrder = \[ws, l, _, wins] -> [ws, l, wins],
@ -184,8 +168,8 @@ myXmobarPP colors =
ppSort = hideWorkspaces
}
where
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
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
walXmobarColor index = xmobarColor (colors !! index) ""
ppWindow :: String -> String
ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30
@ -209,14 +193,10 @@ myXmobarPP colors =
myStartupHook :: X ()
myStartupHook = do
mapM_
spawnOnce
[ "picom --experimental-backends &",
"sh $HOME/.fehbg",
"setxkbmap -option caps:escape",
"xset r rate 300 50",
"signal-deskto &"
]
spawnOnce "picom &"
spawnOnce "sh $HOME/.fehbg"
spawnOnce "setxkbmap -option caps:escape"
spawnOnce "xset r rate 300 50"
getWalColors :: IO [String]
getWalColors = do
@ -232,7 +212,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 = fullscreenFull $ smartBorders $ tiled ||| smartBorders Full ||| Mirror (fullWSpacing 8 $ Tall nmaster delta ratio)
myLayout = smartBorders $ windowNavigation 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
@ -271,7 +251,6 @@ myManageHook =
(className =? "TelegramDesktop") <&&> (title ~=? "Media viewer") --> doFloat
]
<+> insertPosition End Newer
<+> fullscreenManageHook
where
viewShift = doF . liftM2 (.) greedyView shift