Compare commits

...

4 commits

Author SHA1 Message Date
kB01 0cf24acb45
Enabled LanguageTool Server, allowUnfree = false
Some checks failed
/ Check Nix Flake (push) Has been cancelled
2025-09-16 01:41:25 +02:00
kB01 0a745bd063
Created Desktop Suit (Browsers) 2025-09-16 01:40:21 +02:00
kB01 bc591e1042
Updated Systems 2025-09-16 01:39:45 +02:00
kB01 c046b956fc
Updated Systems 2025-09-16 01:06:54 +02:00
8 changed files with 315 additions and 224 deletions

View file

@ -127,11 +127,11 @@
]
},
"locked": {
"lastModified": 1757598712,
"narHash": "sha256-5PWVrdMp8u31Q247jqnJcwxKg3MJrs1TadTyTBRVBDY=",
"lastModified": 1757920978,
"narHash": "sha256-Mv16aegXLulgyDunijP6SPFJNm8lSXb2w3Q0X+vZ9TY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6d7c11a0adee0db21e3a8ef90ae07bb89bc20b8f",
"rev": "11cc5449c50e0e5b785be3dfcb88245232633eb8",
"type": "github"
},
"original": {
@ -143,11 +143,11 @@
"lix": {
"flake": false,
"locked": {
"lastModified": 1757256637,
"narHash": "sha256-EBpeLdUwTedFKbOypXtYVacdPy6R8ZGF3/Dsby4jiAk=",
"rev": "91bf54d726cddd74d6ca34c6c01de2c9461cbe32",
"lastModified": 1757791852,
"narHash": "sha256-G7QPn4gnKeXuecVfiglVSUqxufgB4Z4dlO/1zygXsBA=",
"rev": "8981fb5a18ae15f664b27fde437dce3e17030874",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/91bf54d726cddd74d6ca34c6c01de2c9461cbe32.tar.gz?rev=91bf54d726cddd74d6ca34c6c01de2c9461cbe32"
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/8981fb5a18ae15f664b27fde437dce3e17030874.tar.gz?rev=8981fb5a18ae15f664b27fde437dce3e17030874"
},
"original": {
"type": "tarball",
@ -237,11 +237,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1757103352,
"narHash": "sha256-PtT7ix43ss8PONJ1VJw3f6t2yAoGH+q462Sn8lrmWmk=",
"lastModified": 1757943327,
"narHash": "sha256-w6cDExPBqbq7fTLo4dZ1ozDGeq3yV6dSN4n/sAaS6OM=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "11b2a10c7be726321bb854403fdeec391e798bf0",
"rev": "67a709cfe5d0643dafd798b0b613ed579de8be05",
"type": "github"
},
"original": {
@ -253,11 +253,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1757487488,
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
"lastModified": 1757745802,
"narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0",
"rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
"type": "github"
},
"original": {
@ -309,11 +309,11 @@
]
},
"locked": {
"lastModified": 1757503115,
"narHash": "sha256-S9F6bHUBh+CFEUalv/qxNImRapCxvSnOzWBUZgK1zDU=",
"lastModified": 1757847158,
"narHash": "sha256-TumOaykhZO8SOs/faz6GQhqkOcFLoQvESLSF1cJ4mZc=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "0bf793823386187dff101ee2a9d4ed26de8bbf8c",
"rev": "ee6f91c1c11acf7957d94a130de77561ec24b8ab",
"type": "github"
},
"original": {

View file

@ -33,7 +33,7 @@
options = "--delete-older-than 30d";
};
nix.optimise.automatic = true;
channels-config.allowUnfree = false;
channels-config.allowUnfree = true;
# Configure Flake Utils Plus
supportedSystems = inputs.snowfall-lib.inputs.flake-utils-plus.lib.defaultSystems ++ ["i686-linux"];

View file

@ -1,23 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
{
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;
commandLineArgs = [
"--extension-mime-request-handling=always-prompt-for-install" # Enable Extension-Install Dialogue
"--enable-features=ClearDataOnExit,NoReferrers,SpoofWebGLInfo" # Feature Flags
"--no-default-browser-check"
];
extensions = [
{ # Chromium Web Store
id = "ocaahdebbfolfmndjeplogmgcagdmblk";
updateUrl = "https://github.com/NeverDecaf/chromium-web-store/releases/latest/download/Chromium.Web.Store.crx";
}
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # uBlock Origin
{ id = "edibdbjcniadpccecjdfdjjppcpchdlm"; } # I still don't care about cookies
{ id = "oboonakemofpalcgghocfoadofidjkkk"; } # KeePassXC-Browser
{ id = "oldceeleldhonbafppcapldpdifcinji"; } # LanguageTool
{ id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; } # dark reader
];
};
}

