nixos/modules/dwm.nix

83 lines
1.9 KiB
Nix
Raw Normal View History

2024-06-29 03:22:34 +00:00
{ lib, config, pkgs, inputs, ... }:
2024-05-31 05:58:55 +00:00
let
2024-10-09 23:33:14 +00:00
inherit (pkgs) fetchpatch;
2024-10-10 02:51:25 +00:00
inherit (lib) getExe;
2024-05-31 05:58:55 +00:00
cfg = config.snowhawk.dwm;
in
{
options.snowhawk.dwm = {
enable = lib.mkEnableOption "dwm";
};
config = lib.mkIf cfg.enable {
2024-06-29 01:35:31 +00:00
# Enable the X11 windowing system.
services.xserver.enable = true;
2024-09-14 02:41:48 +00:00
# Configure keymap in X11
services.xserver = {
xkb = {
layout = "us";
variant = "";
};
};
2024-05-31 05:58:55 +00:00
services.xserver.windowManager.dwm = {
enable = true;
2024-06-07 01:42:54 +00:00
package = pkgs.dwm.overrideAttrs (oldAttrs: {
patches = [
2024-10-09 23:33:14 +00:00
# Systray patch
(fetchpatch {
url = "https://dwm.suckless.org/patches/systray/dwm-systray-20230922-9f88553.diff";
hash = "sha256-KeNXvXTxgAFomP/68hljeVLHd9JvXy8WHQ+66nQZCKE=";
})
2024-06-07 01:42:54 +00:00
../home/dwm/config.def.h-6.5.diff
];
});
2024-05-31 05:58:55 +00:00
};
2024-05-31 08:50:59 +00:00
2024-06-26 09:09:59 +00:00
services.picom = {
enable = true;
fade = false;
};
2024-06-28 02:22:58 +00:00
systemd.user.services.xrootdatetime = {
2024-06-28 03:46:23 +00:00
script = ''
while true; do
2024-10-17 00:28:51 +00:00
if [[ "$(${getExe pkgs.pamixer} --default-source --get-mute)" == "true" ]]; then
2024-10-15 21:42:31 +00:00
mutedString="Mic Muted "
else
mutedString=""
fi
dateTime=$(date +"<-- %A, %B %d -- %H:%M -->")
${getExe pkgs.xorg.xsetroot} -name "$mutedString$dateTime"
sleep 1
2024-06-28 03:46:23 +00:00
done
'';
2024-06-28 02:22:58 +00:00
wantedBy = [ "graphical-session.target" ];
2024-10-18 19:49:43 +00:00
after = [ "pipewire.service" ];
2024-10-18 18:55:38 +00:00
serviceConfig.Restart = "on-failure";
2024-06-28 02:22:58 +00:00
};
2024-06-29 02:26:14 +00:00
systemd.user.services.fehbg = {
script = ''
2024-10-10 02:51:25 +00:00
${getExe pkgs.feh} --no-fehbg --bg-scale '${inputs.backgrounds}/bg-none-nord.webp'
2024-06-29 02:26:14 +00:00
'';
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
};
2024-05-31 08:50:59 +00:00
environment.systemPackages = with pkgs; [
dmenu
2024-06-30 08:24:09 +00:00
xclip
2024-05-31 08:50:59 +00:00
];
home-manager.sharedModules = [
./home/dwm.nix
{ snowhawk.dwm.enable = lib.mkDefault true; }
];
2024-05-31 05:58:55 +00:00
};
}