From 42a0703b7b296853bab0db96606040b09618bff9 Mon Sep 17 00:00:00 2001 From: Gregor Grigorjan Date: Tue, 11 Mar 2025 20:10:57 +0200 Subject: [PATCH] fix(hyprland): screenshare Probably had to do with bitdepth of 10 not working with Discord --- modules/nixos/desktop/hyprland/default.nix | 35 ++++++-------------- modules/nixos/desktop/hyprland/hyprland.conf | 2 +- modules/nixos/programs/firefox/default.nix | 2 -- 3 files changed, 11 insertions(+), 28 deletions(-) diff --git a/modules/nixos/desktop/hyprland/default.nix b/modules/nixos/desktop/hyprland/default.nix index c82e8679..b442e99a 100644 --- a/modules/nixos/desktop/hyprland/default.nix +++ b/modules/nixos/desktop/hyprland/default.nix @@ -21,31 +21,10 @@ in }; config = mkIf cfg.enable { - programs.hyprland = { - enable = true; - }; - - xdg.portal = { - enable = true; - - # xdg-desktop-portal 1.17 reworked how portal implementations are loaded, you - # should either set `xdg.portal.config` or `xdg.portal.configPackages` - # to specify which portal backend to use for the requested interface. - - # https://github.com/flatpak/xdg-desktop-portal/blob/1.18.1/doc/portals.conf.rst.in + programs.hyprland.enable = true; - # If you simply want to keep the behaviour in < 1.17, which uses the first - # portal implementation found in lexicographical order, use the following: - - # xdg.portal.config.common.default = "*"; - config.common.default = "*"; - - # See https://github.com/NixOS/nixpkgs/issues/239886 - # Enable xdg-desktop-portal-gtk unless we already have it from Gnome DE - extraPortals = lib.optionals (!config.services.xserver.desktopManager.gnome.enable) [ - pkgs.xdg-desktop-portal-gtk - ]; - }; + # Fixes bugs I guess? https://github.com/NixOS/nixpkgs/issues/160923 + xdg.portal.xdgOpenUsePortal = true; elementary = { services.udiskie = enabled; @@ -53,13 +32,18 @@ in desktop = { hyprland.extraHomeManagerOptions = { enable = true; + package = null; + portalPackage = null; extraConfig = let applyVibrance = '' exec-once = ${lib.getExe pkgs.hyprshade} on vibrance ''; + screenshareDiscord = '' + exec-once = ${lib.getExe pkgs.kdePackages.xwaylandvideobridge} + ''; in - builtins.readFile ./hyprland.conf + applyVibrance; + builtins.readFile ./hyprland.conf + applyVibrance + screenshareDiscord; }; addons = { waybar = enabled // { @@ -81,6 +65,7 @@ in }; home.sessionVariables = { + MOZ_ENABLE_WAYLAND = 1; WLR_NO_HARDWARE_CURSORS = 1; # FIXME: remove when https://github.com/nix-community/home-manager/issues/4486 is fixed NIXOS_OZONE_WL = 1; diff --git a/modules/nixos/desktop/hyprland/hyprland.conf b/modules/nixos/desktop/hyprland/hyprland.conf index b8a03168..15e328b9 100644 --- a/modules/nixos/desktop/hyprland/hyprland.conf +++ b/modules/nixos/desktop/hyprland/hyprland.conf @@ -1,5 +1,5 @@ # Prefer high refresh rate -monitor=,highrr,auto,1,bitdepth,10 +monitor=,highrr,auto,1,bitdepth,8 input { # 0 - Cursor movement will not change focus. diff --git a/modules/nixos/programs/firefox/default.nix b/modules/nixos/programs/firefox/default.nix index 950b78a2..114ce2ff 100644 --- a/modules/nixos/programs/firefox/default.nix +++ b/modules/nixos/programs/firefox/default.nix @@ -19,8 +19,6 @@ cfg = config.elementary.programs.firefox; in mkIf cfg.enable { - elementary.home.sessionVariables.MOZ_ENABLE_WAYLAND = 1; - elementary.home.programs.firefox = { enable = true; package = pkgs.firefox-wayland;