Merge branch 'master' of github.com:hektor/dots

master
Hektor Misplon 2022-12-01 16:40:48 +01:00
commit 3113852985
3 changed files with 188 additions and 150 deletions

View File

@ -48,12 +48,13 @@ alias df="df -kTh"
alias fzfpac="pacman -Slq | fzf -m --preview 'pacman -Si {1}' | xargs -ro sudo pacman -S" alias fzfpac="pacman -Slq | fzf -m --preview 'pacman -Si {1}' | xargs -ro sudo pacman -S"
alias o="xdg-open" alias o="xdg-open"
alias path="echo -e ${PATH//:/\\n}" # Pretty print path variables alias path="echo -e ${PATH//:/\\n}" # Pretty print path variables
alias wiki="vim +WikiIndex"
# Programs # Programs
alias feh="feh -B black --scale-down --auto-zoom" alias feh="feh -B black --scale-down --auto-zoom"
alias fm='pcmanfm' alias fm='pcmanfm'
alias v="nvim"
alias w="nvim +WikiIndex"
alias g='git' alias g='git'
alias lm='xbacklight -set' alias lm='xbacklight -set'
alias py='python' alias py='python'

View File

@ -1,13 +1,21 @@
Config { overrideRedirect = False Config { overrideRedirect = False
, font = "xft:Iosevka Term SS08:size=12:antialias=true" , font = "xft:Iosevka Term SS08:size=12:antialias=true"
, bgColor = "#111" , bgColor = "#cccccc"
, fgColor = "#ccc" , fgColor = "#111"
, position = TopW L 90 , position = TopW L 100
, commands = [ Run Cpu , commands = [ Run Cpu
[ "-L", "3" [ "-L", "3"
, "-H", "50" , "-H", "50"
, "--high" , "red" , "--high" , "red"
, "--normal", "green" ] 10
, Run Battery [
"-t", "<acstatus>: <left>% - <timeleft>",
"--",
--"-c", "charge_full",
"-O", "AC",
"-o", "Bat",
"-h", "green",
"-l", "red"
] 10 ] 10
, Run Alsa "default" "Master" , Run Alsa "default" "Master"
[ "--template", "Vol: <volumestatus>" [ "--template", "Vol: <volumestatus>"
@ -17,9 +25,12 @@ Config { overrideRedirect = False
] ]
, Run Memory ["--template", "Mem: <usedratio>%"] 10 , Run Memory ["--template", "Mem: <usedratio>%"] 10
, Run Date "%a %Y-%m-%d %H:%M" "date" 10 , Run Date "%a %Y-%m-%d %H:%M" "date" 10
, Run Com "sb-pomo" [] "pomo" 10
, Run Com "sb-anki" [] "anki" 10
, Run Com "sb-tasks" [] "tasks" 10
, Run XMonadLog , Run XMonadLog
] ]
, sepChar = "%" , sepChar = "%"
, alignSep = "}{" , alignSep = "}{"
, template = "%XMonadLog% }{ %alsa:default:Master% | %cpu% | %memory% | %date% " , template = "%XMonadLog%%anki%%pomo%%tasks% }{ %alsa:default:Master% | %battery% | %date%"
} }

View File

@ -1,12 +1,10 @@
import XMonad import XMonad
import XMonad.Hooks.DynamicLog import XMonad.Hooks.DynamicLog
import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.StatusBar import XMonad.Hooks.StatusBar
import XMonad.Hooks.StatusBar.PP import XMonad.Hooks.StatusBar.PP
import XMonad.Layout.Magnifier import XMonad.Layout.Magnifier
import qualified XMonad.Layout.Magnifier as Mag (MagnifyMsg (..)) import qualified XMonad.Layout.Magnifier as Mag (MagnifyMsg (..))
import XMonad.Layout.NoBorders (hasBorder, smartBorders) import XMonad.Layout.NoBorders (hasBorder, smartBorders)
@ -14,40 +12,44 @@ import XMonad.Layout.PerScreen
import XMonad.Layout.ResizableTile import XMonad.Layout.ResizableTile
import XMonad.Layout.Spacing import XMonad.Layout.Spacing
import XMonad.Layout.ThreeColumns import XMonad.Layout.ThreeColumns
import XMonad.Layout.ToggleLayouts (ToggleLayout (..), import XMonad.Layout.ToggleLayouts
toggleLayouts) ( ToggleLayout (..),
toggleLayouts,
)
import XMonad.Layout.WindowNavigation import XMonad.Layout.WindowNavigation
import qualified XMonad.StackSet as W import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig import XMonad.Util.EZConfig
import qualified XMonad.Util.Hacks as Hacks import qualified XMonad.Util.Hacks as Hacks
import XMonad.Util.Loggers import XMonad.Util.Loggers
import XMonad.Util.Paste import XMonad.Util.Paste
import XMonad.Util.Run (spawnExternalProcess, import XMonad.Util.Run
spawnPipe) ( spawnExternalProcess,
spawnPipe,
)
import XMonad.Util.Ungrab import XMonad.Util.Ungrab
-- Statusbar -- Statusbar
myXmobarPP :: PP myXmobarPP :: PP
myXmobarPP = def myXmobarPP =
{ ppSep = tertiaryColor " | " def
, ppCurrent = brackitify { ppSep = tertiaryColor " | ",
, ppHidden = secondaryColor ppCurrent = brackitify,
, ppHiddenNoWindows = tertiaryColor ppHidden = secondaryColor,
, ppUrgent = red . wrap (yellow "!") (yellow "!") ppHiddenNoWindows = tertiaryColor,
, ppLayout = \l -> case l of "Tall" -> "[]=" ppUrgent = red . wrap (yellow "!") (yellow "!"),
ppLayout = \l -> case l of
"Tall" -> "[]="
"Magnifier Tall" -> "[]+" "Magnifier Tall" -> "[]+"
"Magnifier (off) Tall" -> "[]=" "Magnifier (off) Tall" -> "[]="
"Magnifier Mirror Tall" -> "+[]" "Magnifier Mirror Tall" -> "+[]"
"Magnifier (off) Mirror Tall" -> "=[]" "Magnifier (off) Mirror Tall" -> "=[]"
"Full" -> "[ ]" "Full" -> "[ ]"
"ThreeCol" -> "|||" "ThreeCol" -> "|||"
_ -> l _ -> l,
, ppTitle = shorten 80 ppTitle = shorten 80,
, ppTitleSanitize = xmobarStrip ppTitleSanitize = xmobarStrip,
, ppOrder = \[ws, l, _, wins] -> [ws, l, wins] ppOrder = \[ws, l, _, wins] -> [ws, l, wins],
, ppExtras = [logTitles formatFocused formatUnfocused] ppExtras = [logTitles formatFocused formatUnfocused]
} }
where where
brackitify = wrap "[" "]" brackitify = wrap "[" "]"
@ -56,9 +58,9 @@ myXmobarPP = def
ppWindow = xmobarRaw . (\w -> if null w then "Untitled" else w) . shorten 16 ppWindow = xmobarRaw . (\w -> if null w then "Untitled" else w) . shorten 16
primaryColor = xmobarColor "#eeeeee" "" primaryColor = xmobarColor "#000000" ""
secondaryColor = xmobarColor "#aaaaaa" "" secondaryColor = xmobarColor "#333333" ""
tertiaryColor = xmobarColor "#888888" "" tertiaryColor = xmobarColor "#555555" ""
yellow = xmobarColor "#ff0" "" yellow = xmobarColor "#ff0" ""
red = xmobarColor "#ff5555" "" red = xmobarColor "#ff5555" ""
@ -66,31 +68,32 @@ myXmobarPP = def
shiftAndView id = doF (W.view id) <> doF (W.shift id) shiftAndView id = doF (W.view id) <> doF (W.shift id)
-- manageHook -- manageHook
myManageHook = composeAll myManageHook =
[ composeAll
className =? "Zathura" --> doShift "pdf" [ className =? "Zathura" --> doShift "pdf",
, className =? "firefox" --> shiftAndView "www" className =? "firefox" --> shiftAndView "www",
, className =? "Anki" --> shiftAndView "etc" className =? "Anki" --> shiftAndView "etc",
, className =? "Obsidian" --> shiftAndView "etc" className =? "Obsidian" --> shiftAndView "etc",
, className =? "Launcher" --> doRectFloat (W.RationalRect 0.05 0.4 0.9 0.5) className =? "Launcher" --> doRectFloat (W.RationalRect 0.05 0.4 0.9 0.5),
, className =? "Calculator" --> doCenterFloat className =? "Calculator" --> doCenterFloat,
, className =? "feh" --> doCenterFloat className =? "feh" --> doCenterFloat,
, className =? "albert" --> hasBorder False className =? "albert" --> hasBorder False,
, className =? "Xournalpp" --> doRectFloat (W.RationalRect 0.5 0.5 0.5 0.5) className =? "Xournalpp" --> doRectFloat (W.RationalRect 0.5 0.5 0.5 0.5)
] ]
-- layoutHook -- layoutHook
myLayoutHook= smartBorders $ myLayoutHook =
smartBorders $
-- Column layouts -- Column layouts
threeCol ||| threeCol
threeColMid ||| ||| threeColMid
-- Tiled layouts -- Tiled layouts
-- Note: magnifier is off by default -- Note: magnifier is off by default
-- (controllable usingarrow keys) -- (controllable usingarrow keys)
magnifiercz magnificationFactorH tiled ||| ||| magnifiercz magnificationFactorH tiled
magnifiercz magnificationFactorV (Mirror tiled) ||| ||| magnifiercz magnificationFactorV (Mirror tiled)
-- Single window / monocle layout -- Single window / monocle layout
Full ||| Full
where where
magnificationFactorV = 1.384 magnificationFactorV = 1.384
magnificationFactorH = 1.621 magnificationFactorH = 1.621
@ -101,77 +104,100 @@ myLayoutHook= smartBorders $
ratio = 1 / 2 ratio = 1 / 2
delta = 4 / 100 delta = 4 / 100
myConfig = def myConfig =
{ def
terminal = "alacritty" { terminal = "alacritty",
-- Use Win key instead of Alt -- Use Win key instead of Alt
, modMask = mod4Mask modMask = mod4Mask,
, workspaces = ["α", "β", "γ", "δ", "ε", "ζ", "η"] -- , workspaces = ["α", "β", "γ", "δ", "ε", "ζ", "η"]
workspaces =
[ "sh",
"www",
"dev",
-- "nix",
"pdf",
"etc"
],
-- Styling -- Styling
, focusedBorderColor = "#888" focusedBorderColor = "#888",
, normalBorderColor = "#000" normalBorderColor = "#000",
, borderWidth = 2 borderWidth = 2,
-- Hooks -- Hooks
, manageHook = myManageHook <+> manageHook def manageHook = myManageHook <+> manageHook def,
, layoutHook = avoidStruts myLayoutHook layoutHook = avoidStruts myLayoutHook,
, handleEventHook = handleEventHook def <> Hacks.windowedFullscreenFixEventHook handleEventHook = handleEventHook def <> Hacks.windowedFullscreenFixEventHook
} `additionalKeysP` myKeysP }
`additionalKeysP` myKeysP
`removeKeysP` myRemoveKeysP `removeKeysP` myRemoveKeysP
-- Keybindings to be added/overridden -- Keybindings to be added/overridden
myKeysP = [ myKeysP =
-- Fit floating windows back to layout [ -- Fit floating windows back to layout
("M-S-<Space>", withFocused $ windows . W.sink) ("M-S-<Space>", withFocused $ windows . W.sink),
-- Launchers -- Launchers
, ("M-p", spawn "albert toggle") ("M-S-p", spawn "alacritty --class Launcher,Launcher"),
("M-p", spawn "albert toggle"),
-- Map insert key to paste from clipboard -- Map insert key to paste from clipboard
, ("<Insert>", pasteSelection) ("<Insert>", pasteSelection),
-- Map print screen to take a screenshot with flameshot -- Map print screen to take a screenshot with flameshot
, ("<Print>", spawn "flameshot gui") ("<Print>", spawn "flameshot gui"),
-- Map audio keys to control volume -- Map audio keys to control volume
, ("<XF86AudioRaiseVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%") ("<XF86AudioRaiseVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%"),
, ("<XF86AudioLowerVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%") ("<XF86AudioLowerVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%"),
, ("<XF86AudioMute>", spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle") ("<XF86AudioMute>", spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle"),
-- Map brightness keys to control brightness with brightnessctl -- Map brightness keys to control brightness with brightnessctl
, ("<XF86MonBrightnessUp>", spawn "brightnessctl set 20+") ("<XF86MonBrightnessUp>", spawn "brightnessctl set 20+"),
, ("<XF86MonBrightnessDown>", spawn "brightnessctl set 20-") ("<XF86MonBrightnessDown>", spawn "brightnessctl set 20-"),
-- Map brightness keys + shift to adjust redshift temperature -- Map brightness keys + shift to adjust redshift temperature
, ("S-<XF86MonBrightnessUp>", spawn "echo $(($(cat /tmp/temperature) + 50)) > /tmp/temperature && redshift -O $(cat /tmp/temperature) -P && notify < /tmp/temperature -h string:x-canonical-private-synchronous:anything") ("S-<XF86MonBrightnessUp>", spawn "echo $(($(cat /tmp/temperature) + 50)) > /tmp/temperature && redshift -O $(cat /tmp/temperature) -P && notify < /tmp/temperature -h string:x-canonical-private-synchronous:anything"),
, ("S-<XF86MonBrightnessDown>", spawn "echo $(($(cat /tmp/temperature) - 50)) > /tmp/temperature && redshift -O $(cat /tmp/temperature) -P && notify < /tmp/temperature -h string:x-canonical-private-synchronous:anything") ("S-<XF86MonBrightnessDown>", spawn "echo $(($(cat /tmp/temperature) - 50)) > /tmp/temperature && redshift -O $(cat /tmp/temperature) -P && notify < /tmp/temperature -h string:x-canonical-private-synchronous:anything"),
-- Reset redshift temperature -- Reset redshift temperature
, ("M-S-<XF86MonBrightnessUp>", spawn "echo 3000 > /tmp/temperature && redshift -x") ("M-S-<XF86MonBrightnessUp>", spawn "echo 3000 > /tmp/temperature && redshift -x"),
, ("M-S-<XF86MonBrightnessDown>", spawn "echo 3000 > /tmp/temperature && redshift -x") ("M-S-<XF86MonBrightnessDown>", spawn "echo 3000 > /tmp/temperature && redshift -x"),
-- Use power down key to suspend -- Use power down key to suspend
, ("<XF86PowerOff>", spawn "systemctl suspend") ("<XF86PowerOff>", spawn "systemctl suspend"),
-- FIXME: Spawn firefox in fullscreen, but not in kiosk mode -- FIXME: Spawn firefox in fullscreen, but not in kiosk mode
, ("M-S-b", spawn "firefox --fullscreen") ("M-S-b", spawn "firefox --fullscreen"),
-- Magnify window using arrow keys -- Magnify window using arrow keys
, ("M-=", sendMessage MagnifyMore >> sendMessage Mag.ToggleOn) ("M-=", sendMessage MagnifyMore >> sendMessage Mag.ToggleOn),
, ("M--", sendMessage MagnifyLess >> sendMessage Mag.ToggleOn) ("M--", sendMessage MagnifyLess >> sendMessage Mag.ToggleOn),
-- Reset magnification -- Reset magnification
, ("M-S-=", sendMessage Mag.ToggleOff) ("M-S-=", sendMessage Mag.ToggleOff),
-- Layouts ("<XF86Calculator>", spawn "alacritty --class 'Calculator' -e ipython -i /home/h/.bin/calc.py"),
, ("M-t", sendMessage $ JumpToLayout "Magnifier Tall") -- playerctl ncspot using arrow keys
, ("M-c", sendMessage $ JumpToLayout "ThreeCol") ("M-<Right>", spawn "playerctl next"),
, ("M-f", sendMessage $ JumpToLayout "Full") ("M-<Left>", spawn "playerctl previous"),
("M-<Up>", spawn "playerctl play"),
("M-<Down>", spawn "playerctl pause"),
-- Use a,s,d,f,g to switch to workspaces
("M-a", windows $ W.greedyView "sh"),
("M-s", windows $ W.greedyView "www"),
("M-d", windows $ W.greedyView "dev"),
("M-f", windows $ W.greedyView "pdf"),
("M-g", windows $ W.greedyView "etc"),
-- Use shift + a,s,d,f,g to move window to workspace
("M-S-a", windows $ W.shift "sh"),
("M-S-s", windows $ W.shift "www"),
("M-S-d", windows $ W.shift "dev"),
("M-S-f", windows $ W.shift "pdf"),
("M-S-g", windows $ W.shift "etc")
] ]
-- Keybindings to be removed -- Keybindings to be removed
myRemoveKeysP = [ ] myRemoveKeysP =
[ -- Remove 1,2,3,4,5 bindings for workspaces
"M-1",
"M-2",
"M-3",
"M-4",
"M-5",
-- Remove shift + 1,2,3,4,5 bindings for workspaces
"M-S-1",
"M-S-2",
"M-S-3",
"M-S-4",
"M-S-5"
]
main :: IO () main :: IO ()
main = do xmonad $ docks $ ewmh $ withEasySB (statusBarProp "xmobar" (pure myXmobarPP)) defToggleStrutsKey myConfig main = do xmonad $ docks $ ewmh $ withEasySB (statusBarProp "xmobar" (pure myXmobarPP)) defToggleStrutsKey myConfig