blob: 9e051d2bf7a66281857754ef2312b2963ea35493 [file] [log] [blame]
Skyler Grey3a9a2b12023-02-13 08:04:05 +00001{ lib, pkgs, home, config, utils, ... }: {
Skyler Greye2ec0de2022-11-02 08:07:25 +00002 home = {
Skyler Grey3a9a2b12023-02-13 08:04:05 +00003 home.packages = with pkgs; [ xob pamixer ];
Skyler Greye2ec0de2022-11-02 08:07:25 +00004 xsession = {
5 windowManager.xmonad = {
6 enable = true;
7 enableContribAndExtras = true;
Skyler Grey3a9a2b12023-02-13 08:04:05 +00008 config = utils.interpolateFile ./xmonad/xmonad.hs;
Skyler Grey51a0c612022-11-05 09:59:04 +00009 libFiles = lib.pipe ./xmonad [
10 builtins.readDir
11 builtins.attrNames
12 (builtins.filter (name: name != "xmonad.hs"))
13 (map (name: {
14 inherit name;
Skyler Grey3a9a2b12023-02-13 08:04:05 +000015 value = utils.interpolateFile "${./xmonad}/${name}";
Skyler Grey51a0c612022-11-05 09:59:04 +000016 }))
17 builtins.listToAttrs
18 ];
Skyler Greye2ec0de2022-11-02 08:07:25 +000019 extraPackages = haskellPackages: with haskellPackages; [
Skyler Grey51a0c612022-11-05 09:59:04 +000020 dbus
21 monad-logger
22 xmonad-contrib
Skyler Greye2ec0de2022-11-02 08:07:25 +000023 ];
24 };
25 };
26 programs.zsh.profileExtra = ''
27 if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
28 exec ${pkgs.systemd}/bin/systemd-cat -t xmonad ${pkgs.xorg.xinit}/bin/startx
29 fi
30 '';
Skyler Grey62f4fa32023-03-07 13:16:06 +000031
32 home.file.".config/prelaunch/desktop-portals.sh".text = ''
Skyler Grey5c1b4442023-02-26 12:05:16 +000033 export XDG_DESKTOP_PORTAL_DIR=${pkgs.xdg-desktop-portal-gnome}/share/xdg-desktop-portal/portals
34 ${pkgs.xdg-desktop-portal-gnome}/libexec/xdg-desktop-portal-gnome &
35 ${pkgs.xdg-desktop-portal}/libexec/xdg-desktop-portal &
Skyler Grey62f4fa32023-03-07 13:16:06 +000036 '';
37 home.file.".config/prelaunch/desktop-portals.sh".executable = true;
38
39 home.file.".xinitrc".text = ''
40 for file in ~/.config/prelaunch/*; do
41 $file &
42 done
Skyler Grey51a0c612022-11-05 09:59:04 +000043 ${home.xsession.windowManager.command}
Skyler Greye2ec0de2022-11-02 08:07:25 +000044 '';
45 };
46 config.services.xserver = {
Skyler Greyb43ac6b2022-10-31 00:48:34 +000047 enable = true;
Skyler Greye2ec0de2022-11-02 08:07:25 +000048 displayManager.startx.enable = true;
Skyler Greyb43ac6b2022-10-31 00:48:34 +000049 };
50}