Files
NixMachines/machines/universedesktop/desktop/dwl.nix

96 lines
2.8 KiB
Nix

{ config, pkgs, lib, ... }: let
launch_emacs = pkgs.writeScript "emacsclient-or-start" ''
#!${pkgs.bash}/bin/bash
emacsclient --create-frame --alternate-editor=""
'';
in {
imports = [
./wayland.nix
];
nixpkgs.overlays = [
(final: prev: {
dwl = prev.dwl.overrideAttrs (old: let
dwl-patches = pkgs.fetchgit {
url = "https://codeberg.org/dwl/dwl-patches.git";
rev = "7f93815e9c9d50add8493e680b3057ed0cc6e8a0";
hash = "sha256-LK1+WjAlguBvITPyS4oHXW5bNP19WUEfo87GFmyv8Js=";
};
patches = let
dwl-patch = p: "${dwl-patches}/patches/${p}/${p}.patch";
in [
(dwl-patch "ipc")
(dwl-patch "restore-monitor")
(dwl-patch "regexrules")
(dwl-patch "autostart")
];
in {
version = "10-05-2024";
src = final.fetchFromGitea {
domain = "codeberg.org";
owner = "dwl";
repo = "dwl";
rev = "9825c26cdd5dfed34022b77a8936c5d8f485e134";
hash = "sha256-p7BhCbCduMNTEK5DYNGBYXf+9WU6WlRvR9VdOuSTrVU=";
};
patches = (old.patches or []) ++ patches;
postPatch = ''
export termcmd=${pkgs.foot}/bin/foot
export editcmd=${launch_emacs}
export menucmd=${pkgs.fuzzel}/bin/fuzzel
export barcmd=${pkgs.waybar}/bin/waybar
export playcmd=${pkgs.writeScript "playerctl-play-pause" ''
#!${pkgs.bash}/bin/bash
${pkgs.playerctl}/bin/playerctl play-pause
''}
export scrncmd=${pkgs.writeScript "screenshot-region" ''
#!${pkgs.bash}/bin/bash
${pkgs.slurp}/bin/slurp | ${pkgs.grim}/bin/grim -g - - | ${pkgs.wl-clipboard}/bin/wl-copy
''}
substituteAll ${./dwl/config.def.h} ./config.def.h
'';
postInstall = ''
chmod ugo+x $out/share/wayland-sessions/dwl.desktop
'';
passthru.providedSessions = ["dwl"];
});
})
];
environment.sessionVariables = {
# Breaks WebCord
# NIXOS_OZONE_WL=1;
WLR_NO_HARDWARE_CURSORS=1;
SDL_VIDEODRIVER="wayland";
QT_QPA_PLATFORM="wayland-egl";
QT_WAYLAND_DISABLE_WINDOW_DECORATIONS="1";
__JAVA_AWT_WM_NONREPARENTING=1;
# Bug with Wayland: Fixed in 23.1
# Causes firefox & thunderbird to crash
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21646/diffs?commit_id=ee5d2250fd159689aae3f7d632a6226971bea85c
MOZ_ENABLE_WAYLAND=0;
GTK_THEME="Adwaita-dark";
};
xdg.portal.wlr = {
enable = true;
settings = {
screencast = {
output_name = "DP-2";
max_fps = 30;
chooser_type = "simple";
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
};
};
};
environment.systemPackages = with pkgs; [
dwl
waybar
foot
pwvucontrol
];
}