View file

@ -1,11 +1,14 @@
{ config, pkgs, lib, inputs, ... }:
{
imports = [
./firefox.nix
./chromium.nix
];
#imports = [];
home.username = "kb";
home.homeDirectory = "/home/kb";
nixpkgs.config.allowUnfree = false;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"ungoogled-chromium"
];
home.packages = with pkgs; [
# System
kdePackages.kate
@ -39,7 +42,6 @@
webcord
# Customization
razergenie
firefoxpwa
# Development
vscodium
scrcpy
@ -69,5 +71,7 @@
services.ssh-agent.enable = true;
suits.desktop.enable = true;
home.stateVersion = "24.05";
}

View file

@ -1,176 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
let
# Firefox Profile Setting States
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
lock-empty-string = {
Value = "";
Status = "locked";
};
in {
programs.firefox = {
enable = true;
nativeMessagingHosts = [ pkgs.firefoxpwa ];
policies = {
# --------- Privacy ---------
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableFirefoxAccounts = true;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
OfferToSaveLogins = false;
FirefoxHome.TopSites = false;
FirefoxHome.SponsoredTopSites = false;
Preferences = {
"browser.newtabpage.pinned" = lock-empty-string;
"browser.topsites.contile.enabled" = lock-false;
};
# -------- Opiniated --------
DontCheckDefaultBrowser = true;
DisableProfileImport = true;
SearchBar = "unified";
SearchEngines.Add = [ # Only Available in ESR Releases https://mozilla.github.io/policy-templates/#searchengines--add
{
Name = "Brave";
URLTemplate = "https://search.brave.com/search?q={SearchTerms}";
Alias = "br";
}
];
# Extensions https://mozilla.github.io/policy-templates#extensionsettings
ExtensionSettings = {
"uBlock0@raymondhill.net" = { # uBlock Origin: https://addons.mozilla.org/en-US/firefox/addon/ublock-origin
install_url = "https://addons.mozilla.org/firefox/downloads/file/4458450/ublock_origin-1.63.2.xpi";
installation_mode = "normal_installed";
private_browsing = true;
};
"idcac-pub@guus.ninja" = { # I still don't care about cookies: https://addons.mozilla.org/en-US/firefox/addon/istilldontcareaboutcookies/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4216095/istilldontcareaboutcookies-1.1.4.xpi";
installation_mode = "normal_installed";
private_browsing = true;
};
"keepassxc-browser@keepassxc.org" = { # KeePassXC-Browser: https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser
install_url = "https://addons.mozilla.org/firefox/downloads/file/4441759/keepassxc_browser-1.9.7.xpi";
installation_mode = "normal_installed";
};
"offline-qr-code@rugk.github.io" = { # Offline QR Code Generator: https://addons.mozilla.org/en-US/firefox/addon/offline-qr-code-generator/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4349427/offline_qr_code_generator-1.9.xpi";
installation_mode = "normal_installed";
};
"addon@darkreader.org" = { # Dark Reader: https://addons.mozilla.org/en-US/firefox/addon/darkreader/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4439735/darkreader-4.9.103.xpi";
installation_mode = "normal_installed";
};
"languagetool-webextension@languagetool.org" = { # LanguageTool: https://addons.mozilla.org/en-US/firefox/addon/languagetool
install_url = "https://addons.mozilla.org/firefox/downloads/file/4470413/languagetool-8.19.4.xpi";
installation_mode = "normal_installed";
};
};
Bookmarks = [
{
Title = "Syncthing";
URL = "localhost:8384";
Placement = "toolbar";
}
{
Title = "BayZeit";
URL = "https://bayzeit-web.ur.de/";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Zimbra";
URL = "https://my.ohmportal.de/zimbra/#1";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Moodle";
URL = "https://elearning.ohmportal.de/my/courses.php";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Ohmportal";
URL = "https://my.ohmportal.de/";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Intranet";
URL = "https://intern.ohmportal.de/seitenbaum/home/page.html";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Kantine Hohfederstraße";
URL = "https://www.werkswelt.de/?id=hohf";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "Kantine Keßlerplatz";
URL = "https://www.werkswelt.de/index.php?id=mohm";
Placement = "toolbar";
Folder = "OHM";
}
{
Title = "NixOS Search - Packages";
URL = "https://search.nixos.org/packages?channel=unstable";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "NixOS Search - Options";
URL = "https://search.nixos.org/options?channel=unstable";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Home Manager Search - Options";
URL = "https://home-manager-options.extranix.com/?release=master";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Lix";
URL = "https://lix.systems/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "AUX - Homepage";
URL = "https://auxolotl.org/en/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "AUX - Forum";
URL = "https://forum.aux.computer/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "NixOS & Flakes Book";
URL = "https://nixos-and-flakes.thiscute.world/introduction/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Nix Pills";
URL = "https://nixos.org/guides/nix-pills/";
Placement = "toolbar";
Folder = "NixOS";
}
];
};
};
}

