From 6f3a124bc56cacc481edbda4c0aac8d146d6ef5a Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Fri, 30 Aug 2024 23:11:29 +0200 Subject: [PATCH] feat(home-manager): install qutebrowser with NixGL Work on non NixOS system --- hosts/rick/home-config.nix | 5 +++- .../home-manager/web/qutebrowser/default.nix | 25 ++++++++++++++++++- nixos/includes/system/overlay.nix | 4 +-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/hosts/rick/home-config.nix b/hosts/rick/home-config.nix index d5ddbf5..f072526 100644 --- a/hosts/rick/home-config.nix +++ b/hosts/rick/home-config.nix @@ -27,7 +27,10 @@ enable = true; enableNixGL = true; }; - web.qutebrowser.enable = false; + web.qutebrowser = { + enable = true; + enableNixGL = true; + }; web.webcord.enable = false; gaming.lutris.enable = false; desktop.sway = { diff --git a/modules/home-manager/web/qutebrowser/default.nix b/modules/home-manager/web/qutebrowser/default.nix index caa7e0f..7d717b2 100644 --- a/modules/home-manager/web/qutebrowser/default.nix +++ b/modules/home-manager/web/qutebrowser/default.nix @@ -1,4 +1,4 @@ -{ lib, config, ... }: +{ lib, config, pkgs, ... }: with lib; let cfg = config.modules.web.qutebrowser; @@ -6,8 +6,31 @@ 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" = if cfg.enableNixGL then { + 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"; + }; + }; + } + else {}; programs.qutebrowser = { enable = true; loadAutoconfig = true; diff --git a/nixos/includes/system/overlay.nix b/nixos/includes/system/overlay.nix index aa2cc69..24dae79 100644 --- a/nixos/includes/system/overlay.nix +++ b/nixos/includes/system/overlay.nix @@ -1,9 +1,9 @@ -{ inputs, ...}: +{ inputs, pkgs, ...}: { nixpkgs.overlays = [ (final: prev: { qutebrowser = prev.qutebrowser.override { - enableWideVine = true; + enableWideVine = if pkgs.system == "x86_64-linux" then true else false; }; }) inputs.nur.overlay