aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagdalena Szweda <hi@roughlynamed.net>2026-10-19 15:06:47 +0200
committerMagdalena Szweda <hi@roughlynamed.net>2026-10-20 17:26:10 +0200
commit6ebef45567bfc36f1ea9fd02281303e17c8e2f0f (patch)
tree17309a65ac007411b7d7a356567ef81941224629
parent8da12a219edf958bf050e952647393840c83ff16 (diff)
XMonad(binds): Change file manager bound under S-e
-rw-r--r--jj/.config/jj/config.toml27
-rw-r--r--xmonad/.config/xmonad/xmonad.hs135
2 files changed, 135 insertions, 27 deletions
diff --git a/jj/.config/jj/config.toml b/jj/.config/jj/config.toml
deleted file mode 100644
index fc65527..0000000
--- a/jj/.config/jj/config.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-[user]
-name = "Magdalena Szweda"
-email = "hi@roughlynamed.net"
-
-[signing]
-behavior = "own"
-backend = "gpg"
-key = "0A9EAC618DFFA723992D020257ED5A4B1D76448F"
-
-[signing.backends.gpg]
-program = "gpg-sq"
-
-[aliases]
-ba = ["b", "a"]
-push = ["git", "push"]
-clone = ["git", "clone"]
-pushall = ["util", "exec", "--", "sh", "-c", '''
- for r in codeberg savannah pi; do
- echo "== $r =="
- jj git push --remote "$r" "$@" || exit 1
- done
-''', ""]
-
-[ui]
-default-command = "log"
-diff-instructions = false
-
diff --git a/xmonad/.config/xmonad/xmonad.hs b/xmonad/.config/xmonad/xmonad.hs
new file mode 100644
index 0000000..5e14eea
--- /dev/null
+++ b/xmonad/.config/xmonad/xmonad.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# OPTIONS_GHC -Wno-deprecations #-}
+
+import Data.Map qualified as M
+import System.Exit (exitSuccess)
+import XMonad
+import XMonad.Actions.CycleWS (nextScreen, shiftNextScreen)
+import XMonad.Hooks.EwmhDesktops
+import XMonad.Hooks.InsertPosition
+import XMonad.Hooks.ManageHelpers (isDialog)
+import XMonad.Hooks.StatusBar
+import XMonad.Hooks.StatusBar.PP
+import XMonad.Layout.NoBorders (smartBorders)
+import XMonad.Layout.Renamed (Rename (Replace), renamed)
+import XMonad.StackSet qualified as W
+import XMonad.Util.ClickableWorkspaces
+import XMonad.Util.EZConfig (additionalKeysP)
+import XMonad.Util.Ungrab
+import XMonad.Util.SpawnOnce (spawnOnce)
+myModMask :: KeyMask
+myModMask = mod4Mask
+
+myTerminal :: String
+myTerminal = "alacritty"
+
+myBorderWidth :: Dimension
+myBorderWidth = 2
+
+colBg, colFg, colAccent, colGrey :: String
+colBg = "#101010"
+colFg = "#cccccc"
+colAccent = "#708090"
+colGrey = "#606060"
+
+myWorkspaces :: [String]
+myWorkspaces = map show [1 .. 9 :: Int]
+
+myLayout = renamed [Replace "[]="] tiled ||| renamed [Replace "[M]"] Full
+ where
+ tiled = Tall nmaster delta ratio
+ nmaster = 1
+ ratio = 0.50
+ delta = 3 / 100
+
+myManageHook :: ManageHook
+myManageHook =
+ composeAll
+ [ className =? "confirmreset" --> doFloat,
+ className =? "makebranch" --> doFloat,
+ className =? "maketag" --> doFloat,
+ className =? "ssh-askpass" --> doFloat,
+ className =? "Blueman-manager" --> doFloat,
+ className =? "Pavucontrol" --> doFloat,
+ title =? "branchdialog" --> doFloat,
+ title =? "pinentry" --> doFloat,
+ isDialog --> doFloat
+ ]
+
+myToggleFloat :: Window -> X ()
+myToggleFloat w = windows $ \s ->
+ if M.member w (W.floating s)
+ then W.sink w s
+ else W.float w (W.RationalRect 0.1 0.1 0.8 0.8) s
+
+myXmobarPP :: PP
+myXmobarPP =
+ def
+ { ppCurrent = xmobarColor colBg colAccent . wrap " " " ",
+ ppHidden = xmobarColor colFg "" . wrap " " " ",
+ ppHiddenNoWindows = xmobarColor colGrey "" . wrap " " " ",
+ ppUrgent = xmobarColor "#ff5555" "" . wrap " " " ",
+ ppTitle = xmobarColor colFg "" . shorten 60,
+ ppLayout = xmobarColor colAccent "",
+ ppSep = xmobarColor colGrey "" " "
+ }
+
+main :: IO ()
+main =
+ xmonad
+ . ewmhFullscreen
+ . ewmh
+ . withEasySB (statusBarProp "xmobar" (clickablePP myXmobarPP)) defToggleStrutsKey
+ $ myConfig
+
+startup :: X ()
+startup = do
+ spawnOnce "xmms2-launcher && ~/src/xmms2-mpris/xmms2-mpris"
+ spawnOnce "~/.cargo/bin/mprisence"
+ spawn "dbus-update-activation-environment DISPLAY XAUTHORITY"
+ spawn "feh --bg-scale ~/Pictures/floating_gnu.png"
+ spawn "xset m 0"
+
+myConfig =
+ def
+ { modMask = myModMask,
+ terminal = myTerminal,
+ borderWidth = myBorderWidth,
+ normalBorderColor = colGrey,
+ focusedBorderColor = colAccent,
+ workspaces = myWorkspaces,
+ layoutHook = myLayout,
+ manageHook = insertPosition End Newer <> myManageHook <+> manageHook def,
+ startupHook = startup
+ }
+ `additionalKeysP` [ ("M-<Return>", spawn myTerminal),
+ ("M-p", spawn "j4-dmenu-desktop"),
+ ("M-c", spawn "emacs"),
+ ("M-w", spawn "icecat"),
+ ("M-e", spawn "alacritty -e nnn"),
+ ("M-s", spawn "discord"),
+ ("M-x", spawn "loginctl lock-session"),
+ ("M-S-s", unGrab *> spawn "screenshot select"),
+ ("M-S-r", unGrab *> spawn "screenrecord select"),
+ ("M-q", kill),
+ ("M-f", withFocused myToggleFloat),
+ ("M-j", windows W.focusDown),
+ ("M-k", windows W.focusUp),
+ ("M-h", sendMessage Shrink),
+ ("M-l", sendMessage Expand),
+ ("M-S-h", sendMessage (IncMasterN 1)),
+ ("M-S-l", sendMessage (IncMasterN (-1))),
+ ("M-<Tab>", sendMessage NextLayout),
+ ("M-.", nextScreen),
+ ("M-S-.", shiftNextScreen),
+ ("M-C-q", io exitSuccess),
+ ("<XF86AudioRaiseVolume>", spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
+ ("<XF86AudioLowerVolume>", spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
+ ("<XF86AudioMute>", spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
+ ("<XF86AudioPlay>", spawn "playerctl play-pause"),
+ ("<XF86AudioNext>", spawn "playerctl next"),
+ ("<XF86AudioPrev>", spawn "playerctl previous"),
+ ("<XF86AudioStop>", spawn "playerctl stop"),
+ ("<XF86MonBrightnessUp>", spawn "brightnessctl set +5%"),
+ ("<XF86MonBrightnessDown>", spawn "brightnessctl set 5%-")
+ ]