Compare commits

..

No commits in common. "ef733f10a35d8d17c34705999de30b6b1958598e" and "0b49ad2e921297da812dd0b7c49493f9452be44a" have entirely different histories.

18 changed files with 158 additions and 179 deletions

76
flake.lock generated
View file

@ -22,15 +22,12 @@
} }
}, },
"flake-utils": { "flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1659877975,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -46,11 +43,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1755810213, "lastModified": 1748955489,
"narHash": "sha256-QdenO8f0PTg+tC6HuSvngKcbRZA5oZKmjUT+MXKOLQg=", "narHash": "sha256-OmZXyW2g5qIuo5Te74McwR0TwauCO2sF3/SjGDVuxyg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "6911d3e7f475f7b3558b4f5a6aba90fa86099baa", "rev": "bb846c031be68a96466b683be32704ef6e07b159",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -64,10 +61,10 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1755761639, "lastModified": 1755552883,
"narHash": "sha256-rEvyLY/3u1RfxsySyqScM3peGUVNJNmGApHVyIY7Cx0=", "narHash": "sha256-wdVtGyN8JkpByIiNwSevZMBy02vWwCPNaD/caCQJ6aM=",
"ref": "main", "ref": "main",
"rev": "d73f46baaff8c9fff2a7b11c97413ea3fb171584", "rev": "1ccd39ac6de09a7a73a9a36ec1c34f70cb5edfe2",
"shallow": true, "shallow": true,
"type": "git", "type": "git",
"url": "ssh://git@git.epha.se:24422/ephase/nix-private.git" "url": "ssh://git@git.epha.se:24422/ephase/nix-private.git"
@ -87,11 +84,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752054764, "lastModified": 1713543440,
"narHash": "sha256-Ob/HuUhANoDs+nvYqyTKrkcPXf4ZgXoqMTQoCK0RFgQ=", "narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixGL", "repo": "nixGL",
"rev": "a8e1ce7d49a149ed70df676785b07f63288f53c5", "rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -116,11 +113,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1755615617, "lastModified": 1748693115,
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "20075955deac2583bb12f07151c2df830ef346b4", "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -131,11 +128,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1755615617, "lastModified": 1748693115,
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "20075955deac2583bb12f07151c2df830ef346b4", "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -148,14 +145,15 @@
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3",
"treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1755877557, "lastModified": 1748973087,
"narHash": "sha256-AjUqNCIgjQKfhvH+HUXZQLlSDiRTFQPSPN8Ws/O7mVQ=", "narHash": "sha256-ZN0XKKdCBC9eLeog7qYhfGPbajkPtQPdlxp/dhwONw4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "332abf45be8133422a97e134b35782400ffc65bd", "rev": "90add46380908ba4395f5f1dfec84224a3b0d4b9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -181,11 +179,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1754988908, "lastModified": 1747603214,
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", "narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", "rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -194,18 +192,24 @@
"type": "github" "type": "github"
} }
}, },
"systems": { "treefmt-nix": {
"inputs": {
"nixpkgs": [
"nur",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1733222881,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "nix-systems", "owner": "numtide",
"repo": "default", "repo": "treefmt-nix",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "numtide",
"repo": "default", "repo": "treefmt-nix",
"type": "github" "type": "github"
} }
} }

View file

@ -51,12 +51,11 @@
overlays = [ nixgl.overlay ]; overlays = [ nixgl.overlay ];
}; };
extraSpecialArgs = { extraSpecialArgs = {
inherit stateVersion inputs nixgl; inherit stateVersion inputs;
hostname = hostname; hostname = hostname;
username = username; username = username;
}; };
modules = [ modules = [
{ nixpkgs.overlays = [ nixgl.overlay ];}
./home-manager/default.nix ./home-manager/default.nix
]; ];
}; };

View file