View file

@ -23,7 +23,7 @@
{ # Chromium Web Store
id = "ocaahdebbfolfmndjeplogmgcagdmblk";
crxPath = builtins.fetchurl {
url = "https://github.com/NeverDecaf/chromium-web-store/releases/download/v1.5.4.3/Chromium.Web.Store.crx";
url = "https://github.com/NeverDecaf/chromium-web-store/releases/download/v1.5.5/Chromium.Web.Store.crx";
name = "ocaahdebbfolfmndjeplogmgcagdmblk.crx";
sha256 = "sha256:0ck5k4gs5cbwq1wd5i1aka5hwzlnyc4c513sv13vk9s0dlhbz4z5";
};

View file

@ -0,0 +1,269 @@
{ lib, config, pkgs, ... }:
let
cfg = config.suits.desktop;
in
{
options.suits.desktop = {
enable = lib.mkEnableOption "Desktop";
firefox.enable = lib.mkOption {
type = with lib.types; bool;
default = cfg.enable;
example = true;
description = "Enable Firefox";
};
firefox.disableuBlockOrigin = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableIDontCareAboutCookies = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableKeepassxcBrowser = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableOfflineQr = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableDarkReader = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableLanguageTool = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableDefaultBookmarks = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.enable = lib.mkOption {
type = with lib.types; bool;
default = cfg.enable;
example = true;
description = "Enable Chromium";
};
chromium.enableWideVine = lib.mkOption {
type = with lib.types; bool;
default = true;
example = false;
};
chromium.disableChromiumWebStore = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableuBlockOrigin = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableIDontCareAboutCookies = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableKeepassxcBrowser = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableLanguageTool = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableDarkReader = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
};
config = lib.mkIf cfg.enable {
programs.firefox = lib.mkIf cfg.firefox.enable {
enable = true;
nativeMessagingHosts = []; # pkgs.firefoxpwa removed. I use ungoogled-chromiums PWA Implementation for better stability.
policies = {
# --------- Privacy ---------
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableFirefoxAccounts = true;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
OfferToSaveLogins = false;
FirefoxHome.TopSites = false;
FirefoxHome.SponsoredTopSites = false;
Preferences = {
"browser.newtabpage.pinned" = {
Value = "";
Status = "locked";
};
"browser.topsites.contile.enabled" = {
Value = false;
Status = "locked";
};
};
# -------- Opiniated --------
DontCheckDefaultBrowser = true;
DisableProfileImport = true;
SearchBar = "unified";
SearchEngines.Add = [ # Only Available in ESR Releases https://mozilla.github.io/policy-templates/#searchengines--add
{
Name = "Brave";
URLTemplate = "https://search.brave.com/search?q={searchTerms}";
Alias = "br";
IconURL = "https://cdn.search.brave.com/serp/v3/_app/immutable/assets/brave-search-icon.CsIFM2aN.svg";
}
];
# Extensions https://mozilla.github.io/policy-templates#extensionsettings
ExtensionSettings = {
"uBlock0@raymondhill.net" = lib.mkIf (cfg.firefox.disableuBlockOrigin == false) { # uBlock Origin: https://addons.mozilla.org/en-US/firefox/addon/ublock-origin
install_url = "https://addons.mozilla.org/firefox/downloads/file/4573289/ublock_origin-1.66.0.xpi";
installation_mode = "normal_installed";
private_browsing = true;
};
"idcac-pub@guus.ninja" = lib.mkIf (cfg.firefox.disableIDontCareAboutCookies == false) { # I still don't care about cookies: https://addons.mozilla.org/en-US/firefox/addon/istilldontcareaboutcookies/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4216095/istilldontcareaboutcookies-1.1.4.xpi";
installation_mode = "normal_installed";
private_browsing = true;
};
"keepassxc-browser@keepassxc.org" = lib.mkIf (cfg.firefox.disableKeepassxcBrowser == false) { # KeePassXC-Browser: https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser
install_url = "https://addons.mozilla.org/firefox/downloads/file/4575368/keepassxc_browser-1.9.9.6.xpi";
installation_mode = "normal_installed";
};
"offline-qr-code@rugk.github.io" = lib.mkIf (cfg.firefox.disableOfflineQr == false) { # Offline QR Code Generator: https://addons.mozilla.org/en-US/firefox/addon/offline-qr-code-generator/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4349427/offline_qr_code_generator-1.9.xpi";
installation_mode = "normal_installed";
};
"addon@darkreader.org" = lib.mkIf (cfg.firefox.disableDarkReader == false) { # Dark Reader: https://addons.mozilla.org/en-US/firefox/addon/darkreader/
install_url = "https://addons.mozilla.org/firefox/downloads/file/4535824/darkreader-4.9.110.xpi";
installation_mode = "normal_installed";
};
"languagetool-webextension@languagetool.org" = lib.mkIf (cfg.firefox.disableLanguageTool == false) { # LanguageTool: https://addons.mozilla.org/en-US/firefox/addon/languagetool
install_url = "https://addons.mozilla.org/firefox/downloads/file/4538560/languagetool-9.0.1.xpi";
installation_mode = "normal_installed";
};
};
Bookmarks = lib.mkIf (cfg.firefox.disableDefaultBookmarks == false) [
{
Title = "Syncthing";
URL = "localhost:8384";
Placement = "toolbar";
}
{
Title = "NixOS Search - Packages";
URL = "https://search.nixos.org/packages?channel=unstable";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "NixOS Search - Options";
URL = "https://search.nixos.org/options?channel=unstable";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Home Manager Search - Options";
URL = "https://home-manager-options.extranix.com/?release=master";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Lix";
URL = "https://lix.systems/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "AUX - Homepage";
URL = "https://auxolotl.org/en/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "AUX - Forum";
URL = "https://forum.aux.computer/";
Placement = "toolbar";
Folder = "NixOS";
}
{
Title = "Nix Pills";
URL = "https://nixos.org/guides/nix-pills/";
Placement = "toolbar";
Folder = "NixOS";
}
];
};
};
programs.chromium = lib.mkIf cfg.chromium.enable {
enable = true;
package = pkgs.ungoogled-chromium.override { enableWideVine = cfg.chromium.enableWideVine; };
commandLineArgs = [
"--extension-mime-request-handling=always-prompt-for-install" # Enable Extension-Install Dialogue
"--enable-features=NoReferrers,SpoofWebGLInfo" # Feature Flags
"--no-default-browser-check"
];
extensions = let
createChromiumExtensionFor = browserVersion: { id, sha256, version }: {
inherit id;
crxPath = builtins.fetchurl {
url = "https://clients2.google.com/service/update2/crx?response=redirect&acceptformat=crx2,crx3&prodversion=${browserVersion}&x=id%3D${id}%26installsource%3Dondemand%26uc";
name = "${id}.crx";
inherit sha256;
};
inherit version;
};
createChromiumExtension = createChromiumExtensionFor (lib.versions.major pkgs.ungoogled-chromium.version);
in (lib.lists.optionals (cfg.chromium.disableChromiumWebStore == false) [{ # Chromium Web Store
id = "ocaahdebbfolfmndjeplogmgcagdmblk";
crxPath = builtins.fetchurl {
url = "https://github.com/NeverDecaf/chromium-web-store/releases/download/v1.5.5/Chromium.Web.Store.crx";
name = "ocaahdebbfolfmndjeplogmgcagdmblk.crx";
sha256 = "sha256-0g4AKed9vPf0TPI6OawpjiusvyBJEab5XYNHmg9BpfE=";
};
version = "1.5.5";
}]) ++
(lib.lists.optionals (cfg.chromium.disableuBlockOrigin == false) [(createChromiumExtension { # uBlock Origin
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
sha256 = "sha256-HFD1A9b9958FbtjJGjWl5FnsttsNZBTsdVyaE5N151A=";
version = "1.66.0";
})]) ++
(lib.lists.optionals (cfg.chromium.disableIDontCareAboutCookies == false) [(createChromiumExtension { # I still don't care about cookies
id = "edibdbjcniadpccecjdfdjjppcpchdlm";
sha256 = "sha256:11k7cxcjafs8ziaxl4bilbfwbgl2yf1p6v1bvwszadcr14xyvgsj";
version = "1.1.4";
})]) ++
(lib.lists.optionals (cfg.chromium.disableKeepassxcBrowser == false) [(createChromiumExtension { # KeePassXC-Browser
id = "oboonakemofpalcgghocfoadofidjkkk";
sha256 = "sha256-N/CRVkNiNmtGn5A7C3SD+5rnnyKG+VA3Pkn1s9vr7EM=";
version = "1.9.9.6";
})]) ++
(lib.lists.optionals (cfg.chromium.disableLanguageTool == false) [(createChromiumExtension { # LanguageTool
id = "oldceeleldhonbafppcapldpdifcinji";
sha256 = "sha256-eTBLiCz8V1eoXFOdrZYXxuxv/amjCspuN+90PeTkJS4=";
version = "9.3.1";
})]) ++
(lib.lists.optionals (cfg.chromium.disableDarkReader == false) [(createChromiumExtension { # dark reader
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";
sha256 = "sha256-8/tzlj4xc1h/+Zeek4r9l0I4/Kw3EJgLaqTTxZbRGcU=";
version = "4.9.110";
})]);
};
};
}

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, pkgs, lib, ... }:
{
imports =
@ -12,7 +12,18 @@
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [ "remotebuild" ];
};
nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowUnfree = false;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"ungoogled-chromium"
"ungoogled-chromium-unwrapped"
"widevine-cdm"
"nvidia-x11"
"nvidia-settings"
"veracrypt"
"castlabs-electron"
"steam"
"steam-unwrapped"
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
@ -99,6 +110,12 @@
programs.steam.remotePlay.openFirewall = true;
hardware.steam-hardware.enable = true;
# Languagetool Spellchecking Server
services.languagetool = {
enable = true;
allowOrigin = "*";
};
# SSH
programs.ssh.startAgent = true;
services.openssh = {