Compare commits
10 Commits
ce797e1a65
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ed6185b1d | |||
| 3d751291ab | |||
| 594e078929 | |||
| dc4ff6d8d2 | |||
| b341ca2c87 | |||
| 762bab2c0b | |||
| 0f1d51c246 | |||
| b953cdb4be | |||
| cf1470cb63 | |||
| 4962c1bb03 |
83
flake.lock
generated
83
flake.lock
generated
@ -261,27 +261,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"zen-browser",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1772330611,
|
|
||||||
"narHash": "sha256-UZjPc/d5XRxvjDbk4veAO4XFdvx6BUum2l40V688Xq8=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "58fd7ff0eec2cda43e705c4c0585729ec471d400",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"niri": {
|
"niri": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"niri-stable": "niri-stable",
|
"niri-stable": "niri-stable",
|
||||||
@ -465,6 +444,43 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pam-fprint-grosshack": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pam-fprint-src": "pam-fprint-src"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1774432303,
|
||||||
|
"narHash": "sha256-IdsKBu1HV1mYJMVuAL0GJiWeEkMrdW691aW8D6Zr15I=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "7ad351f85a92fee40806cb81777430c33499be41",
|
||||||
|
"revCount": 1,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pam-fprint-src": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1658952526,
|
||||||
|
"narHash": "sha256-obczZbf/oH4xGaVvp3y3ZyDdYhZnxlCWvL0irgEYIi0=",
|
||||||
|
"owner": "mishakmak",
|
||||||
|
"repo": "pam-fprint-grosshack",
|
||||||
|
"rev": "45b42524fb5783e1e555067743d7e0f70d27888a",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mishakmak",
|
||||||
|
"repo": "pam-fprint-grosshack",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
"plasma-manager": {
|
"plasma-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": [
|
"home-manager": [
|
||||||
@ -518,10 +534,10 @@
|
|||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
|
"pam-fprint-grosshack": "pam-fprint-grosshack",
|
||||||
"plasma-manager": "plasma-manager",
|
"plasma-manager": "plasma-manager",
|
||||||
"quickshell": "quickshell",
|
"quickshell": "quickshell",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix"
|
||||||
"zen-browser": "zen-browser"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-analyzer-src": {
|
"rust-analyzer-src": {
|
||||||
@ -719,27 +735,6 @@
|
|||||||
"repo": "xwayland-satellite",
|
"repo": "xwayland-satellite",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"zen-browser": {
|
|
||||||
"inputs": {
|
|
||||||
"home-manager": "home-manager_2",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1773290887,
|
|
||||||
"narHash": "sha256-L1yMYmFffHfZNP+hKJGRBmrFKkn/VDhu7jEbVftBQuM=",
|
|
||||||
"owner": "0xc000022070",
|
|
||||||
"repo": "zen-browser-flake",
|
|
||||||
"rev": "9346698c4562819f61b4e5097151ec0b17729fab",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "0xc000022070",
|
|
||||||
"repo": "zen-browser-flake",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
11
flake.nix
11
flake.nix
@ -15,9 +15,6 @@
|
|||||||
inputs.home-manager.follows = "home-manager";
|
inputs.home-manager.follows = "home-manager";
|
||||||
};
|
};
|
||||||
|
|
||||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
|
||||||
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
|
|
||||||
#stylix.url = "github:nix-community/stylix/";
|
#stylix.url = "github:nix-community/stylix/";
|
||||||
stylix.url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently
|
stylix.url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently
|
||||||
stylix.inputs.nixpkgs.follows = "nixpkgs";
|
stylix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@ -42,6 +39,11 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pam-fprint-grosshack = {
|
||||||
|
url = "git+https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||||
|
|
||||||
grub2-themes.url = "github:vinceliuice/grub2-themes";
|
grub2-themes.url = "github:vinceliuice/grub2-themes";
|
||||||
@ -50,12 +52,12 @@
|
|||||||
outputs = inputs @ {
|
outputs = inputs @ {
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
alejandra,
|
alejandra,
|
||||||
|
pam-fprint-grosshack,
|
||||||
home-manager,
|
home-manager,
|
||||||
plasma-manager,
|
plasma-manager,
|
||||||
nixos-hardware,
|
nixos-hardware,
|
||||||
stylix,
|
stylix,
|
||||||
niri,
|
niri,
|
||||||
zen-browser,
|
|
||||||
grub2-themes,
|
grub2-themes,
|
||||||
nix-flatpak,
|
nix-flatpak,
|
||||||
...
|
...
|
||||||
@ -81,6 +83,7 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
inherit project;
|
inherit project;
|
||||||
inherit alejandra;
|
inherit alejandra;
|
||||||
|
pam-fprint-grosshack-pkg = pam-fprint-grosshack.packages.${system}.default;
|
||||||
host = hostname;
|
host = hostname;
|
||||||
};
|
};
|
||||||
modules =
|
modules =
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
host,
|
host,
|
||||||
version,
|
version,
|
||||||
system,
|
system,
|
||||||
|
pam-fprint-grosshack-pkg,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
#Assign Swap to the PC
|
#Assign Swap to the PC
|
||||||
@ -27,7 +28,7 @@
|
|||||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
./firefox.nix
|
./firefox
|
||||||
./boot-splash.nix
|
./boot-splash.nix
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
./neovim
|
./neovim
|
||||||
@ -61,7 +62,7 @@
|
|||||||
footer = true;
|
footer = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
timeout = 10;
|
timeout = 5;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -123,7 +124,7 @@
|
|||||||
# List services that you want to enable:
|
# List services that you want to enable:
|
||||||
services = {
|
services = {
|
||||||
ollama = {
|
ollama = {
|
||||||
enable = true;
|
enable = false;
|
||||||
# Optional: load models on startup
|
# Optional: load models on startup
|
||||||
#loadModels = [ ... ];
|
#loadModels = [ ... ];
|
||||||
};
|
};
|
||||||
@ -313,14 +314,28 @@
|
|||||||
sudo.wheelNeedsPassword = false;
|
sudo.wheelNeedsPassword = false;
|
||||||
|
|
||||||
pam.services = {
|
pam.services = {
|
||||||
sddm.fprintAuth = false; #Because of the bug with 30 seconds on sddm login
|
|
||||||
sddm-autologin.fprintAuth = false; #Same as above
|
|
||||||
login.fprintAuth = false;
|
login.fprintAuth = false;
|
||||||
sudo.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
|
sudo.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
|
||||||
kscreenlocker.fprintAuth = true;
|
kscreenlocker.fprintAuth = true;
|
||||||
polkit-1.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
|
polkit-1.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
|
||||||
kde.fprintAuth = false;
|
kde.fprintAuth = false;
|
||||||
hyprlock = {};
|
hyprlock = {};
|
||||||
|
|
||||||
|
sddm = {
|
||||||
|
fprintAuth = false; # prevent NixOS from adding its own pam_fprintd block
|
||||||
|
|
||||||
|
text = lib.mkForce ''
|
||||||
|
auth sufficient ${pam-fprint-grosshack-pkg}/lib/security/pam_fprintd_grosshack.so
|
||||||
|
auth sufficient pam_unix.so try_first_pass nullok
|
||||||
|
auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so
|
||||||
|
|
||||||
|
account required pam_unix.so
|
||||||
|
password required pam_deny.so
|
||||||
|
|
||||||
|
session required pam_unix.so
|
||||||
|
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +0,0 @@
|
|||||||
{username, ...}: {
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
profiles = {
|
|
||||||
"${username}" = {
|
|
||||||
extensions.force = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services."firefox-autostart" = {
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "";
|
|
||||||
ExecStop = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,112 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
lock-false = {
|
|
||||||
Value = false;
|
|
||||||
Status = "locked";
|
|
||||||
};
|
|
||||||
lock-true = {
|
|
||||||
Value = true;
|
|
||||||
Status = "locked";
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
home-manager.sharedModules = [
|
|
||||||
./firefox-home.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
firefox = {
|
|
||||||
enable = true;
|
|
||||||
languagePacks = ["de" "en-US"];
|
|
||||||
|
|
||||||
/*
|
|
||||||
---- POLICIES ----
|
|
||||||
*/
|
|
||||||
# Check about:policies#documentation for options.
|
|
||||||
policies = {
|
|
||||||
PasswordManagerEnabled = false;
|
|
||||||
DisableTelemetry = true;
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
EnableTrackingProtection = {
|
|
||||||
Value = true;
|
|
||||||
Locked = true;
|
|
||||||
Cryptomining = true;
|
|
||||||
Fingerprinting = true;
|
|
||||||
};
|
|
||||||
DisablePocket = true;
|
|
||||||
#DisableFirefoxAccounts = true;
|
|
||||||
#DisableAccounts = true;
|
|
||||||
#DisableFirefoxScreenshots = true;
|
|
||||||
OverrideFirstRunPage = "";
|
|
||||||
OverridePostUpdatePage = "";
|
|
||||||
DontCheckDefaultBrowser = true;
|
|
||||||
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
|
||||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
|
||||||
SearchBar = "unified"; # alternative: "separate"
|
|
||||||
|
|
||||||
/*
|
|
||||||
---- EXTENSIONS ----
|
|
||||||
*/
|
|
||||||
# Check about:support for extension/add-on ID strings.
|
|
||||||
# Valid strings for installation_mode are "allowed", "blocked",
|
|
||||||
# "force_installed" and "normal_installed".
|
|
||||||
|
|
||||||
# How to: https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
|
|
||||||
ExtensionSettings = with builtins; let
|
|
||||||
extension = shortId: uuid: {
|
|
||||||
name = uuid;
|
|
||||||
value = {
|
|
||||||
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
|
||||||
installation_mode = "normal_installed";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
listToAttrs [
|
|
||||||
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
|
||||||
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
|
|
||||||
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
|
|
||||||
(extension "sponsorblock" "sponsorBlocker@ajay.app")
|
|
||||||
#(extension "dearrow" "deArrow@ajay.app")
|
|
||||||
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
|
|
||||||
#(extension "tabliss" "extension@tabliss.io")
|
|
||||||
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
|
|
||||||
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
|
|
||||||
#(extension "react-devtools" "@react-devtools")
|
|
||||||
(extension "keepa" "amptra@keepa.com")
|
|
||||||
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
|
|
||||||
(extension "darkreader" "addon@darkreader.org")
|
|
||||||
];
|
|
||||||
|
|
||||||
/*
|
|
||||||
---- PREFERENCES ----
|
|
||||||
*/
|
|
||||||
# Check about:config for options.
|
|
||||||
Preferences = {
|
|
||||||
"browser.contentblocking.category" = {
|
|
||||||
Value = "strict";
|
|
||||||
Status = "locked";
|
|
||||||
};
|
|
||||||
"extensions.pocket.enabled" = lock-false;
|
|
||||||
"extensions.screenshots.disabled" = lock-true;
|
|
||||||
"browser.topsites.contile.enabled" = lock-false;
|
|
||||||
#"browser.formfill.enable" = lock-false;
|
|
||||||
#"browser.search.suggest.enabled" = lock-false;
|
|
||||||
#"browser.search.suggest.enabled.private" = lock-false;
|
|
||||||
#"browser.urlbar.suggest.searches" = lock-false;
|
|
||||||
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
|
|
||||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
171
modules/firefox/default.nix
Normal file
171
modules/firefox/default.nix
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
lock-false = {
|
||||||
|
Value = false;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
lock-true = {
|
||||||
|
Value = true;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
languagePacks = ["de" "en-US"];
|
||||||
|
|
||||||
|
/*
|
||||||
|
---- POLICIES ----
|
||||||
|
*/
|
||||||
|
# Check about:policies#documentation for options.
|
||||||
|
policies = {
|
||||||
|
PasswordManagerEnabled = false;
|
||||||
|
DisableTelemetry = true;
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
EnableTrackingProtection = {
|
||||||
|
Value = true;
|
||||||
|
Locked = true;
|
||||||
|
Cryptomining = true;
|
||||||
|
Fingerprinting = true;
|
||||||
|
};
|
||||||
|
DisablePocket = true;
|
||||||
|
#DisableFirefoxAccounts = true;
|
||||||
|
#DisableAccounts = true;
|
||||||
|
#DisableFirefoxScreenshots = true;
|
||||||
|
OverrideFirstRunPage = "";
|
||||||
|
OverridePostUpdatePage = "";
|
||||||
|
DontCheckDefaultBrowser = true;
|
||||||
|
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
||||||
|
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||||
|
SearchBar = "unified"; # alternative: "separate"
|
||||||
|
|
||||||
|
/*
|
||||||
|
---- EXTENSIONS ----
|
||||||
|
*/
|
||||||
|
# Check about:support for extension/add-on ID strings.
|
||||||
|
# Valid strings for installation_mode are "allowed", "blocked",
|
||||||
|
# "force_installed" and "normal_installed".
|
||||||
|
|
||||||
|
# How to: https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
|
||||||
|
ExtensionSettings = with builtins; let
|
||||||
|
extension = shortId: uuid: {
|
||||||
|
name = uuid;
|
||||||
|
value = {
|
||||||
|
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
listToAttrs [
|
||||||
|
#(extension "{name in url}" "{about:support Add-ons on }")
|
||||||
|
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
||||||
|
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
|
||||||
|
(extension "sponsorblock" "sponsorBlocker@ajay.app")
|
||||||
|
(extension "keepa" "amptra@keepa.com")
|
||||||
|
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
|
||||||
|
(extension "darkreader" "addon@darkreader.org")
|
||||||
|
(extension "youtube-shorts-block" "{34daeb50-c2d2-4f14-886a-7160b24d66a4}")
|
||||||
|
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
|
||||||
|
];
|
||||||
|
|
||||||
|
/*
|
||||||
|
---- PREFERENCES ----
|
||||||
|
*/
|
||||||
|
# Check about:config for options.
|
||||||
|
Preferences = {
|
||||||
|
"browser.contentblocking.category" = {
|
||||||
|
Value = "strict"; # strictest tracker/ad blocking mode
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
"extensions.pocket.enabled" = lock-false; # disables Pocket integration
|
||||||
|
"extensions.screenshots.disabled" = lock-true; # disables Firefox Screenshots
|
||||||
|
"browser.topsites.contile.enabled" = lock-false; # disables sponsored tiles on newtab
|
||||||
|
"browser.formfill.enable" = lock-false; # disables form autofill (prevents local data leakage)
|
||||||
|
"browser.search.suggest.enabled" = lock-false; # disables search suggestions in normal mode
|
||||||
|
"browser.search.suggest.enabled.private" = lock-false; # disables search suggestions in private mode
|
||||||
|
"browser.urlbar.suggest.searches" = lock-false; # disables search suggestions in address bar dropdown
|
||||||
|
"browser.urlbar.showSearchSuggestionsFirst" = lock-false; # hides search suggestions in address bar
|
||||||
|
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; # disables sponsored stories on newtab
|
||||||
|
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false; # disables news snippets on newtab
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; # removes Pocket from highlights
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; # removes bookmarks from highlights
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; # removes downloads from highlights
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; # removes visited sites from highlights
|
||||||
|
"browser.newtabpage.activity-stream.showSponsored" = lock-false; # disables all sponsored content
|
||||||
|
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false; # disables system-level sponsored content
|
||||||
|
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; # disables sponsored top sites
|
||||||
|
|
||||||
|
"privacy.resistFingerprinting" = lock-true; # spoofs/normalizes fingerprinting signals (screen, timezone, fonts)
|
||||||
|
"privacy.firstparty.isolate" = lock-true; # isolates cookies/storage per top-level domain (breaks cross-site tracking)
|
||||||
|
"network.dns.disablePrefetch" = lock-true; # stops speculative DNS lookups for unclicked links
|
||||||
|
"network.predictor.enabled" = lock-false; # disables ML-based prefetch predictions
|
||||||
|
"network.prefetch-next" = lock-false; # disables link-hover prefetching
|
||||||
|
"toolkit.telemetry.enabled" = lock-false; # disables core telemetry reporting
|
||||||
|
"toolkit.telemetry.unified" = lock-false; # disables unified telemetry pipeline
|
||||||
|
"datareporting.healthreport.uploadEnabled" = lock-false; # disables Firefox Health Report uploads
|
||||||
|
"dom.battery.enabled" = lock-false; # blocks Battery Status API fingerprinting
|
||||||
|
"dom.gamepad.enabled" = lock-false; # blocks Gamepad API fingerprinting
|
||||||
|
|
||||||
|
"browser.startup.homepage" = {
|
||||||
|
Value = "about:blank";
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
"browser.startup.page" = {
|
||||||
|
Value = 0;
|
||||||
|
Status = "locked";
|
||||||
|
}; # 0=blank, 3=homepage
|
||||||
|
"browser.startup.homepage_override.mstone" = {
|
||||||
|
Value = "ignore";
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
|
||||||
|
# HTTPS‑only / mixed‑content
|
||||||
|
"dom.security.https_only_mode" = {
|
||||||
|
Value = true;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
"dom.security.https_only_mode_ever_enabled" = {
|
||||||
|
Value = true;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Referrer / headers tightening
|
||||||
|
"network.http.referer.XOriginPolicy" = {
|
||||||
|
Value = 2;
|
||||||
|
Status = "locked";
|
||||||
|
}; # strict cross‑origin
|
||||||
|
"network.http.referer.XOriginTrimmingPolicy" = {
|
||||||
|
Value = 2;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
|
||||||
|
# DNS‑over‑HTTPS (if you want enforced DoH)
|
||||||
|
"network.trr.mode" = {
|
||||||
|
Value = 2;
|
||||||
|
Status = "locked";
|
||||||
|
}; # 2=prefer TRR
|
||||||
|
"network.trr.custom_uri" = {
|
||||||
|
Value = "https://dns.quad9.net/dns-query";
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Disable various Web APIs that can leak or be abused
|
||||||
|
"dom.webnotifications.enabled" = lock-false; # disable desktop notifications
|
||||||
|
"media.navigator.enabled" = lock-false; # disable getUserMedia permission prompts
|
||||||
|
"media.webrtc.legacy_global_callback" = lock-false;
|
||||||
|
|
||||||
|
# Disable geolocation / sensors
|
||||||
|
"geo.enabled" = lock-false;
|
||||||
|
"device.sensors.enabled" = lock-false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
44
modules/firefox/home.nix
Normal file
44
modules/firefox/home.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{username, ...}: {
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
profiles = {
|
||||||
|
"${username}" = {
|
||||||
|
extensions.force = true;
|
||||||
|
|
||||||
|
#Create multiple containers, like "work" "social media" ..., for cookies to reside in so they dont cross leak
|
||||||
|
#containers.force = true;
|
||||||
|
|
||||||
|
search = {
|
||||||
|
force = true;
|
||||||
|
default = "SearXNG";
|
||||||
|
order = ["SearXNG"];
|
||||||
|
engines = {
|
||||||
|
"SearXNG" = {
|
||||||
|
name = "SearXNG";
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = "https://searxng.cookiee.org/search";
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = "q";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
iconMapObj."16" = "https://searxng.cookiee.org/favicon.ico";
|
||||||
|
definedAliases = ["@sx"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services."firefox-autostart" = {
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "";
|
||||||
|
ExecStop = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -28,9 +28,6 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.zen-browser.homeModules.beta
|
|
||||||
# or inputs.zen-browser.homeModules.twilight
|
|
||||||
# or inputs.zen-browser.homeModules.twilight-official
|
|
||||||
#./neovim-home.nix
|
#./neovim-home.nix
|
||||||
./desktop-entries.nix
|
./desktop-entries.nix
|
||||||
];
|
];
|
||||||
@ -78,72 +75,5 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
zen-browser = {
|
|
||||||
enable = false;
|
|
||||||
#package = inputs.zen-browser.packages.${pkgs.system}.default;
|
|
||||||
profiles = {
|
|
||||||
${username} = {
|
|
||||||
id = 0;
|
|
||||||
name = username;
|
|
||||||
# profileAvatarPath = "chrome://browser/content/zen-avatars/avatar-57.svg";
|
|
||||||
path = "${username}.default";
|
|
||||||
isDefault = true;
|
|
||||||
settings = {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
policies = {
|
|
||||||
AutofillAddressEnabled = false;
|
|
||||||
AutofillCreditCardEnabled = false;
|
|
||||||
PasswordManagerEnabled = false;
|
|
||||||
NoDefaultBookmarks = true;
|
|
||||||
DisableAppUpdate = true;
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
DontCheckDefaultBrowser = true;
|
|
||||||
EnableTrackingProtection = {
|
|
||||||
Value = true;
|
|
||||||
Locked = true;
|
|
||||||
Cryptomining = true;
|
|
||||||
Fingerprinting = true;
|
|
||||||
};
|
|
||||||
OfferToSaveLogins = false;
|
|
||||||
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
|
||||||
|
|
||||||
ExtensionSettings = with builtins; let
|
|
||||||
extension = shortId: uuid: {
|
|
||||||
name = uuid;
|
|
||||||
value = {
|
|
||||||
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
listToAttrs [
|
|
||||||
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
|
||||||
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
|
|
||||||
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
|
|
||||||
(extension "sponsorblock" "sponsorBlocker@ajay.app")
|
|
||||||
#(extension "dearrow" "deArrow@ajay.app")
|
|
||||||
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
|
|
||||||
#(extension "tabliss" "extension@tabliss.io")
|
|
||||||
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
|
|
||||||
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
|
|
||||||
#(extension "react-devtools" "@react-devtools")
|
|
||||||
(extension "keepa" "amptra@keepa.com")
|
|
||||||
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
|
|
||||||
];
|
|
||||||
# To add additional extensions, find it on addons.mozilla.org, find
|
|
||||||
# the short ID in the url (like https=//addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
|
|
||||||
# Then, download the XPI by filling it in to the install_url template, unzip it,
|
|
||||||
# run `jq .browser_specific_settings.gecko.id manifest.json` or
|
|
||||||
# `jq .applications.gecko.id manifest.json` to get the UUID
|
|
||||||
Preferences = {
|
|
||||||
#"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
|
|
||||||
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
|
||||||
"browser.sessionstore.resume_session_once" = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}; #End of programs = {};
|
}; #End of programs = {};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -65,6 +65,8 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
plugins = {
|
plugins = {
|
||||||
|
# Remeber where you left the file last time
|
||||||
|
lastplace.enable = true;
|
||||||
# Statusline at the bottom of the screen
|
# Statusline at the bottom of the screen
|
||||||
lualine.enable = true;
|
lualine.enable = true;
|
||||||
# Tab bar at the top of the screen
|
# Tab bar at the top of the screen
|
||||||
@ -84,7 +86,40 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
# Shows the current function/class context pinned at the top of the buffer
|
# Shows the current function/class context pinned at the top of the buffer
|
||||||
treesitter-context.enable = true;
|
treesitter-context = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
# Cap the context header
|
||||||
|
max_lines = 4;
|
||||||
|
# When over the limit, drop outermost context
|
||||||
|
trim_scope = "outer";
|
||||||
|
# Only show context in tall-enough windows
|
||||||
|
min_window_height = 20;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Provides autocompletion suggestions
|
||||||
|
blink-cmp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
keymap.preset = "default"; # Tab/S-Tab to navigate, Enter to confirm
|
||||||
|
sources.default = ["lsp" "path" "snippets" "buffer"];
|
||||||
|
completion = {
|
||||||
|
documentation.auto_show = true;
|
||||||
|
ghost_text.enabled = true; # inline preview of the top suggestion
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
servers = {
|
||||||
|
nixd.enable = true; # Nix
|
||||||
|
ts_ls.enable = true; # TypeScript/JavaScript
|
||||||
|
# ... add more as needed
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Text objects based on treesitter nodes (e.g. select a function body)
|
# Text objects based on treesitter nodes (e.g. select a function body)
|
||||||
treesitter-textobjects.enable = true;
|
treesitter-textobjects.enable = true;
|
||||||
# Auto-closes and renames HTML/JSX tags using treesitter
|
# Auto-closes and renames HTML/JSX tags using treesitter
|
||||||
|
|||||||
@ -40,6 +40,7 @@
|
|||||||
wineWow64Packages.stagingFull
|
wineWow64Packages.stagingFull
|
||||||
winetricks
|
winetricks
|
||||||
wasistlos #Whatsapp
|
wasistlos #Whatsapp
|
||||||
|
losslesscut-bin #Lossless cut for quckly cutting videos
|
||||||
#obs-studio #Screen Recorder
|
#obs-studio #Screen Recorder
|
||||||
gparted #Disk partition Manager
|
gparted #Disk partition Manager
|
||||||
#rustdesk #Remote Desktop Client
|
#rustdesk #Remote Desktop Client
|
||||||
|
|||||||
@ -21,7 +21,6 @@
|
|||||||
qt.enable = true;
|
qt.enable = true;
|
||||||
qt.platform = "kde";
|
qt.platform = "kde";
|
||||||
#kde.enable = false;
|
#kde.enable = false;
|
||||||
zen-browser.profileNames = ["${username}"];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,8 @@ alias nix-clear="sudo nix-store --gc"
|
|||||||
|
|
||||||
#KDE Plasma Specific
|
#KDE Plasma Specific
|
||||||
#-----
|
#-----
|
||||||
alias kde-theme-apply="source $HOME/NixOS/plasma/konsave.sh"
|
alias plasma-snap="cp ~/.config/plasma-org.kde.plasma.desktop-appletsrc ~/appletsrc.snap"
|
||||||
|
alias plasma-diff="diff ~/appletsrc.snap ~/.config/plasma-org.kde.plasma.desktop-appletsrc"
|
||||||
|
|
||||||
#LaTeX Commands
|
#LaTeX Commands
|
||||||
alias makepdf="makeglossaries main && pdflatex main.tex"
|
alias makepdf="makeglossaries main && pdflatex main.tex"
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
programs = {
|
programs = {
|
||||||
plasma = {
|
plasma = {
|
||||||
enable = true;
|
enable = true;
|
||||||
overrideConfig = true;
|
overrideConfig = false;
|
||||||
|
|
||||||
input.mice = [
|
input.mice = [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -8,10 +8,9 @@
|
|||||||
}: {
|
}: {
|
||||||
programs = {
|
programs = {
|
||||||
plasma = {
|
plasma = {
|
||||||
overrideConfig = true;
|
|
||||||
|
|
||||||
panels = [
|
panels = [
|
||||||
{
|
{
|
||||||
|
screen = "all";
|
||||||
height = 44;
|
height = 44;
|
||||||
location = "bottom";
|
location = "bottom";
|
||||||
alignment = "center";
|
alignment = "center";
|
||||||
@ -111,7 +110,8 @@
|
|||||||
theme = "Win10OS-cursors";
|
theme = "Win10OS-cursors";
|
||||||
size = 24;
|
size = 24;
|
||||||
};
|
};
|
||||||
wallpaper = /home/${username}/${project}/other/wallpaper1.png;
|
# Do not use wallpaper option here as it causes issues! Use it in configFile
|
||||||
|
# wallpaper = /home/${username}/${project}/other/wallpaper1.png;
|
||||||
soundTheme = "ocean";
|
soundTheme = "ocean";
|
||||||
iconTheme = "We10X";
|
iconTheme = "We10X";
|
||||||
splashScreen = {
|
splashScreen = {
|
||||||
@ -122,6 +122,9 @@
|
|||||||
theme = "__aurorae__svg__Win11OS-dark";
|
theme = "__aurorae__svg__Win11OS-dark";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
configFile = {
|
||||||
|
plasmarc.Wallpapers.usersWallpapers = "/home/cookiez/NixOS/other/wallpaper1.png";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,10 +8,9 @@
|
|||||||
}: {
|
}: {
|
||||||
programs = {
|
programs = {
|
||||||
plasma = {
|
plasma = {
|
||||||
overrideConfig = true;
|
|
||||||
|
|
||||||
panels = [
|
panels = [
|
||||||
{
|
{
|
||||||
|
screen = "all";
|
||||||
height = 44;
|
height = 44;
|
||||||
location = "top";
|
location = "top";
|
||||||
alignment = "center";
|
alignment = "center";
|
||||||
@ -134,7 +133,8 @@
|
|||||||
theme = "Breeze_Light";
|
theme = "Breeze_Light";
|
||||||
size = 24;
|
size = 24;
|
||||||
};
|
};
|
||||||
wallpaper = /home/${username}/${project}/other/wallpaper3.png;
|
# Do not use wallpaper option here as it causes issues! Use it in configFile
|
||||||
|
# wallpaper = /home/${username}/${project}/other/wallpaper3.png;
|
||||||
soundTheme = "freedesktop";
|
soundTheme = "freedesktop";
|
||||||
iconTheme = "Breeze-LaCapitaine-apps";
|
iconTheme = "Breeze-LaCapitaine-apps";
|
||||||
splashScreen = {
|
splashScreen = {
|
||||||
|
|||||||
@ -23,8 +23,6 @@
|
|||||||
in {
|
in {
|
||||||
programs = {
|
programs = {
|
||||||
plasma = {
|
plasma = {
|
||||||
overrideConfig = true;
|
|
||||||
|
|
||||||
powerdevil = {
|
powerdevil = {
|
||||||
AC = {
|
AC = {
|
||||||
powerProfile = selectedProfile.AC.powerProfile;
|
powerProfile = selectedProfile.AC.powerProfile;
|
||||||
|
|||||||
Reference in New Issue
Block a user