diff --git a/flake.lock b/flake.lock index d7f64b0..7d674c4 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ ] }, "locked": { - "lastModified": 1771215876, - "narHash": "sha256-aei7McII5+y4tROXfmOVyLbPO62sWttNkOKUlCSEIcg=", + "lastModified": 1771513958, + "narHash": "sha256-KoDcVuYgmP/kX6pd9uCW5Wo5Xn3y0SumrMaCLu5ojdY=", "owner": "nyakase", "repo": "aerothemeplasma-nix", - "rev": "b922785202501754c4503232aa5f172aeaef8b00", + "rev": "348cbf661738840d0ae02d5eda7f4c076e59b733", "type": "github" }, "original": { @@ -27,11 +27,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1771054135, - "narHash": "sha256-0RYmnOk40U4ZGbW/+3rHlNndrsuHCz9h+xequKWgwHQ=", + "lastModified": 1771511514, + "narHash": "sha256-qhtonMK07BCVC/wZ+pZ9/MKhcTric7YUaCpW6pOg8IM=", "owner": "nix-community", "repo": "nixos-apple-silicon", - "rev": "357186cca0f4c7801ff16970e4b6a05e74fd88e0", + "rev": "2b92d495204be0b10845c66361444dbc8441c68d", "type": "github" }, "original": { @@ -61,11 +61,11 @@ "base16-discord": { "flake": false, "locked": { - "lastModified": 1768273180, - "narHash": "sha256-uw7lz53YHxvPEyXZiS+NJFhKMb6AMUvVpCLH81NjM7U=", + "lastModified": 1771164756, + "narHash": "sha256-6NU5HQZVZ1mSNaIyZxE+U35nF46uXH/768y3auhQdiI=", "owner": "imbypass", "repo": "base16-discord", - "rev": "d4df17db31276d94cc1a8988f34e813aae1f3fb4", + "rev": "8b005607e5783f751fe369f0442965a86eed8051", "type": "github" }, "original": { @@ -93,11 +93,11 @@ "cachyos-kernel-patches": { "flake": false, "locked": { - "lastModified": 1771246613, - "narHash": "sha256-GftqKiyIgMcSgVkbNqXQq7oNnoL1+EB9V71XG4lPBRs=", + "lastModified": 1771399550, + "narHash": "sha256-Q2rMJcwZiI1rn8H27gLleKA3ATW/EykukyGR6S1tBPk=", "owner": "CachyOS", "repo": "kernel-patches", - "rev": "cb320a13e3c92f32ada27acb1fba8a828a22ae60", + "rev": "021aae790c8555a4bb6e2135c6b777bf6fdcba02", "type": "github" }, "original": { @@ -109,11 +109,11 @@ "catppuccin-discord": { "flake": false, "locked": { - "lastModified": 1769446491, - "narHash": "sha256-7v1Hu6QofOyFOGnHeqHFK0JsxUxdJ9uTjI7nM7mdTsg=", + "lastModified": 1770426312, + "narHash": "sha256-rxvHIifq5CYIBPwFA2SpOrWT+sG/z0ItXT3sx2wbEqg=", "owner": "catppuccin", "repo": "discord", - "rev": "f235754322320211a8646d963466fac402e5c297", + "rev": "b9b5547f0b32296d2389716ef606de87b3c1e7c7", "type": "github" }, "original": { @@ -197,11 +197,11 @@ ] }, "locked": { - "lastModified": 1768135262, - "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", + "lastModified": 1769996383, + "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", + "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", "type": "github" }, "original": { @@ -254,11 +254,11 @@ ] }, "locked": { - "lastModified": 1769579508, - "narHash": "sha256-EE2bs7xFrC64qrj0N2zP6E6e/nmhcdw6v/grdYi+BiY=", + "lastModified": 1771519029, + "narHash": "sha256-H59Qf82wv5kBXVoyXsmUKW+9J3o8FqgY4uKaLdsLdLg=", "owner": "nix-community", "repo": "home-manager", - "rev": "eec72f127831326b042d1f35003767a4ab6a9516", + "rev": "167e0b6837115e672ec5f58e2b0ea39093abe807", "type": "github" }, "original": { @@ -269,8 +269,12 @@ }, "niri": { "inputs": { - "niri-stable": "niri-stable", - "niri-unstable": "niri-unstable", + "niri-stable": [ + "niri-blur" + ], + "niri-unstable": [ + "niri-blur" + ], "nixpkgs": [ "nixpkgs" ], @@ -281,48 +285,33 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1771514840, - "narHash": "sha256-t3WbZvwoDj/75YDX/nwkZuxanZLZaWr9meSfKswaN6g=", - "owner": "sodiboo", + "lastModified": 1771682768, + "narHash": "sha256-RJ9RVJSAktCgWiqLDCjYmx9KgMuLaszUrI28k92Pa2I=", + "owner": "sckova", "repo": "niri-flake", - "rev": "4f69ab280e9bb34e2c0b67fdfa6f0978a170ef56", + "rev": "383bd9d32706b163807b05983418069b2e692310", "type": "github" }, "original": { - "owner": "sodiboo", + "owner": "sckova", + "ref": "feat/blur", "repo": "niri-flake", "type": "github" } }, - "niri-stable": { + "niri-blur": { "flake": false, "locked": { - "lastModified": 1756556321, - "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", - "owner": "YaLTeR", + "lastModified": 1771672342, + "narHash": "sha256-52CxMRH2kVGpsPBiZM+996b6i/3XkmOrySm5zqwWc+o=", + "owner": "niri-wm", "repo": "niri", - "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "rev": "86f42d1ed9ab787c52ace073e0b3218e26530d25", "type": "github" }, "original": { - "owner": "YaLTeR", - "ref": "v25.08", - "repo": "niri", - "type": "github" - } - }, - "niri-unstable": { - "flake": false, - "locked": { - "lastModified": 1771305475, - "narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=", - "owner": "YaLTeR", - "repo": "niri", - "rev": "a2a52911757cb3b497db9407592f9b4c439571ea", - "type": "github" - }, - "original": { - "owner": "YaLTeR", + "owner": "niri-wm", + "ref": "wip/branch", "repo": "niri", "type": "github" } @@ -336,11 +325,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1771353108, - "narHash": "sha256-5Xtei4UKrqRC6IYLgI1KEBaPN9Xfef5JeOexdqDWVeg=", + "lastModified": 1771438239, + "narHash": "sha256-/d5FnrQ1nvZ9n1I7o/hMTzjd8tTBvV5rT24Nh7h59RQ=", "owner": "xddxdd", "repo": "nix-cachyos-kernel", - "rev": "98e777cdcc39e6bd0312a9d756507ef9cbd284cb", + "rev": "58f338b00bc5619144a6f3082eed5c83e79b279b", "type": "github" }, "original": { @@ -398,11 +387,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1769598131, - "narHash": "sha256-e7VO/kGLgRMbWtpBqdWl0uFg8Y2XWFMdz0uUJvlML8o=", + "lastModified": 1771419570, + "narHash": "sha256-bxAlQgre3pcQcaRUm/8A0v/X8d2nhfraWSFqVmMcBcU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fa83fd837f3098e3e678e6cf017b2b36102c7211", + "rev": "6d41bc27aaf7b6a3ba6b169db3bd5d6159cfaa47", "type": "github" }, "original": { @@ -414,11 +403,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1769461804, - "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", + "rev": "0182a361324364ae3f436a63005877674cf45efb", "type": "github" }, "original": { @@ -453,11 +442,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1769537308, - "narHash": "sha256-N7famD4s2hiDIicr9mJWhUj8l9EULB60+1QN/S+UjeM=", + "lastModified": 1771135771, + "narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=", "owner": "nix-community", "repo": "nixvim", - "rev": "7addac6d111837217c16762968a9042eac703f7e", + "rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba", "type": "github" }, "original": { @@ -473,11 +462,11 @@ ] }, "locked": { - "lastModified": 1769607092, - "narHash": "sha256-P0KGVjKtN+hkZWskpxr2iXWalPb0SKAgRVyMFZxdxf0=", + "lastModified": 1771513929, + "narHash": "sha256-dPeHevAT1Cb2w/Wrfz/d5i6RfO8bvbGl/KrTPxU2l3w=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "b2b16ecdda1bc04001a7c714bf8124160a86ddfc", + "rev": "9c47ce03f200e0b8fc515d973440d5bc3e359785", "type": "github" }, "original": { @@ -494,11 +483,11 @@ ] }, "locked": { - "lastModified": 1769604042, - "narHash": "sha256-KQGbmKSY3tA4S8qFN76xd+3cbM0mAtPgoUVbjWrprcs=", + "lastModified": 1771516225, + "narHash": "sha256-G2cPs4Ic8Z1Aq8QfMa1VwJoBwIhVpwzcQ036ZhI4oXc=", "owner": "nix-community", "repo": "NUR", - "rev": "92f5f3f18a365341dd424314a80253f5ede071e4", + "rev": "d4694f0614419034910767b5a036384ab358b138", "type": "github" }, "original": { @@ -520,6 +509,7 @@ "original": { "owner": "OpenMW", "repo": "openmw", + "rev": "01bcd6a6369fe461caaf900354967b4751aede7a", "type": "gitlab" } }, @@ -533,11 +523,11 @@ ] }, "locked": { - "lastModified": 1767662275, - "narHash": "sha256-d5Q1GmQ+sW1Bt8cgDE0vOihzLaswsm8cSdg8124EqXE=", + "lastModified": 1770766818, + "narHash": "sha256-12RCFLyAedyMOdenUi7cN3ioJPEGjA/ZG1BLjugfUVs=", "owner": "nix-community", "repo": "plasma-manager", - "rev": "51816be33a1ff0d4b22427de83222d5bfa96d30e", + "rev": "44b928068359b7d2310a34de39555c63c93a2c90", "type": "github" }, "original": { @@ -555,6 +545,7 @@ "catppuccin-discord": "catppuccin-discord", "home-manager": "home-manager", "niri": "niri", + "niri-blur": "niri-blur", "nix-cachyos-kernel": "nix-cachyos-kernel", "nixpkgs": [ "nixpkgs-unstable" @@ -578,11 +569,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1769316930, - "narHash": "sha256-4EOGHYLpIscwr+6drHE28Qj7NDjjowp2Vd8QkXjdBBE=", + "lastModified": 1771268051, + "narHash": "sha256-nGqPcngnezoT+/xAvw3UDjwdKP2MC4fO315A/Otb9eE=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "b2ce438f386943ef611e196a178af2d79042903b", + "rev": "b930de84c561f62a0c39a6a57c2ab553a97e8495", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index c0ea05a..c96b188 100644 --- a/flake.nix +++ b/flake.nix @@ -44,11 +44,16 @@ }; niri = { - url = "github:sodiboo/niri-flake"; + url = "github:sckova/niri-flake/feat/blur"; inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs-stable.follows = "nixpkgs-stable"; - # inputs.niri-stable.follows = "niri-blur"; - # inputs.niri-unstable.follows = "niri-blur"; + inputs.niri-stable.follows = "niri-blur"; + inputs.niri-unstable.follows = "niri-blur"; + }; + + niri-blur = { + url = "github:niri-wm/niri/wip/branch"; + flake = false; }; # niri-blur = { @@ -82,7 +87,7 @@ }; openmw = { - url = "gitlab:OpenMW/openmw"; + url = "gitlab:OpenMW/openmw/01bcd6a6369fe461caaf900354967b4751aede7a"; flake = false; }; @@ -215,6 +220,7 @@ } ./system ./system/searxng + ./system/torrenting ./system/widevine ./system/shell/fish.nix ./system/tailscale @@ -306,23 +312,23 @@ { nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; } ]; }; - - alien = - mkNixosSystem { - hostname = "alien"; - system = "x86_64-linux"; - extraModules = [ - { nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ]; } - ]; - } - // nixpkgs.lib.genAttrs supportedSystems ( - system: - mkNixosSystem { - hostname = "vm-generic"; - inherit system; + alien = mkNixosSystem { + hostname = "alien"; + system = "x86_64-linux"; + extraModules = [ + { + nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ]; } - ); - }; + ]; + }; + } + // nixpkgs.lib.genAttrs supportedSystems ( + system: + mkNixosSystem { + hostname = "vm-generic"; + inherit system; + } + ); homeConfigurations = { peach = mkHomeConfig { diff --git a/home/apps/discord.nix b/home/apps/discord.nix index c0c6683..e488076 100644 --- a/home/apps/discord.nix +++ b/home/apps/discord.nix @@ -4,12 +4,9 @@ ... }: let - catppuccin-discord = "${pkgs.catppuccin-discord}/share/catppuccin-discord/catppuccin-mocha-*.theme.css"; - mergedThemes = pkgs.runCommand "mergedConfig" { } '' mkdir -p $out cp -rvf ${pkgs.base16-discord-git}/base16.css $out/base16.css - cp -rvf ${catppuccin-discord} $out ''; vesktopSettings = { diff --git a/home/apps/firefox.nix b/home/apps/firefox.nix index 402c099..1a3298c 100644 --- a/home/apps/firefox.nix +++ b/home/apps/firefox.nix @@ -207,7 +207,7 @@ "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.newtabpage.activity-stream.showWeather" = false; "browser.download.autoHideButton" = false; - "browser.startup.homepage" = "http://localhost:8080/"; + "browser.startup.homepage" = "http://localhost:5364/"; # Disable Firefox's machine learning (AI) features "browser.ml.enable" = false; @@ -369,7 +369,7 @@ searxng = { name = "SearXNG"; - urls = [ { template = "http://localhost:8080/search?q={searchTerms}"; } ]; + urls = [ { template = "http://localhost:5364/search?q={searchTerms}"; } ]; icon = searchIcon; definedAliases = [ "@go" ]; }; diff --git a/home/default.nix b/home/default.nix index dafbbba..dffbadd 100755 --- a/home/default.nix +++ b/home/default.nix @@ -39,7 +39,7 @@ ffmpeg-full # kde and kde theming - kde-rounded-corners + # kde-rounded-corners kdePackages.partitionmanager pkgs.catppuccin-cursors.mochaPeach @@ -48,7 +48,6 @@ libreoffice-qt-fresh # nur.repos.forkprince.helium-nightly chromium - qbittorrent nautilus fractal tuba diff --git a/home/games/morrowind.nix b/home/games/morrowind.nix index be92688..ff85bab 100644 --- a/home/games/morrowind.nix +++ b/home/games/morrowind.nix @@ -1,15 +1,10 @@ { - config, pkgs, ... }: { - home = { - packages = with pkgs; [ openmw ]; - sessionVariables = { - SDL_VIDEO_DRIVER = "wayland"; - }; - }; + home.packages = with pkgs; [ openmw ]; + home.sessionVariables.SDL_VIDEO_DRIVER = "wayland"; programs.firefox.profiles.default.search.engines.uesp = { name = "Unofficial Elder Scrolls Pages"; diff --git a/home/hosts/peach/default.nix b/home/hosts/peach/default.nix index 1415982..3c90a41 100644 --- a/home/hosts/peach/default.nix +++ b/home/hosts/peach/default.nix @@ -6,7 +6,7 @@ }: { colors = { - scheme = "catppuccin-latte"; + scheme = "deep-oceanic-next"; accent = "base09"; }; @@ -19,11 +19,6 @@ moonlight-qt ]; - # https://github.com/YaLTeR/niri/issues/2330#issuecomment-3256864777 - programs.niri.settings.debug = { - render-drm-device = "/dev/dri/card2"; - }; - programs.noctalia-shell.settings.bar = { position = "top"; density = "spacious"; diff --git a/home/kde/default.nix b/home/kde/default.nix index e383cf5..17814d4 100644 --- a/home/kde/default.nix +++ b/home/kde/default.nix @@ -23,11 +23,11 @@ }; }; - aerothemeplasma = { - enable = true; - plasma.enable = true; - fonts.enable = true; - }; + # aerothemeplasma = { + # enable = true; + # plasma.enable = true; + # fonts.enable = true; + # }; programs.plasma = lib.mkDefault { enable = true; diff --git a/home/services/default.nix b/home/services/default.nix index d38c136..a0ff910 100644 --- a/home/services/default.nix +++ b/home/services/default.nix @@ -31,6 +31,8 @@ home.sessionVariables = { QT_QPA_PLATFORMTHEME = "qt6ct"; + # this makes electron apps work per the wiki + NIXOS_OZONE_WL = "1"; }; gtk = { diff --git a/home/services/systemd.nix b/home/services/systemd.nix index 5dd3a94..5e1d681 100644 --- a/home/services/systemd.nix +++ b/home/services/systemd.nix @@ -28,16 +28,14 @@ Description = "Mount Synology NAS with Rclone and Home Manager."; After = [ "tailscaled.service" ]; Wants = [ "tailscaled.service" ]; + StartLimitBurst = 5; + StartLimitIntervalSec = "1m"; }; Service = { Type = "simple"; - # ExecStartPre = "${pkgs.writeShellScript "synology-prep" '' - # if mountpoint -q %h/Synology; then - # /run/wrappers/bin/fusermount -uz %h/Synology - # fi - # ${pkgs.coreutils}/bin/mkdir -p %h/Synology - # ''}"; + Restart = "on-failure"; + RestartSec = "1m"; ExecStart = "${pkgs.writeShellScript "synology-mount" '' #!/usr/bin/env bash set -euo pipefail @@ -65,49 +63,4 @@ WantedBy = [ "default.target" ]; }; }; - - # systemd.user.services.synology-prefill = { - # Unit = { - # Description = "Prefill Synology NAS rclone cache"; - # After = [ "synology-mount.service" ]; - # Wants = [ "synology-mount.service" ]; - # }; - - # Service = { - # Type = "simple"; - # ExecStart = "${pkgs.writeShellScript "synology-prefill" '' - # #!/usr/bin/env bash - # set -euo pipefail - # ${pkgs.rclone}/bin/rclone rc vfs/refresh -v --fast-list recursive=true >/dev/null - # ''}"; - # StandardOutput = "journal"; - # StandardError = "journal"; - # Restart = "on-failure"; - # }; - - # Install = { - # WantedBy = [ "default.target" ]; - # }; - # }; - - # systemd.user.services.input-leap = { - # Unit = { - # Description = "Autostart Input Leap"; - # After = [ "graphical-session.target" ]; - # }; - - # Service = { - # Type = "oneshot"; - # RemainAfterExit = true; - # PassEnvironment = "DISPLAY"; - # ExecStart = "${pkgs.writeShellScript "input-leap-start" '' - # sleep 5 - # ${pkgs.input-leap}/bin/input-leap - # ''}"; - # }; - - # Install = { - # WantedBy = [ "graphical-session.target" ]; - # }; - # }; } diff --git a/home/terminal/neovim.nix b/home/terminal/neovim.nix index 65ace66..f45e453 100644 --- a/home/terminal/neovim.nix +++ b/home/terminal/neovim.nix @@ -1,12 +1,11 @@ { pkgs, config, + lib, ... }: { - home.sessionVariables = { - EDITOR = "nvim"; - }; + home.sessionVariables.EDITOR = lib.mkForce "kitty nvim"; home.packages = with pkgs; [ kdePackages.qtdeclarative diff --git a/home/tiling/niri.nix b/home/tiling/niri.nix index 470b1a2..63a1fe0 100644 --- a/home/tiling/niri.nix +++ b/home/tiling/niri.nix @@ -1,6 +1,5 @@ { config, - pkgs, ... }: { @@ -29,7 +28,6 @@ input = { focus-follows-mouse.enable = true; focus-follows-mouse.max-scroll-amount = "0%"; - warp-mouse-to-focus.enable = true; mod-key = "Super"; keyboard = { numlock = false; @@ -84,13 +82,11 @@ }; cursor = { hide-when-typing = false; - # hide-after-inactive-ms = 10000; size = config.userOptions.cursor.size; theme = config.userOptions.cursor.name; }; layout = { gaps = 4; - # background-color = base10; background-color = "transparent"; default-column-width = { proportion = 0.5; @@ -103,16 +99,16 @@ border = { enable = true; width = 2; - active.color = config.scheme.withHashtag.${config.colors.accent}; - inactive.color = base01; - urgent.color = base12; + active.color = config.scheme.withHashtag.${config.colors.accent} + "E6"; + inactive.color = base01 + "E6"; + urgent.color = base12 + "E6"; }; focus-ring = { enable = false; width = 2; - active.color = config.scheme.withHashtag.${config.colors.accent}; - inactive.color = base01; - urgent.color = base12; + active.color = config.scheme.withHashtag.${config.colors.accent} + "E6"; + inactive.color = base01 + "E6"; + urgent.color = base12 + "E6"; }; shadow = { enable = true; @@ -122,12 +118,6 @@ softness = 30; color = base11 + "BF"; }; - # blur = { - # enable = true; - # passes = 4; - # radius = 4; - # noise = 0.1; - # }; }; window-rules = [ { @@ -138,7 +128,13 @@ bottom-right = 8.0; }; clip-to-geometry = true; - opacity = 1.0; + opacity = 0.90; + background-effect = { + xray = false; + blur = true; + noise = 0.05; + saturation = 1; + }; } { matches = [ @@ -159,9 +155,20 @@ { app-id = "vesktop$"; } + { + app-id = "org.gnome.Nautilus$"; + } ]; block-out-from = "screen-capture"; } + { + matches = [ + { + is-active = false; + } + ]; + opacity = 0.875; + } { matches = [ { @@ -173,17 +180,63 @@ title = "Minecraft"; } ]; - open-maximized = true; + open-maximized-to-edges = true; open-focused = true; } + { + matches = [ + { + app-id = "mpv"; + } + { + app-id = "firefox"; + title = "Picture-in-Picture"; + } + ]; + opacity = 1.0; + } + { + # Kitty Fastfetch window + matches = [ + { + app-id = "kitty"; + title = "^fastfetch$"; + } + ]; + open-floating = true; + baba-is-float = true; + min-width = 960; + min-height = 480; + max-width = 960; + max-height = 480; + } ]; layer-rules = [ { - matches = [ - { - namespace = "^wpaperd.*"; - } - ]; + matches = [ { namespace = "noctalia-bar-content-.*$"; } ]; + background-effect = { + xray = false; + blur = true; + noise = 0.05; + saturation = 1; + }; + } + { + matches = [ { namespace = "noctalia-bar-exclusion-top-.*$"; } ]; + place-within-backdrop = true; + } + { + matches = [ { namespace = "^launcher$"; } ]; + opacity = 0.925; + background-effect = { + xray = false; + blur = true; + noise = 0.05; + saturation = 1; + }; + } + { + matches = [ { namespace = "^wallpaper$"; } ]; place-within-backdrop = true; } ]; @@ -194,6 +247,10 @@ action.spawn = [ "kitty" ]; hotkey-overlay.title = "Open a Terminal: kitty"; }; + "Mod+Shift+T" = { + action.spawn-sh = [ "kitty --title fastfetch sh -c 'fastfetch; sleep 10'" ]; + hotkey-overlay.title = "Open a Terminal with Fastfetch"; + }; "Mod+Space" = { action.spawn = [ "fuzzel" ]; hotkey-overlay.title = "Run an Application: Noctalia app launcher"; @@ -342,29 +399,13 @@ allow-when-locked = true; }; - "XF86Sleep" = { - action.power-off-monitors = { }; - }; + "XF86Sleep".action.power-off-monitors = { }; - "XF86Search" = { - action.spawn = [ - "noctalia-shell" - "ipc" - "call" - "launcher" - "toggle" - ]; - allow-when-locked = true; - }; + "XF86Search".action.spawn = [ "fuzzel" ]; "XF86LaunchA" = { - action.spawn = [ - "niri" - "msg" - "action" - "toggle-overview" - ]; - allow-when-locked = true; + action.toggle-overview = { }; + repeat = false; }; "Mod+O" = { @@ -492,18 +533,14 @@ "Mod+Ctrl+Shift+F".action.fullscreen-window = { }; "Mod+C".action.center-column = { }; - "Mod+Ctrl+C".action.center-visible-columns = { }; "Mod+Minus".action.set-column-width = "-10%"; "Mod+Equal".action.set-column-width = "+10%"; - "Mod+Shift+Minus".action.set-window-height = "-10%"; "Mod+Shift+Equal".action.set-window-height = "+10%"; - "Mod+Ctrl+Minus".action.set-column-width = "-0.25%"; "Mod+Ctrl+Equal".action.set-column-width = "+0.25%"; - "Mod+Ctrl+Shift+Minus".action.set-window-height = "-0.25%"; "Mod+Ctrl+Shift+Equal".action.set-window-height = "+0.25%"; @@ -512,18 +549,10 @@ "Mod+W".action.toggle-column-tabbed-display = { }; - "Print".action.screenshot = { - show-pointer = false; - }; - "Mod+Shift+S".action.screenshot = { - show-pointer = false; - }; - "Ctrl+Print".action.screenshot-screen = { - show-pointer = false; - }; - "Alt+Print".action.screenshot-window = { - show-pointer = false; - }; + "Print".action.screenshot.show-pointer = false; + "Mod+Shift+S".action.screenshot.show-pointer = false; + "Ctrl+Print".action.screenshot-screen.show-pointer = false; + "Alt+Print".action.screenshot-window.show-pointer = false; "Mod+Escape" = { action.toggle-keyboard-shortcuts-inhibit = { }; diff --git a/home/tiling/noctalia.nix b/home/tiling/noctalia.nix index 719dda0..85a915f 100644 --- a/home/tiling/noctalia.nix +++ b/home/tiling/noctalia.nix @@ -63,7 +63,7 @@ bar = { autoHideDelay = 500; autoShowDelay = 150; - backgroundOpacity = 1; + backgroundOpacity = 0.90; monitors = [ ]; showCapsule = true; barType = "simple"; @@ -79,7 +79,7 @@ outerCorners = false; screenOverrides = [ ]; showOutline = false; - useSeparateOpacity = false; + useSeparateOpacity = true; widgets = { center = [ ]; left = [ @@ -206,7 +206,7 @@ deviceNativePath = "__default__"; displayMode = "icon-hover"; hideIfIdle = false; - hideIfNotDetected = false; + hideIfNotDetected = true; id = "Battery"; showNoctaliaPerformance = false; showPowerProfiles = true; @@ -613,8 +613,6 @@ ]; }; - Install = { - WantedBy = [ "niri.service" ]; - }; + Install.WantedBy = [ "niri.service" ]; }; } diff --git a/home/tiling/wallpaper.nix b/home/tiling/wallpaper.nix index 47377f7..958cb97 100644 --- a/home/tiling/wallpaper.nix +++ b/home/tiling/wallpaper.nix @@ -4,78 +4,104 @@ ... }: { - home.packages = with pkgs; [ - wpaperd - ]; - - home.file.".config/wpaperd/config.toml" = { - text = '' - [default] - mode = "center" - [any] - path = "/home/${config.userOptions.username}/.local/share/wallpaper/daily.jpg" + systemd.user.services.wbg-daemon = { + Unit.Description = "Wallpaper service using wbg (daemon)"; + Service.ExecStart = '' + ${pkgs.wbg}/bin/wbg -s \ + %h/.local/share/wallpaper/daily-colored.jpg ''; - force = true; - }; - - systemd.user.services.wpaperd = { - Unit = { - Description = "Modern wallpaper daemon for Wayland"; - PartOf = [ "niri.service" ]; - Requires = [ "niri.service" ]; - After = [ "niri.service" ]; - }; - Service = { - ExecStart = "${pkgs.wpaperd}/bin/wpaperd"; - }; - Install = { - WantedBy = [ "niri.service" ]; - }; + Install.WantedBy = [ "niri.service" ]; }; systemd.user.services.bing-wallpaper = { - Unit = { - Description = "Download and set Bing wallpaper of the day"; - After = [ "network-online.target" ]; - Wants = [ "network-online.target" ]; - }; - Service = { - Type = "oneshot"; - ExecStart = pkgs.writeShellScript "bing-wallpaper" '' - OUT="''${XDG_DATA_HOME:-$HOME/.local/share}/wallpaper/daily.jpg" + Unit.Description = "Download and set Bing wallpaper of the day"; + Unit.StartLimitBurst = 6; + Unit.StartLimitIntervalSec = "10m"; + Service.Restart = "on-failure"; + Service.RestartSec = "10s"; + Service.Type = "oneshot"; + Service.ExecStart = pkgs.lib.getExe ( + pkgs.writeShellApplication { + name = "bing-wallpaper"; + runtimeInputs = with pkgs; [ + wget + jq + coreutils + libnotify + ]; + text = '' + OUT="$HOME/.local/share/wallpaper/daily.jpg" + API=$(wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1") + BASE=$(echo "$API" | jq -r '.images[0].urlbase') + TITLE=$(echo "$API" | jq -r '.images[0].title') - API_RESP=$(${pkgs.wget}/bin/wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1") || exit 1 + mkdir -p "$HOME/.local/share/wallpaper" + wget -qO "$OUT" "https://www.bing.com''${BASE}_UHD.jpg" - URL_BASE=$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'urlbase":"[^"]*' | cut -d '"' -f 3) - TITLE=$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'title":"[^"]*' | cut -d '"' -f 3) - - ${pkgs.coreutils}/bin/mkdir -p "$(dirname "$OUT")" - ${pkgs.wget}/bin/wget -qO "$OUT" "https://www.bing.com$URL_BASE\_UHD.jpg" || \ - ${pkgs.wget}/bin/wget -qO "$OUT" "https://www.bing.com$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'url":"[^"]*' | cut -d '"' -f 3)" - - ${pkgs.libnotify}/bin/notify-send \ - -a "Bing Wallpaper Service" \ - -u low \ - -i preferences-desktop-wallpaper \ - "$TITLE" - ''; - ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wpaperd.service"; - }; - Install = { - WantedBy = [ "niri.service" ]; - }; + notify-send \ + -a "Wallpaper of the day" \ + -u low \ + -i preferences-desktop-wallpaper \ + "$TITLE" + ''; + } + ); + Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user start gowall-convert.service"; + Install.WantedBy = [ "niri.service" ]; }; systemd.user.timers.bing-wallpaper = { - Unit = { - Description = "Run bing wallpaper retrieval daily"; - }; - Timer = { - OnCalendar = "*-*-* 10:00:00 GMT"; - Persistent = true; - }; - Install = { - WantedBy = [ "timers.target" ]; - }; + Unit.Description = "Run bing wallpaper retrieval daily"; + Timer.OnCalendar = "*-*-* 10:00:00 GMT"; + Timer.Persistent = true; + Install.WantedBy = [ "timers.target" ]; }; + + systemd.user.services.gowall-convert = { + Unit.Description = "Convert a wallpaper to the system color scheme"; + Unit.StartLimitBurst = 6; + Unit.StartLimitIntervalSec = "10m"; + Service.Restart = "on-failure"; + Service.RestartSec = "10s"; + Service.Type = "oneshot"; + Service.ExecStart = '' + ${pkgs.gowall}/bin/gowall convert \ + %h/.local/share/wallpaper/daily.jpg \ + --output %h/.local/share/wallpaper/daily-colored.jpg \ + -t nix + ''; + Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wbg-daemon.service"; + }; + + home.file.".config/gowall/config.yml".text = with config.scheme.withHashtag; '' + themes: + - name: "nix" + colors: + - "${base06}" + - "${base0F}" + - "${base17}" + - "${base0E}" + - "${base08}" + - "${base12}" + - "${base09}" + - "${base0A}" + - "${base0B}" + - "${base0C}" + - "${base15}" + - "${base16}" + - "${base0D}" + - "${base07}" + - "${base05}" + - "${base07}" + - "${base0D}" + - "${base0D}" + - "${base04}" + - "${base04}" + - "${base04}" + - "${base03}" + - "${base02}" + - "${base00}" + - "${base01}" + - "${base11}" + ''; } diff --git a/system/default.nix b/system/default.nix index 5f86afb..5b7bcf4 100755 --- a/system/default.nix +++ b/system/default.nix @@ -2,28 +2,16 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { + config, pkgs, ... }: { - environment.sessionVariables = { - # this makes electron apps work per the wiki - NIXOS_OZONE_WL = "1"; - }; - boot = { - plymouth = { - enable = true; - logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png"; - }; - + plymouth.enable = true; + plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png"; loader = { timeout = 3; - # systemd-boot = { - # enable = true; - # consoleMode = lib.mkForce "auto"; - # configurationLimit = 10; - # }; limine = { enable = true; maxGenerations = 10; @@ -40,7 +28,6 @@ }; }; }; - # efi.canTouchEfiVariables = true; }; kernelParams = [ "quiet" @@ -55,9 +42,93 @@ initrd.verbose = false; }; - networking.networkmanager.enable = true; - hardware.bluetooth.enable = true; + programs = { + gnupg.agent = { + enable = true; + enableSSHSupport = true; + pinentryPackage = pkgs.pinentry-curses; + }; + niri.enable = true; + niri.package = pkgs.niri-unstable; + dconf.enable = true; + dconf.profiles.user = { + databases = [ + { + # breaks user-level indirect config of dconf + # lockAll = true; + settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + clock-format = "12h"; + clock-show-weekday = true; + }; + "org/gnome/desktop/wm/preferences" = { + button-layout = ":"; + action-double-click-titlebar = "'none'"; + }; + "org/gnome/desktop/media-handling" = { + automount = false; + automount-open = false; + autorun-never = true; + }; + "org/gnome/settings-daemon/plugins/power" = { + sleep-inactive-ac-type = "nothing"; + }; + "org/gnome/mutter" = { + edge-tiling = true; + dynamic-workspaces = true; + experimental-features = [ "variable-refresh-rate" ]; + }; + }; + } + ]; + }; + }; + + # aerothemeplasma = { + # enable = true; + # plasma.enable = true; + # fonts.enable = false; + # plymouth.enable = false; + # sddm.enable = true; + # }; + + services = { + desktopManager.plasma6.enable = true; + displayManager = { + sddm.enable = true; + sddm.wayland.enable = true; + defaultSession = "niri"; + }; + gnome.gnome-keyring.enable = true; + libinput.enable = true; + printing.enable = true; + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + udisks2.enable = true; + gvfs.enable = true; + upower.enable = true; + power-profiles-daemon.enable = true; + openssh.enable = true; + }; + + environment.systemPackages = with pkgs; [ + git + firefoxpwa + ]; + + security.pam.services.niri.enableGnomeKeyring = config.services.gnome.gnome-keyring.enable; + networking.firewall.enable = false; + networking.networkmanager.enable = true; + documentation.man.enable = true; + documentation.man.generateCaches = false; + hardware.graphics.enable = true; + hardware.bluetooth.enable = true; time.timeZone = "America/New_York"; i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { @@ -72,108 +143,6 @@ LC_TIME = "en_US.UTF-8"; }; - # Enable OpenGL - hardware.graphics = { - enable = true; - }; - - programs.niri = { - enable = true; - package = pkgs.niri-unstable; - }; - services.gnome.gnome-keyring.enable = true; - security.pam.services.niri.enableGnomeKeyring = true; - programs.dconf.enable = true; - - programs.dconf.profiles.user = { - databases = [ - { - # breaks user-level indirect config of dconf - # lockAll = true; - settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - clock-format = "12h"; - clock-show-weekday = true; - }; - "org/gnome/desktop/wm/preferences" = { - button-layout = ":"; - action-double-click-titlebar = "'none'"; - }; - "org/gnome/desktop/media-handling" = { - automount = false; - automount-open = false; - autorun-never = true; - }; - "org/gnome/settings-daemon/plugins/power" = { - sleep-inactive-ac-type = "nothing"; - }; - "org/gnome/mutter" = { - edge-tiling = true; - dynamic-workspaces = true; - experimental-features = [ "variable-refresh-rate" ]; - }; - }; - } - ]; - }; - - aerothemeplasma = { - enable = true; - plasma.enable = true; - fonts.enable = false; - plymouth.enable = false; - sddm.enable = true; - }; - - services = { - # displayManager = { - # gdm.enable = true; - # defaultSession = "niri"; - # }; - desktopManager.plasma6.enable = true; - displayManager = { - sddm.enable = true; - defaultSession = "aerothemeplasma"; - }; - - libinput.enable = true; - printing.enable = true; - pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; - udisks2.enable = true; - gvfs.enable = true; - - upower.enable = true; - power-profiles-daemon.enable = true; - }; - - environment = { - systemPackages = with pkgs; [ - git - firefoxpwa - distrobox - ]; - }; - - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - pinentryPackage = pkgs.pinentry-curses; - }; - networking.firewall.enable = false; - - documentation.man = { - enable = true; - generateCaches = false; - }; - - services.openssh.enable = true; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave diff --git a/system/hosts/vm-generic/default.nix b/system/hosts/vm-generic/default.nix index b2183eb..ef46a45 100644 --- a/system/hosts/vm-generic/default.nix +++ b/system/hosts/vm-generic/default.nix @@ -1,7 +1,7 @@ -{ catppuccin, ... }: +{ ... }: { home-manager.users.sckova = { - imports = [ catppuccin.homeModules.catppuccin ]; + imports = [ ]; }; services.spice-vdagentd.enable = true; diff --git a/system/searxng/default.nix b/system/searxng/default.nix index 75161b5..9aed6d4 100644 --- a/system/searxng/default.nix +++ b/system/searxng/default.nix @@ -16,7 +16,7 @@ pkgs.runCommand "gen-key" { buildInputs = [ pkgs.openssl ]; } "openssl rand -hex 32 > $out" ) ); - port = 8080; + port = 5364; bind_address = "127.0.0.1"; }; diff --git a/system/torrenting/default.nix b/system/torrenting/default.nix new file mode 100644 index 0000000..5498a13 --- /dev/null +++ b/system/torrenting/default.nix @@ -0,0 +1,53 @@ +{ + lib, + config, + pkgs, + ... +}: +{ + users.users.sckova.extraGroups = [ "qbittorrent" ]; + services = { + qbittorrent = { + enable = true; + serverConfig = { + Preferences = { + Advanced.useSystemIconTheme = true; + General = { + CloseToTray = false; + CloseToTrayNotified = true; + ExitConfirm = false; + Locale = "en"; + }; + WebUI = { + Address = "*"; + Enabled = true; + Port = 9697; + UseUPnP = false; + }; + BitTorrent = { + SessionGlobalDLSpeedLimit = 0; + GlobalUPSpeedLimit = 0; + Port = 42578; + QueueingSystemEnabled = false; + SSL.Port = 63114; + StartPaused = false; + }; + }; + }; + }; + flaresolverr = { + enable = true; + port = 8191; + }; + prowlarr = { + enable = true; + settings = { + server = { + urlbase = "localhost"; + port = 9696; + bindaddress = "*"; + }; + }; + }; + }; +}