aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOromis Foxtail <qwertman783@outlook.com>2026-04-22 15:41:50 +0200
committerOromis Foxtail <qwertman783@outlook.com>2026-04-22 15:41:50 +0200
commitcaae37c3de3c62d167f36e4d1a856e940a8c01f2 (patch)
tree89f311e461915458ec1c34d600b47ca1577ee140
parentc67f2602c12a774a2c63a8daf7fd4e80540fd11a (diff)
parentb8dfd233dbb16a65235865daf2d3a067ff44bb59 (diff)
Merge branch 'main' of 10.0.0.37:/srv/git/NixOS-config
-rw-r--r--flake.nix2
-rw-r--r--home/mun/programs/firefox.nix8
-rw-r--r--home/rices/schrottkatze/README.md88
-rw-r--r--home/rices/schrottkatze/browser.nix399
4 files changed, 91 insertions, 406 deletions
diff --git a/flake.nix b/flake.nix
index 11f7152..5468b6f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -98,7 +98,7 @@
};
in {
nixosConfigurations = {
- kronos = mkSystem "kronos" "schrottkatze";
+ kronos = mkSystem "kronos" "nord-blue";
herra = mkSystem "herra" "schrottkatze";
mystra = mkSystem "mystra" "nord-blue";
};
diff --git a/home/mun/programs/firefox.nix b/home/mun/programs/firefox.nix
index a0e6893..be732c1 100644
--- a/home/mun/programs/firefox.nix
+++ b/home/mun/programs/firefox.nix
@@ -2,14 +2,14 @@
home.file = {
".tridactylrc" = {
text = ''
- set editorcmd kitty hx %f +%l
+ set editorcmd alacritty hx %f +%l
set newtab about:blank
'';
};
};
programs.firefox = {
enable = true;
- package = pkgs.firefox.override {
+ package = pkgs.librewolf.override {
nativeMessagingHosts = [
pkgs.tridactyl-native
];
@@ -19,7 +19,6 @@
Extensions.Install = map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [
"bitwarden-password-manager"
"darkreader"
- "indie-wiki-buddy"
"multi-account-containers"
"privacy-badger17"
"return-youtube-dislikes"
@@ -27,10 +26,7 @@
"styl-us"
"tabby-cat-friend"
"torproject-snowflake"
- "tridactyl-vim"
"ublock-origin"
- "web-clipper-obsidian"
- "web-scrobbler"
];
Extensions.Uninstall = [
"ddg@search.mozilla.org"
diff --git a/home/rices/schrottkatze/README.md b/home/rices/schrottkatze/README.md
new file mode 100644
index 0000000..9442c65
--- /dev/null
+++ b/home/rices/schrottkatze/README.md
@@ -0,0 +1,88 @@
+# schrottkatze
+
+NixOS rice built on **Niri** (Wayland compositor) with **Gruvbox Dark Hard** theming.
+
+![wallpaper](niri/wallpaper.jpg)
+
+## Stack
+
+| Component | Choice |
+|-----------|--------|
+| Compositor | [Niri](https://github.com/YaLTeR/niri) (Wayland) |
+| Terminal | Kitty (+ Alacritty backup) |
+| Bar | [Eww](https://github.com/elkowar/eww) (top + bottom) |
+| Launcher | Fuzzel |
+| Editor | Helix |
+| Browser | Firefox (hardened, Tridactyl) |
+| Notifications | Dunst |
+| Lock Screen | Swaylock + Swayidle |
+| Theme Engine | [Stylix](https://github.com/danth/stylix) |
+
+## Features
+
+- **Gruvbox Dark Hard** palette applied system-wide via Stylix
+- **Gradient window borders** — pink-to-cyan active, pink-to-orange inactive
+- **Custom GLSL window open animation** (`arc.frag` shader)
+- **Eww bars** with CPU/RAM/battery monitors, systray, workspace indicators, Mullvad VPN status
+- **Decorative pride flag overlays** on both bars
+- **Privacy-hardened Firefox** — telemetry disabled, HTTPS-only, fingerprinting resistance, uBlock Origin
+- **Screen capture blocking** for sensitive apps (Signal, Element, Discord)
+- **Vim-style keybindings** throughout (hjkl navigation in Niri)
+- **Czech keyboard layout** with Caps→Escape remap
+- **Xwayland support** via `xwayland-satellite`
+
+## Fonts
+
+| Role | Font |
+|------|------|
+| Monospace | Departure Mono Nerd Font |
+| Sans-serif | Atkinson Hyperlegible |
+| Serif | Linux Libertine O |
+| Emoji | Noto Color Emoji |
+
+## Structure
+
+```
+.
+├── default.nix # Entry point — imports system + home
+├── system.nix # System-level config (Niri, Pipewire, Stylix, fonts)
+├── home.nix # Home Manager config (packages, GPG agent)
+├── browser.nix # Firefox setup, extensions, search engines
+├── terminal.nix # Kitty config
+├── notifications.nix # Dunst config
+├── fuzzel.nix # Launcher config
+├── eww.nix # Bar config
+├── niri.nix # Niri compositor config (KDL generation)
+├── stylix.nix # Theme overrides
+├── swayidle.nix # Lock screen integration
+├── niri/
+│ ├── wallpaper.jpg
+│ ├── arc.frag # Window open animation shader
+│ └── kdl/ # Niri config modules
+│ ├── binds.kdl # Keybindings
+│ ├── style.kdl # Window styling
+│ ├── input.kdl # Keyboard/mouse/touchpad
+│ ├── quirks.kdl # Per-app window rules
+│ ├── privacy.kdl # Screen capture blocks
+│ └── ...
+└── eww/
+ └── configDir/ # Eww bar widgets, scripts, CSS
+```
+
+## Key Bindings
+
+| Bind | Action |
+|------|--------|
+| `Mod+Return` | Kitty |
+| `Mod+D` | Fuzzel launcher |
+| `Mod+N` | Firefox |
+| `Mod+E` | Edit Niri config |
+| `Mod+M` | Color picker |
+| `Mod+I` | Emoji picker |
+| `Mod+hjkl` | Focus window (vim dirs) |
+| `Mod+Shift+hjkl` | Move window |
+| `Mod+1-9` | Switch workspace |
+
+## Search Engines (Firefox)
+
+Kagi (default), DuckDuckGo, Nix Packages, Nix Options, Home Manager Options, NixOS Wiki, Noogle, lib.rs, Rust docs, MDN.
diff --git a/home/rices/schrottkatze/browser.nix b/home/rices/schrottkatze/browser.nix
deleted file mode 100644
index c2d979d..0000000
--- a/home/rices/schrottkatze/browser.nix
+++ /dev/null
@@ -1,399 +0,0 @@
-{pkgs, ...}: {
- home.file = {
- ".tridactylrc" = {
- text = ''
- set editorcmd kitty hx %f +%l
- set newtab about:blank
- '';
- };
- };
- programs.firefox = {
- enable = true;
- package = pkgs.firefox.override {
- nativeMessagingHosts = [
- pkgs.tridactyl-native
- ];
- };
- policies = {
- DefaultDownloadDirectory = "\${home}/Downloads";
- Extensions.Install = map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [
- "bitwarden-password-manager"
- "darkreader"
- "indie-wiki-buddy"
- "kagi-search-for-firefox"
- "multi-account-containers"
- "privacy-badger17"
- "return-youtube-dislikes"
- "sponsorblock"
- "styl-us"
- "tabby-cat-friend"
- "torproject-snowflake"
- "tridactyl-vim"
- "ublock-origin"
- "web-clipper-obsidian"
- "web-scrobbler"
- ];
- Extensions.Uninstall = [
- "ddg@search.mozilla.org"
- "google@search.mozilla.org"
- "bing@search.mozilla.org"
- "amazondotcom@search.mozilla.org"
- "ebay@search.mozilla.org"
- "twitter@search.mozilla.org"
- ];
- "DisableFirefoxStudies" = true;
- "DisableTelemetry" = true;
- "DisableFeedbackCommands" = true;
- "DisablePocket" = true;
- };
- profiles.mun = {
- search = {
- force = true;
- default = "Kagi";
- engines = {
- "Kagi".urls = [
- {
- template = "https://kagi.com/search";
- params = [
- {
- name = "q";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- "duckduckbleh" = {
- urls = [
- {
- template = "https://noai.duckduckgo.com/";
- params = [
- {
- name = "q";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- definedAliases = [
- "duck"
- "d"
- "ddg"
- ];
- };
- "Nix Packages" = {
- urls = [
- {
- template = "https://search.nixos.org/packages";
- params = [
- {
- name = "query";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = ["pkgs"];
- };
- "Nix Options" = {
- urls = [
- {
- template = "https://search.nixos.org/options";
- params = [
- {
- name = "query";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = ["opts"];
- };
- "Home manager Options" = {
- urls = [
- {
- template = "https://home-manager-options.extranix.com/";
- params = [
- {
- name = "query";
- value = "{searchTerms}";
- }
- {
- name = "release";
- value = "master";
- }
- ];
- }
- ];
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = ["hm"];
- };
- "NixOS Wiki" = {
- urls = [
- {
- template = "https://nixos.wiki/index.php";
- params = [
- {
- name = "search";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = ["nxwk"];
- };
- "Noogle" = {
- urls = [
- {
- template = "https://noogle.dev/q";
- params = [
- {
- name = "term";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- definedAliases = ["ngl"];
- };
- "lib.rs" = {
- urls = [
- {
- template = "https://lib.rs/search";
- params = [
- {
- name = "q";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- definedAliases = ["libs"];
- };
- "rust docs" = {
- urls = [
- {
- template = "https://docs.rs/releases/search";
- params = [
- {
- name = "query";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- definedAliases = ["docs"];
- };
- "rust docs direct open" = {
- urls = [
- {
- template = "https://docs.rs/{searchTerms}";
- }
- ];
- definedAliases = [
- "rd"
- ];
- };
- "rust std docs" = {
- urls = [
- {
- template = "https://docs.rust-lang.org/std/index.html";
- params = [
- {
- name = "search";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- definedAliases = ["std"];
- };
- "MDN" = {
- urls = [
- {
- template = "https://developer.mozilla.org/search";
- params = [
- {
- name = "q";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- };
- "bing".metaData.hidden = true;
- "google".metaData.hidden = true;
- "Amazon.de".metaData.hidden = true;
- };
- };
- settings = {
- "devtools.editor.keymap" = "vim";
- "devtools.toolbox.host" = "right";
- "devtools.theme" = "dark";
- "webgl.disabled" = false;
- "browser.urlbar.decodeURLsOnCopy" = true;
- "browser.urlbar.unitConversion.enabled" = true;
- "browser.urlbar.suggest.calculator" = true;
- "browser.compactmode.show" = true;
- "browser.uidensity" = 1;
- "screenshots.browser.component.enabled" = true;
- "browser.aboutConfig.showWarning" = false;
- "browser.aboutwelcome.showModal" = false;
- "browser.aboutwelcome.enabled" = false;
- "browser.preferences.moreFromMozilla" = false;
- "browser.menu.showViewImageInfo" = true;
- "browser.shopping.experience2023.active" = false;
- "browser.shopping.experience2023.survey.enabled" = false;
-
- "identity.fxaccounts.enabled" = true;
- "browser.tabs.firefox-view" = true;
- "browser.tabs.firefox-view-next" = true;
- "browser.newtabpage.activity-stream.showSponsored" = false;
- "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
- "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
- "privacy.trackingprotection.emailtracking.enabled" = true;
- "privacy.trackingprotection.enabled" = true;
- "privacy.trackingprotection.socialtracking.enabled" = true;
-
- "browser.ml.chat.enabled" = false;
- "browser.ml.chat.hideLocalhost" = false;
- "browser.ml.chat.prompt.prefix" = "";
- "browser.ml.chat.prompts.0" = "";
- "browser.ml.chat.prompts.1" = "";
- "browser.ml.chat.prompts.2" = "";
- "browser.ml.chat.prompts.3" = "";
- "browser.ml.chat.provider" = "";
- "browser.ml.chat.shortcuts" = false;
- "browser.ml.chat.shortcuts.custom" = false;
- "browser.ml.chat.shortcuts.longPress" = "";
- "browser.ml.chat.sidebar" = false;
-
- "geo.provider.network.logging.enabled" = true;
- "extensions.getAddons.showPane" = false;
- "extensions.htmlaboutaddons.recommendations.enabled" = false;
- "browser.discovery.enabled" = false;
- "browser.shopping.experience2023.enabled" = false;
- "datareporting.policy.dataSubmissionEnabled" = false;
- "datareporting.healthreport.uploadEnabled" = false;
- "toolkit.telemetry.unified" = false;
- "toolkit.telemetry.enabled" = false;
- "toolkit.telemetry.server" = "data:,";
- "toolkit.telemetry.archive.enabled" = false;
- "toolkit.telemetry.newProfilePing.enabled" = false;
- "toolkit.telemetry.shutdownPingSender.enabled" = false;
- "toolkit.telemetry.updatePing.enabled" = false;
- "toolkit.telemetry.bhrPing.enabled" = false;
- "toolkit.telemetry.firstShutdownPing.enabled" = false;
- "toolkit.telemetry.coverage.opt-out" = true;
- "toolkit.coverage.opt-out" = true;
- "toolkit.coverage.endpoint.base" = "";
- "browser.ping-centre.telemetry" = false;
- "browser.newtabpage.activity-stream.feeds.telemetry" = false;
- "browser.newtabpage.activity-stream.telemetry" = false;
- "app.shield.optoutstudies.enabled" = false;
- "app.normandy.enabled" = false;
- "app.normandy.api_url" = "";
- "dom.private-attribution.submission.enabled" = false;
- "browser.newtabpage.activity-stream.feeds.showWeather" = false;
- "browser.newtabpage.activity-stream.feeds.weatherfeed" = false;
-
- "browser.safebrowsing.malware.enabled" = false;
- "browser.safebrowsing.phishing.enabled" = false;
- "browser.safebrowsing.downloads.enabled" = false;
- "browser.safebrowsing.downloads.remote.enabled" = false;
- "browser.safebrowsing.downloads.remote.url" = "";
- "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
- "browser.safebrowsing.downloads.remote.block_uncommon" = false;
- "browser.safebrowsing.allowOverride" = false;
-
- "network.prefetch-next" = false;
- "network.dns.disablePrefetch" = true;
- "network.dns.disablePrefetchFromHTTPS" = true;
- "network.predictor.enabled" = false;
- "network.predictor.enable-prefetch" = false;
- "network.http.speculative-parallel-limit" = 0;
- "browser.places.speculativeConnect.enabled" = false;
- "browser.send_pings" = false;
-
- "browser.urlbar.pocket.featureGate" = false;
- "browser.urlbar.weather.featureGate" = false;
- "browser.urlbar.speculativeConnect.enabled" = false;
- "browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
- "browser.urlbar.suggest.quicksuggest.sponsored" = false;
- "browser.search.suggest.enabled" = false;
- "browser.urlbar.suggest.searches" = false;
- "browser.urlbar.trending.featureGate" = false;
-
- "security.ssl.require_safe_negotiation" = true;
- "security.remote_settings.crlite_filters.enabled" = true;
- "security.pki.crlite_mode" = 2;
-
- "dom.security.https_only_mode" = true;
- "dom.security.https_only_mode_pbm" = true;
- "security.ssl.treat_unsafe_negotiation_as_broken" = true;
- "browser.xul.error_pages.expert_bad_cert" = true;
- "network.http.referer.XOriginTrimmingPolicy" = 2;
-
- "privacy.userContext.enabled" = true;
- "privacy.userContext.ui.enabled" = true;
- "privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
-
- "dom.disable_window_move_resize" = true;
-
- "browser.uitour.enabled" = false;
- "browser.uitour.url" = "";
- "permissions.manager.defaultsUrl" = "";
- "webchannel.allowObject.urlWhitelist" = "";
-
- "network.IDN_show_punycode" = true;
- "pdfjs.disabled" = false;
- "pdfjs.enableScripting" = false;
- "browser.tabs.searchclipboardfor.middleclick" = false;
- "browser.download.useDownloadDir" = false;
- "browser.download.alwaysOpenPanel" = false;
-
- "browser.download.manager.addToRecentDocs" = false;
-
- "browser.download.always_ask_before_handling_new_types" = true;
- "privacy.resistFingerprinting" = true;
- "privacy.resistFingerprinting.pbmode" = true;
- "privacy.resistFingerprinting.exemptedDomains" =
- let
- domains = [
- "bahn.expert"
- "flugzeug.expert"
- "traewelling.de"
- "katzen.cafe"
- "catgirl.cloud"
- "nekover.se"
- "zug.network"
- "girlcock.club"
- "hamburg.ccc.de"
- "codeberg.org"
- ];
- in
- domains ++ (map (domain: "*." + domain) domains);
- "privacy.window.maxInnerWidth" = 1600;
- "privacy.window.maxInnerHeight" = 900;
- "privacy.resistFingerprinting.block_mozAddonManager" = true;
- "privacy.resistFingerprinting.letterboxing" = false;
- "widget.non-native-theme.enabled" = true;
- "browser.link.open_newwindow" = 3;
- "browser.link.open_newwindow.restriction" = 0;
- "signon.rememberSignons" = false;
- "dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
- "browser.pagethumbnails.capturing_disabled" = true;
-
- "geo.enabled" = false;
- "full-screen-api.enabled" = false;
- "permissions.default.geo" = 0;
- "permissions.default.camera" = 0;
- "permissions.default.microphone" = 0;
- "permissions.default.desktop-notification" = 0;
- "permissions.default.xr" = 0;
- };
- };
- };
-}