@ -1,4 +1,4 @@
{ inputs, lib, stateVersion, username, hostname, nixgl, ... }: { inputs, lib, stateVersion, username, hostname, ... }:
{ {
imports = [ imports = [
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
@ -12,9 +12,7 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
programs.home-manager.enable = true; programs.home-manager.enable = true;
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
nixGL.packages = nixgl.packages;
nixGL.defaultWrapper = "mesa";
nixGL.installScripts = ["mesa"];
home = { home = {
inherit stateVersion username; inherit stateVersion username;
homeDirectory = "/home/${username}"; homeDirectory = "/home/${username}";

View file

@ -24,8 +24,14 @@
kdenlive.enable = false; kdenlive.enable = false;
mpv.enable = false; mpv.enable = false;
}; };
web.firefox.enable = true; web.firefox = {
web.qutebrowser.enable = true; enable = true;
enableNixGL = true;
};
web.qutebrowser = {
enable = true;
enableNixGL = true;
};
web.webcord.enable = false; web.webcord.enable = false;
gaming.lutris.enable = false; gaming.lutris.enable = false;
desktop.sway = { desktop.sway = {

View file

@ -2,7 +2,10 @@
config.modules = { config.modules = {
application = { application = {
zathura.enable = true; zathura.enable = true;
foot.enable = true; foot = {
enable = true;
font-size = "10.5";
};
}; };
audio.cmus.enable = true; audio.cmus.enable = true;
cli = { cli = {
@ -30,22 +33,9 @@
zellij.enable = true; zellij.enable = true;
zsh.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 = { web.firefox = {
enable = true; enable = true;
enableNixGL = true;
optionalExtensions = with pkgs.nur.repos.rycee.firefox-addons; [ optionalExtensions = with pkgs.nur.repos.rycee.firefox-addons; [
okta-browser-plugin okta-browser-plugin
]; ];

View file

@ -1,4 +1,4 @@
{ pkgs, config, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
dejavu_fonts dejavu_fonts
@ -13,23 +13,7 @@
noto-fonts-cjk-sans noto-fonts-cjk-sans
slurp slurp
wl-clipboard wl-clipboard
(config.lib.nixGL.wrap ungoogled-chromium)
(config.lib.nixGL.wrap slack)
]; ];
targets.genericLinux.enable = true; targets.genericLinux.enable = true;
xdg.mime.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'';
};
} }

View file

@ -31,7 +31,7 @@ let
version = "main"; version = "main";
src = builtins.fetchGit { src = builtins.fetchGit {
url = "https://github.com/tonychg/nvim-k8s-lsp.git"; url = "https://github.com/tonychg/nvim-k8s-lsp.git";
rev = "1dffda65f4fe117f67514ed5d93b18f62be1ef24"; rev = "930aa20bcd54f2d6f16040e98ff4068b292c6c7f";
ref = "main"; ref = "main";
}; };
}; };
@ -167,7 +167,6 @@ in
p.cpp p.cpp
p.cmake p.cmake
p.dockerfile p.dockerfile
p.go
p.hcl p.hcl
p.helm p.helm
p.javascript p.javascript

View file

@ -10,14 +10,14 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.zsh = { programs.zsh = {
enable = true; enable = true;
dotDir = "${config.xdg.configHome}/zsh"; dotDir = ".config/zsh";
defaultKeymap = "viins"; defaultKeymap = "viins";
enableCompletion = true; enableCompletion = true;
history = { history = {
ignoreAllDups = true; ignoreAllDups = true;
save = 10000; save = 10000;
share = true; share = true;
path = "${config.xdg.dataHome }/zsh/history"; path = "$HOME/.local/share/zsh/history";
}; };
historySubstringSearch = { historySubstringSearch = {
enable = true; enable = true;
@ -108,7 +108,7 @@ in
}; };
}]; }];
localVariables = { localVariables = {
BASE16_THEME = "${config.xdg.configHome}/zsh/plugins/base16"; BASE16_THEME = "$HOME/.config/zsh/plugins/base16";
# Make ESC key more reactive to go to normal mode # Make ESC key more reactive to go to normal mode
KEYTIMEOUT = 1; KEYTIMEOUT = 1;
}; };

View file

@ -13,26 +13,6 @@ in
description = "configure laptop mode"; 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 = { wallpapers = {
lockscreen = mkOption { lockscreen = mkOption {
type = types.str; type = types.str;
@ -134,7 +114,7 @@ in
}; };
iconTheme = { iconTheme = {
name = "Papirus Dark"; name = "Papirus Dark";
package = pkgs.papirus-icon-theme; package = pkgs.papirus-icon-theme;
}; };
font = { font = {
name = "Deja Vu Sans"; name = "Deja Vu Sans";
@ -153,10 +133,8 @@ in
}; };
}; };
# Avoid pixelated effect for QT application with fractionnal scaling
home.sessionVariables = { 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"; QT_SCALE_FACTOR_ROUNDING_POLICY = "RoundPreferFloor";
}; };
@ -180,34 +158,6 @@ in
desktop = "${config.home.homeDirectory}/documents"; desktop = "${config.home.homeDirectory}/documents";
publicShare = "${config.home.homeDirectory}/tmp/public"; 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 = mkIf cfg.xdg.useDistributionPortals {
"${config.xdg.configHome}/xdg-desktop-portal-wlr/config".text = ''
[screencast]
max_fps=30
chooser_type=simple
chooser_cmd=${pkgs.slurp}/bin/slurp -f %o -or
'';
}; };
}; };
} }

View file

