1
0
mirror of https://github.com/ellmau/nixos.git synced 2025-12-19 09:29:36 +01:00

Further updates on the XMonad setup

This commit is contained in:
Stefan Ellmauthaler 2023-05-11 16:35:01 +02:00
parent ca537a05d9
commit b99443dfaf
Failed to extract signature
4 changed files with 41 additions and 10 deletions

View File

@ -21,6 +21,12 @@ with lib; {
}; };
}; };
upower.enable = true; upower.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
}; };
environment.systemPackages = with pkgs; [ firefox thunderbird ]; environment.systemPackages = with pkgs; [ firefox thunderbird ];
}; };

View File

@ -0,0 +1,2 @@
module ELSS where
keyboardtoggle = "dummy"

View File

@ -25,14 +25,21 @@ import XMonad.Hooks.DynamicLog
-- Code Action Imports -- Code Action Imports
import System.Exit import System.Exit
import XMonad.Actions.PhysicalScreens import XMonad.Actions.PhysicalScreens
import XMonad.Layout.NoBorders
import XMonad.Layout.Grid
import XMonad.Layout.Tabbed
import XMonad.Layout.Renamed
import XMonad.Layout.ThreeColumns
main :: IO () main :: IO ()
main' :: D.Client -> IO () main' :: D.Client -> IO ()
main = mkDbusClient >>= main' main = mkDbusClient >>= main'
layout = avoidStruts $ workSpaces = ["code", "web", "misc", "comm"] ++ map show ([5 .. 9] ++ [0])
(Full ||| tall ||| Mirror tall) layout = smartBorders $ avoidStruts $
(tall ||| Mirror tall ||| Grid ||| Full ||| simpleTabbed ||| threemid)
where tall = Tall 1 (3/100) (1/2) where tall = Tall 1 (3/100) (1/2)
threemid = renamed [AppendWords "Mid"] $ ThreeColMid 1 (3/100) (1/2)
main' dbus = do main' dbus = do
hostname <- io $ getHostName hostname <- io $ getHostName
@ -42,11 +49,11 @@ main' dbus = do
, layoutHook = layout , layoutHook = layout
, modMask = mod4Mask -- rebind mod to super key , modMask = mod4Mask -- rebind mod to super key
, keys = keyMap , keys = keyMap
, manageHook = composeAll [ manageDocks , manageHook = myHookManager
, isFullscreen --> doFullFloat , startupHook = do
, placeHook $ withGaps (32, 32, 32, 32) $ smart (0.5, 0.5) startupHook def
, manageHook def spawn "autorandr -c"
] , workspaces = workSpaces
} }
mkDbusClient :: IO D.Client mkDbusClient :: IO D.Client
@ -97,14 +104,30 @@ keyMap c = mkKeymap c $
[(m ++ k, windows $ f w) [(m ++ k, windows $ f w)
| (w, k) <- zip (XMonad.workspaces c) (map show $ [1..9] ++ [0]), | (w, k) <- zip (XMonad.workspaces c) (map show $ [1..9] ++ [0]),
(m, f) <- [("M-", W.greedyView), ("M-S-", W.shift)] (m, f) <- [("M-", W.greedyView), ("M-S-", W.shift)]
] ] ++
++ [ layoutMap k l
| (k, l) <- [ ("u", "Full")
, ("i", "Grid")
, ("o", "Tall")
]
] ++
[ ("<XF86AudioMute>", spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle") [ ("<XF86AudioMute>", spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle")
, ("<XF86AudioLowerVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%") , ("<XF86AudioLowerVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%")
, ("<XF86AudioRaiseVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%") , ("<XF86AudioRaiseVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%")
, ("<XF86AudioMicMute>", spawn "pactl set-source-mute @DEFAULT_SOURCE@ toggle") , ("<XF86AudioMicMute>", spawn "pactl set-source-mute @DEFAULT_SOURCE@ toggle")
] ]
layoutMap :: String -> String -> (String, X ())
layoutMap k l = ("M-y M-" ++ k, sendMessage $ JumpToLayout (l :: String))
myHookManager = composeAll [ manageDocks
, className =? "Element" --> doShift "comm"
, className =? "firefox" --> doShift "web"
, isFullscreen --> doFullFloat
, placeHook $ withGaps (32, 32, 32, 32) $ smart (0.5, 0.5)
, manageHook def
]
polybarHook :: D.Client -> PP polybarHook :: D.Client -> PP
polybarHook dbus = polybarHook dbus =
let wrapper c b "NSP" = mempty let wrapper c b "NSP" = mempty

View File

@ -14,7 +14,7 @@ with lib; {
]; ];
libFiles."ELSS.hs" = pkgs.writeText "ELSS.hs" '' libFiles."ELSS.hs" = pkgs.writeText "ELSS.hs" ''
module ELSS where module ELSS where
keyboardtoggle = "${../keyboard/keyboardtoggle.sh}" keyboardtoggle = "${conf/keyboard/keyboard_layout_toggle.sh}"
''; '';
config = conf/xmonad/xmonad.hs; config = conf/xmonad/xmonad.hs;
}; };