diff options
author | EuAndreh <eu@euandre.org> | 2022-05-12 12:34:45 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2022-05-12 12:34:45 -0300 |
commit | e4d7311d4eea2bf67d48bdd256a2f05b6d56b030 (patch) | |
tree | 96b514cd388d149f7bf17e4254d02ea5788c8f64 | |
parent | etc/backlight-device: Add file (diff) | |
download | dotfiles-e4d7311d4eea2bf67d48bdd256a2f05b6d56b030.tar.gz dotfiles-e4d7311d4eea2bf67d48bdd256a2f05b6d56b030.tar.xz |
etc/xmonad/: Migrate existing files from dotfiles
-rw-r--r-- | etc/xmonad/xmobarrc | 26 | ||||
-rw-r--r-- | etc/xmonad/xmonad.hs | 100 |
2 files changed, 126 insertions, 0 deletions
diff --git a/etc/xmonad/xmobarrc b/etc/xmonad/xmobarrc new file mode 100644 index 0000000..1526b60 --- /dev/null +++ b/etc/xmonad/xmobarrc @@ -0,0 +1,26 @@ +Config { + font = "xft:DejaVu Sans Mono:size=9" + , commands = [ + Run Cpu ["-L","3","-H","50", "--normal","#5ea2a4","--high","red"] 10 + , Run Memory ["-t","Mem: <usedratio>%"] 30 + , Run Swap [] 30 + , Run Date "%A, %e %B %Y, %H:%M:%S" "date" 10 + , Run DiskU [("/", "<used>/<size>")] [] 600 + , Run Wireless "wlp0s20f3" [] 100 + , Run Volume "default" "Master" [] 10 + , Run Battery [ + "-t", "<acstatus>: <fc=#5ea2a4><left></fc>% - <timeleft>", + "--", + "-O", "AC", + "-i", "Full", + "-o", "Bat", + "-p", "orange", + "-h", "green", + "-l", "red"] + 10 + , Run CommandReader "~/dev/libre/dotfiles/xmonad/scripts/xmobar-mpris.sh" "mpris" + , Run CommandReader "~/dev/libre/dotfiles/xmonad/scripts/xmobar-notifications.sh" "notifications" + , Run CommandReader "~/dev/libre/dotfiles/xmonad/scripts/xmobar-mail.sh" "notmuch" + ] + , template = " <fc=#5ea2a4>%date%</fc> | %default:Master%| %mpris% } { <fc=#008000>%notifications%</fc> | %notmuch% | %wlp0s20f3wi% | %battery% | %memory% * %swap% | %cpu% | %disku% " +} diff --git a/etc/xmonad/xmonad.hs b/etc/xmonad/xmonad.hs new file mode 100644 index 0000000..d459ced --- /dev/null +++ b/etc/xmonad/xmonad.hs @@ -0,0 +1,100 @@ +import XMonad +import XMonad.Actions.SpawnOn(spawnHere) +import XMonad.Hooks.ManageDocks +import XMonad.Util.EZConfig(additionalKeysP) +import XMonad.Layout.NoBorders +import XMonad.Hooks.SetWMName +import XMonad.Hooks.ManageHelpers +import XMonad.Util.Run(spawnPipe) +import XMonad.Layout.ResizableTile +import XMonad.Layout.ResizableTile(MirrorResize(MirrorShrink, MirrorExpand)) + +main :: IO () +main = do + xmproc <- spawnPipe "xmobar $XDG_CONFIG_HOME/xmonad/xmobarrc" + xmonad $ def + -- Fullscreen handling: + -- https://stackoverflow.com/questions/20446348/xmonad-toggle-fullscreen-xmobar + { manageHook = manageDocks <+> (isFullscreen --> doFullFloat) <+> (className =? "trayer" --> doIgnore) <+> manageHook def + , handleEventHook = handleEventHook def <+> docksEventHook + , layoutHook = myLayoutHook + , modMask = mod4Mask -- User Super instead of Alt + , terminal = myTerminal + , startupHook = myStartup + } `additionalKeysP` myKeyPBindings + +myTerminal :: String +myTerminal = "st" + +dbg :: String +dbg = "xmessage 'xmonad EuAndreh debug'" + +myKeyPBindings :: [(String, X ())] +myKeyPBindings = + [ -- Volume + ("<F1>", spawn "amixer -q sset Master toggle") + , ("<F2>", spawn "amixer -q sset Master 5%- unmute") + , ("<F3>", spawn "amixer -q sset Master 5%+ unmute") + + -- Playback + , ("<F4>", spawn "playerctl --player=$(cat ~/.cache/euandreh/mpris-player.txt) position 5-") + , ("S-<F4>", spawn "playerctl --player=$(cat ~/.cache/euandreh/mpris-player.txt) previous") + , ("<F5>", spawn "~/dev/libre/dotfiles/xmonad/scripts/playerctl-play-pause.sh") + , ("S-<F5>", spawn "~/dev/libre/dotfiles/xmonad/scripts/rotate-mpris-player.sh") + , ("<F6>", spawn "playerctl --player=$(cat ~/.cache/euandreh/mpris-player.txt) position 5+") + , ("S-<F6>", spawn "playerctl --player=$(cat ~/.cache/euandreh/mpris-player.txt) next") + + -- Brightness + , ("<F7>", spawn "~/dev/libre/dotfiles/xmonad/scripts/brightness.sh -10") + , ("S-<F7>", spawn "~/dev/libre/dotfiles/xmonad/scripts/zero-brightness.sh") + , ("<F8>", spawn "~/dev/libre/dotfiles/xmonad/scripts/brightness.sh +10") + + , ("M-p", spawnHere "exe=$(dmenu_path | dmenu) && exec $exe") + , ("M-o", spawnHere "~/dev/libre/dotfiles/xmonad/scripts/dmenu-emoji.sh") + , ("M-v", spawnHere "~/dev/libre/dotfiles/xmonad/scripts/dmenu-clipmenu.sh") + , ("M-i", spawn "~/dev/libre/dotfiles/xmonad/scripts/dmenu-pass.sh") + , ("C-M-i", spawnHere "~/dev/libre/dotfiles/xmonad/scripts/dmenu-pass-login.sh") + + -- Lock screen + , ("C-M-l", spawn "dm-tool switch-to-greeter") + + -- print whole screen + , ("M-<Print>", spawn "escrotum ~/Downloads/Screenshots/%Y-%m-%d-%T-screenshot.png") + -- print screen of clicked window + , ("C-M-<Print>", spawn "escrotum ~/Downloads/Screenshots/%Y-%m-%d-%T-screenshot.png -s") + + -- xrandr single monitor setup + , ("C-M-1", spawn "~/dev/libre/dotfiles/xmonad/scripts/single-monitor.sh") + + -- xrandr three monitor setup + , ("C-M-3", spawn "~/dev/libre/dotfiles/xmonad/scripts/three-monitors.sh") + + -- Toggle appearence of xmobar + -- https://stackoverflow.com/a/27646652 + , ("M-f", sendMessage ToggleStruts) + + , ("M-รง", spawn dbg) + + -- Vertically resize, taken from: + -- https://stackoverflow.com/questions/25857674/xmonad-vertical-resize-tile-window + , ("M-a", sendMessage MirrorExpand) + , ("M-z", sendMessage MirrorShrink) + + + -- Toggle PulseAudio sink + , ("M-s", spawn "~/dev/libre/dotfiles/xmonad/scripts/toggle-pulseaudio-sink.sh") + ] + +myLayoutHook = + smartBorders $ avoidStruts $ (tiled ||| Mirror tiled ||| Full) + where + tiled = ResizableTall nmaster delta ratio [] + nmaster = 1 + delta = 3/100 + ratio = 1/2 + +myStartup :: X () +myStartup = do + -- Taken from: + -- https://stackoverflow.com/questions/30742662/java-swing-gui-not-displaying-in-xmonad + setWMName "LG3D" |