From 0f4f072b317bafad7016dcb9fdb3a4dd593d7f85 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 12:13:24 +0200 Subject: Add schrottkatze rice: core structure and stylix config default.nix exports {system, home}, system.nix has Niri, GDM, Gruvbox Dark Hard stylix, polkit, audio, fonts, XDG portals. stylix.nix has HM-level target overrides, GTK cursor/icon theme. --- home/rices/schrottkatze/default.nix | 4 ++ home/rices/schrottkatze/home.nix | 43 +++++++++++++ home/rices/schrottkatze/stylix.nix | 23 +++++++ home/rices/schrottkatze/system.nix | 121 ++++++++++++++++++++++++++++++++++++ 4 files changed, 191 insertions(+) create mode 100644 home/rices/schrottkatze/default.nix create mode 100644 home/rices/schrottkatze/home.nix create mode 100644 home/rices/schrottkatze/stylix.nix create mode 100644 home/rices/schrottkatze/system.nix (limited to 'home') diff --git a/home/rices/schrottkatze/default.nix b/home/rices/schrottkatze/default.nix new file mode 100644 index 0000000..6b7865d --- /dev/null +++ b/home/rices/schrottkatze/default.nix @@ -0,0 +1,4 @@ +{ + system = import ./system.nix; + home = import ./home.nix; +} diff --git a/home/rices/schrottkatze/home.nix b/home/rices/schrottkatze/home.nix new file mode 100644 index 0000000..1a2b5f6 --- /dev/null +++ b/home/rices/schrottkatze/home.nix @@ -0,0 +1,43 @@ +{pkgs, ...}: { + imports = [ + ./terminal.nix + ./notifications.nix + ./fuzzel.nix + ./swayidle.nix + ./browser.nix + ./niri.nix + ./eww.nix + ./layaway.nix + ./stylix.nix + ]; + + programs.swaylock.enable = true; + services.network-manager-applet.enable = true; + xsession.enable = true; + + home.packages = with pkgs; [ + fluent-reader + obsidian + zsh + hyprpicker + bemoji + librsvg + cairo + xwayland-satellite + ]; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + }; + + fonts.fontconfig = { + enable = true; + defaultFonts = { + emoji = ["Noto Color Emoji"]; + monospace = []; + sansSerif = ["Atkinson Hyperlegible"]; + serif = []; + }; + }; +} diff --git a/home/rices/schrottkatze/stylix.nix b/home/rices/schrottkatze/stylix.nix new file mode 100644 index 0000000..a3eaeaa --- /dev/null +++ b/home/rices/schrottkatze/stylix.nix @@ -0,0 +1,23 @@ +{pkgs, ...}: { + stylix.targets = { + helix.enable = false; + btop.enable = false; + nushell.enable = false; + starship.enable = false; + kitty.enable = false; + dunst.enable = false; + wofi.enable = false; + }; + gtk = { + enable = true; + cursorTheme = { + package = pkgs.phinger-cursors; + name = "phinger-cursors"; + size = 30; + }; + iconTheme = { + package = pkgs.gruvbox-dark-icons-gtk; + name = "gruvbox-dark-icons"; + }; + }; +} diff --git a/home/rices/schrottkatze/system.nix b/home/rices/schrottkatze/system.nix new file mode 100644 index 0000000..d72d02c --- /dev/null +++ b/home/rices/schrottkatze/system.nix @@ -0,0 +1,121 @@ +{pkgs, lib, ...}: { + # Desktop environment - Niri compositor + programs.niri.enable = true; + + # Display manager - GDM + services.displayManager = { + gdm = { + enable = true; + banner = "Meow :3"; + }; + defaultSession = "niri"; + }; + + # Polkit fix for Niri + security.polkit.enable = true; + systemd.user.services.niri-flake-polkit.enable = false; + systemd.user.services.polkit-gnome-authentication-agent-1 = { + description = "polkit-gnome-authentication-agent-1"; + wantedBy = ["graphical-session.target"]; + wants = ["graphical-session.target"]; + after = ["graphical-session.target"]; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; + + # Audio - Pipewire + programs.noisetorch.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + environment.systemPackages = with pkgs; [ + playerctl + pulsemixer + ]; + + # XDG portals + xdg.portal.extraPortals = [ + pkgs.xdg-desktop-portal-cosmic + ]; + xdg.portal.config.common.default = [ + "gnome" + ]; + + # Fonts + nixpkgs.config.packageOverrides = pkgs: { + google-fonts = pkgs.google-fonts.overrideAttrs (oldAttrs: { + src = pkgs.fetchFromGitHub { + owner = "google"; + repo = "fonts"; + rev = "0bd2d5599819aa0774f5ca64c8ac3f54ae3fd54f"; + sha256 = "sha256-E89GYJKG65Dh7TPI6TVre/4LCxXnxvTAPYS/OPj7nPg="; + }; + installPhase = + oldAttrs.installPhase + + "mv $out/share/fonts/truetype $out/share/fonts/ttf\n" + + "rm $out/share/fonts/ttf/Noto*Emoji*.ttf"; + }); + }; + + fonts = { + packages = with pkgs; [ + nerd-fonts.fira-code + nerd-fonts.departure-mono + google-fonts + noto-fonts-color-emoji + montserrat + atkinson-hyperlegible + arkpandora_ttf + liberation_ttf + caladea + carlito + garamond-libre + ocr-a + amiri + libertine + inter + b612 + departure-mono + yasashisa-gothic + ]; + fontDir.enable = true; + }; + + # Stylix configuration - Gruvbox Dark Hard + stylix = { + enable = true; + polarity = "dark"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; + fonts = { + serif = { + package = pkgs.libertine; + name = "Linux Libertine O"; + }; + sansSerif = { + package = pkgs.atkinson-hyperlegible; + name = "Atkinson Hyperlegible"; + }; + monospace = { + package = pkgs.nerd-fonts.departure-mono; + name = "Departure Mono Nerd Font"; + }; + emoji = { + package = pkgs.noto-fonts-color-emoji; + name = "Noto Color Emoji"; + }; + }; + }; + + # Flatpak & misc services + services.flatpak.enable = true; + services.illum.enable = true; + services.upower.enable = true; +} -- cgit v1.2.3 From 648e12342110718ca3736ec0082a688590cc0f7d Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 12:13:36 +0200 Subject: Add schrottkatze rice: terminal, notifications, fuzzel, swayidle, layaway Kitty with Gruvbox colors, Dunst notifications, Fuzzel launcher, swayidle/swaylock screen locking, layaway layout tool. --- home/rices/schrottkatze/fuzzel.nix | 26 ++++++++++++++++++++++ home/rices/schrottkatze/layaway.nix | 24 +++++++++++++++++++++ home/rices/schrottkatze/notifications.nix | 21 ++++++++++++++++++ home/rices/schrottkatze/swayidle.nix | 15 +++++++++++++ home/rices/schrottkatze/terminal.nix | 36 +++++++++++++++++++++++++++++++ 5 files changed, 122 insertions(+) create mode 100644 home/rices/schrottkatze/fuzzel.nix create mode 100644 home/rices/schrottkatze/layaway.nix create mode 100644 home/rices/schrottkatze/notifications.nix create mode 100644 home/rices/schrottkatze/swayidle.nix create mode 100644 home/rices/schrottkatze/terminal.nix (limited to 'home') diff --git a/home/rices/schrottkatze/fuzzel.nix b/home/rices/schrottkatze/fuzzel.nix new file mode 100644 index 0000000..d31dee7 --- /dev/null +++ b/home/rices/schrottkatze/fuzzel.nix @@ -0,0 +1,26 @@ +{lib, ...}: { + programs.fuzzel = { + enable = true; + settings = { + main = { + font = lib.mkForce "Departure Mono:size=13"; + terminal = "kitty"; + lines = 15; + width = 50; + horizontal-pad = 20; + vertical-pad = 12; + }; + colors = { + background = lib.mkForce "282828ff"; + match = lib.mkForce "d65d0eff"; + selection-match = lib.mkForce "fe8019ff"; + border = lib.mkForce "bab9e5ff"; + }; + border = { + radius = 10; + selection-radius = 3; + width = 3; + }; + }; + }; +} diff --git a/home/rices/schrottkatze/layaway.nix b/home/rices/schrottkatze/layaway.nix new file mode 100644 index 0000000..35db5ee --- /dev/null +++ b/home/rices/schrottkatze/layaway.nix @@ -0,0 +1,24 @@ +{pkgs, lib, ...}: +let + layaway = pkgs.rustPlatform.buildRustPackage rec { + pname = "layaway"; + version = "0.2.0"; + + src = pkgs.fetchFromGitHub { + owner = "MultisampledNight"; + repo = pname; + rev = "v${version}"; + hash = "sha256-SzAuVFEy56svasO3+1p6ysBRrIQd0UZX++/P4ZuwWm0="; + }; + + cargoHash = "sha256-QVxlkE+sq4U048LnshI/tq6HInKiSgjQLAdR+27/wEI="; + + meta = with lib; { + description = "Layout creation for Sway via a relative and human-readable DSL."; + homepage = "https://github.com/MultisampledNight/layaway"; + maintainers = [maintainers.multisn8]; + }; + }; +in { + home.packages = [layaway]; +} diff --git a/home/rices/schrottkatze/notifications.nix b/home/rices/schrottkatze/notifications.nix new file mode 100644 index 0000000..37390e9 --- /dev/null +++ b/home/rices/schrottkatze/notifications.nix @@ -0,0 +1,21 @@ +{pkgs, ...}: { + home.packages = [ + pkgs.libnotify + ]; + services.dunst = { + enable = true; + settings = { + global = { + dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst"; + browser = "${pkgs.firefox}/bin/firefox"; + mouse_left_click = "context"; + mouse_middle_click = "close_current"; + background = "#282828"; + foreground = "#ebdbb2"; + frame_color = "#504945"; + frame_width = 2; + font = "Atkinson Hyperlegible"; + }; + }; + }; +} diff --git a/home/rices/schrottkatze/swayidle.nix b/home/rices/schrottkatze/swayidle.nix new file mode 100644 index 0000000..6d8525c --- /dev/null +++ b/home/rices/schrottkatze/swayidle.nix @@ -0,0 +1,15 @@ +{pkgs, ...}: { + services.swayidle = { + enable = true; + events = [ + { + event = "before-sleep"; + command = "${pkgs.swaylock}/bin/swaylock -fF -c 442244"; + } + { + event = "lock"; + command = "swaylock -c 441144"; + } + ]; + }; +} diff --git a/home/rices/schrottkatze/terminal.nix b/home/rices/schrottkatze/terminal.nix new file mode 100644 index 0000000..403449c --- /dev/null +++ b/home/rices/schrottkatze/terminal.nix @@ -0,0 +1,36 @@ +{...}: { + programs.kitty = { + enable = true; + font.size = 12; + font.name = "Departure Mono Nerd Font"; + keybindings = { + "ctrl+shift+n" = "new_os_window_with_cwd"; + }; + settings = rec { + adjust_column_width = "95%"; + color0 = "#282828"; + color8 = "#928374"; + color1 = "#cc241d"; + color9 = "#fb4934"; + color2 = "#98971a"; + color10 = "#b8bb26"; + color3 = "#d79921"; + color11 = "#fabd2f"; + color4 = "#458588"; + color12 = "#83a598"; + color5 = "#b16286"; + color13 = "#d3869b"; + color6 = "#689d6a"; + color14 = "#8ec07c"; + color7 = "#a89984"; + color15 = "#ebdbb2"; + foreground = color15; + background = "#1d2021"; + confirm_os_window_close = 0; + hide_window_decorations = true; + }; + }; + home.sessionVariables = { + TERMINAL = "kitty"; + }; +} -- cgit v1.2.3 From 5d8400b07056fe72995a6abaa4d42ed52b55c81b Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 12:13:41 +0200 Subject: Add schrottkatze rice: Firefox with extensions and privacy hardening Tridactyl, Kagi search, 15+ extensions, telemetry disabled, fingerprinting resistance, custom search engines for Nix/Rust/MDN. --- home/rices/schrottkatze/browser.nix | 399 ++++++++++++++++++++++++++++++++++++ 1 file changed, 399 insertions(+) create mode 100644 home/rices/schrottkatze/browser.nix (limited to 'home') diff --git a/home/rices/schrottkatze/browser.nix b/home/rices/schrottkatze/browser.nix new file mode 100644 index 0000000..c2d979d --- /dev/null +++ b/home/rices/schrottkatze/browser.nix @@ -0,0 +1,399 @@ +{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; + }; + }; + }; +} -- cgit v1.2.3 From 66888f3eea130323987ca9aa890085057b8ebd34 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 12:13:47 +0200 Subject: Add schrottkatze rice: Niri compositor config KDL configs for keybindings, styling (trans flag gradient borders), workspaces (social/browser), input, privacy, app quirks, overview. Includes arc.frag window-open shader, cpdate.sh script, wallpaper. --- home/rices/schrottkatze/niri.nix | 33 ++++++ home/rices/schrottkatze/niri/kdl/binds.kdl | 77 ++++++++++++++ home/rices/schrottkatze/niri/kdl/input.kdl | 17 +++ home/rices/schrottkatze/niri/kdl/overviews.kdl | 19 ++++ home/rices/schrottkatze/niri/kdl/privacy.kdl | 12 +++ home/rices/schrottkatze/niri/kdl/quirks.kdl | 42 ++++++++ home/rices/schrottkatze/niri/kdl/screenshot.kdl | 6 ++ home/rices/schrottkatze/niri/kdl/style.kdl | 84 +++++++++++++++ home/rices/schrottkatze/niri/kdl/workspaces.kdl | 58 +++++++++++ home/rices/schrottkatze/niri/scripts/cpdate.sh | 20 ++++ home/rices/schrottkatze/niri/shaders/arc.frag | 131 ++++++++++++++++++++++++ home/rices/schrottkatze/niri/wallpaper.jpg | Bin 0 -> 8827762 bytes 12 files changed, 499 insertions(+) create mode 100644 home/rices/schrottkatze/niri.nix create mode 100644 home/rices/schrottkatze/niri/kdl/binds.kdl create mode 100644 home/rices/schrottkatze/niri/kdl/input.kdl create mode 100644 home/rices/schrottkatze/niri/kdl/overviews.kdl create mode 100644 home/rices/schrottkatze/niri/kdl/privacy.kdl create mode 100644 home/rices/schrottkatze/niri/kdl/quirks.kdl create mode 100644 home/rices/schrottkatze/niri/kdl/screenshot.kdl create mode 100644 home/rices/schrottkatze/niri/kdl/style.kdl create mode 100644 home/rices/schrottkatze/niri/kdl/workspaces.kdl create mode 100755 home/rices/schrottkatze/niri/scripts/cpdate.sh create mode 100644 home/rices/schrottkatze/niri/shaders/arc.frag create mode 100644 home/rices/schrottkatze/niri/wallpaper.jpg (limited to 'home') diff --git a/home/rices/schrottkatze/niri.nix b/home/rices/schrottkatze/niri.nix new file mode 100644 index 0000000..a69685f --- /dev/null +++ b/home/rices/schrottkatze/niri.nix @@ -0,0 +1,33 @@ +# this file must only be saved via autosave due to the formatter. +# else it will be ugly +{pkgs, lib, ...}: { + home.packages = with pkgs; [ + zenity + xwayland-satellite + ]; + home.file."config" = + let + kdlfiles = + builtins.readDir ./niri/kdl + |> lib.filterAttrs (key: value: value == "regular") + |> lib.mapAttrsToList (filename: _value: "include \"${./niri/kdl}/${filename}\""); + startups = + [ + ["eww" "open-many" "topBar" "bottomBar"] + ["${pkgs.swaybg}/bin/swaybg" "-i" "${./niri/wallpaper.jpg}" "-m" "fill"] + ["touch" ".config/niri/live.kdl"] + ] + |> map (map (word: "\"${word}\"")) + |> map (lib.concatStringsSep " ") + |> map (it: "spawn-at-startup ${it}"); + other = [ + "include \"live.kdl\"" + "output \"eDP-1\" { scale 1.1; }" + "animations { window-open { duration-ms 3000; curve \"linear\"; custom-shader r\"\n${builtins.readFile ./niri/shaders/arc.frag}\";};}" + "binds {Mod+Shift+I { spawn \"${./niri/scripts/cpdate.sh}\"; }; }" + ]; + in { + target = ".config/niri/config.kdl"; + text = lib.concatLines (startups ++ kdlfiles ++ other); + }; +} diff --git a/home/rices/schrottkatze/niri/kdl/binds.kdl b/home/rices/schrottkatze/niri/kdl/binds.kdl new file mode 100644 index 0000000..611e231 --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/binds.kdl @@ -0,0 +1,77 @@ +binds { + // spawn terminal + Mod+Return repeat=false { spawn "kitty"; } + Mod+D repeat=false { spawn "fuzzel"; } + Mod+I repeat=false { spawn "bemoji" "-n"; } + Mod+M repeat=false { spawn "hyprpicker"; } + Mod+E repeat=false { spawn "kitty" "hx" "~/.config/niri/live.kdl"; } + + Mod+Shift+E { quit; } + Mod+Shift+Q { close-window; } + Mod+Ctrl+Shift+P { power-off-monitors; } + + Mod+Shift+Ctrl+Slash allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+Slash { show-hotkey-overlay; } + + Mod+Shift+C { set-dynamic-cast-window; } + Mod+Ctrl+C { set-dynamic-cast-monitor; } + Mod+Shift+Ctrl+C { clear-dynamic-cast-target; } + + // window/columns controls + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + Mod+Ctrl+H { move-column-left; } + Mod+Ctrl+J { move-window-down; } + Mod+Ctrl+K { move-window-up; } + Mod+Ctrl+L { move-column-right; } + Mod+R { switch-preset-column-width; } + + Mod+G { toggle-overview; } + + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + // monitor controls + Mod+Shift+H { focus-monitor-left; } + Mod+Shift+J { focus-monitor-down; } + Mod+Shift+K { focus-monitor-up; } + Mod+Shift+L { focus-monitor-right; } + Mod+Shift+Ctrl+H { move-column-to-monitor-left; } + Mod+Shift+Ctrl+J { move-column-to-monitor-down; } + Mod+Shift+Ctrl+K { move-column-to-monitor-up; } + Mod+Shift+Ctrl+L { move-column-to-monitor-right; } + + // column editing stuffs + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + Mod+C { center-column; } + Mod+Minus { set-column-width "-5%"; } + Mod+Equal { set-column-width "+5%"; } + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + Mod+Shift+W { toggle-column-tabbed-display; } + + Mod+F { maximize-column; } + Alt+F { expand-column-to-available-width; } + Mod+Shift+F { maximize-window-to-edges; } + Mod+Ctrl+F { fullscreen-window; } + + Mod+Shift+Ctrl+F { toggle-windowed-fullscreen; } + + // media keys + XF86AudioLowerVolume \ + allow-when-locked=true \ + { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } + XF86AudioMicMute \ + allow-when-locked=true \ + { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } + XF86AudioMute \ + allow-when-locked=true \ + { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } + XF86AudioRaiseVolume \ + allow-when-locked=true \ + { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } +} diff --git a/home/rices/schrottkatze/niri/kdl/input.kdl b/home/rices/schrottkatze/niri/kdl/input.kdl new file mode 100644 index 0000000..a8be309 --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/input.kdl @@ -0,0 +1,17 @@ +input { + keyboard { + xkb { + layout "us" + variant "altgr-intl" + } + repeat-delay 600 + repeat-rate 25 + track-layout "global" + } + touchpad { + dwt + dwtp + natural-scroll + } + mouse { accel-profile "flat"; } +} diff --git a/home/rices/schrottkatze/niri/kdl/overviews.kdl b/home/rices/schrottkatze/niri/kdl/overviews.kdl new file mode 100644 index 0000000..5cb4443 --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/overviews.kdl @@ -0,0 +1,19 @@ +overview { + backdrop-color "110000" + zoom 0.381966 + workspace-shadow { + offset x=0 y=10 + softness 60 + color "#7f00008f" + } +} + +recent-windows { + debounce-ms 1500 + open-delay-ms 300 + highlight { + active-color "f69ecf" + padding 5 + corner-radius 2.5 + } +} diff --git a/home/rices/schrottkatze/niri/kdl/privacy.kdl b/home/rices/schrottkatze/niri/kdl/privacy.kdl new file mode 100644 index 0000000..1190aeb --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/privacy.kdl @@ -0,0 +1,12 @@ +layer-rule { + match namespace="notifications" + block-out-from "screen-capture" +} + +window-rule { + match app-id="^signal|Element|org.gnome.Evolution$" + match title="^.*(Discord|Beispiel Screenshare block Bug|Bitwarden|Träwelling).*$" + exclude title="^.*((Schrottkatze|Statistics|Leaderboard) - Träwelling|chaos.social|Nekoverse|catgirl.cloud).*$" + exclude is-floating=true + block-out-from "screen-capture" +} diff --git a/home/rices/schrottkatze/niri/kdl/quirks.kdl b/home/rices/schrottkatze/niri/kdl/quirks.kdl new file mode 100644 index 0000000..07fa886 --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/quirks.kdl @@ -0,0 +1,42 @@ +// handle steam grabbing focus 1000 times on startup +window-rule { + match app-id="steam" title="Steam" + open-focused false +} + +// position steam notifs correctly: https://github.com/YaLTeR/niri/wiki/Application-Issues +window-rule { + match app-id="steam" title="^notificationtoasts_[\\d]+_desktop$" + open-focused false + border { off; } + shadow { off; } + baba-is-float false + default-floating-position relative-to="bottom-right" x=0 y=0 +} + +// fix guild wars +window-rule { + match app-id="steam_app_1284210" title="Guild Wars 2" + match app-id="(steam_app_[0-9]+|[Mm]inecraft.*|gamescope)" + border { off; } + shadow { off; } +} + +window-rule { + match app-id="chromium-browser" + geometry-corner-radius 6 6 1 1 +} + +window-rule { + match app-id="vesktop" is-floating=true + geometry-corner-radius 6 +} + +environment { + ELECTRON_OZONE_PLATFORM_HINT "auto" +} + +window-rule { + match app-id="zenity" + geometry-corner-radius 16 +} diff --git a/home/rices/schrottkatze/niri/kdl/screenshot.kdl b/home/rices/schrottkatze/niri/kdl/screenshot.kdl new file mode 100644 index 0000000..f99e15c --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/screenshot.kdl @@ -0,0 +1,6 @@ +screenshot-path "~/Pictures/screenshots/%Y-%m-%dT%H:%M:%S.png" +binds { + Mod+Ctrl+S { screenshot-screen; } + Mod+Shift+S { screenshot-window; } + Mod+S { screenshot; } +} diff --git a/home/rices/schrottkatze/niri/kdl/style.kdl b/home/rices/schrottkatze/niri/kdl/style.kdl new file mode 100644 index 0000000..fccf795 --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/style.kdl @@ -0,0 +1,84 @@ +prefer-no-csd + +cursor { + xcursor-theme "phinger-cursors-dark" + xcursor-size 32 + hide-when-typing + hide-after-inactive-ms 10000 +} + +layout { + gaps 15 + struts { + left 0 + right 0 + top 0 + bottom 0 + } + focus-ring { off; } + border { + on + width 3 + active-gradient angle=135 from="#f69ecf" in="oklch shorter hue" relative-to="window" to="#5bcefa" + inactive-gradient angle=135 from="#f69ecf" in="oklch shorter hue" relative-to="window" to="#ff9a56" + } + tab-indicator { + hide-when-single-tab + gap 2 + width 5 + length total-proportion=0.500000 + position "left" + gaps-between-tabs 0 + corner-radius 3 + active-color "#5bcefa" + inactive-color "#3c3836" + } + default-column-width + center-focused-column "never" +} + +window-rule { + match is-floating=true + exclude app-id="steam_app_[0-9]+" + shadow { + on + offset x=0 y=0 + softness 40 + color "#bab9e5af" + inactive-color "#fa9d99af" + } +} + +window-rule { + geometry-corner-radius 1 + clip-to-geometry true +} + +window-rule { + match is-window-cast-target=true + border { + on + active-gradient angle=135 \ + from="#64de50" \ + in="oklch shorter hue" \ + relative-to="window" \ + to="#5bcefa" + inactive-gradient angle=135 \ + from="#64de50" \ + in="oklch shorter hue" \ + relative-to="window" \ + to="#ff9a56" + } +} + +layer-rule { + match namespace="launcher" + geometry-corner-radius 10 + shadow { + on + offset x=0 y=0 + softness 40 + color "#bab9e5af" + } + baba-is-float true +} diff --git a/home/rices/schrottkatze/niri/kdl/workspaces.kdl b/home/rices/schrottkatze/niri/kdl/workspaces.kdl new file mode 100644 index 0000000..ab89dec --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/workspaces.kdl @@ -0,0 +1,58 @@ +// WS Social +workspace "social" + +spawn-at-startup "signal-desktop" +spawn-at-startup ".evolution-wrapped_" +spawn-at-startup "vesktop" +spawn-at-startup "deltachat" + +window-rule { + match app-id="^(signal|Element|org.gnome.Evolution|discord|steam|DeltaChat)$" + open-on-workspace "social" +} + +// WS Browser +workspace "browser" + +spawn-at-startup "firefox" +spawn-at-startup "obsidian" + +window-rule { + match app-id="^firefox|Chromium-browser|obsidian$" + open-on-workspace "browser" +} + +binds { + Mod+P { focus-workspace-up; } + Mod+N { focus-workspace-down; } + Mod+Ctrl+P { move-workspace-up; } + Mod+Ctrl+N { move-workspace-down; } + Mod+Shift+P { move-column-to-workspace-up; } + Mod+Shift+N { move-column-to-workspace-down; } + + Mod+Q { focus-workspace "social"; } + Mod+W { focus-workspace "browser"; } + Mod+E { focus-workspace 3; } + Mod+Ctrl+Q { move-column-to-workspace "social"; } + Mod+Ctrl+W { move-column-to-workspace "browser"; } + Mod+Ctrl+E { move-column-to-workspace 3; } + + Mod+1 { focus-workspace 4; } + Mod+2 { focus-workspace 5; } + Mod+3 { focus-workspace 6; } + Mod+4 { focus-workspace 7; } + Mod+5 { focus-workspace 8; } + Mod+6 { focus-workspace 9; } + Mod+7 { focus-workspace 10; } + Mod+8 { focus-workspace 11; } + Mod+9 { focus-workspace 12; } + Mod+Ctrl+1 { move-column-to-workspace 4; } + Mod+Ctrl+2 { move-column-to-workspace 5; } + Mod+Ctrl+3 { move-column-to-workspace 6; } + Mod+Ctrl+4 { move-column-to-workspace 7; } + Mod+Ctrl+5 { move-column-to-workspace 8; } + Mod+Ctrl+6 { move-column-to-workspace 9; } + Mod+Ctrl+7 { move-column-to-workspace 10; } + Mod+Ctrl+8 { move-column-to-workspace 11; } + Mod+Ctrl+9 { move-column-to-workspace 12; } +} diff --git a/home/rices/schrottkatze/niri/scripts/cpdate.sh b/home/rices/schrottkatze/niri/scripts/cpdate.sh new file mode 100755 index 0000000..acc2994 --- /dev/null +++ b/home/rices/schrottkatze/niri/scripts/cpdate.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env nu + +const FORMATS = [ + "%F" + "%R" + "%d.%m.%Y" + "%d.%m" + "%T" + "%FT%H" + "%FT%R" + "%F %R" + "%F %T" +]; + +def main [] { + let date = date now; + let len = $FORMATS | length; + + $FORMATS | each {|it| $date | format date $it } | to text | fuzzel -dl $len | str trim | wl-copy +} diff --git a/home/rices/schrottkatze/niri/shaders/arc.frag b/home/rices/schrottkatze/niri/shaders/arc.frag new file mode 100644 index 0000000..301357c --- /dev/null +++ b/home/rices/schrottkatze/niri/shaders/arc.frag @@ -0,0 +1,131 @@ + +#define PI 3.14159 + +#define TAU 6.28319 + +#define WIDTH 3. +#define RADIUS 1. + +#define WIPE_DURATION .2 +#define BORDER_LOOPS 3. +#define FADE_ITS 2. + +vec4 gradi(float pos, vec4 bg, vec4 fg, float fac, float mask) { + if (mask < 0.2) { + return bg; + } + + vec4 trans = vec4(0.); + vec4 purple = vec4(0.45, 0.13, 0.49, 1.0) * vec4(mask); + vec4 blue = vec4(0.25, 0.74, 0.81, 1.0) * vec4(mask); + vec4 white = vec4(mask); + float mult = 4. * fac; + + if (pos <= 0.125) { + return mix(bg, purple, max(0., pos * mult)); + } else if (pos <= 0.25) { + return mix(purple, blue, (pos * mult) - 1.); + } else if (pos <= 0.5) { + return mix(blue, white, (pos * mult) - 2.); + } else { + return fg; + } + +} + +// from niri source code: https://github.com/YaLTeR/niri/blob/f30db163b5748e8cf95c05aba77d0d3736f40543/src/render_helpers/shaders/border.frag#L211-L234 +float rounding_alpha(vec2 coords, vec2 size, vec4 corner_radius) { + vec2 center; + float radius; + + if (coords.x < corner_radius.x && coords.y < corner_radius.x) { + radius = corner_radius.x; + center = vec2(radius, radius); + } else if (size.x - corner_radius.y < coords.x && coords.y < corner_radius.y) { + radius = corner_radius.y; + center = vec2(size.x - radius, radius); + } else if (size.x - corner_radius.z < coords.x && size.y - corner_radius.z < coords.y) { + radius = corner_radius.z; + center = vec2(size.x - radius, size.y - radius); + } else if (coords.x < corner_radius.w && size.y - corner_radius.w < coords.y) { + radius = corner_radius.w; + center = vec2(radius, size.y - radius); + } else { + return 1.0;// + } + + float dist = distance(coords, center); + float half_px = 0.5; + return 1.0 - smoothstep(radius - half_px, radius + half_px, dist); +} + +vec4 open_color(vec3 coords_geo, vec3 size_geo) { + vec4 bg1 = vec4(.1, .1, .18, 1.0); + vec4 bg2 = vec4(.09, .05, .11, 1.0); + + vec3 coords_tex = niri_geo_to_tex * coords_geo; + vec4 color = texture2D(niri_tex, coords_tex.st); + + float pi = radians(180.); + + if (0.0 <= coords_geo.x && coords_geo.x <= 1.0 + && 0.0 <= coords_geo.y && coords_geo.y <= 1.0) + { + float pos = (coords_tex.x - ((1. / WIPE_DURATION) * niri_clamped_progress) * 2.) + 1.; + vec2 coords = (coords_geo.xy - vec2(0.5, 0.5)) * size_geo.xy * 2.0; + vec2 coords_abs = coords_geo.xy * size_geo.xy; + + float border_a = 1.; + + border_a *= rounding_alpha( + coords_abs.xy, + size_geo.xy, + vec4(RADIUS + WIDTH) + ); + + vec4 bg = mix(bg1, bg2, length(coords_tex.xy - vec2(1., 0.))) * border_a; + + color = gradi(pos, color, bg, 2.0, border_a); + + float angle = (atan(coords.y, coords.x) + PI) / TAU; + float spinny_angle = mod((angle + niri_clamped_progress * BORDER_LOOPS), 1.0) / 2.; + + vec2 border = WIDTH / size_geo.xy; + + float temp = border_a; + float round_a = 1. - rounding_alpha( + coords_abs.xy - WIDTH, + size_geo.xy - WIDTH * 2., + vec4(RADIUS) + ); + + if (coords_geo.x <= border.x || coords_geo.x >= (1. - border.x) || + coords_geo.y <= border.y || coords_geo.y >= (1. - border.y)) { + border_a *= round_a; + } + + float rest = 0.; + if (border_a + temp == 1.) { + rest = 1.; + } + + border_a *= round_a; + border_a += rest; + + vec4 grad = gradi( + spinny_angle, + vec4(.48, .37, .5, 1.), + vec4(1., 0., 0., 1.), + 2.0, // DO NOT TOUCH + border_a + ); + + if ((1. - niri_clamped_progress) < FADE_ITS / BORDER_LOOPS) { + border_a *= (1. - niri_clamped_progress) / (FADE_ITS / BORDER_LOOPS); + } + color = mix(color, grad, border_a); + + } + + return color; +} diff --git a/home/rices/schrottkatze/niri/wallpaper.jpg b/home/rices/schrottkatze/niri/wallpaper.jpg new file mode 100644 index 0000000..5b31b96 Binary files /dev/null and b/home/rices/schrottkatze/niri/wallpaper.jpg differ -- cgit v1.2.3 From 68029c245778f066aff0aad1977b23f6d6f6c561 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 12:13:51 +0200 Subject: Add schrottkatze rice: Eww status bars Top bar (CPU, RAM, battery, systray, time, trans flag), bottom bar (workspaces, traveldings transit, Mullvad VPN, lesbian flag). Gruvbox CSS styling, Nushell scripts for battery and ICE train speed. --- home/rices/schrottkatze/eww.nix | 6 ++ .../eww/configDir/bottomBar/bottomBar.yuck | 77 +++++++++++++++++++++ .../eww/configDir/bottomBar/traveldings.yuck | 37 ++++++++++ .../eww/configDir/bottomBar/workspaces.yuck | 18 +++++ home/rices/schrottkatze/eww/configDir/eww.css | 58 ++++++++++++++++ home/rices/schrottkatze/eww/configDir/eww.yuck | 36 ++++++++++ .../schrottkatze/eww/configDir/scripts/bat.nu | 78 ++++++++++++++++++++++ .../schrottkatze/eww/configDir/scripts/iceTacho.nu | 38 +++++++++++ .../schrottkatze/eww/configDir/topBar/sysinfo.yuck | 22 ++++++ .../schrottkatze/eww/configDir/topBar/time.yuck | 10 +++ .../schrottkatze/eww/configDir/topBar/topBar.yuck | 55 +++++++++++++++ home/rices/schrottkatze/eww/configDir/util.yuck | 10 +++ 12 files changed, 445 insertions(+) create mode 100644 home/rices/schrottkatze/eww.nix create mode 100644 home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck create mode 100644 home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck create mode 100644 home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck create mode 100644 home/rices/schrottkatze/eww/configDir/eww.css create mode 100644 home/rices/schrottkatze/eww/configDir/eww.yuck create mode 100755 home/rices/schrottkatze/eww/configDir/scripts/bat.nu create mode 100755 home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu create mode 100644 home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck create mode 100644 home/rices/schrottkatze/eww/configDir/topBar/time.yuck create mode 100644 home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck create mode 100644 home/rices/schrottkatze/eww/configDir/util.yuck (limited to 'home') diff --git a/home/rices/schrottkatze/eww.nix b/home/rices/schrottkatze/eww.nix new file mode 100644 index 0000000..599738a --- /dev/null +++ b/home/rices/schrottkatze/eww.nix @@ -0,0 +1,6 @@ +{...}: { + programs.eww = { + enable = true; + configDir = ./eww/configDir; + }; +} diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck new file mode 100644 index 0000000..d955d31 --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/bottomBar/bottomBar.yuck @@ -0,0 +1,77 @@ +(include "bottomBar/workspaces.yuck") +(include "bottomBar/traveldings.yuck") + +(defwindow bottomBar + :monitor 0 + :stacking "fg" + :wm-ignore true + :exclusive true + :geometry (geometry + :width "100%" + :height "33px" + :anchor "bottom center") + (bottomBar)) + +(defwidget bottomBar [] + (overlay + :class "bottomBar" + (transform + :translate-y "1.5px" + (centerbox + (box + :halign "start" + (workspaceWidget) + ) + (box + :halign "center" + (traveldings) + ) + (box + :halign "end" + ; (label :text "${iceData.speed}km/h") + (mullvadThing) + ) + ) + ) + (box + :class "lesbianFlag" + :height 1 + ( flagEl :flipped true :color "#D52D00") + ( flagEl :flipped true :color "#EF7627") + ( flagEl :flipped true :color "#FF9A56") + ( flagEl :flipped true :color "#FFFFFF") + ( flagEl :flipped true :color "#D162A4") + ( flagEl :flipped true :color "#B55690") + ( flagEl :flipped true :color "#A30262") + ) + ) +) + +(deflisten mullvad + :initial "{\"state\":\"init\"}" + `mullvad status -j listen` +) + +(defwidget mullvadThing [] + (box + :class "container" + (button + :height 16 + :width 16 + :class "mullvad-state-${mullvad.state}" + ) + ) +) + +(defwidget iceTacho [] + (box + :class "iceTacho" + :tooltip "Tz${iceTachoData.tzn} (BR ${iceTachoData.br})" + (label :text "${iceTachoData.speed} km/h") + ) +) + +(deflisten iceTachoData + :initial "null" + { "~/.config/eww/scripts/iceTacho.nu" } +) diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck new file mode 100644 index 0000000..62de26e --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/bottomBar/traveldings.yuck @@ -0,0 +1,37 @@ +(defwidget traveldings [] + (revealer + :class "traveldings" + :transition "crossfade" + :reveal { traveldings_data != "null" } + (traveldingsBarWidget) + ) +) + +(defwidget traveldingsBarWidget [] + (overlay + (box + :width 640 + (label + :halign "start" + :text "${traveldings_data.line} -> ${strlength(traveldings_data.arrival_station) > 24 ? "${substring(traveldings_data.arrival_station, 0, 24)}…" : traveldings_data.arrival_station}${traveldings_data.arrival_platform_data_available ? " (Gl. ${traveldings_data.arrival_platform_real})" : ""}" + ) + (label + :halign "end" + :text { traveldings_data.time_left >= 3600 ? formattime(traveldings_data.time_left, "noch %-Hh %-Mmin", "Etc/UTC") : formattime(traveldings_data.time_left, "noch %-Mmin", "Etc/UTC") } + ) + ) + (box + (progress + :class { traveldings_data.live ? "traveldings_live" : "traveldings_disconnected" } + :value {traveldings_data.progress * 100} + :orientation "horizontal" + ) + ) + ) +) + + +(deflisten traveldings_data + :initial "null" + "traveldings current" +) diff --git a/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck b/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck new file mode 100644 index 0000000..2709e1b --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/bottomBar/workspaces.yuck @@ -0,0 +1,18 @@ +(defwidget workspaceWidget [] + (box + :class "workspaces" + (for workspace in workspaces + (button + :style "border-bottom: 4px solid ${workspace.color}${workspace.active ? "; background-color: #3c3836" : ""}" + :class "${workspace.focused ? "focused" : ""}" + :onclick "niri msg action focus-workspace ${workspace.idx}" + (label :text "${workspace.icon ?: workspace.idx}") + ) + ) + ) +) + +(deflisten workspaces + :initial "[]" + "bar-ws-monitor" +) diff --git a/home/rices/schrottkatze/eww/configDir/eww.css b/home/rices/schrottkatze/eww/configDir/eww.css new file mode 100644 index 0000000..2ce2ac5 --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/eww.css @@ -0,0 +1,58 @@ +label { + font: 14pt "Departure Mono Nerd Font"; +} + +button { + border-radius: 0px; + padding: 0; +} + +.background { + background-color: #1d2021; +} + +.workspaces button { + border: 0px; + padding: 5px 4px 0 4px; +} + +.workspaces button.focused { + background-color: #504935; +} + +.traveldings progressbar trough { + border: none; + background-color: #3c3836; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.traveldings progressbar.traveldings_live progress { + background-color: #79740e; + border-bottom-left-radius: 0; +} + +.traveldings progressbar.traveldings_disconnected progress { + background-color: #cc241d; +} + + +.traveldingsWindow { + border-radius: 15px; +} + +.mullvad-state-connected { + background-color: #98971a +} + +.mullvad-state-connecting { + background-color: #d79921 +} + +.mullvad-state-disconnected { + background-color: #cc241d +} + +.mullvad-state-init { + background-color: #458588 +} diff --git a/home/rices/schrottkatze/eww/configDir/eww.yuck b/home/rices/schrottkatze/eww/configDir/eww.yuck new file mode 100644 index 0000000..f6f20f5 --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/eww.yuck @@ -0,0 +1,36 @@ +(include "topBar/topBar.yuck") +(include "bottomBar/bottomBar.yuck") + +(include "topBar/time.yuck") + +(defwindow streamUi + :monitor 0 + :stacking "fg" + :wm-ignore true + :exclusive true + :geometry (geometry + :width "640px" + :height "100%" + :anchor "center right") + (centerbox + :style "padding: 0 3px" + :orientation "vertical" + (label :text "hi") + (label :text "hi") + (centerbox + :valign "end" + (box + :halign "start" + (systray + :icon-size 18 + :spacing 3 + ) + ) + (box) + (box + :halign "end" + (time) + ) + ) + ) +) diff --git a/home/rices/schrottkatze/eww/configDir/scripts/bat.nu b/home/rices/schrottkatze/eww/configDir/scripts/bat.nu new file mode 100755 index 0000000..fd34c50 --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/scripts/bat.nu @@ -0,0 +1,78 @@ +#!/usr/bin/env nu + +const ICONS = [ + [ normal charging]; + [ 󰂎 󰢟 ] + [ 󰁺 󰢜 ] + [ 󰁻 󰂆 ] + [ 󰁼 󰂇 ] + [ 󰁽 󰂈 ] + [ 󰁾 󰢝 ] + [ 󰁿 󰂉 ] + [ 󰂀 󰢞 ] + [ 󰂁 󰂊 ] + [ 󰂂 󰂋 ] + [ 󰁹 󰂅 ] +]; + +const DELAY = 2sec; + +def "main auto" [] { + loop { + let paths = ls "/sys/class/power_supply" + | each {|it| $it.name | path basename} + | filter {|it| $it starts-with "BAT"}; + + if ($paths | is-not-empty) { + let result = $paths + | each {|it| get_and_format $it} + | str join " | " + | prepend "| " + | str join; + + print $result + } else { + print "" + } + sleep $DELAY; + } +} + +def main [ path: string ] { + loop { + print (get_and_format $path) + sleep $DELAY; + } +} + +def get_and_format [ path: string ] { + let fract = get_bat_charge_fraction $path; + let is_charging = get_bat_charging_status $path; + let percent = ($fract * 100) | math round; + + return $"(get_bat_icon $fract $is_charging) ($percent)%"; +} + +def get_bat_charge_fraction [ + path: string +] { + let energy_full = open $"/sys/class/power_supply/($path)/energy_full" | into float; + let energy_now = open $"/sys/class/power_supply/($path)/energy_now" | into float; + + $energy_now / $energy_full +} + +def get_bat_charging_status [ + path: string +] { + let status = open $"/sys/class/power_supply/($path)/status"; + + $status like Charging +} + +def get_bat_icon [ + frac: float + is_charging = false +] { + $ICONS | get (($frac * 10) | math round) | get (if ($is_charging) { "charging" } else { "normal" }) +} diff --git a/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu b/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu new file mode 100755 index 0000000..5225dc2 --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/scripts/iceTacho.nu @@ -0,0 +1,38 @@ +#!/usr/bin/env nu + +const TABLE = { + 401: 280 + 402: 280 + 403: 330 + 406: 330 + 407: 320 + 408: 320 + 411: 230 + 415: 230 + 412: 265 + 605: 200 +}; + +def main [ ] { + loop { + if ((iw dev wlp4s0 link | lines | filter {|it| $it =~ "WIFIonICE" } | length) == 1) { + let iceData = http get https://iceportal.de/api1/rs/status; + let tzn = $iceData.tzn; + let br = $iceData.series; + let speed = $iceData.speed; + let speedfrac = $speed / ($TABLE | get $br); + + print ({ + tzn: $tzn, + br: $br, + speed: $speed, + frac: $speedfrac + } | to json -r); + + sleep 2sec; + } else { + print "null"; + sleep 5sec; + } + } +} diff --git a/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck b/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck new file mode 100644 index 0000000..c37838a --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/topBar/sysinfo.yuck @@ -0,0 +1,22 @@ +(deflisten bat + :initial "BAT0 ERR" + { "~/.config/eww/scripts/bat.nu auto"} +) + +(defwidget cpu [] + (box + :class "cpuIndicator" + (label + :markup " ${strlength(round(EWW_CPU.avg, 0)) == 1 ? " ${round(EWW_CPU.avg, 0)}" : round(EWW_CPU.avg, 0)}%" + ) + ) +) + +(defwidget mem [] + (box + :class "memIndicator" + (label + :markup " ${round(EWW_RAM.used_mem_perc, 0)}%" + ) + ) +) diff --git a/home/rices/schrottkatze/eww/configDir/topBar/time.yuck b/home/rices/schrottkatze/eww/configDir/topBar/time.yuck new file mode 100644 index 0000000..ba22883 --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/topBar/time.yuck @@ -0,0 +1,10 @@ +(defwidget time [] + (label + :markup { + formattime( + EWW_TIME, + " %Y-%m-%d %H:%M:%S " + ) + } + ) +) diff --git a/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck b/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck new file mode 100644 index 0000000..4aee71f --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/topBar/topBar.yuck @@ -0,0 +1,55 @@ +(include "topBar/time.yuck") +(include "topBar/sysinfo.yuck") +(include "util.yuck") + +(defwindow topBar + :monitor 0 + :stacking "fg" + :wm-ignore true + :exclusive true + :geometry (geometry + :width "100%" + :height "33px" + :anchor "top center") + (topBar)) + +(defwidget topBar [] + (overlay + :class "topBar" + (transform + :translate-y "-1.5px" + (centerbox + (box + :halign "start" + :spacing 12 + :space-evenly false + (label :text " ") + (cpu) + (sep) + (mem) + (label :markup bat) + ) + (box + :halign "center" + (systray + :icon-size 18 + :spacing 3 + ) + ) + (box + :halign "end" + (time) + ) + ) + ) + (box + :class "transFlag" + :height 1 + ( flagEl :flipped false :color "#5BCEFA") + ( flagEl :flipped false :color "#F5A9B8") + ( flagEl :flipped false :color "#FFFFFF") + ( flagEl :flipped false :color "#F5A9B8") + ( flagEl :flipped false :color "#5BCEFA") + ) + ) +) diff --git a/home/rices/schrottkatze/eww/configDir/util.yuck b/home/rices/schrottkatze/eww/configDir/util.yuck new file mode 100644 index 0000000..3df84ab --- /dev/null +++ b/home/rices/schrottkatze/eww/configDir/util.yuck @@ -0,0 +1,10 @@ +(defwidget flagEl [color ?flipped] + (box + :style "border-${flipped ? "top" : "bottom"}: 3px solid ${color}" + :halign "fill" + ) +) + +(defwidget sep [] + (label :text "|") +) -- cgit v1.2.3 From e31c50d481d3a55c239f4613f11ecfe0fcaa7474 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 13:12:25 +0200 Subject: Removed gdm override in favor of keeping original ly --- home/rices/schrottkatze/system.nix | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'home') diff --git a/home/rices/schrottkatze/system.nix b/home/rices/schrottkatze/system.nix index d72d02c..3ce48eb 100644 --- a/home/rices/schrottkatze/system.nix +++ b/home/rices/schrottkatze/system.nix @@ -2,14 +2,8 @@ # Desktop environment - Niri compositor programs.niri.enable = true; - # Display manager - GDM - services.displayManager = { - gdm = { - enable = true; - banner = "Meow :3"; - }; - defaultSession = "niri"; - }; + # Default session + services.displayManager.defaultSession = "niri"; # Polkit fix for Niri security.polkit.enable = true; -- cgit v1.2.3 From 7a1cb9ada9e9cfdaa7f7b072a1f217c7b0145947 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 13:12:34 +0200 Subject: added firefox.profileNames --- home/rices/schrottkatze/stylix.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'home') diff --git a/home/rices/schrottkatze/stylix.nix b/home/rices/schrottkatze/stylix.nix index a3eaeaa..4c9d500 100644 --- a/home/rices/schrottkatze/stylix.nix +++ b/home/rices/schrottkatze/stylix.nix @@ -1,5 +1,6 @@ {pkgs, ...}: { stylix.targets = { + firefox.profileNames = ["mun"]; helix.enable = false; btop.enable = false; nushell.enable = false; -- cgit v1.2.3 From e40cdff0c7d4835ff2a97f5dadf6dad03d6cefed Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 13:12:45 +0200 Subject: Fixed a syntax error --- home/rices/schrottkatze/niri.nix | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri.nix b/home/rices/schrottkatze/niri.nix index a69685f..0535adf 100644 --- a/home/rices/schrottkatze/niri.nix +++ b/home/rices/schrottkatze/niri.nix @@ -8,18 +8,18 @@ home.file."config" = let kdlfiles = - builtins.readDir ./niri/kdl - |> lib.filterAttrs (key: value: value == "regular") - |> lib.mapAttrsToList (filename: _value: "include \"${./niri/kdl}/${filename}\""); + lib.mapAttrsToList + (filename: _value: "include \"${./niri/kdl}/${filename}\"") + (lib.filterAttrs (key: value: value == "regular") (builtins.readDir ./niri/kdl)); startups = - [ - ["eww" "open-many" "topBar" "bottomBar"] - ["${pkgs.swaybg}/bin/swaybg" "-i" "${./niri/wallpaper.jpg}" "-m" "fill"] - ["touch" ".config/niri/live.kdl"] - ] - |> map (map (word: "\"${word}\"")) - |> map (lib.concatStringsSep " ") - |> map (it: "spawn-at-startup ${it}"); + map (it: "spawn-at-startup ${it}") + (map (lib.concatStringsSep " ") + (map (map (word: "\"${word}\"")) + [ + ["eww" "open-many" "topBar" "bottomBar"] + ["${pkgs.swaybg}/bin/swaybg" "-i" "${./niri/wallpaper.jpg}" "-m" "fill"] + ["touch" ".config/niri/live.kdl"] + ])); other = [ "include \"live.kdl\"" "output \"eDP-1\" { scale 1.1; }" -- cgit v1.2.3 From aeed9ad6a4cb2e6f27091b92dc2f9819189abea1 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 13:14:06 +0200 Subject: Add signal-desktop to mun apps --- home/mun/default.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'home') diff --git a/home/mun/default.nix b/home/mun/default.nix index b109dac..d1c314f 100644 --- a/home/mun/default.nix +++ b/home/mun/default.nix @@ -34,6 +34,7 @@ openrocket kicad evolution + signal-desktop # Utilities pay-respects -- cgit v1.2.3 From 3d490aed63b5da725b0608fca160e362ed1abdef Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 13:27:04 +0200 Subject: Disabled layway due to an error upstream --- home/rices/schrottkatze/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'home') diff --git a/home/rices/schrottkatze/home.nix b/home/rices/schrottkatze/home.nix index 1a2b5f6..62d9aeb 100644 --- a/home/rices/schrottkatze/home.nix +++ b/home/rices/schrottkatze/home.nix @@ -7,7 +7,7 @@ ./browser.nix ./niri.nix ./eww.nix - ./layaway.nix + # ./layaway.nix ./stylix.nix ]; -- cgit v1.2.3 From f246d442f929dcaf600b0ecbe056308c405c8be4 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 14:00:20 +0200 Subject: Add nvim config to mun instead of being tied to a rice --- home/mun/programs/nvim.nix | 279 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 279 insertions(+) create mode 100644 home/mun/programs/nvim.nix (limited to 'home') diff --git a/home/mun/programs/nvim.nix b/home/mun/programs/nvim.nix new file mode 100644 index 0000000..9677c57 --- /dev/null +++ b/home/mun/programs/nvim.nix @@ -0,0 +1,279 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + zathura + ripgrep + fd + lazygit + stylua + alejandra + black + shfmt + + # Language servers + lua-language-server + nil + rust-analyzer + pyright + bash-language-server + texlab + ]; + + programs.neovim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + + plugins = with pkgs.vimPlugins; [ + # UI + catppuccin-nvim + nvim-web-devicons + which-key-nvim + gitsigns-nvim + + # Syntax + (nvim-treesitter.withPlugins (p: [ + p.lua + p.nix + p.rust + p.python + p.bash + p.latex + p.c + ])) + + # LSP + nvim-lspconfig + + # Completion / snippets + nvim-cmp + cmp-nvim-lsp + cmp_luasnip + luasnip + friendly-snippets + nvim-autopairs + + # Formatting + conform-nvim + comment-nvim + + # Navigation + telescope-nvim + plenary-nvim + nvim-tree-lua + + # Terminal + toggleterm-nvim + + # Writing + vimtex + orgmode + + # Start screen + { + plugin = vim-startify; + config = "let g:startify_change_to_vcs_root = 0"; + } + ]; + + extraLuaConfig = '' + ------------------------------------------------- + -- LEADER + ------------------------------------------------- + vim.g.mapleader = " " + + ------------------------------------------------- + -- BASIC OPTIONS + ------------------------------------------------- + vim.opt.number = true + vim.opt.relativenumber = true + vim.opt.clipboard = "unnamedplus" + vim.opt.showtabline = 2 + vim.o.timeout = true + vim.o.timeoutlen = 300 + + ------------------------------------------------- + -- THEME + ------------------------------------------------- + require("catppuccin").setup({ + flavour = "mocha", + }) + vim.cmd.colorscheme("catppuccin") + + ------------------------------------------------- + -- GITSIGNS + ------------------------------------------------- + require("gitsigns").setup() + + ------------------------------------------------- + -- TREESITTER + ------------------------------------------------- + require("nvim-treesitter.configs").setup({ + highlight = { enable = true }, + indent = { enable = true }, + }) + + vim.opt.foldmethod = "expr" + vim.opt.foldexpr = "nvim_treesitter#foldexpr()" + vim.opt.foldenable = false + + ------------------------------------------------- + -- SNIPPETS + ------------------------------------------------- + require("luasnip.loaders.from_vscode").lazy_load() + + ------------------------------------------------- + -- COMPLETION + ------------------------------------------------- + local cmp = require("cmp") + local luasnip = require("luasnip") + + cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ select = true }), + }), + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + }, + }) + + require("nvim-autopairs").setup({}) + + ------------------------------------------------- + -- LSP + ------------------------------------------------- + local capabilities = require("cmp_nvim_lsp").default_capabilities() + + local servers = { + "lua_ls", + "nil_ls", + "rust_analyzer", + "pyright", + "bashls", + "texlab", + } + + for _, server in ipairs(servers) do + vim.lsp.config(server, { + capabilities = capabilities + }) + vim.lsp.enable(server) + end + + ------------------------------------------------- + -- LSP KEYMAPS + ------------------------------------------------- + vim.keymap.set("n", "ld", vim.lsp.buf.definition) + vim.keymap.set("n", "lD", vim.lsp.buf.declaration) + vim.keymap.set("n", "li", vim.lsp.buf.implementation) + vim.keymap.set("n", "lr", vim.lsp.buf.references) + vim.keymap.set("n", "lh", vim.lsp.buf.hover) + vim.keymap.set("n", "ln", vim.lsp.buf.rename) + vim.keymap.set("n", "la", vim.lsp.buf.code_action) + vim.keymap.set("n", "lf", function() vim.lsp.buf.format() end) + + ------------------------------------------------- + -- DIAGNOSTICS + ------------------------------------------------- + vim.keymap.set("n", "lj", vim.diagnostic.goto_next) + vim.keymap.set("n", "lk", vim.diagnostic.goto_prev) + vim.keymap.set("n", "le", vim.diagnostic.open_float) + + ------------------------------------------------- + -- FORMATTER + ------------------------------------------------- + require("conform").setup({ + format_on_save = { + timeout_ms = 500, + lsp_format = "fallback", + }, + formatters_by_ft = { + lua = { "stylua" }, + nix = { "alejandra" }, + rust = { "rustfmt" }, + python = { "black" }, + bash = { "shfmt" }, + }, + }) + + require("Comment").setup() + + ------------------------------------------------- + -- TELESCOPE + ------------------------------------------------- + local builtin = require("telescope.builtin") + + require("telescope").setup({ + defaults = { + layout_strategy = "horizontal", + sorting_strategy = "ascending", + file_ignore_patterns = { "node_modules", ".git/" }, + }, + }) + + vim.keymap.set("n", "", builtin.find_files) + vim.keymap.set("n", "fg", builtin.live_grep) + vim.keymap.set("n", "fb", builtin.buffers) + + ------------------------------------------------- + -- WHICH KEY + ------------------------------------------------- + local wk = require("which-key") + wk.add({ + { "l", desc = "LSP" } + }) + + ------------------------------------------------- + -- NVIM TREE + ------------------------------------------------- + require("nvim-tree").setup({}) + vim.keymap.set("n", "e", "NvimTreeToggle") + + ------------------------------------------------- + -- TERMINAL + ------------------------------------------------- + require("toggleterm").setup({ + direction = "float", + }) + + local Terminal = require("toggleterm.terminal").Terminal + + local lazygit = Terminal:new({ + cmd = "lazygit", + hidden = true, + direction = "float", + }) + + vim.keymap.set("n", "gg", function() + lazygit:toggle() + end) + + ------------------------------------------------- + -- ORGMODE + ------------------------------------------------- + local projects = { + "~/Documents/2_Writing/0_SOC/**/*.org", + "~/Documents/2_Writing/2_Notes/**/*.org", + "~/Documents/1_Projects/6_CRC-Altura/**/*.org", + "~/ORG/**/*.org" + } + + require("orgmode").setup({ + org_agenda_files = projects, + org_default_notes_file = "~/INBOX.org" + }) + + ------------------------------------------------- + -- VIMTEX + ------------------------------------------------- + vim.g.vimtex_view_method = "zathura" + ''; + }; +} -- cgit v1.2.3 From 46a18cbceb581ce59b2183f2821c6ff752ff84a0 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 16:54:23 +0200 Subject: Added nvim configuration to mun.nix instead of being rice specific --- home/mun/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'home') diff --git a/home/mun/default.nix b/home/mun/default.nix index d1c314f..f6b419d 100644 --- a/home/mun/default.nix +++ b/home/mun/default.nix @@ -7,7 +7,8 @@ ./programs/zsh.nix ./programs/ssh.nix ./programs/git.nix - ]; + ./programs/nvim.nix +]; home = { username = "mun"; -- cgit v1.2.3 From 27f7880118739fe8a6ef6a0d1805e4614fb7b0c6 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 16:55:08 +0200 Subject: Fix up formatting --- home/rices/schrottkatze/niri/kdl/input.kdl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri/kdl/input.kdl b/home/rices/schrottkatze/niri/kdl/input.kdl index a8be309..0eb6825 100644 --- a/home/rices/schrottkatze/niri/kdl/input.kdl +++ b/home/rices/schrottkatze/niri/kdl/input.kdl @@ -4,14 +4,19 @@ input { layout "us" variant "altgr-intl" } + repeat-delay 600 repeat-rate 25 track-layout "global" } + touchpad { dwt dwtp natural-scroll } - mouse { accel-profile "flat"; } + + mouse { + accel-profile "flat" + } } -- cgit v1.2.3 From c0b3dd070c10f671e84c524d0d00689bac758b31 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 16:57:26 +0200 Subject: Switch keyboard layout to czech qwertz & bind caps lock to escape and altGr+e to € MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- home/rices/schrottkatze/niri/kdl/input.kdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri/kdl/input.kdl b/home/rices/schrottkatze/niri/kdl/input.kdl index 0eb6825..fa398b2 100644 --- a/home/rices/schrottkatze/niri/kdl/input.kdl +++ b/home/rices/schrottkatze/niri/kdl/input.kdl @@ -1,8 +1,8 @@ input { keyboard { xkb { - layout "us" - variant "altgr-intl" + layout "cz" + options "eurosign:e,caps:escape" } repeat-delay 600 -- cgit v1.2.3 From f0e86e19e06ed4cb14472e99b9bef4033d262a2e Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 16:58:07 +0200 Subject: Add swaybg to niri.nix --- home/rices/schrottkatze/niri.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'home') diff --git a/home/rices/schrottkatze/niri.nix b/home/rices/schrottkatze/niri.nix index 0535adf..f2ce69f 100644 --- a/home/rices/schrottkatze/niri.nix +++ b/home/rices/schrottkatze/niri.nix @@ -4,6 +4,7 @@ home.packages = with pkgs; [ zenity xwayland-satellite + swaybg ]; home.file."config" = let -- cgit v1.2.3 From 9c53d45a1f3ccc9672fbcb6e0922a300ec965caf Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 16:58:20 +0200 Subject: Fix up the formating --- home/rices/schrottkatze/niri.nix | 58 ++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 26 deletions(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri.nix b/home/rices/schrottkatze/niri.nix index f2ce69f..32e145f 100644 --- a/home/rices/schrottkatze/niri.nix +++ b/home/rices/schrottkatze/niri.nix @@ -1,34 +1,40 @@ # this file must only be saved via autosave due to the formatter. # else it will be ugly -{pkgs, lib, ...}: { +{ + pkgs, + lib, + ... +}: { home.packages = with pkgs; [ zenity xwayland-satellite swaybg ]; - home.file."config" = - let - kdlfiles = - lib.mapAttrsToList - (filename: _value: "include \"${./niri/kdl}/${filename}\"") - (lib.filterAttrs (key: value: value == "regular") (builtins.readDir ./niri/kdl)); - startups = - map (it: "spawn-at-startup ${it}") - (map (lib.concatStringsSep " ") - (map (map (word: "\"${word}\"")) - [ - ["eww" "open-many" "topBar" "bottomBar"] - ["${pkgs.swaybg}/bin/swaybg" "-i" "${./niri/wallpaper.jpg}" "-m" "fill"] - ["touch" ".config/niri/live.kdl"] - ])); - other = [ - "include \"live.kdl\"" - "output \"eDP-1\" { scale 1.1; }" - "animations { window-open { duration-ms 3000; curve \"linear\"; custom-shader r\"\n${builtins.readFile ./niri/shaders/arc.frag}\";};}" - "binds {Mod+Shift+I { spawn \"${./niri/scripts/cpdate.sh}\"; }; }" - ]; - in { - target = ".config/niri/config.kdl"; - text = lib.concatLines (startups ++ kdlfiles ++ other); - }; + + xdg.configFile."niri/live.kdl".text = ""; + + home.file."config" = let + kdlfiles = + lib.mapAttrsToList + (filename: _value: "include \"${./niri/kdl}/${filename}\"") + (lib.filterAttrs (key: value: value == "regular") (builtins.readDir ./niri/kdl)); + startups = + map (it: "spawn-at-startup ${it}") + (map (lib.concatStringsSep " ") + (map (map (word: "\"${word}\"")) + [ + ["eww" "open-many" "topBar" "bottomBar"] + ["sh" "-c" "sleep 1 && swaybg -o eDP-1 -i ${../../../assets/wallpapers/insert_coin.jpeg} -m fill"] + ["touch" ".config/niri/live.kdl"] + ])); + other = [ + "include \"live.kdl\"" + "output \"eDP-1\" { scale 1.1; }" + "animations { window-open { duration-ms 3000; curve \"linear\"; custom-shader r\"\n${builtins.readFile ./niri/shaders/arc.frag}\";};}" + "binds {Mod+Shift+I { spawn \"${./niri/scripts/cpdate.sh}\"; }; }" + ]; + in { + target = ".config/niri/config.kdl"; + text = lib.concatLines (startups ++ kdlfiles ++ other); + }; } -- cgit v1.2.3 From 722d3e6b26c6232df3396c44ebe4c99bf9807124 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 16:58:37 +0200 Subject: Configure x11 and tty to also use the czech qwertz keyboard --- home/rices/schrottkatze/system.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'home') diff --git a/home/rices/schrottkatze/system.nix b/home/rices/schrottkatze/system.nix index 3ce48eb..13e1516 100644 --- a/home/rices/schrottkatze/system.nix +++ b/home/rices/schrottkatze/system.nix @@ -1,10 +1,18 @@ -{pkgs, lib, ...}: { +{ + pkgs, + lib, + ... +}: { # Desktop environment - Niri compositor programs.niri.enable = true; # Default session services.displayManager.defaultSession = "niri"; + services.xserver.xkb = { + layout = "cz"; + options = "eurosign:e,caps:escape"; + }; # Polkit fix for Niri security.polkit.enable = true; systemd.user.services.niri-flake-polkit.enable = false; -- cgit v1.2.3 From 5d66760108c851e99edf118a9f772badbe978d62 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 17:10:25 +0200 Subject: Modified keybinds to suit more what im used to --- home/rices/schrottkatze/niri/kdl/binds.kdl | 50 +++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 15 deletions(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri/kdl/binds.kdl b/home/rices/schrottkatze/niri/kdl/binds.kdl index 611e231..b59a7b4 100644 --- a/home/rices/schrottkatze/niri/kdl/binds.kdl +++ b/home/rices/schrottkatze/niri/kdl/binds.kdl @@ -2,12 +2,13 @@ binds { // spawn terminal Mod+Return repeat=false { spawn "kitty"; } Mod+D repeat=false { spawn "fuzzel"; } - Mod+I repeat=false { spawn "bemoji" "-n"; } Mod+M repeat=false { spawn "hyprpicker"; } + Mod+I repeat=false { spawn "bemoji" "-n"; } + Mod+N repeat=false { spawn "firefox"; } Mod+E repeat=false { spawn "kitty" "hx" "~/.config/niri/live.kdl"; } - Mod+Shift+E { quit; } - Mod+Shift+Q { close-window; } + Mod+Ctrl+Shift+E { quit; } + Mod+Q { close-window; } Mod+Ctrl+Shift+P { power-off-monitors; } Mod+Shift+Ctrl+Slash allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } @@ -18,27 +19,42 @@ binds { Mod+Ctrl+C { set-dynamic-cast-monitor; } Mod+Shift+Ctrl+C { clear-dynamic-cast-target; } - // window/columns controls + // window/columns controls (focus: vim keys) Mod+H { focus-column-left; } Mod+J { focus-window-down; } Mod+K { focus-window-up; } Mod+L { focus-column-right; } - Mod+Ctrl+H { move-column-left; } - Mod+Ctrl+J { move-window-down; } - Mod+Ctrl+K { move-window-up; } - Mod+Ctrl+L { move-column-right; } + + // window/columns controls (focus: arrow keys) + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + + // move windows (vim keys) + Mod+Shift+H { move-column-left; } + Mod+Shift+J { move-window-down; } + Mod+Shift+K { move-window-up; } + Mod+Shift+L { move-column-right; } + + // move windows (arrow keys) + Mod+Shift+Left { move-column-left; } + Mod+Shift+Down { move-window-down; } + Mod+Shift+Up { move-window-up; } + Mod+Shift+Right { move-column-right; } + Mod+R { switch-preset-column-width; } - Mod+G { toggle-overview; } + Super { toggle-overview; } Mod+V { toggle-window-floating; } Mod+Shift+V { switch-focus-between-floating-and-tiling; } // monitor controls - Mod+Shift+H { focus-monitor-left; } - Mod+Shift+J { focus-monitor-down; } - Mod+Shift+K { focus-monitor-up; } - Mod+Shift+L { focus-monitor-right; } + Mod+Ctrl+H { focus-monitor-left; } + Mod+Ctrl+J { focus-monitor-down; } + Mod+Ctrl+K { focus-monitor-up; } + Mod+Ctrl+L { focus-monitor-right; } Mod+Shift+Ctrl+H { move-column-to-monitor-left; } Mod+Shift+Ctrl+J { move-column-to-monitor-down; } Mod+Shift+Ctrl+K { move-column-to-monitor-up; } @@ -64,7 +80,7 @@ binds { // media keys XF86AudioLowerVolume \ allow-when-locked=true \ - { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } + { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%-"; } XF86AudioMicMute \ allow-when-locked=true \ { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } @@ -73,5 +89,9 @@ binds { { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } XF86AudioRaiseVolume \ allow-when-locked=true \ - { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } + { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+"; } + + // brightness keys + XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "set" "5%+"; } + XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "set" "5%-"; } } -- cgit v1.2.3 From 87d535157e1dcbb842ae5d727a966dacfd1af335 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 17:10:38 +0200 Subject: modified screenshot keybinds --- home/rices/schrottkatze/niri/kdl/screenshot.kdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri/kdl/screenshot.kdl b/home/rices/schrottkatze/niri/kdl/screenshot.kdl index f99e15c..5a5966b 100644 --- a/home/rices/schrottkatze/niri/kdl/screenshot.kdl +++ b/home/rices/schrottkatze/niri/kdl/screenshot.kdl @@ -1,6 +1,6 @@ screenshot-path "~/Pictures/screenshots/%Y-%m-%dT%H:%M:%S.png" binds { Mod+Ctrl+S { screenshot-screen; } - Mod+Shift+S { screenshot-window; } - Mod+S { screenshot; } + Mod+Shift+S { screenshot; } + Mod+S { screenshot-window; } } -- cgit v1.2.3 From d719166c9e985a5277973aa3308c8f37df802e72 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 17:12:33 +0200 Subject: Fixed incorrect keybind from Super to Mod --- home/rices/schrottkatze/niri/kdl/binds.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri/kdl/binds.kdl b/home/rices/schrottkatze/niri/kdl/binds.kdl index b59a7b4..28da700 100644 --- a/home/rices/schrottkatze/niri/kdl/binds.kdl +++ b/home/rices/schrottkatze/niri/kdl/binds.kdl @@ -45,7 +45,7 @@ binds { Mod+R { switch-preset-column-width; } - Super { toggle-overview; } + Mod { toggle-overview; } Mod+V { toggle-window-floating; } Mod+Shift+V { switch-focus-between-floating-and-tiling; } -- cgit v1.2.3 From 9f05d15c3d0ced16ec6329c52493d5cf5c40f8ee Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 18:21:02 +0200 Subject: Moved workspaces.kdl --- home/rices/schrottkatze/niri/kdl/workspaces.kdl | 58 -------------------- .../schrottkatze/niri/kdl/workspaces.kdl.disabled | 63 ++++++++++++++++++++++ 2 files changed, 63 insertions(+), 58 deletions(-) delete mode 100644 home/rices/schrottkatze/niri/kdl/workspaces.kdl create mode 100644 home/rices/schrottkatze/niri/kdl/workspaces.kdl.disabled (limited to 'home') diff --git a/home/rices/schrottkatze/niri/kdl/workspaces.kdl b/home/rices/schrottkatze/niri/kdl/workspaces.kdl deleted file mode 100644 index ab89dec..0000000 --- a/home/rices/schrottkatze/niri/kdl/workspaces.kdl +++ /dev/null @@ -1,58 +0,0 @@ -// WS Social -workspace "social" - -spawn-at-startup "signal-desktop" -spawn-at-startup ".evolution-wrapped_" -spawn-at-startup "vesktop" -spawn-at-startup "deltachat" - -window-rule { - match app-id="^(signal|Element|org.gnome.Evolution|discord|steam|DeltaChat)$" - open-on-workspace "social" -} - -// WS Browser -workspace "browser" - -spawn-at-startup "firefox" -spawn-at-startup "obsidian" - -window-rule { - match app-id="^firefox|Chromium-browser|obsidian$" - open-on-workspace "browser" -} - -binds { - Mod+P { focus-workspace-up; } - Mod+N { focus-workspace-down; } - Mod+Ctrl+P { move-workspace-up; } - Mod+Ctrl+N { move-workspace-down; } - Mod+Shift+P { move-column-to-workspace-up; } - Mod+Shift+N { move-column-to-workspace-down; } - - Mod+Q { focus-workspace "social"; } - Mod+W { focus-workspace "browser"; } - Mod+E { focus-workspace 3; } - Mod+Ctrl+Q { move-column-to-workspace "social"; } - Mod+Ctrl+W { move-column-to-workspace "browser"; } - Mod+Ctrl+E { move-column-to-workspace 3; } - - Mod+1 { focus-workspace 4; } - Mod+2 { focus-workspace 5; } - Mod+3 { focus-workspace 6; } - Mod+4 { focus-workspace 7; } - Mod+5 { focus-workspace 8; } - Mod+6 { focus-workspace 9; } - Mod+7 { focus-workspace 10; } - Mod+8 { focus-workspace 11; } - Mod+9 { focus-workspace 12; } - Mod+Ctrl+1 { move-column-to-workspace 4; } - Mod+Ctrl+2 { move-column-to-workspace 5; } - Mod+Ctrl+3 { move-column-to-workspace 6; } - Mod+Ctrl+4 { move-column-to-workspace 7; } - Mod+Ctrl+5 { move-column-to-workspace 8; } - Mod+Ctrl+6 { move-column-to-workspace 9; } - Mod+Ctrl+7 { move-column-to-workspace 10; } - Mod+Ctrl+8 { move-column-to-workspace 11; } - Mod+Ctrl+9 { move-column-to-workspace 12; } -} diff --git a/home/rices/schrottkatze/niri/kdl/workspaces.kdl.disabled b/home/rices/schrottkatze/niri/kdl/workspaces.kdl.disabled new file mode 100644 index 0000000..e5b51b4 --- /dev/null +++ b/home/rices/schrottkatze/niri/kdl/workspaces.kdl.disabled @@ -0,0 +1,63 @@ +// WS Social +workspace "social" + +spawn-at-startup "signal-desktop" +spawn-at-startup ".evolution-wrapped_" +spawn-at-startup "vesktop" +spawn-at-startup "deltachat" + +window-rule { + match app-id="^(signal|Element|org.gnome.Evolution|discord|steam|DeltaChat)$" + open-on-workspace "social" +} + +// WS Browser +workspace "browser" + +spawn-at-startup "firefox" +spawn-at-startup "obsidian" + +window-rule { + match app-id="^firefox|Chromium-browser|obsidian$" + open-on-workspace "browser" +} + +binds { + Mod+P { focus-workspace-up; } + Mod+N { focus-workspace-down; } + Mod+Ctrl+P { move-workspace-up; } + Mod+Ctrl+N { move-workspace-down; } + Mod+Shift+P { move-column-to-workspace-up; } + Mod+Shift+N { move-column-to-workspace-down; } + + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + + Mod+Q { focus-workspace "social"; } + Mod+W { focus-workspace "browser"; } + Mod+E { focus-workspace 3; } + Mod+Ctrl+Q { move-column-to-workspace "social"; } + Mod+Ctrl+W { move-column-to-workspace "browser"; } + Mod+Ctrl+E { move-column-to-workspace 3; } + + Mod+1 { focus-workspace 4; } + Mod+2 { focus-workspace 5; } + Mod+3 { focus-workspace 6; } + Mod+4 { focus-workspace 7; } + Mod+5 { focus-workspace 8; } + Mod+6 { focus-workspace 9; } + Mod+7 { focus-workspace 10; } + Mod+8 { focus-workspace 11; } + Mod+9 { focus-workspace 12; } + Mod+Ctrl+1 { move-column-to-workspace 4; } + Mod+Ctrl+2 { move-column-to-workspace 5; } + Mod+Ctrl+3 { move-column-to-workspace 6; } + Mod+Ctrl+4 { move-column-to-workspace 7; } + Mod+Ctrl+5 { move-column-to-workspace 8; } + Mod+Ctrl+6 { move-column-to-workspace 9; } + Mod+Ctrl+7 { move-column-to-workspace 10; } + Mod+Ctrl+8 { move-column-to-workspace 11; } + Mod+Ctrl+9 { move-column-to-workspace 12; } +} -- cgit v1.2.3 From cff4b602c05b31df8b9a6d690fb4084f15966ada Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 18:21:06 +0200 Subject: Fixed up some binds --- home/rices/schrottkatze/niri/kdl/binds.kdl | 31 ++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri/kdl/binds.kdl b/home/rices/schrottkatze/niri/kdl/binds.kdl index 28da700..1f2c9af 100644 --- a/home/rices/schrottkatze/niri/kdl/binds.kdl +++ b/home/rices/schrottkatze/niri/kdl/binds.kdl @@ -5,7 +5,7 @@ binds { Mod+M repeat=false { spawn "hyprpicker"; } Mod+I repeat=false { spawn "bemoji" "-n"; } Mod+N repeat=false { spawn "firefox"; } - Mod+E repeat=false { spawn "kitty" "hx" "~/.config/niri/live.kdl"; } + Mod+E repeat=false { spawn "kitty" "vi" "~/.config/niri/live.kdl"; } Mod+Ctrl+Shift+E { quit; } Mod+Q { close-window; } @@ -45,11 +45,38 @@ binds { Mod+R { switch-preset-column-width; } - Mod { toggle-overview; } + Mod+G { toggle-overview; } Mod+V { toggle-window-floating; } Mod+Shift+V { switch-focus-between-floating-and-tiling; } + // workspace navigation + Mod+P { focus-workspace-up; } + Mod+Ctrl+P { move-workspace-up; } + Mod+Shift+P { move-column-to-workspace-up; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+Ctrl+1 { move-column-to-workspace 1; } + Mod+Ctrl+2 { move-column-to-workspace 2; } + Mod+Ctrl+3 { move-column-to-workspace 3; } + Mod+Ctrl+4 { move-column-to-workspace 4; } + Mod+Ctrl+5 { move-column-to-workspace 5; } + Mod+Ctrl+6 { move-column-to-workspace 6; } + Mod+Ctrl+7 { move-column-to-workspace 7; } + Mod+Ctrl+8 { move-column-to-workspace 8; } + Mod+Ctrl+9 { move-column-to-workspace 9; } + // monitor controls Mod+Ctrl+H { focus-monitor-left; } Mod+Ctrl+J { focus-monitor-down; } -- cgit v1.2.3 From 84d39cf904e7008434c1e5ed8257cf09b1875bea Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 10 Apr 2026 19:20:26 +0200 Subject: Rebound toggle overview to Mod+Space from Mod+G --- home/rices/schrottkatze/niri/kdl/binds.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'home') diff --git a/home/rices/schrottkatze/niri/kdl/binds.kdl b/home/rices/schrottkatze/niri/kdl/binds.kdl index 1f2c9af..e79b3fc 100644 --- a/home/rices/schrottkatze/niri/kdl/binds.kdl +++ b/home/rices/schrottkatze/niri/kdl/binds.kdl @@ -45,7 +45,7 @@ binds { Mod+R { switch-preset-column-width; } - Mod+G { toggle-overview; } + Mod+Space { toggle-overview; } Mod+V { toggle-window-floating; } Mod+Shift+V { switch-focus-between-floating-and-tiling; } -- cgit v1.2.3