diff --git a/flake.nix b/flake.nix index 21b1c7b..251eabc 100644 --- a/flake.nix +++ b/flake.nix @@ -51,12 +51,11 @@ overlays = [ nixgl.overlay ]; }; extraSpecialArgs = { - inherit stateVersion inputs nixgl; + inherit stateVersion inputs; hostname = hostname; username = username; }; modules = [ - { nixpkgs.overlays = [ nixgl.overlay ];} ./home-manager/default.nix ]; }; diff --git a/home-manager/default.nix b/home-manager/default.nix index f70cd47..befa969 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -1,4 +1,4 @@ -{ inputs, lib, stateVersion, username, hostname, nixgl, ... }: +{ inputs, lib, stateVersion, username, hostname, ... }: { imports = [ inputs.sops-nix.homeManagerModules.sops @@ -12,9 +12,7 @@ nixpkgs.config.allowUnfree = true; programs.home-manager.enable = true; fonts.fontconfig.enable = true; - nixGL.packages = nixgl.packages; - nixGL.defaultWrapper = "mesa"; - nixGL.installScripts = ["mesa"]; + home = { inherit stateVersion username; homeDirectory = "/home/${username}"; diff --git a/hosts/rick/home-config.nix b/hosts/rick/home-config.nix index a72cdf0..5a6295c 100644 --- a/hosts/rick/home-config.nix +++ b/hosts/rick/home-config.nix @@ -24,8 +24,14 @@ kdenlive.enable = false; mpv.enable = false; }; - web.firefox.enable = true; - web.qutebrowser.enable = true; + web.firefox = { + enable = true; + enableNixGL = true; + }; + web.qutebrowser = { + enable = true; + enableNixGL = true; + }; web.webcord.enable = false; gaming.lutris.enable = false; desktop.sway = { diff --git a/hosts/work/home-config.nix b/hosts/work/home-config.nix index 0155435..0712e15 100644 --- a/hosts/work/home-config.nix +++ b/hosts/work/home-config.nix @@ -2,7 +2,10 @@ config.modules = { application = { zathura.enable = true; - foot.enable = true; + foot = { + enable = true; + font-size = "10.5"; + }; }; audio.cmus.enable = true; cli = { @@ -30,22 +33,9 @@ zellij.enable = true; zsh.enable = true; }; - desktop.sway = { - enable = true; - kanshi = true; - swaylock.useNullPackage = true; - waybar = { - laptop = true; - gpuThermal.enable = false; - cpuThermal = { - hwmonPathAbs = "/sys/devices/platform/coretemp.0/hwmon/"; - inputFilename = "temp1_input"; - }; - }; - xdg.useDistributionPortals = true; - }; web.firefox = { enable = true; + enableNixGL = true; optionalExtensions = with pkgs.nur.repos.rycee.firefox-addons; [ okta-browser-plugin ]; diff --git a/hosts/work/includes/home-manager.nix b/hosts/work/includes/home-manager.nix index 92fc843..1d1c542 100644 --- a/hosts/work/includes/home-manager.nix +++ b/hosts/work/includes/home-manager.nix @@ -1,4 +1,4 @@ -{ pkgs, config, ... }: +{ pkgs, ... }: { home.packages = with pkgs; [ dejavu_fonts @@ -13,23 +13,7 @@ noto-fonts-cjk-sans slurp wl-clipboard - (config.lib.nixGL.wrap ungoogled-chromium) - (config.lib.nixGL.wrap slack) ]; targets.genericLinux.enable = true; xdg.mime.enable = true; - wayland.windowManager.sway.config.input = { - "1:1:AT_Translated_Set_2_keyboard" = { - xkb_layout = "us"; - xkb_variant = "altgr-intl"; - }; - "65261:8800:KBDFans_DZ60" = { - xkb_layout = "us"; - xkb_variant = "altgr-intl"; - }; - }; - - home.sessionVariables = { - SSH_AUTH_SOCK = ''$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh''; - }; } diff --git a/modules/home-manager/cli/neovim/default.nix b/modules/home-manager/cli/neovim/default.nix index a86a177..3c865c1 100644 --- a/modules/home-manager/cli/neovim/default.nix +++ b/modules/home-manager/cli/neovim/default.nix @@ -25,7 +25,7 @@ let "vim.lsp.enable('${lib.removeSuffix ".lua" k}')" ) (builtins.readDir ./files/lsp); - ## Tony plugins to have a proper helm linting. +## Tony plugins to chave a proper helm linting. nvim-k8s-lsp = pkgs.vimUtils.buildVimPlugin { pname = "nvim-k8s-lsp"; version = "main"; diff --git a/modules/home-manager/desktop/sway/default.nix b/modules/home-manager/desktop/sway/default.nix index 643e192..57a6c16 100644 --- a/modules/home-manager/desktop/sway/default.nix +++ b/modules/home-manager/desktop/sway/default.nix @@ -13,26 +13,6 @@ in description = "configure laptop mode"; }; - swaylock.useNullPackage = mkOption { - type = types.bool; - default = false; - description = '' - Use null package to not install swaylock with Nix - Useful when using Home-Manager on third-party distribution to avoid - problem with PAM - ''; - }; - - xdg.useDistributionPortals = mkOption { - type = types.bool; - default = false; - description = '' - This prevent installing xdg-desktop-portal from nixpkgs. These - Useful when using Home-Manager on third-party distribution with old - version of portals (coucou Ubuntu LTS) - ''; - }; - wallpapers = { lockscreen = mkOption { type = types.str; @@ -134,7 +114,7 @@ in }; iconTheme = { name = "Papirus Dark"; - package = pkgs.papirus-icon-theme; + package = pkgs.papirus-icon-theme; }; font = { name = "Deja Vu Sans"; @@ -153,10 +133,8 @@ in }; }; + # Avoid pixelated effect for QT application with fractionnal scaling home.sessionVariables = { - # Use wayland for chrom{e|ium} based crap - NIXOS_OZONE_WL = "1"; - # Avoid pixelated effect for QT application with fractionnal scaling QT_SCALE_FACTOR_ROUNDING_POLICY = "RoundPreferFloor"; }; @@ -180,32 +158,6 @@ in desktop = "${config.home.homeDirectory}/documents"; publicShare = "${config.home.homeDirectory}/tmp/public"; }; - portal = mkIf (cfg.xdg.useDistributionPortals == false) { - enable = true; - extraPortals = with pkgs; [ - xdg-desktop-portal-wlr - xdg-desktop-portal-gtk - ]; - xdgOpenUsePortal = true; - config = { - sway = { - default = [ - "wlr" - "gtk" - ]; - }; - }; - }; }; - - # When using `useDistributionPackage`, create wlr configuration to let user - # choose the right screen. This is a workarount to not have to configure - # it manually. - home.file."${config.xdg.configHome}/xdg-desktop-portal-wlr/config".text = mkIf cfg.xdg.useDistributionPortals '' - [screencast] - max_fps=30 - chooser_type=simple - chooser_cmd=${pkgs.slurp}/bin/slurp -f %o -or - ''; }; } diff --git a/modules/home-manager/desktop/sway/includes/kanshi.nix b/modules/home-manager/desktop/sway/includes/kanshi.nix index 8376511..a0453e3 100644 --- a/modules/home-manager/desktop/sway/includes/kanshi.nix +++ b/modules/home-manager/desktop/sway/includes/kanshi.nix @@ -10,7 +10,7 @@ with lib; profile.name = "standalone"; profile.outputs = [ { - criteria = "eDP-1"; + criteria = "eDP-1"; scale = 1.33; status = "enable"; } @@ -20,13 +20,13 @@ with lib; profile.name = "home"; profile.outputs = [ { - criteria = "Iiyama North America PL2792UH 1166310803122"; + criteria = "Iiyama North America PL2792UH 1166310803122"; mode = "3840x2160"; position = "1235,0"; scale = 1.75; } - { - criteria = "Iiyama North America PL2792UH 1176923201598"; + { + criteria = "Iiyama North America PL2792UH 1176923201598"; mode = "3840x2160"; position = "0,0"; transform = "90"; @@ -42,16 +42,18 @@ with lib; profile.name = "work"; profile.outputs = [ { - criteria = "Iiyama North America PL2792QN 1179214201663"; - mode = "2560x1440"; - position = "1450,0"; - scale = 1.15; - } - { - criteria = "BOE 0x0A95 Unknown"; + criteria = "Iiyama North America PL2480H 11183M2807013"; mode = "1920x1080"; position = "0,0"; - scale = 1.325; + } + { + criteria = "Iiyama North America PL2480H 11183M2807016"; + mode = "1920x1080"; + position = "1920,0"; + } + { + criteria = "eDP-1"; + status = "disable"; } ]; } diff --git a/modules/home-manager/desktop/sway/includes/sway.nix b/modules/home-manager/desktop/sway/includes/sway.nix index f93d2c6..004322b 100644 --- a/modules/home-manager/desktop/sway/includes/sway.nix +++ b/modules/home-manager/desktop/sway/includes/sway.nix @@ -6,7 +6,6 @@ in { config = mkIf config.modules.desktop.sway.enable { wayland.windowManager.sway = { - package = config.lib.nixGL.wrap pkgs.sway; enable = true; wrapperFeatures.gtk = true; systemd.enable = true; @@ -76,7 +75,7 @@ in "${mod}+Alt+k" = "kill"; "${mod}+Alt+c" = "reload"; "${mod}+Alt+Backspace" = "exec swaynag -t warning -m 'Exit sway?' -B 'Yes' 'swaymsg exit'"; - "${mod}+Alt+l" = if cfg.swaylock.useNullPackage then "exec swaylock" else "exec ${pkgs.swaylock}/bin/swaylock"; + "${mod}+Alt+l" = "exec ${pkgs.swaylock}/bin/swaylock"; # Manage windows placement "${mod}+b" = "splith"; "${mod}+v" = "splitv"; diff --git a/modules/home-manager/desktop/sway/includes/swayidle.nix b/modules/home-manager/desktop/sway/includes/swayidle.nix index 577621c..1b22575 100644 --- a/modules/home-manager/desktop/sway/includes/swayidle.nix +++ b/modules/home-manager/desktop/sway/includes/swayidle.nix @@ -10,7 +10,7 @@ in timeouts = [ { timeout = 300; - command = if cfg.swaylock.useNullPackage then ''/usr/bin/swaylock -f'' else ''${pkgs.swaylock}/bin/swaylock -f''; + command = "${pkgs.swaylock}/bin/swaylock -f"; } { timeout = 600; @@ -21,11 +21,11 @@ in events = [ { event = "before-sleep"; - command = if cfg.swaylock.useNullPackage then ''/usr/bin/swaylock -f'' else ''${pkgs.swaylock}/bin/swaylock -f''; + command = "${pkgs.swaylock}/bin/swaylock -f"; } { event = "lock"; - command = if cfg.swaylock.useNullPackage then ''usr/bin/swaylock -f'' else ''${pkgs.swaylock}/bin/swaylock -f''; + command = "${pkgs.swaylock}/bin/swaylock -f"; } ]; }; diff --git a/modules/home-manager/desktop/sway/includes/swaylock.nix b/modules/home-manager/desktop/sway/includes/swaylock.nix index b0340ef..0bacc89 100644 --- a/modules/home-manager/desktop/sway/includes/swaylock.nix +++ b/modules/home-manager/desktop/sway/includes/swaylock.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, ... }: with lib; let cfg = config.modules.desktop.sway; @@ -6,10 +6,9 @@ in { config = mkIf config.modules.desktop.sway.enable { programs.swaylock = { - package = if cfg.swaylock.useNullPackage then null else pkgs.swaylock; enable = true; settings = { - image = if cfg.wallpapers.lockscreen != "" then "${cfg.wallpapers.lockscreen}" else false; + image = "${cfg.wallpapers.lockscreen}"; scaling = "center"; color = "000000"; indicator-radius = 70; @@ -23,7 +22,7 @@ in ring-wrong-color = "f268b3"; inside-wrong-color = "f268b3cc"; key-hl-color = "1cd180"; - caps-lock-key-hl-color = "1cd180"; + caps-lock-key-hl-color = "1cd180"; caps-lock-bs-hl-color = "f268b3"; bs-hl-color = "f268b3ff"; separator-color = "00000000"; diff --git a/modules/home-manager/desktop/sway/includes/waybar.nix b/modules/home-manager/desktop/sway/includes/waybar.nix index d46baf1..df1a1f1 100644 --- a/modules/home-manager/desktop/sway/includes/waybar.nix +++ b/modules/home-manager/desktop/sway/includes/waybar.nix @@ -1,4 +1,4 @@ -{lib, config, ...}: +{lib, config, ...}: with lib; let cfg = config.modules.desktop.sway; @@ -22,7 +22,7 @@ in "sway/mode" ]; modules-right = [ - "network" + "network" "custom/sep" ] ++ ( if cfg.waybar.laptop then [ @@ -38,15 +38,15 @@ in "memory" "cpu" "temperature" - "custom/sep" + "custom/sep" ] ++ ( if cfg.waybar.gpuThermal.enable then [ "temperature#gpu" "custom/sep" - ] + ] else [ ] - ) ++ + ) ++ [ "pulseaudio" "custom/sep" @@ -101,8 +101,8 @@ in "format-icons" = { "car" = ""; "default" = ""; - "hands-free" = "󰋎"; - "headphone" = "󰋋"; + "handsfree" = "󰋎"; + "headphones" = "󰋋"; "headset" = "󰋎"; "phone" = ""; "portable" = ""; diff --git a/modules/home-manager/web/firefox/default.nix b/modules/home-manager/web/firefox/default.nix index d52f8a9..191bdae 100644 --- a/modules/home-manager/web/firefox/default.nix +++ b/modules/home-manager/web/firefox/default.nix @@ -29,6 +29,11 @@ in description = "Optional Firefox Plugins to install"; }; + enableNixGL = mkOption { + type = types.bool; + default = false; + description = "Use NixGL to start Firefox"; + }; }; config = mkIf cfg.enable { programs.browserpass = { @@ -42,6 +47,24 @@ in "x-scheme-handler/about" = "firefox.desktop"; "x-scheme-handler/unknown" = "firefox.desktop"; }; + xdg.desktopEntries."firefox" = mkIf cfg.enableNixGL { + name = "Firefox NixGL Powered"; + exec = "${pkgs.nixgl.nixGLMesa}/bin/nixGLMesa firefox %U"; + icon = "firefox"; + terminal = false; + type = "Application"; + startupNotify = true; + actions = { + "new-private-window" = { + exec = "${pkgs.nixgl.nixGLMesa}/bin/nixGLMesa firefox --private-window %U"; + name = "New Private Window"; + }; + "new-window" = { + exec = "${pkgs.nixgl.nixGLMesa}/bin/nixGLMesa firefox --new-window %U"; + name = "New Window"; + }; + }; + }; xdg.configFile."tridactyl/tridactylrc".text = '' sanitize tridactyllocal tridactylsync @@ -70,13 +93,13 @@ in allExtensions = cfg.baseExtensions ++ cfg.optionalExtensions; in { enable = true; - package = config.lib.nixGL.wrap ( pkgs.wrapFirefox pkgs.firefox-unwrapped { + package = pkgs.wrapFirefox pkgs.firefox-unwrapped { nativeMessagingHosts = [ # Tridactyl native connector pkgs.tridactyl-native pkgs.browserpass ]; - }); + }; profiles.ephase = { id = 0; name = "ephase"; diff --git a/modules/home-manager/web/qutebrowser/default.nix b/modules/home-manager/web/qutebrowser/default.nix index b626027..81549e1 100644 --- a/modules/home-manager/web/qutebrowser/default.nix +++ b/modules/home-manager/web/qutebrowser/default.nix @@ -6,13 +6,35 @@ in { options.modules.web.qutebrowser = { enable = mkEnableOption "enable Qutebrowser web browser"; + + enableNixGL = mkOption { + type = types.bool; + default = false; + description = "Use NixGL to start Qutebrowser"; + }; + }; config = mkIf cfg.enable { + xdg.desktopEntries."org.qutebrowser.qutebrowser" = mkIf cfg.enableNixGL { + name = "QuteBrowser NixGL Powered"; + + exec = "${pkgs.nixgl.nixGLMesa}/bin/nixGLMesa qutebrowser %u"; + icon = "qutebrowser"; + terminal = false; + type = "Application"; + startupNotify = true; + actions = { + "preference" = { + exec = "${pkgs.nixgl.nixGLMesa}/bin/nixGLMesa qutebrowser \"qute://settings\""; + name = "Preferences"; + }; + }; + }; programs.qutebrowser = { enable = true; - package = config.lib.nixGL.wrap pkgs.qutebrowser; loadAutoconfig = true; settings = { + qt.args = [ "autoplay-policy=user-gesture-required" "ignore-gpu-blocklist" diff --git a/modules/nixos/desktop/sway/default.nix b/modules/nixos/desktop/sway/default.nix index c7427a8..5d65618 100644 --- a/modules/nixos/desktop/sway/default.nix +++ b/modules/nixos/desktop/sway/default.nix @@ -16,5 +16,20 @@ in alsa.support32Bit = true; pulse.enable = true; }; + xdg.portal = { + enable = true; + wlr.enable = true; + # gtk portal needed to make gtk apps happy + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + config = { + common = { + default = [ + "gtk" + ]; + "org.freedesktop.impl.portal.ScreenCast" = "wlr"; + "org.freedesktop.impl.portal.Screenshot" = "wlr"; + }; + }; + }; }; }