aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2023-02-17 08:27:14 -0300
committerEuAndreh <eu@euandre.org>2023-02-17 08:36:30 -0300
commitb7690e3ad34a4fd207dfd73476756836696f0731 (patch)
tree578e3b1ada1e7cce2d450f9f1ccfcc41735dc2e1
parentetc/guix/home.scm: Pick a more up-to-date Node.js over ArchiveBox (diff)
downloaddotfiles-b7690e3ad34a4fd207dfd73476756836696f0731.tar.gz
dotfiles-b7690e3ad34a4fd207dfd73476756836696f0731.tar.xz
etc/{xmonad,xmobar}: Add working simplified configurations
The xmobar "CommandReader" still needs work: for some reason it only gets the first string that the command emits, and not the later changed values.
-rw-r--r--etc/xmobar/xmobarrc24
-rw-r--r--etc/xmonad/xmonad.hs86
2 files changed, 110 insertions, 0 deletions
diff --git a/etc/xmobar/xmobarrc b/etc/xmobar/xmobarrc
new file mode 100644
index 0000000..bae638b
--- /dev/null
+++ b/etc/xmobar/xmobarrc
@@ -0,0 +1,24 @@
+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, %Y-%m-%d %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 "forever x wms mpris AND sleep 1" "mpris"
+ ]
+ , template = " %default:Master%| %mpris% } { %wlp0s20f3wi% | %cpu% | %battery% | %disku% | %memory% * %swap% | <fc=#5ea2a4>%date%</fc> "
+}
diff --git a/etc/xmonad/xmonad.hs b/etc/xmonad/xmonad.hs
new file mode 100644
index 0000000..c80e006
--- /dev/null
+++ b/etc/xmonad/xmonad.hs
@@ -0,0 +1,86 @@
+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"
+ xmonad $ docks $ 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 =
+ [
+ ("<F1>", spawn "volume toggle")
+ , ("<F2>", spawn "volume down")
+ , ("<F3>", spawn "volume up")
+ , ("M-S-s", spawn "volume rotate")
+
+ , ("<F4>", spawn "player backward")
+ , ("S-<F4>", spawn "player previous")
+ , ("<F5>", spawn "player play-pause")
+ , ("S-<F5>", spawn "player rotate")
+ , ("<F6>", spawn "player forward")
+ , ("S-<F6>", spawn "player next")
+
+ , ("<F7>", spawn "brightness -1")
+ , ("<F8>", spawn "brightness +1")
+
+ , ("M-p", spawn "menu bin")
+ , ("M-o", spawn "menu emoji")
+ , ("M-v", spawn "menu clipboard")
+ , ("M-i", spawn "menu password")
+ , ("C-M-i", spawn "menu username")
+ , ("C-M-S-i", spawn "menu yubikey")
+
+ , ("<Print>", spawn "shot")
+ , ("M-<Print>", spawn "shot -m")
+
+ -- Lock screen
+ , ("C-M-l", spawn "dm-tool switch-to-greeter")
+
+ -- 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)
+ ]
+
+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"