git: alias: add repack-*
[julm/julm-nix.git] / home-manager / profiles / xmonad / xmonad.hs
index 18afef1a7999324dfad44c102e8bdcff57bd0008..0249b90e1f0981e4b8deed8b1b4fb2590fd0f8fc 100644 (file)
@@ -6,7 +6,6 @@ import qualified Data.Char as Char
 import Data.List as List
 import Data.Ratio
 import System.Exit
-import System.IO
 import qualified Data.Map as Map
 import Control.Arrow (first)
 
@@ -35,7 +34,6 @@ import XMonad.Hooks.StatusBar
 import XMonad.Hooks.UrgencyHook
 import XMonad.Layout.Fullscreen
 import XMonad.Layout.Grid
-import XMonad.Layout.IndependentScreens
 import XMonad.Layout.LayoutCombinators
 import XMonad.Layout.Magnifier
 import XMonad.Layout.MultiToggle
@@ -48,7 +46,6 @@ import XMonad.Layout.ThreeColumns
 import XMonad.Prompt
 import XMonad.Prompt.FuzzyMatch
 import XMonad.Prompt.Pass
-import XMonad.Util.Ungrab (unGrab)
 --import XMonad.Operations (unGrab) -- TODO: needs xmonad 0.18
 import XMonad.Util.SpawnOnce
 import qualified XMonad.StackSet as W
@@ -76,15 +73,17 @@ main = xmonad $
       -- Start a terminal
         ((modMask, xK_Return), spawnExec $ XMonad.terminal conf)
       -- Launch a program
-      , ((modMask, xK_Menu), spawnExec "rofi -show run -no-disable-history -run-command \"bash -c 'systemd-run --user --unit=app-org.rofi.\\$(systemd-escape \\\"{cmd}\\\")@\\$RANDOM -p CollectMode=inactive-or-failed {cmd}'\"")
+      , ((modMask, xK_Menu), spawnCommand)
+      , ((modMask, xK_a), spawnCommand)
       -- Browse the filesystem
       , ((modMask, xK_BackSpace), spawnExec "systemd-run --user --unit=app-org.rofi.caja@$RANDOM -p CollectMode=inactive-or-failed caja")
 
       -- Lock the screen
-      , ((0, xK_Pause), unGrab >> spawnExec "loginctl lock-session \"$XDG_SESSION_ID\"")
+      , ((0, xK_Pause), {-unGrab >>-} spawnExec "loginctl lock-session \"$XDG_SESSION_ID\"")
+      , ((modMask, xK_Delete), {-unGrab >>-} spawnExec "loginctl lock-session \"$XDG_SESSION_ID\"")
 
       -- Take a full screenshot
-      , ((0, xK_Print), spawn "cd ~/img/cap && scrot --quality 42 '%Y-%m-%d_%H-%M-%S.png' && caja ~/img/cap")
+      , ((0, xK_Print), spawn "mkdir -p ~/Images/screenshots && scrot --quality 42 ~/Images/screenshots/'%Y-%m-%d_%H-%M-%S.png' && caja ~/Images/screenshots")
       -- Take a selective screenshot
       , ((modMask, xK_Print), spawn "select-screenshot")
 
@@ -167,9 +166,11 @@ main = xmonad $
       -- XF86Back: Switch to previous workspace
       , ((0, xK_XF86Backward), prevWS)
       , ((modMask, xK_j), prevWS)
+      , ((modMask, xK_Page_Up), prevWS)
       -- Switch to next workspace
       , ((0, xK_XF86Forward), nextWS)
       , ((modMask, xK_l), nextWS)
+      , ((modMask, xK_Page_Down), nextWS)
       -- XF86Back: Move the current client to the previous workspace and go there
       , ((modMask, xK_XF86Backward), shiftToPrev >> prevWS)
       , ((modMask .|. shiftMask, xK_j), shiftToPrev >> prevWS)
@@ -286,7 +287,30 @@ main = xmonad $
       <+> spawnExec "xhost local:root"
       <+> spawnExec "setxkbmap -option keypad:pointerkeys"
       -- Useful for programs launched by rofi
-      <+> spawnExec "systemctl --user import-environment GNUPGHOME PASSWORD_STORE_DIR PATH"
+      <+> spawnExec (unwords [ "systemctl --user import-environment"
+                             , "DBUS_SESSION_BUS_ADDRESS"
+                             , "GDK_PIXBUF_MODULE_FILE"
+                             , "GIO_EXTRA_MODULES"
+                             , "GLFW_IM_MODULE"
+                             , "GNUPGHOME"
+                             , "GTK2_RC_FILES"
+                             , "GTK_A11Y"
+                             , "GTK_IM_MODULE"
+                             , "GTK_PATH"
+                             , "LANG"
+                             , "LD_LIBRARY_PATH" -- For sane and pipewire
+                             , "LIBEXEC_PATH"
+                             , "NIX_PROFILES" -- fcitx5 does not work without it…
+                             , "PASSWORD_STORE_DIR"
+                             , "PATH"
+                             , "QTWEBKIT_PLUGIN_PATH"
+                             , "QT_IM_MODULE"
+                             , "QT_PLUGIN_PATH"
+                             , "SPEECHD_CMD"
+                             , "SSH_ASKPASS"
+                             , "XCURSOR_PATH"
+                             , "XMODIFIERS"
+                             ])
       -- <+> spawnOnce "exec arbtt-capture -r 60"
       -- <+> spawnOnce "exec parcellite"
       -- <+> spawnOnce "exec xautolock"
@@ -310,6 +334,8 @@ main = xmonad $
      , fontName            = "Hack 7"
      }
 
+spawnCommand = spawnExec "rofi -show run -no-disable-history -run-command \"bash -c 'systemd-run --user --unit=app-org.rofi.\\$(systemd-escape \\\"{cmd}\\\")@\\$RANDOM -p CollectMode=inactive-or-failed {cmd}'\""
+
 barSpawner :: ScreenId -> IO StatusBarConfig
 barSpawner 0 = pure $ topXmobar <> traySB
 --barSpawner 1 = pure $ xmobar1