Skip to content

Commit 9a4b8a6

Browse files
committed
security: firejail firefox
1 parent dbf7f83 commit 9a4b8a6

File tree

6 files changed

+81
-5
lines changed

6 files changed

+81
-5
lines changed

flake.lock

Lines changed: 20 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
inputs = {
55
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
6+
nixpkgs-legacy.url = "github:nixos/nixpkgs/nixos-25.05";
67
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
78
nixpkgs-edge.url = "github:nixos/nixpkgs/nixos-unstable";
89

@@ -28,6 +29,7 @@
2829
{
2930
nixpkgs,
3031
nixpkgs-unstable,
32+
nixpkgs-legacy,
3133
nixpkgs-edge,
3234
...
3335
}@inputs:
@@ -48,6 +50,11 @@
4850
config.allowUnfree = true;
4951
};
5052

53+
pkgs-legacy = import nixpkgs-legacy {
54+
inherit system;
55+
config.allowUnfree = true;
56+
};
57+
5158
meta = {
5259
user = {
5360
description = "default non-root user";
@@ -70,6 +77,7 @@
7077
inherit
7178
inputs
7279
pkgs-unstable
80+
pkgs-legacy
7381
pkgs-edge
7482
stateVersion
7583
meta
@@ -85,6 +93,7 @@
8593
inherit
8694
inputs
8795
pkgs-unstable
96+
pkgs-legacy
8897
pkgs-edge
8998
system
9099
stateVersion

home-manager/apps/firefox.nix

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,47 @@
1-
{ pkgs-unstable, ... }:
1+
{ pkgs, pkgs-unstable, ... }:
22

3+
let
4+
firefox-wrapper = pkgs.writeShellScriptBin "firefox-firejail" ''
5+
exec firejail --ignore=private-bin \
6+
--env=XDG_DATA_DIRS="$XDG_DATA_DIRS" \
7+
--env=GTK_THEME=Adwaita:dark \
8+
--env=XCURSOR_PATH="$XCURSOR_PATH" \
9+
--env=NIXOS_OZONE_WL=1 \
10+
--noblacklist=/nix/store \
11+
--read-only=/nix/store \
12+
"$(readlink -f $(which firefox))" \
13+
--no-remote "$@"
14+
'';
15+
in
316
{
17+
home.packages = [ firefox-wrapper ];
18+
19+
# Override Firefox desktop entry to use firejail
20+
xdg.desktopEntries.firefox = {
21+
name = "Firefox";
22+
genericName = "Web Browser";
23+
exec = "firefox-firejail %U";
24+
terminal = false;
25+
categories = [
26+
"Network"
27+
"WebBrowser"
28+
];
29+
mimeType = [
30+
"text/html"
31+
"text/xml"
32+
"application/xhtml+xml"
33+
"application/vnd.mozilla.xul+xml"
34+
"application/rss+xml"
35+
"application/rdf+xml"
36+
"image/svg+xml"
37+
"image/png"
38+
"image/ico"
39+
"image/gif"
40+
"text/plain"
41+
];
42+
icon = "firefox";
43+
};
44+
445
programs.firefox = {
546
enable = true;
647
package = pkgs-unstable.firefox;

hosts/desktop/default.nix

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
lib,
44
pkgs,
55
pkgs-edge,
6+
pkgs-legacy,
67
pkgs-unstable,
78
stateVersion,
89
meta,
@@ -21,6 +22,7 @@
2122
inherit
2223
inputs
2324
pkgs-edge
25+
pkgs-legacy
2426
pkgs-unstable
2527
stateVersion
2628
meta
@@ -37,6 +39,7 @@
3739
lib
3840
pkgs
3941
pkgs-edge
42+
pkgs-legacy
4043
pkgs-unstable
4144
stateVersion
4245
meta

modules/applications/sunshine.nix

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
{ ... }:
1+
{ pkgs-legacy, ... }:
22

33
{
44
# I don't need moonlight here on my main desktop as this is often the host
55
# environment.systemPackages = with pkgs; [ moonlight-qt ];
66

77
services.sunshine = {
8+
package = pkgs-legacy.sunshine;
89
enable = true;
910
autoStart = false;
1011
capSysAdmin = true;

modules/security/firejail.nix

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{ ... }:
2+
3+
{
4+
programs.firejail.enable = true;
5+
}

0 commit comments

Comments
 (0)