@ -10,7 +10,7 @@ with lib;
profile.name = "standalone"; profile.name = "standalone";
profile.outputs = [ profile.outputs = [
{ {
criteria = "eDP-1"; criteria = "eDP-1";
scale = 1.33; scale = 1.33;
status = "enable"; status = "enable";
} }
@ -20,13 +20,13 @@ with lib;
profile.name = "home"; profile.name = "home";
profile.outputs = [ profile.outputs = [
{ {
criteria = "Iiyama North America PL2792UH 1166310803122"; criteria = "Iiyama North America PL2792UH 1166310803122";
mode = "3840x2160"; mode = "3840x2160";
position = "1235,0"; position = "1235,0";
scale = 1.75; scale = 1.75;
} }
{ {
criteria = "Iiyama North America PL2792UH 1176923201598"; criteria = "Iiyama North America PL2792UH 1176923201598";
mode = "3840x2160"; mode = "3840x2160";
position = "0,0"; position = "0,0";
transform = "90"; transform = "90";
@ -42,16 +42,18 @@ with lib;
profile.name = "work"; profile.name = "work";
profile.outputs = [ profile.outputs = [
{ {
criteria = "Iiyama North America PL2792QN 1179214201663"; criteria = "Iiyama North America PL2480H 11183M2807013";
mode = "2560x1440";
position = "1450,0";
scale = 1.15;
}
{
criteria = "BOE 0x0A95 Unknown";
mode = "1920x1080"; mode = "1920x1080";
position = "0,0"; position = "0,0";
scale = 1.325; }
{
criteria = "Iiyama North America PL2480H 11183M2807016";
mode = "1920x1080";
position = "1920,0";
}
{
criteria = "eDP-1";
status = "disable";
} }
]; ];
} }

View file

@ -6,7 +6,6 @@ in
{ {
config = mkIf config.modules.desktop.sway.enable { config = mkIf config.modules.desktop.sway.enable {
wayland.windowManager.sway = { wayland.windowManager.sway = {
package = config.lib.nixGL.wrap pkgs.sway;
enable = true; enable = true;
wrapperFeatures.gtk = true; wrapperFeatures.gtk = true;
systemd.enable = true; systemd.enable = true;
@ -76,7 +75,7 @@ in
"${mod}+Alt+k" = "kill"; "${mod}+Alt+k" = "kill";
"${mod}+Alt+c" = "reload"; "${mod}+Alt+c" = "reload";
"${mod}+Alt+Backspace" = "exec swaynag -t warning -m 'Exit sway?' -B 'Yes' 'swaymsg exit'"; "${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 # Manage windows placement
"${mod}+b" = "splith"; "${mod}+b" = "splith";
"${mod}+v" = "splitv"; "${mod}+v" = "splitv";

View file

@ -10,7 +10,7 @@ in
timeouts = [ timeouts = [
{ {
timeout = 300; 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; timeout = 600;
@ -21,11 +21,11 @@ in
events = [ events = [
{ {
event = "before-sleep"; 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"; event = "lock";
command = if cfg.swaylock.useNullPackage then ''usr/bin/swaylock -f'' else ''${pkgs.swaylock}/bin/swaylock -f''; command = "${pkgs.swaylock}/bin/swaylock -f";
} }
]; ];
}; };

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib; with lib;
let let
cfg = config.modules.desktop.sway; cfg = config.modules.desktop.sway;
@ -6,10 +6,9 @@ in
{ {
config = mkIf config.modules.desktop.sway.enable { config = mkIf config.modules.desktop.sway.enable {
programs.swaylock = { programs.swaylock = {
package = if cfg.swaylock.useNullPackage then null else pkgs.swaylock;
enable = true; enable = true;
settings = { settings = {
image = if cfg.wallpapers.lockscreen != "" then "${cfg.wallpapers.lockscreen}" else false; image = "${cfg.wallpapers.lockscreen}";
scaling = "center"; scaling = "center";
color = "000000"; color = "000000";
indicator-radius = 70; indicator-radius = 70;
@ -23,7 +22,7 @@ in
ring-wrong-color = "f268b3"; ring-wrong-color = "f268b3";
inside-wrong-color = "f268b3cc"; inside-wrong-color = "f268b3cc";
key-hl-color = "1cd180"; key-hl-color = "1cd180";
caps-lock-key-hl-color = "1cd180"; caps-lock-key-hl-color = "1cd180";
caps-lock-bs-hl-color = "f268b3"; caps-lock-bs-hl-color = "f268b3";
bs-hl-color = "f268b3ff"; bs-hl-color = "f268b3ff";
separator-color = "00000000"; separator-color = "00000000";

View file

@ -1,4 +1,4 @@
{lib, config, ...}: {lib, config, ...}:
with lib; with lib;
let let
cfg = config.modules.desktop.sway; cfg = config.modules.desktop.sway;
@ -22,7 +22,7 @@ in
"sway/mode" "sway/mode"
]; ];
modules-right = [ modules-right = [
"network" "network"
"custom/sep" "custom/sep"
] ++ ( ] ++ (
if cfg.waybar.laptop then [ if cfg.waybar.laptop then [
@ -38,15 +38,15 @@ in
"memory" "memory"
"cpu" "cpu"
"temperature" "temperature"
"custom/sep" "custom/sep"
] ++ ( ] ++ (
if cfg.waybar.gpuThermal.enable then [ if cfg.waybar.gpuThermal.enable then [
"temperature#gpu" "temperature#gpu"
"custom/sep" "custom/sep"
] ]
else [ else [
] ]
) ++ ) ++
[ [
"pulseaudio" "pulseaudio"
"custom/sep" "custom/sep"
@ -101,8 +101,8 @@ in
"format-icons" = { "format-icons" = {
"car" = ""; "car" = "";
"default" = ""; "default" = "";
"hands-free" = "󰋎"; "handsfree" = "󰋎";
"headphone" = "󰋋"; "headphones" = "󰋋";
"headset" = "󰋎"; "headset" = "󰋎";
"phone" = ""; "phone" = "";
"portable" = ""; "portable" = "";

View file

@ -29,6 +29,11 @@ in
description = "Optional Firefox Plugins to install"; description = "Optional Firefox Plugins to install";
}; };
enableNixGL = mkOption {
type = types.bool;
default = false;
description = "Use NixGL to start Firefox";
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.browserpass = { programs.browserpass = {
@ -42,6 +47,24 @@ in
"x-scheme-handler/about" = "firefox.desktop"; "x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "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 = '' xdg.configFile."tridactyl/tridactylrc".text = ''
sanitize tridactyllocal tridactylsync sanitize tridactyllocal tridactylsync
@ -70,13 +93,13 @@ in
allExtensions = cfg.baseExtensions ++ cfg.optionalExtensions; allExtensions = cfg.baseExtensions ++ cfg.optionalExtensions;
in { in {
enable = true; enable = true;
package = config.lib.nixGL.wrap ( pkgs.wrapFirefox pkgs.firefox-unwrapped { package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
nativeMessagingHosts = [ nativeMessagingHosts = [
# Tridactyl native connector # Tridactyl native connector
pkgs.tridactyl-native pkgs.tridactyl-native
pkgs.browserpass pkgs.browserpass
]; ];
}); };
profiles.ephase = { profiles.ephase = {
id = 0; id = 0;
name = "ephase"; name = "ephase";

View file

@ -6,13 +6,35 @@ in
{ {
options.modules.web.qutebrowser = { options.modules.web.qutebrowser = {
enable = mkEnableOption "enable Qutebrowser web browser"; enable = mkEnableOption "enable Qutebrowser web browser";
enableNixGL = mkOption {
type = types.bool;
default = false;
description = "Use NixGL to start Qutebrowser";
};
}; };
config = mkIf cfg.enable { 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 = { programs.qutebrowser = {
enable = true; enable = true;
package = config.lib.nixGL.wrap pkgs.qutebrowser;
loadAutoconfig = true; loadAutoconfig = true;
settings = { settings = {
qt.args = [ qt.args = [
"autoplay-policy=user-gesture-required" "autoplay-policy=user-gesture-required"
"ignore-gpu-blocklist" "ignore-gpu-blocklist"

View file

@ -16,5 +16,20 @@ in
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = 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";
};
};
};
}; };
} }

View file

@ -1,21 +1,10 @@
{ inputs, pkgs, ...}: { inputs, pkgs, ...}:
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
(final: prev: { (final: prev: {
qutebrowser = prev.qutebrowser.override { qutebrowser = prev.qutebrowser.override {
enableWideVine = if pkgs.system == "x86_64-linux" then true else false; enableWideVine = if pkgs.system == "x86_64-linux" then true else false;
# Get Widevine friom slackware as google CDN seems to not working anymore };
# TODO: Remove this when resolved upstream
# https://github.com/NixOS/nixpkgs/issues/435671
widevine-cdm = pkgs.widevine-cdm.overrideAttrs (oldAttrs: {
src = pkgs.fetchzip {
url = "https://alien.slackbook.org/slackbuilds/chromium-widevine-plugin/build/4.10.2891.0-linux-x64.zip" ;
hash = "sha256-ZO6FmqJUnB9VEJ7caJt58ym8eB3/fDATri3iOWCULRI";
stripRoot = false;
};
});
};
}) })
inputs.nur.overlays.default inputs.nur.overlays.default
]; ];