Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
46cebeb8fd
|
|||
|
f35037387c
|
@@ -52,6 +52,12 @@ in
|
|||||||
# Mute the harmless "Wayland does not support QWindow::requestActivate()"
|
# Mute the harmless "Wayland does not support QWindow::requestActivate()"
|
||||||
# spam Qt apps (keepassxc) print; scoped to that one log category only.
|
# spam Qt apps (keepassxc) print; scoped to that one log category only.
|
||||||
QT_LOGGING_RULES = "qt.qpa.wayland=false";
|
QT_LOGGING_RULES = "qt.qpa.wayland=false";
|
||||||
|
# Run Chromium/Electron apps (brave, signal, grayjay's webview) natively on
|
||||||
|
# Wayland instead of XWayland: nixpkgs' chromium/electron wrappers read this
|
||||||
|
# and inject the Ozone Wayland flags. This is a Wayland-only (Hyprland)
|
||||||
|
# session, so XWayland is pure downside (blurry fractional scaling, extra
|
||||||
|
# hop). Override per-app with --ozone-platform=x11 if one misbehaves.
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
# GUI helper for ssh passphrase/PIN prompts (see sshAskpass above). Not
|
# GUI helper for ssh passphrase/PIN prompts (see sshAskpass above). Not
|
||||||
# forced: with a tty ssh still prompts inline; the helper is used only when a
|
# forced: with a tty ssh still prompts inline; the helper is used only when a
|
||||||
# caller sets SSH_ASKPASS_REQUIRE (e.g. a headless/agent context).
|
# caller sets SSH_ASKPASS_REQUIRE (e.g. a headless/agent context).
|
||||||
@@ -282,6 +288,22 @@ in
|
|||||||
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# The home-manager Hyprland module below enables xdg.portal and pins the
|
||||||
|
# portal search dir (NIX_XDG_DESKTOP_PORTAL_DIR) to this user profile, adding
|
||||||
|
# only the Hyprland backend — which implements Screenshot/ScreenCast/
|
||||||
|
# GlobalShortcuts but not FileChooser. Add the GTK portal here (system-level
|
||||||
|
# extraPortals aren't in the pinned dir, so they're never seen) and route
|
||||||
|
# FileChooser to it, else file dialogs in Chromium/Electron apps (signal,
|
||||||
|
# brave) fail with a DBus "No such interface
|
||||||
|
# org.freedesktop.portal.FileChooser" error.
|
||||||
|
xdg.portal = {
|
||||||
|
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
config.common = {
|
||||||
|
default = [ "hyprland" "gtk" ];
|
||||||
|
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configType = "hyprlang";
|
configType = "hyprlang";
|
||||||
|
|||||||
+4
-1
@@ -96,7 +96,10 @@
|
|||||||
# so the Secret Service is open without a second passphrase.
|
# so the Secret Service is open without a second passphrase.
|
||||||
security.pam.services.greetd.enableGnomeKeyring = true;
|
security.pam.services.greetd.enableGnomeKeyring = true;
|
||||||
|
|
||||||
# XDG portals (screen sharing, file pickers, and so on).
|
# XDG portals (screen sharing, file pickers, and so on). The GTK portal (for
|
||||||
|
# file dialogs) is added at the home-manager layer, not here: home-manager's
|
||||||
|
# Hyprland module pins the portal search dir to the user profile, so a portal
|
||||||
|
# listed in this system-level extraPortals is never seen. See modules/home.nix.
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
||||||
|
|||||||
Reference in New Issue
Block a user