From 5add4bae94e334965010d3251b4767b33819ebd8 Mon Sep 17 00:00:00 2001 From: Antoine Vaure Date: Sun, 22 Dec 2024 21:16:10 +0100 Subject: [PATCH] hyprland portal on allegro --- home.nix | 5 +++- hyprland.nix | 70 +++++++++++++++++++++++++++++++++++++--------------- ui.nix | 39 +++++++++++++++-------------- 3 files changed, 74 insertions(+), 40 deletions(-) diff --git a/home.nix b/home.nix index c2db8f8..e2ad373 100644 --- a/home.nix +++ b/home.nix @@ -139,7 +139,10 @@ QT_AUTO_SCREEN_SCALE_FACTOR = "1"; WLR_NO_HARDWARE_CURSORS = "0"; XCURSOR_SIZE = "24"; - } // (if variant == "allegro" then { TMPDIR = "/home/${username}/tmp"; } else {}); + } // (if variant == "allegro" then { + TMPDIR = "/home/${username}/tmp"; + GSETTINGS_SCHEMA_DIR = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/gsettings-desktop-schemas-47.1/glib-2.0/schemas"; + } else {}); home.keyboard.options = [ "caps:escape" diff --git a/hyprland.nix b/hyprland.nix index 46ddd90..51073a6 100644 --- a/hyprland.nix +++ b/hyprland.nix @@ -1,22 +1,49 @@ { config, lib, pkgs, pkgs-unstable, pkgs-24_05, variant, ... }: { - home.packages = with pkgs; [ - # xdg-desktop-portal - # xdg-desktop-portal-gtk - xdg-desktop-portal-hyprland - # xwayland - ]; + xdg = lib.attrsets.optionalAttrs (variant == "allegro") { + configFile."systemd/user/dbus-broker.service".source = + "${pkgs.dbus-broker}/share/systemd/user/dbus-broker.service"; + configFile."systemd/user/at-spi-dbus-bus.service".source = + "${pkgs.at-spi2-core}/lib/systemd/user/at-spi-dbus-bus.service"; + dataFile."dbus-1/services/org.a11y.Bus.service".source = + "${pkgs.at-spi2-core}/share/dbus-1/services/org.a11y.Bus.service"; + dataFile."dbus-1/accessibility-services/org.a11y.atspi.Registry.service".source = + "${pkgs.at-spi2-core}/share/dbus-1/accessibility-services/org.a11y.atspi.Registry.service"; - # xdg.portal = { - # enable = true; - # extraPortals = [ - # pkgs.lxqt.xdg-desktop-portal-lxqt - # pkgs.xdg-desktop-portal-kde - # ]; - # config = { - # hyprland = { default = [ "lxqt,hyprland" ]; }; - # common = { default = [ "kde,gtk" ]; }; - # }; - # }; + configFile."systemd/user/xdg-desktop-portal.service".source = + "${pkgs.xdg-desktop-portal}/lib/systemd/user/xdg-desktop-portal.service"; + configFile."systemd/user/xdg-desktop-portal-gtk.service".source = + "${pkgs.xdg-desktop-portal-gtk}/lib/systemd/user/xdg-desktop-portal-gtk.service"; + configFile."systemd/user/xdg-desktop-portal-hyprland.service".source = + "${pkgs.xdg-desktop-portal-hyprland}/lib/systemd/user/xdg-desktop-portal-hyprland.service"; + dataFile."share/dbus-1/services/org.freedesktop.impl.portal.desktop.hyprland.service".source = + "${pkgs.xdg-desktop-portal-hyprland}share/dbus-1/services/org.freedesktop.impl.portal.desktop.hyprland.service"; + dataFile."systemd/user/pipewire.service".source = + "${pkgs.pipewire}/share/systemd/user/pipewire.service"; + dataFile."systemd/user/pipewire-pulse.service".source = + "${pkgs.pipewire}/share/systemd/user/pipewire-pulse.service"; + dataFile."systemd/user/filter-chain.service".source = + "${pkgs.pipewire}/share/systemd/user/filter-chain.service"; + + dataFile."systemd/user/pipewire.socket".source = + "${pkgs.pipewire}/share/systemd/user/pipewire.socket"; + dataFile."systemd/user/pipewire-pulse.socket".source = + "${pkgs.pipewire}/share/systemd/user/pipewire-pulse.socket"; + + portal = { + enable = true; + + # xdgOpenUsePortal = true; + extraPortals = + [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-hyprland ]; + configPackages = + [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-hyprland ]; + # config.common.default = "*"; + config = { + hyprland = { default = [ "gtk,hyprland" ]; }; + common = { default = [ "gtk,hyprland" ]; }; + }; + }; + }; home.sessionVariables = { NIXOS_OZONE_WL = "1"; @@ -28,15 +55,15 @@ XDG_SESSION_DESKTOP = "Hyprland"; QT_AUTO_SCREEN_SCALE_FACTOR = "1"; XCURSOR_SIZE = "24"; - DXVK_FILTER_DEVICE_NAME="NVIDIA"; + DXVK_FILTER_DEVICE_NAME = "NVIDIA"; + SYSTEMD_PAGER = ""; }; wayland.windowManager.hyprland = { enable = true; - package = if variant == "allegro" then pkgs.hyprland else pkgs.hyprland; + systemd.enable = true; xwayland.enable = true; - settings = { debug = { disable_logs = false; @@ -355,6 +382,9 @@ '' } + env = HYPRCURSOR_THEME,Hackneyed + env = HYPRCURSOR_SIZE,24 + windowrule=tile,Nsxiv exec = pkill swaybg; ${swaybgScript} diff --git a/ui.nix b/ui.nix index 068d96d..a5307ff 100644 --- a/ui.nix +++ b/ui.nix @@ -42,7 +42,6 @@ in xsession.enable = true; - fonts.fontconfig.enable = true; fonts.fontconfig.defaultFonts = { serif = [ "Gentium Plus" ]; @@ -102,8 +101,6 @@ in }; }; - - xdg = { mimeApps.defaultApplications."TerminalEmulator" = "Alacritty.desktop"; }; @@ -209,31 +206,35 @@ in package = pkgs.inter; name = "Inter"; }; - theme = { - name = "Catppuccin-Latte-Compact-Pink-Light"; - # name = "Catppuccin-Mocha-Compact-Pink-Dark"; - package = pkgs.catppuccin-gtk.override { - accents = [ "pink" ]; - size = "compact"; - tweaks = [ ]; - variant = "latte"; - }; - }; - iconTheme = { - name = "Adwaita"; - package = pkgs.adwaita-icon-theme; - }; + # theme = { + # name = "Catppuccin-Latte-Compact-Pink-Light"; + # # name = "Catppuccin-Mocha-Compact-Pink-Dark"; + # package = pkgs.catppuccin-gtk.override { + # accents = [ "pink" ]; + # size = "compact"; + # tweaks = [ ]; + # variant = "latte"; + # }; + # }; + # iconTheme = { + # name = "Adwaita"; + # package = pkgs.adwaita-icon-theme; + # }; cursorTheme = { name = "Hackneyed"; package = pkgs.hackneyed; }; }; - services.darkman = { + services.darkman = let + reload-hyprland = '' + hyprctl reload + ''; + in { lightModeScripts = { gtk-theme = '' ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/interface/color-scheme "'prefer-light'" - ''; + ''; set-background = '' rm -f ~/.local/share/bg/* ln -rs ~/.local/share/bg-light.* ~/.local/share/bg/