From c55c2c1ee845966676f8838f6a666b8afa227601 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Tue, 8 Jul 2025 16:20:21 +0200 Subject: [PATCH 1/6] programs/brave: init --- modules/programs/gui/brave/module.nix | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 modules/programs/gui/brave/module.nix diff --git a/modules/programs/gui/brave/module.nix b/modules/programs/gui/brave/module.nix new file mode 100644 index 0000000..7f448bd --- /dev/null +++ b/modules/programs/gui/brave/module.nix @@ -0,0 +1,37 @@ +{pkgs, ...}: { + programs.chromium = { + enable = true; + extraOpts = { + BraveRewardsDisabled = true; + BraveWalletDisabled = true; + PromotionsEnabled = false; + TorDisabled = true; + BraveVPNDisabled = true; + BraveAIChatEnabled = false; + BraveSyncUrl = ""; + PrivacySandboxFingerprintingProtectionEnabled = true; + PrivacySandboxIpProtectionEnabled = true; + DefaultSearchProviderEnabled = true; + DefaultSearchProviderName = "Kagi"; + DefaultSearchProviderSearchURL = "https://kagi.com/search?q={searchTerms}"; + DefaultSearchProviderNewTabURL = "https://kagi.com"; + SearchSuggestEnabled = true; + DefaultSearchProviderSuggestURL = "https://kagi.com/api/autosuggest?q={searchTerms}"; + PasswordManagerEnabled = false; + BlockThirdPartyCookies = true; + }; + extensions = [ + # NoScript + "doojmbjmlfjjnbmnoijecmcbfeoakpjm" + # KeePassXC-Browser + "oboonakemofpalcgghocfoadofidjkkk" + # Catppuccin Mocha + "bkkmolkhemgaeaeggcmfbghljjjoofoh" + # Dark Reader + "eimadpbcbfnmbkopoojfekhnkhdbieeh" + ]; + }; + environment.systemPackages = [ + (pkgs.brave.override {vulkanSupport = true;}) + ]; +} From 059c40e6a22af0dae9222226d5c4097b93a4c9f2 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Tue, 8 Jul 2025 16:20:21 +0200 Subject: [PATCH 2/6] programs/brave: init --- modules/programs/gui/brave/module.nix | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 modules/programs/gui/brave/module.nix diff --git a/modules/programs/gui/brave/module.nix b/modules/programs/gui/brave/module.nix new file mode 100644 index 0000000..7f448bd --- /dev/null +++ b/modules/programs/gui/brave/module.nix @@ -0,0 +1,37 @@ +{pkgs, ...}: { + programs.chromium = { + enable = true; + extraOpts = { + BraveRewardsDisabled = true; + BraveWalletDisabled = true; + PromotionsEnabled = false; + TorDisabled = true; + BraveVPNDisabled = true; + BraveAIChatEnabled = false; + BraveSyncUrl = ""; + PrivacySandboxFingerprintingProtectionEnabled = true; + PrivacySandboxIpProtectionEnabled = true; + DefaultSearchProviderEnabled = true; + DefaultSearchProviderName = "Kagi"; + DefaultSearchProviderSearchURL = "https://kagi.com/search?q={searchTerms}"; + DefaultSearchProviderNewTabURL = "https://kagi.com"; + SearchSuggestEnabled = true; + DefaultSearchProviderSuggestURL = "https://kagi.com/api/autosuggest?q={searchTerms}"; + PasswordManagerEnabled = false; + BlockThirdPartyCookies = true; + }; + extensions = [ + # NoScript + "doojmbjmlfjjnbmnoijecmcbfeoakpjm" + # KeePassXC-Browser + "oboonakemofpalcgghocfoadofidjkkk" + # Catppuccin Mocha + "bkkmolkhemgaeaeggcmfbghljjjoofoh" + # Dark Reader + "eimadpbcbfnmbkopoojfekhnkhdbieeh" + ]; + }; + environment.systemPackages = [ + (pkgs.brave.override {vulkanSupport = true;}) + ]; +} From adc4bd9f3c903edbbe5aee1a8940617e01195971 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Tue, 8 Jul 2025 17:15:27 +0200 Subject: [PATCH 3/6] wms/wayland: fix portals, set kde portal as default for FileChooser --- modules/wms/wayland/module.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/wms/wayland/module.nix b/modules/wms/wayland/module.nix index ac135a3..3dbc8c6 100644 --- a/modules/wms/wayland/module.nix +++ b/modules/wms/wayland/module.nix @@ -23,6 +23,7 @@ in { extraPortals = [ pkgs.xdg-desktop-portal-gtk + pkgs.kdePackages.xdg-desktop-portal-kde ] ++ ( optional config.programs.niri.enable @@ -33,10 +34,22 @@ in { pkgs.xdg-desktop-portal-hyprland ); config = { - common.default = mkIf config.programs.hyprland.enable ["*"]; + hyprland.default = mkIf config.programs.hyprland.enable ["*"]; + niri = { + default = [ + "gnome" + "gtk" + "kde" + ]; + # Portal API reference: + # https://docs.flatpak.org/en/latest/portal-api-reference.html + # "org.freedesktop.impl.portal.Access" = ["kde"]; + # "org.freedesktop.impl.portal.Notification" = ["kde"]; + "org.freedesktop.impl.portal.FileChooser" = ["kde"]; + }; }; configPackages = [ - pkgs.niri + # pkgs.niri ]; }; } From c0aa4f2f8f1ebd4ac1f6a51c8bee785299fa206a Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Tue, 8 Jul 2025 22:57:43 +0200 Subject: [PATCH 4/6] niri/config: add window rules to float windows; fix screencasting --- modules/wms/wayland/niri/config.kdl | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/wms/wayland/niri/config.kdl b/modules/wms/wayland/niri/config.kdl index 180da60..d87585a 100644 --- a/modules/wms/wayland/niri/config.kdl +++ b/modules/wms/wayland/niri/config.kdl @@ -115,6 +115,32 @@ window-rule { block-out-from "screen-capture" open-on-workspace "keepassxc" } +window-rule { + match app-id="unset" + open-floating true +} +window-rule { + match app-id="org.gnome.Nautilus" + open-floating true +} +window-rule { + match app-id="org.freedesktop.impl.portal.desktop.kde" + open-floating true +} + +// Fix discord screencasting +debug { + wait-for-frame-completion-in-pipewire +} +// Always focus the KeePassXC-Browser unlock dialog. +// +// This dialog opens parented to the KeePassXC window rather than the browser, +// so it doesn't get auto-focused by default. +window-rule { + match app-id="^org\\.keepassxc\\.KeePassXC$" title="^KeePassXC - Browser Access Request$" + match app-id="^org\\.keepassxc\\.KeePassXC$" title="^Unlock Database - KeePassXC$" + open-focused true +} hotkey-overlay { skip-at-startup } From 2cf1b0368545c20dc532dbaf53d753ef0d018440 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Tue, 8 Jul 2025 22:58:09 +0200 Subject: [PATCH 5/6] services/wayneko: add catppuccin theming --- modules/services/wayneko/module.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/services/wayneko/module.nix b/modules/services/wayneko/module.nix index 2eb2a49..b028bf8 100644 --- a/modules/services/wayneko/module.nix +++ b/modules/services/wayneko/module.nix @@ -28,7 +28,13 @@ in { after = ["graphical-session.target"]; serviceConfig = { - ExecStart = "${getExe custom-wayneko} --layer top --type striped"; + ExecStart = '' + ${getExe custom-wayneko}\ + --layer top\ + --type striped\ + --background-colour 0xb4befe\ + --outline-colour 0x1e1e2e + ''; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; From ab64591da8cfa1732b22092110f029db3167beca Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Tue, 8 Jul 2025 22:58:26 +0200 Subject: [PATCH 6/6] wayland/niri: switch to unstable niri with reload patch I need my hot reloading. --- modules/wms/wayland/niri/module.nix | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/modules/wms/wayland/niri/module.nix b/modules/wms/wayland/niri/module.nix index e7e54a7..989a6f8 100644 --- a/modules/wms/wayland/niri/module.nix +++ b/modules/wms/wayland/niri/module.nix @@ -21,8 +21,8 @@ new-swww = (pkgs.swww.override {inherit rustPlatform;}).overrideAttrs (prev: { src = pkgs.fetchFromGitHub { inherit (prev.src) owner repo; - rev = "398a4048e389341dfd55285c53518a8ea3930ec4"; - hash = "sha256-ZAC5TbkshztW2IeDorhaxUmVCHf2tJCSGIGHSNl91Ns"; + rev = "805a355da574fed46e664606660e2499f02e2174"; + hash = "sha256-+sdV7NFueCeBLrsl7lrqzlG5tPNqDe/zlcIb8TYxQl8="; }; doInstallCheck = false; @@ -31,6 +31,24 @@ hash = "sha256-YH2gcy/8EtUmTHzwt38bBOFX3saN1wHIGQ5/eWqvSeM="; }; }); + + patched-niri = pkgs.niri.overrideAttrs (prev: { + src = pkgs.fetchFromGitHub { + inherit (prev.src) owner repo; + rev = "37458d94b288945f6cfbd3c5c233f634d59f246c"; + hash = "sha256-F5iVU/hjoSHSSe0gllxm0PcAaseEtGNanYK5Ha3k2Tg="; + }; + cargoDeps = pkgs.rustPlatform.fetchCargoVendor { + inherit (patched-niri) src; + hash = "sha256-fT0L/OTlQ9BnKHnckKsLi+tN+oevEU+eJWrh1INqQhA="; + }; + patches = [ + (pkgs.fetchpatch { + url = "https://github.com/YaLTeR/niri/commit/ab71a6c553f9c53ea484ec6dedc5dcede708929f.diff"; + hash = "sha256-C3TJIK5/YTAcmdSP6NyOwX+1oA36u6nrMuJuVYIvAHQ="; + }) + ]; + }); in { options.modules.desktops.niri.enable = mkEnableOption "Niri, a scolling tiling wayland compositor"; @@ -40,7 +58,7 @@ in { { programs.niri = { enable = true; - package = pkgs.niri; + package = patched-niri; }; # The niri module auto enables the gnome keyring, # which is something I direly want to avoid.