diff options
-rw-r--r-- | .config/XMonad/xmonad.hs | 127 |
1 files changed, 79 insertions, 48 deletions
diff --git a/.config/XMonad/xmonad.hs b/.config/XMonad/xmonad.hs index da8f219..9cc9c5b 100644 --- a/.config/XMonad/xmonad.hs +++ b/.config/XMonad/xmonad.hs @@ -43,21 +43,30 @@ altMask = mod1Mask myLockscreen = "notify-send 'to be set up!' 'to be set up!'" myColorPicker = "colorpicker --short --one-shot --preview | xsel -b" myFont = "xft:Sauce Code Pro:style=Regular:size=14" +volUp = "pamixer -i 5" +volDown = "pamixer -d 5" +volMute = "pamixer -t" +backlightUp = "brightnessctl s +5" +backlightDown = "brightnessctl s 5-" +screenshot = "flameshot screen" +fullScreenshot = "flameshot full" +customScreenshot = "flameshot gui" myExtraWorkspaces = [(xK_0, "十")] -- , (xK_comma, " 十一 "), (xK_period, " 十二 "), (xK_slash, " 十三 ")] -myWorkspaces = ["一", "二", "三", "四", "五", "六", "七", "八", "九"] ++ (map snd myExtraWorkspaces) +myWorkspaces = ["一", "二", "三", "四", "五", "六", "七", "八", "九"] ++ map snd myExtraWorkspaces myScratchpads = [ NS "Term 0" "alacritty -t 'Term 0'" (title =? "Term 0") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) - , NS "Term 1" "alacritty -t 'Term 1'" (title =? "Term 1") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) - , NS "Term 2" "alacritty -t 'Term 2'" (title =? "Term 2") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) - , NS "lf" "alacritty -t 'lf' -e 'lf'" (title =? "lf") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) - , NS "arandr" "arandr" (className =? "Arandr") (customFloating $ W.RationalRect (1/4) (1/4) (1/2) (1/2)) - , NS "calc" "galculator" (className =? "Galculator") (customFloating $ W.RationalRect (5/13) (4/13) (3/13) (6/13)) - , NS "blueman" "blueman-manager" (className =? "Blueman-manager") (customFloating $ W.RationalRect (5.5/16) (4/13) (5/16) (6/13)) - , NS "pavucontrol" "pavucontrol" (className =? "Pavucontrol") (customFloating $ W.RationalRect (3/12) (1/12) (3/6) (5/6)) - , NS "wallpaper" "nitrogen" (className =? "Nitrogen") (customFloating $ W.RationalRect (3/12) (1/12) (3/6) (5/6)) - , NS "BPYTOP" "alacritty -t 'BPYTOP' -e 'bpytop'" (title =? "BPYTOP") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) + , NS "Term 1" "alacritty -t 'Term 1'" (title =? "Term 1") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) + , NS "Term 2" "alacritty -t 'Term 2'" (title =? "Term 2") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) + , NS "Term 3" "alacritty -t 'Term 3'" (title =? "Term 3") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) + , NS "lf" "alacritty -t 'lf' -e 'lf'" (title =? "lf") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) + , NS "arandr" "arandr" (className =? "Arandr") (customFloating $ W.RationalRect (1/4) (1/4) (1/2) (1/2)) + , NS "calc" "galculator" (className =? "Galculator") (customFloating $ W.RationalRect (5/13) (4/13) (3/13) (6/13)) + , NS "blueman" "blueman-manager" (className =? "Blueman-manager") (customFloating $ W.RationalRect (5.5/16) (4/13) (5/16) (6/13)) + , NS "pavucontrol" "pavucontrol" (className =? "Pavucontrol") (customFloating $ W.RationalRect (3/12) (1/12) (3/6) (5/6)) + , NS "wallpaper" "nitrogen" (className =? "Nitrogen") (customFloating $ W.RationalRect (3/12) (1/12) (3/6) (5/6)) + , NS "BPYTOP" "alacritty -t 'BPYTOP' -e 'bpytop'" (title =? "BPYTOP") (customFloating $ W.RationalRect (1/16) (1/16) (7/8) (7/8)) ] myTabTheme = def { fontName = myFont @@ -86,7 +95,7 @@ myTSConfig = TS.TSConfig { TS.ts_hidechildren = False } networkingTS = - [ Node (TS.TSNode "Transmission" "" (spawn "transmission-gtk")) [] + [ Node (TS.TSNode "Transmission" "" (spawn "qbittorrent")) [] , Node (TS.TSNode "TOR" "" (spawn "torbrowser-launcher")) [] , Node (TS.TSNode "Discord" "" (spawn "discord")) [] , Node (TS.TSNode "Icecat" "" (spawn "icecat")) [] @@ -97,11 +106,20 @@ networkingTS = ] myNetworkingTS a = TS.treeselectAction a networkingTS +screenshotTS = + [ Node (TS.TSNode "Custom Selection" "" (spawn customScreenshot)) [] + , Node (TS.TSNode "Full Screen" "" (spawn screenshot)) [] + , Node (TS.TSNode "All Screens" "" (spawn fullScreenshot)) [] + ] +myScreenshotTS a = TS.treeselectAction a screenshotTS + powerTS = [ Node (TS.TSNode "Shutdown" "" (return())) [ Node (TS.TSNode "Confirm" "" (spawn "shutdown now")) [] ] , Node (TS.TSNode "Restart" "" (return())) [ Node (TS.TSNode "Confirm" "" (spawn "reboot")) [] ] + , Node (TS.TSNode "Lock" "" (return())) + [ Node (TS.TSNode "Confirm" "" (spawn myLockscreen)) [] ] , Node (TS.TSNode "Logout" "" (return())) [ Node (TS.TSNode "Confirm" "" (io exitSuccess)) [] ] ] @@ -127,6 +145,7 @@ scratchpadTS = [ Node (TS.TSNode "Term 0" "" (namedScratchpadAction myScratchpads "Term 0")) [] , Node (TS.TSNode "Term 1" "" (namedScratchpadAction myScratchpads "Term 1")) [] , Node (TS.TSNode "Term 2" "" (namedScratchpadAction myScratchpads "Term 2")) [] + , Node (TS.TSNode "Term 3" "" (namedScratchpadAction myScratchpads "Term 3")) [] , Node (TS.TSNode "lf" "" (namedScratchpadAction myScratchpads "lf")) [] , Node (TS.TSNode "BPYTOP" "" (namedScratchpadAction myScratchpads "BPYTOP")) [] , Node (TS.TSNode "Calculator" "" (namedScratchpadAction myScratchpads "calc")) [] @@ -138,14 +157,14 @@ scratchpadTS = myScratchpadTS a = TS.treeselectAction a scratchpadTS xmonadTS = - [ Node (TS.TSNode "Go To Window" "" (goToSelected defaultGSConfig)) [] - , Node (TS.TSNode "Bring Window" "" (bringSelected defaultGSConfig)) [] - , Node (TS.TSNode "Rotate Windows" "" (sendMessage Rotate)) [] - , Node (TS.TSNode "Swap Windows" "" (sendMessage BSP.Swap)) [] - , Node (TS.TSNode "Un/Maximize" "" (withFocused (sendMessage . maximizeRestore))) [] - , Node (TS.TSNode "Sink Window" "" (withFocused $ windows . W.sink)) [] + [ Node (TS.TSNode "Rotate Windows" "" (sendMessage Rotate)) [] , Node (TS.TSNode "Sticky Window" "" (windows copyToAll)) [] , Node (TS.TSNode "Un-sticky Window" "" (killAllOtherCopies)) [] + , Node (TS.TSNode "Swap Windows" "" (sendMessage BSP.Swap)) [] + , Node (TS.TSNode "Bring Window" "" (bringSelected defaultGSConfig)) [] + , Node (TS.TSNode "Go To Window" "" (goToSelected defaultGSConfig)) [] + , Node (TS.TSNode "Sink Window" "" (withFocused $ windows . W.sink)) [] + , Node (TS.TSNode "Un/Maximize" "" (withFocused (sendMessage . maximizeRestore))) [] ] myXmonadTS a = TS.treeselectAction a xmonadTS @@ -170,6 +189,7 @@ utilTS = , Node (TS.TSNode "File Manager" "" (spawn "pcmanfm")) [] , Node (TS.TSNode "Calculator" "" (spawn "galculator")) [] , Node (TS.TSNode "Wallpapers" "" (spawn "nitrogen")) [] + , Node (TS.TSNode "Screenshot" "" (return())) screenshotTS ] myUtilTS a = TS.treeselectAction a utilTS @@ -185,11 +205,10 @@ myTreeMenu a = TS.treeselectAction a , Node (TS.TSNode "Gaming" "" (return())) gamingTS , Node (TS.TSNode "Media" "" (return())) mediaTS , Node (TS.TSNode "Power" "" (return())) powerTS - , Node (TS.TSNode "Screenshot" "" (spawn "spectacle")) [] ]) sGap = 4 -- screen gap -wGap = 10 -- window gap +wGap = 8 -- window gap myGap = spacingRaw True (Border sGap sGap sGap sGap) True (Border wGap wGap wGap wGap) True myGap' = spacingRaw False (Border sGap sGap sGap sGap) True (Border wGap wGap wGap wGap) True @@ -202,9 +221,10 @@ main = do , modMask = myModMask , workspaces = myWorkspaces , normalBorderColor = "#130F23" - , focusedBorderColor = "#e310a9" + , focusedBorderColor = "#c44cf2" , layoutHook = avoidStruts $ maximize $ windowNavigation $ smartBorders $ myGap $ ( - emptyBSP ||| tabbed shrinkText myTabTheme ||| emptyBSP ||| Grid) + emptyBSP ||| tabbed shrinkText myTabTheme ||| Grid + ) , startupHook = do -- spawnOnce "lxsession" spawnOnce "xmodmap /home/zt/.Xmodmap" @@ -214,10 +234,10 @@ main = do spawnOnce "polystart" spawnOnce "nitrogen --restore" spawnOnce "cbatticon" - spawnOnce "blueman-applet" - spawnOnce "nm-applet" - spawnOnce "flameshot" - spawnOnce "optimus-manager-qt" + -- spawnOnce "blueman-applet" + -- spawnOnce "nm-applet" + -- spawnOnce "flameshot" + -- spawnOnce "optimus-manager-qt" setWMName "LG3D" setDefaultCursor xC_left_ptr , manageHook = namedScratchpadManageHook myScratchpads @@ -227,34 +247,42 @@ main = do ] } `additionalMouseBindings` [ - ((myModMask, 4), \w -> prevWS), ((myModMask, 5), \w -> nextWS) + ((myModMask, 4), \w -> prevWS) + , ((myModMask, 5), \w -> nextWS) ] `additionalKeys` ([ ((myModMask, xK_Return), spawn ("open_terminal")) , ((myModMask .|. shiftMask, xK_q), kill1) - + + -- volume keys + , ((myModMask, xK_equal), spawn volUp) + , ((myModMask, xK_minus), spawn volDown) + , ((myModMask, xK_BackSpace), spawn volMute) + + -- brightness keys + , ((myModMask .|. shiftMask, xK_equal), spawn backlightUp) + , ((myModMask .|. shiftMask, xK_minus), spawn backlightDown) + -- modify gaps on runtime - , ((myModMask, xK_equal), incWindowSpacing 1) - , ((myModMask, xK_minus), decWindowSpacing 1) - , ((myModMask .|. shiftMask, xK_equal), incScreenSpacing 1) - , ((myModMask .|. shiftMask, xK_minus), decScreenSpacing 1) + , ((myModMask, xK_F2), incWindowSpacing 1) + , ((myModMask, xK_F1), decWindowSpacing 1) + , ((myModMask .|. shiftMask, xK_F2), incScreenSpacing 1) + , ((myModMask .|. shiftMask, xK_F1), decScreenSpacing 1) -- view prev/next workspaces , ((myModMask .|. shiftMask, xK_Tab), prevWS) , ((myModMask, xK_Tab), nextWS) + , ((myModMask, xK_semicolon), prevWS) + , ((myModMask, xK_apostrophe), nextWS) , ((altMask, xK_h), prevWS) , ((altMask, xK_l), nextWS) - -- do the same without the evil alt key - , ((myModMask, xK_comma), prevWS) - , ((myModMask, xK_period), nextWS) - + -- move to prev/next workspaces , ((altMask .|. shiftMask, xK_h), shiftToPrev >> prevWS) , ((altMask .|. shiftMask, xK_l), shiftToNext >> nextWS) - -- do the same without the evil alt key (might remove either pair later) - , ((myModMask .|. shiftMask, xK_comma), shiftToPrev >> prevWS) - , ((myModMask .|. shiftMask, xK_period), shiftToNext >> nextWS) + , ((myModMask .|. shiftMask, xK_semicolon), shiftToPrev >> prevWS) + , ((myModMask .|. shiftMask, xK_apostrophe), shiftToNext >> nextWS) - -- focus previous.next monitor + -- focus previous/next monitor , ((myModMask, xK_bracketleft), prevScreen) , ((myModMask, xK_bracketright), nextScreen) @@ -322,7 +350,7 @@ main = do ("M-c", spawn myColorPicker) -- Launchers , ("M-S-w", myDevTS myTSConfig) - , ("M-x", myXmonadTS myTSConfig) + , ("M-q", myXmonadTS myTSConfig) , ("M-e", myMediaTS myTSConfig) , ("M-S-e", myGamingTS myTSConfig) , ("M-w", myScratchpadTS myTSConfig) @@ -335,24 +363,27 @@ main = do , ("M-r", namedScratchpadAction myScratchpads "Term 0") , ("M-t", namedScratchpadAction myScratchpads "Term 1") , ("M-y", namedScratchpadAction myScratchpads "Term 2") + , ("M-u", namedScratchpadAction myScratchpads "Term 3") , ("M-m", namedScratchpadAction myScratchpads "BPYTOP") , ("M-S-m", namedScratchpadAction myScratchpads "calc") , ("M-n", namedScratchpadAction myScratchpads "pavucontrol") , ("M-S-n", namedScratchpadAction myScratchpads "arandr") - , ("M-u", namedScratchpadAction myScratchpads "lf") , ("M-b", namedScratchpadAction myScratchpads "blueman") , ("M-S-r", namedScratchpadAction myScratchpads "wallpaper") -- other apps - , ("M-S-u", spawn "pcmanfm") + , ("M-g", spawn customScreenshot) + , ("M-S-o", spawn "pcmanfm") + , ("M-S-y", spawn "gimp") + , ("M-S-u", spawn "kdenlive") , ("M-S-b", spawn "discord") , ("M-S-i", spawn "librewolf") , ("M-s", spawn "obs") , ("M-d", spawn "emacs") -- fn keys - , ("<XF86MonBrightnessDown>", spawn "brightnessctl s 5-") - , ("<XF86MonBrightnessUp>", spawn "brightnessctl s +5") - , ("<XF86AudioLowerVolume>", spawn "pamixer -d 5") - , ("<XF86AudioRaiseVolume>", spawn "pamixer -i 5") - , ("<XF86AudioMute>", spawn "pamixer -t") + , ("<XF86MonBrightnessUp>", spawn backlightUp) + , ("<XF86MonBrightnessDown>", spawn backlightDown) + , ("<XF86AudioRaiseVolume>", spawn volUp) + , ("<XF86AudioLowerVolume>", spawn volDown) + , ("<XF86AudioMute>", spawn volMute) ] - -- used keys: x e w o i p r t y q n b c d + -- used keys: x e w o i p r t y q n b c d |