From 6794105303a8d85949f9aa0f2cc16930b19bc362 Mon Sep 17 00:00:00 2001 From: pupbrained Date: Wed, 26 Jun 2024 03:14:20 -0400 Subject: [PATCH] meow --- flake.lock | 178 ++--- homes/x86_64-linux/marshall@navis/default.nix | 60 +- modules/home/hyprland/default.nix | 709 ++++++------------ modules/home/hyprland/rofi.nix | 28 + modules/home/hyprland/services.nix | 14 + modules/home/hyprland/waybar.nix | 282 +++++++ systems/x86_64-linux/navis/default.nix | 124 ++- 7 files changed, 783 insertions(+), 612 deletions(-) create mode 100644 modules/home/hyprland/rofi.nix create mode 100644 modules/home/hyprland/services.nix create mode 100644 modules/home/hyprland/waybar.nix diff --git a/flake.lock b/flake.lock index c086723..e578f70 100644 --- a/flake.lock +++ b/flake.lock @@ -39,11 +39,11 @@ }, "catppuccin": { "locked": { - "lastModified": 1718339789, - "narHash": "sha256-Q3fgY7huFE+uaw7BNsAl1x+FvjDAi3EDWPnlALJt5pM=", + "lastModified": 1719311390, + "narHash": "sha256-eP+SydN7alV3ln7a1BrGhDoLVTBa6RaHxYZ9bTHAQIA=", "owner": "catppuccin", "repo": "nix", - "rev": "73e06d5bd7ed34bdd0168030893ef8364fdc1d4a", + "rev": "1adbfeb44a54be0ae79eca751ba948a6faa3bb0f", "type": "github" }, "original": { @@ -63,11 +63,11 @@ "yafas": "yafas" }, "locked": { - "lastModified": 1718291710, - "narHash": "sha256-yp3pQStGFCd0qSAULA7RaI9evMRZHPuN4dUuNNOhH80=", + "lastModified": 1719337945, + "narHash": "sha256-huUuEiHzpqex8wiREzXpi8nose3zSFQebOH+eFCIvRQ=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "edbd85ef842fad14b8fe26cad2067868674dcf8d", + "rev": "ea7cff23f3f25e1c6958f29f9aa623234a55d52c", "type": "github" }, "original": { @@ -558,11 +558,11 @@ ] }, "locked": { - "lastModified": 1717664902, - "narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=", + "lastModified": 1719259945, + "narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1", + "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", "type": "github" }, "original": { @@ -650,11 +650,11 @@ ] }, "locked": { - "lastModified": 1718243258, - "narHash": "sha256-abBpj2VU8p6qlRzTU8o22q68MmOaZ4v8zZ4UlYl5YRU=", + "lastModified": 1719180626, + "narHash": "sha256-vZAzm5KQpR6RGple1dzmSJw5kPivES2heCFM+ZWkt0I=", "owner": "nix-community", "repo": "home-manager", - "rev": "8d5e27b4807d25308dfe369d5a923d87e7dbfda3", + "rev": "6b1f90a8ff92e81638ae6eb48cd62349c3e387bb", "type": "github" }, "original": { @@ -670,11 +670,11 @@ ] }, "locked": { - "lastModified": 1718243258, - "narHash": "sha256-abBpj2VU8p6qlRzTU8o22q68MmOaZ4v8zZ4UlYl5YRU=", + "lastModified": 1719180626, + "narHash": "sha256-vZAzm5KQpR6RGple1dzmSJw5kPivES2heCFM+ZWkt0I=", "owner": "nix-community", "repo": "home-manager", - "rev": "8d5e27b4807d25308dfe369d5a923d87e7dbfda3", + "rev": "6b1f90a8ff92e81638ae6eb48cd62349c3e387bb", "type": "github" }, "original": { @@ -692,11 +692,11 @@ ] }, "locked": { - "lastModified": 1718141734, - "narHash": "sha256-cA+6l8ZCZ7MXGijVuY/1f55+wF/RT4PlTR9+g4bx86w=", + "lastModified": 1719180626, + "narHash": "sha256-vZAzm5KQpR6RGple1dzmSJw5kPivES2heCFM+ZWkt0I=", "owner": "nix-community", "repo": "home-manager", - "rev": "892f76bd0aa09a0f7f73eb41834b8a904b6d0fad", + "rev": "6b1f90a8ff92e81638ae6eb48cd62349c3e387bb", "type": "github" }, "original": { @@ -742,11 +742,11 @@ ] }, "locked": { - "lastModified": 1718368322, - "narHash": "sha256-VfMg3RsnRLQzbq0hFIh1dCM09b5C/F/qPFUOgU/CRi0=", + "lastModified": 1718450675, + "narHash": "sha256-jpsns6buS4bK+1sF8sL8AaixAiCRjA+nldTKvcwmvUs=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "dd3a853c8239d1c3f3f37de7d2b8ae4b4f3840df", + "rev": "66d5b46ff94efbfa6fa3d1d1b66735f1779c34a6", "type": "github" }, "original": { @@ -766,11 +766,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1718480796, - "narHash": "sha256-BMLFzvIn5Qdrfc1zyIXWTMA5FHx+R9JNDJ7dkwbvdzk=", + "lastModified": 1719350558, + "narHash": "sha256-oACeKBS762XSJbN/rz5Y2xPYGzWQHhwDqn+CeODuWsM=", "ref": "refs/heads/main", - "rev": "1f5fd7e64a1c0e8d1815bdd6d168193bf9c28d6d", - "revCount": 4839, + "rev": "e4d09aa3a9de9a9e71c10bf4b6800585b3db9a4c", + "revCount": 4891, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -798,11 +798,11 @@ ] }, "locked": { - "lastModified": 1718479633, - "narHash": "sha256-Bw3JRBUZg2kmDwxa/UHvD//gGcNjbftTj2MSeLvx1q8=", + "lastModified": 1719318037, + "narHash": "sha256-TnlAcO5K2gkab0mpKurP5Co6eWRycP/KbFqWNS2rsMA=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "d92d9d6cd93b731143119cbcab54dcc7a0481131", + "rev": "3ae670253a5a3ae1e3a3104fb732a8c990a31487", "type": "github" }, "original": { @@ -825,11 +825,11 @@ ] }, "locked": { - "lastModified": 1691753796, - "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "lastModified": 1714869498, + "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161", "type": "github" }, "original": { @@ -879,11 +879,11 @@ ] }, "locked": { - "lastModified": 1718271409, - "narHash": "sha256-8KvVqtApNt4FWTdn1TqVvw00rpqyG9UuUPA2ilPVD1U=", + "lastModified": 1719316102, + "narHash": "sha256-dmRz128j/lJmMuTYeCYPfSBRHHQO3VeH4PbmoyAhHzw=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "8e10e0626fb26a14b859b3811b6ed7932400c86e", + "rev": "1f6bbec5954f623ff8d68e567bddcce97cd2f085", "type": "github" }, "original": { @@ -904,11 +904,11 @@ ] }, "locked": { - "lastModified": 1718119275, - "narHash": "sha256-nqDYXATNkyGXVmNMkT19fT4sjtSPBDS1LLOxa3Fueo4=", + "lastModified": 1719067853, + "narHash": "sha256-mAnZG/eQy72Fp1ImGtqCgUrDumnR1rMZv2E/zgP4U74=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "1419520d5f7f38d35e05504da5c1b38212a38525", + "rev": "914f083741e694092ee60a39d31f693d0a6dc734", "type": "github" }, "original": { @@ -919,11 +919,11 @@ }, "impermanence": { "locked": { - "lastModified": 1717932370, - "narHash": "sha256-7C5lCpiWiyPoIACOcu2mukn/1JRtz6HC/1aEMhUdcw0=", + "lastModified": 1719091691, + "narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=", "owner": "nix-community", "repo": "impermanence", - "rev": "27979f1c3a0d3b9617a3563e2839114ba7d48d3f", + "rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a", "type": "github" }, "original": { @@ -941,11 +941,11 @@ ] }, "locked": { - "lastModified": 1718173451, - "narHash": "sha256-ySzjpSDAmecKsoSqgqjKfEsgzRMiI87pLLJgY8haP+s=", + "lastModified": 1719292813, + "narHash": "sha256-6w/buoRKo4ijH9O4D/0KjNtiWjtrJebuV7djTEEa0+k=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "326c1ab2b816f520d298b7a4319a0b50cde01c48", + "rev": "d6222e7818aa5528f8369afe84bc53556a57c329", "type": "github" }, "original": { @@ -998,11 +998,11 @@ ] }, "locked": { - "lastModified": 1717976995, - "narHash": "sha256-u3HBinyIyUvL1+N816bODpJmSQdgn0Mbb8BprFw7kqo=", + "lastModified": 1719128254, + "narHash": "sha256-I7jMpq0CAOZA/i70+HDQO/ulLttyQu/K70cSESiMX7A=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "315aa649ba307704db0b16c92f097a08a65ec955", + "rev": "50581970f37f06a4719001735828519925ef8310", "type": "github" }, "original": { @@ -1041,11 +1041,11 @@ ] }, "locked": { - "lastModified": 1718507237, - "narHash": "sha256-xBEWCxWeRpWQggFFp8ugJCDa63cOJsVvx71R9F0Eowg=", + "lastModified": 1719111455, + "narHash": "sha256-rnIxHx+fLpydjMQsbpZ21kblUr/lMqSaAtMA4+qMMEE=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "6af2c5e58c20311276f59d247341cafeebfcb6f4", + "rev": "4293f532d0107dfb7e6f8b34a0421dc8111320e6", "type": "github" }, "original": { @@ -1170,16 +1170,16 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1716948383, - "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", + "lastModified": 1718419000, + "narHash": "sha256-v4+aJpRDbJil691DXo5SydqowcB01B6E9+wFH/pNk6k=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad57eef4ef0659193044870c731987a6df5cf56b", + "rev": "24b048f70e34020c93ed7c11491bc050ff6eb142", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixos-unstable-small", "repo": "nixpkgs", "type": "github" } @@ -1202,11 +1202,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1718160348, - "narHash": "sha256-9YrUjdztqi4Gz8n3mBuqvCkMo4ojrA6nASwyIKWMpus=", + "lastModified": 1719075281, + "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "57d6973abba7ea108bac64ae7629e7431e0199b6", + "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", "type": "github" }, "original": { @@ -1218,11 +1218,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1718318537, - "narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=", + "lastModified": 1719075281, + "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420", + "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", "type": "github" }, "original": { @@ -1250,11 +1250,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1718318537, - "narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=", + "lastModified": 1719254875, + "narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420", + "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", "type": "github" }, "original": { @@ -1282,11 +1282,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1718515200, - "narHash": "sha256-ghq01El4/pQvuosauFhhK/X564XhLdbJthtgbdWZHAU=", + "lastModified": 1719366746, + "narHash": "sha256-lzWQP7WulTNycJjlLGHQYSCDjiz77+1kAFVODWyBdjI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6f35d8d79416ecaabd062437baa2ee68eb7b2cfa", + "rev": "c7221bae0fbcef01eaa896fe661f0cbf7cf9ce0c", "type": "github" }, "original": { @@ -1297,11 +1297,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1718160348, - "narHash": "sha256-9YrUjdztqi4Gz8n3mBuqvCkMo4ojrA6nASwyIKWMpus=", + "lastModified": 1719254875, + "narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "57d6973abba7ea108bac64ae7629e7431e0199b6", + "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", "type": "github" }, "original": { @@ -1336,11 +1336,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1718516943, - "narHash": "sha256-W46cIFgSPPoNDQnFtV2sHZOqf8F6xbRy2qGwe4Qtbc0=", + "lastModified": 1719373723, + "narHash": "sha256-LPDMHp20wW8QEiSZHcTtiu3XmGwMt0JPD5dLIKqtDfk=", "owner": "pupbrained", "repo": "nixvim", - "rev": "99548070f8447190c8ae3a9fe0134d0964eeb667", + "rev": "dfcc8eeb3ee7c264aaa86835f8b442403ea42a6c", "type": "github" }, "original": { @@ -1361,11 +1361,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1718376125, - "narHash": "sha256-NIJZxmY2CWsqJK/9BQCRSHfcCY9K6thjq/1XtJobxmU=", + "lastModified": 1719349326, + "narHash": "sha256-siY3ck/6Ey2VyUpzziZ7XreM9h672CHEwTNuSqqnarA=", "owner": "nix-community", "repo": "nixvim", - "rev": "7a2a25af02be25987aa43cd681312f4b5ba12317", + "rev": "1a46075dfe8dbbd2c99980b59af7860a1de010db", "type": "github" }, "original": { @@ -1438,11 +1438,11 @@ "systems": "systems_8" }, "locked": { - "lastModified": 1718445001, - "narHash": "sha256-L2GTsS0K2Jh7fboBWbqbyjWZpllYl/2vtd9bEJPlpGU=", + "lastModified": 1719058240, + "narHash": "sha256-pprpeDB/mvINS5m5FIOq/1I0xpBvO8l7FyWNmmO0Ir0=", "owner": "schizofox", "repo": "schizofox", - "rev": "c47f46cffd57bd233d7d8c3a2d2e9738ef05edf1", + "rev": "becff9b92a28c3cd6e6a215da7f5f56883d3a304", "type": "github" }, "original": { @@ -1687,11 +1687,11 @@ ] }, "locked": { - "lastModified": 1718139168, - "narHash": "sha256-1TZQcdETNdJMcfwwoshVeCjwWfrPtkSQ8y8wFX3it7k=", + "lastModified": 1719243788, + "narHash": "sha256-9T9mSY35EZSM1KAwb7K9zwQ78qTlLjosZgtUGnw4rn4=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "1cb529bffa880746a1d0ec4e0f5076876af931f1", + "rev": "065a23edceff48f948816b795ea8cc6c0dee7cdf", "type": "github" }, "original": { @@ -1705,11 +1705,11 @@ "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1718271476, - "narHash": "sha256-35hUMmFesmchb+u7heKHLG5B6c8fBOcSYo0jj0CHLes=", + "lastModified": 1719243788, + "narHash": "sha256-9T9mSY35EZSM1KAwb7K9zwQ78qTlLjosZgtUGnw4rn4=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "e75ba0a6bb562d2ce275db28f6a36a2e4fd81391", + "rev": "065a23edceff48f948816b795ea8cc6c0dee7cdf", "type": "github" }, "original": { @@ -1723,11 +1723,11 @@ "nixpkgs": "nixpkgs_11" }, "locked": { - "lastModified": 1718271476, - "narHash": "sha256-35hUMmFesmchb+u7heKHLG5B6c8fBOcSYo0jj0CHLes=", + "lastModified": 1719243788, + "narHash": "sha256-9T9mSY35EZSM1KAwb7K9zwQ78qTlLjosZgtUGnw4rn4=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "e75ba0a6bb562d2ce275db28f6a36a2e4fd81391", + "rev": "065a23edceff48f948816b795ea8cc6c0dee7cdf", "type": "github" }, "original": { @@ -1753,11 +1753,11 @@ ] }, "locked": { - "lastModified": 1718272114, - "narHash": "sha256-KsX7sAwkEFpXiwyjt0HGTnnrUU58wW1jlzj5IA/LRz8=", + "lastModified": 1718619174, + "narHash": "sha256-FWW68AVYmB91ZDQnhLMBNCUUTCjb1ZpO2k2KIytHtkA=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "24be4a26f0706e456fca1b61b8c79f7486a9e86d", + "rev": "c7894aa54f9a7dbd16df5cd24d420c8af22d5623", "type": "github" }, "original": { diff --git a/homes/x86_64-linux/marshall@navis/default.nix b/homes/x86_64-linux/marshall@navis/default.nix index 7d0abad..5cdce54 100644 --- a/homes/x86_64-linux/marshall@navis/default.nix +++ b/homes/x86_64-linux/marshall@navis/default.nix @@ -9,27 +9,26 @@ home = { packages = with pkgs; [ + beeper duf eternal-terminal glow grc iamb jamesdsp - jetbrains-toolbox jdk21 killall libnotify lm_sensors loupe mpv + neovide playerctl prismlauncher slack telegram-desktop vesktop youki - jetbrains.clion - jetbrains.idea-ultimate ] ++ (with inputs; [ nixvim.packages.${pkgs.system}.default @@ -39,14 +38,6 @@ firefox_nightly ]); - pointerCursor = { - gtk.enable = true; - x11.enable = true; - name = "Catppuccin-Mocha-Green-Cursors"; - package = pkgs.catppuccin-cursors.mochaGreen; - size = 24; - }; - stateVersion = "24.05"; }; @@ -63,17 +54,48 @@ enable = true; flavor = "mocha"; accent = "green"; + pointerCursor.enable = true; }; - gtk = { - enable = true; + gtk = let + gradiencePreset = pkgs.fetchurl { + url = "https://raw.githubusercontent.com/GradienceTeam/Community/next/official/catppuccin-macchiato.json"; + hash = "sha256-FgQvmK/Pjn980o+UVc2a70kGa6sGse045zPS9hzCs14="; + }; - catppuccin = { - enable = true; - icon.enable = true; - cursor.enable = true; - size = "standard"; - tweaks = ["rimless"]; + gradienceBuild = pkgs.stdenv.mkDerivation { + name = "gradience-build"; + phases = ["buildPhase" "installPhase"]; + nativeBuildInputs = [pkgs.gradience]; + buildPhase = '' + shopt -s nullglob + export HOME=$TMPDIR + mkdir -p $HOME/.config/presets + gradience-cli apply -p ${gradiencePreset} --gtk both + ''; + installPhase = '' + mkdir -p $out + cp -r .config/gtk-4.0 $out/ + cp -r .config/gtk-3.0 $out/ + ''; + }; + in { + enable = true; + theme.name = "adw-gtk3-dark"; + theme.package = pkgs.adw-gtk3; + + gtk3 = { + extraCss = builtins.readFile "${gradienceBuild}/gtk-3.0/gtk.css"; + extraConfig = { + gtk-application-prefer-dark-theme = 1; + }; + }; + + gtk4 = { + extraCss = builtins.readFile "${gradienceBuild}/gtk-4.0/gtk.css"; + extraConfig = { + gtk-application-prefer-dark-theme = 1; + }; }; }; diff --git a/modules/home/hyprland/default.nix b/modules/home/hyprland/default.nix index a901efe..27a39b6 100644 --- a/modules/home/hyprland/default.nix +++ b/modules/home/hyprland/default.nix @@ -1,514 +1,223 @@ -{ - pkgs, - config, - lib, - ... -}: let - palette = config.colorScheme.palette; - betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)"; -in - with pkgs; { - home.packages = [ - wl-clipboard - ]; +{pkgs, ...}: +with pkgs; { + imports = [ + ./rofi.nix + ./services.nix + ./waybar.nix + ]; - programs = { - rofi = { - enable = true; - catppuccin.enable = true; - package = pkgs.rofi-wayland; + home.packages = [ + wl-clipboard + ]; - extraConfig = { - modi = "run,drun,window"; - icon-theme = "Oranchelo"; - show-icons = true; - terminal = "wezterm"; - drun-display-format = "{icon} {name}"; - location = 0; - disable-history = false; - hide-scrollbar = true; - display-drun = "  Apps "; - display-run = "  Run "; - display-window = " 󰍲 Window"; - display-Network = " 󰤨 Network"; - sidebar-mode = true; - }; + wayland.windowManager.hyprland = { + enable = true; + systemd.variables = ["--all"]; - theme = { - "*".font = "Maple Mono NF 14"; - window.border-radius = 10; - }; + settings = let + rofi-clipboard = pkgs.writeScriptBin "rofi-clipboard" '' + tmp_dir="/tmp/cliphist" + rm -rf "$tmp_dir" + + if [[ -n "$1" ]]; then + cliphist decode <<<"$1" | wl-copy + exit + fi + + mkdir -p "$tmp_dir" + + read -r -d "" prog <$tmp_dir/"grp[1]"."grp[3]) + print \$0"\0icon\x1f$tmp_dir/"grp[1]"."grp[3] + next + } + 1 + EOF + cliphist list | gawk "$prog" + ''; + + scratchpad = pkgs.writeScriptBin "hyprscratchpad" '' + COMMAND=$1 + CLASS=$2 + WORKSPACE=$3 + + if [[ $(hyprctl clients | grep -v '"title":' | grep "class: $CLASS") ]];then + hyprctl dispatch togglespecialworkspace $WORKSPACE + else + hyprctl dispatch togglespecialworkspace $WORKSPACE && hyprctl dispatch exec "$COMMAND" + fi + ''; + + mod = "SUPER"; + modC = "SUPER CTRL"; + modS = "SUPER SHIFT"; + + browser = "firefox-nightly"; + colorPicker = "notify-send -i gtk-color-picker $(${hyprpicker}/bin/hyprpicker -a) 'Copied to clipboard.'"; + fileManager = "nautilus"; + launcher = "rofi -show drun"; + clipboard = "rofi -modi '   ':${rofi-clipboard}/bin/rofi-clipboard -show '   ' -show-icons"; + terminal = "wezterm"; + + screenshot = mode: "${ + hyprshot.overrideAttrs { + # Fixes cursors showing in region shots + src = pkgs.fetchFromGitHub { + owner = "BenCarmichael01"; + repo = "Hyprshot"; + rev = "84e2adcd5dd9060178d0d028ad032734797fba23"; + hash = "sha256-XDKwBiUMWvxoWpkdJ0EK4kEqPSTZLcF6axHjom3c5Jk="; + }; + } + }/bin/hyprshot --clipboard-only -m ${mode}"; + in { + decoration.rounding = 10; + dwindle.preserve_split = true; + gestures.workspace_swipe = true; + input.touchpad = { + clickfinger_behavior = true; + natural_scroll = true; }; - waybar = { - enable = true; - package = pkgs.waybar; - settings = [ - { - layer = "top"; - position = "top"; + device = [ + { + name = "logitech-usb-receiver"; + sensitivity = -0.4; + } + ]; - modules-center = ["hyprland/workspaces"]; + windowrule = [ + "float, ^(vesktop)$" + "float, ^(org.telegram.desktop)$" + ]; - modules-left = [ - "custom/startmenu" - "hyprland/window" - "pulseaudio" - "cpu" - "memory" - ]; + layerrule = [ + "dimaround, rofi" + ]; - modules-right = [ - "mpris" - "network" - "custom/notification" - "tray" - "clock" - ]; + animations = { + enabled = true; - "mpris" = { - format = "{player_icon} {title} - {artist}"; - format-paused = "{status_icon} {title} - {artist}"; - player-icons.default = "󰝚"; - status-icons.paused = "󰏤"; - max-length = 40; - }; - - "hyprland/workspaces" = { - format = "{name}"; - format-icons = { - default = " "; - active = " "; - urgent = " "; - }; - on-scroll-up = "hyprctl dispatch workspace e-1"; - on-scroll-down = "hyprctl dispatch workspace e+1"; - }; - - "clock" = { - format = " {:L%I:%M %p}"; - tooltip = true; - tooltip-format = "{:%A, %d.%B %Y }\n{calendar}"; - }; - - "hyprland/window" = { - max-length = 40; - rewrite = { - "" = "󰍹 Desktop"; - "(.*) — Firefox Nightly" = "󰈹 $1"; - "(.*) - Slack" = "󰒱 $1"; - ".*?Discord \\| @?(.*)" = "󰙯 $1"; - "WezTerm - (?:\\[.*] ?)?(.*)" = " $1"; - "Telegram(?: \\((\\d+)\\))?" = " Telegram"; - "Steam" = "󰓓 Steam"; - }; - }; - - "memory" = { - interval = 5; - format = " {}%"; - tooltip = true; - }; - - "cpu" = { - interval = 5; - format = " {usage:2}%"; - tooltip = true; - }; - - "disk" = { - format = " {free}"; - tooltip = true; - }; - - "network" = { - format-icons = [ - "󰤯" - "󰤟" - "󰤢" - "󰤥" - "󰤨" - ]; - format-ethernet = " {bandwidthDownOctets}"; - format-wifi = "{icon} {essid}"; - format-disconnected = "󰤮"; - tooltip = false; - }; - - "tray" = { - spacing = 12; - }; - - "pulseaudio" = { - format = "{icon} {volume}% {format_source}"; - format-bluetooth = "{volume}% {icon} {format_source}"; - format-bluetooth-muted = "󰅶 {icon} {format_source}"; - format-muted = "󰅶 {format_source}"; - format-source = " {volume}%"; - format-source-muted = ""; - format-icons = { - headphone = ""; - hands-free = ""; - headset = "󰋎"; - phone = ""; - portable = ""; - car = ""; - default = [ - "" - "" - "" - ]; - }; - on-click = "sleep 0.1 && pavucontrol"; - }; - - "custom/startmenu" = { - tooltip = false; - format = " "; - on-click = "rofi -show drun"; - }; - - "custom/notification" = { - tooltip = false; - format = "{icon} {}"; - format-icons = { - notification = ""; - none = ""; - dnd-notification = ""; - dnd-none = ""; - inhibited-notification = ""; - inhibited-none = ""; - dnd-inhibited-notification = ""; - dnd-inhibited-none = ""; - }; - return-type = "json"; - exec = "swaync-client -swb"; - on-click = "swaync-client -t &"; - escape = true; - }; - } + bezier = [ + "overshot,0.7,0.6,0.1,1.1" + "bounce,1,1.6,0.1,0.85" ]; - style = lib.concatStrings [ - '' - * { - border: none; - border-radius: 0px; - font-family: Maple Mono NF; - font-size: 16px; - min-height: 0px; - } - - window#waybar { - background-color: #${palette.base00}; - } - - #workspaces { - background: #${palette.base01}; - border-radius: 16px; - color: #${palette.base00}; - margin: 4px 4px; - padding: 8px 5px; - } - - #workspaces button { - animation: gradient_horizontal 15s ease infinite; - background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); - background-size: 300% 300%; - border-radius: 16px; - color: #${palette.base00}; - font-weight: bold; - margin: 0px 3px; - opacity: 0.5; - padding: 0px 5px; - transition: ${betterTransition}; - } - - #workspaces button.active { - animation: gradient_horizontal 15s ease infinite; - background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); - background-size: 300% 300%; - border-radius: 16px; - color: #${palette.base00}; - font-weight: bold; - margin: 0px 3px; - min-width: 40px; - opacity: 1.0; - padding: 0px 5px; - transition: ${betterTransition}; - } - - #workspaces button:hover { - animation: gradient_horizontal 15s ease infinite; - background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); - background-size: 300% 300%; - border-radius: 16px; - color: #${palette.base00}; - font-weight: bold; - opacity: 0.8; - transition: ${betterTransition}; - } - - @keyframes gradient_horizontal { - 0% { background-position: 0% 50%; } - 50% { background-position: 100% 50%; } - 100% { background-position: 0% 50%; } - } - - @keyframes swiping { - 0% { background-position: 0% 200%; } - 100% { background-position: 200% 200%; } - } - - tooltip { - background: #${palette.base00}; - border: 1px solid #${palette.base0E}; - border-radius: 12px; - } - - tooltip label { - color: #${palette.base07}; - } - - #window, #pulseaudio, #cpu, #memory, #idle_inhibitor { - background: #${palette.base01}; - border-radius: 24px 10px 24px 10px; - color: #${palette.base05}; - font-weight: bold; - margin: 4px 0px; - margin-left: 7px; - padding: 0px 18px; - } - - #custom-startmenu { - background: #${palette.base01}; - border-radius: 0px 0px 40px 0px; - color: #${palette.base0D}; - font-size: 28px; - margin: 0px; - padding: 0px 30px 0px 15px; - } - - #mpris, #network, #custom-notification, #tray { - background: #${palette.base01}; - border-radius: 10px 24px 10px 24px; - color: #${palette.base05}; - font-weight: bold; - margin: 4px 0px; - margin-right: 7px; - padding: 0px 18px; - } - - #clock { - animation: gradient_horizontal 15s ease infinite; - background: linear-gradient(45deg, #${palette.base0C}, #${palette.base0F}, #${palette.base0B}, #${palette.base08}); - background-size: 300% 300%; - border-radius: 0px 0px 0px 40px; - color: #${palette.base00}; - font-weight: bold; - margin: 0px; - padding: 0px 15px 0px 30px; - } - '' + animation = [ + "windows,1,5,bounce,popin" + "border,1,20,default" + "fade,1,5,default" + "workspaces,1,5,overshot,slide" ]; }; + + general = { + border_size = 2; + gaps_in = 10; + resize_on_border = true; + + "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; + "col.inactive_border" = "rgba(595959aa)"; + }; + + exec-once = [ + "${mpvpaper}/bin/mpvpaper -vp -o 'no-audio loop' DP-1 ${builtins.toString ./wall.mp4}" + "waybar" + ]; + + misc = { + force_default_wallpaper = 0; + disable_hyprland_logo = true; + }; + + monitor = [ + "eDP-1, disable" + "DP-1, 2560x1440@165, auto, auto" + ]; + + env = [ + # Nvidia stuff + "GBM_BACKEND, nvidia-drm" + "__GLX_VENDOR_LIBRARY_NAME, nvidia" + "LIBVA_DRIVER_NAME, nvidia" + "WLR_DRM_DEVICES, $HOME/.config/hypr/card" + + # Cursors + "HYPRCURSOR_SIZE, 24" + "XCURSOR_SIZE, 24" + ]; + + bindm = [ + "${mod}, mouse:272, movewindow" + "${mod}, mouse:273, resizewindow" + ]; + + bind = + [ + # Apps + "${mod}, v, exec, ${clipboard}" + "${mod}, c, exec, ${colorPicker}" + "${mod}, w, exec, ${browser}" + "${mod}, e, exec, ${fileManager}" + "${mod}, r, exec, ${launcher}" + "${mod}, Return, exec, ${terminal}" + + # Scratchpads + "${mod}, d, exec, ${scratchpad}/bin/hyprscratchpad vesktop vesktop vesktop" + "${mod}, t, exec, ${scratchpad}/bin/hyprscratchpad telegram-desktop org.telegram.desktop telegram" + + # Screenshots + "${modS}, s, exec, ${screenshot "window"}" + "${modC}, 3, exec, ${screenshot "output -c"}" + "${modC}, 4, exec, ${screenshot "region -C 0,0"}" + + # Mouse controls + "${mod}, mouse_down, workspace, e-1" + "${mod}, mouse_up, workspace, e+1" + + # Quitting + "${mod}, q, killactive" + "${modS}, q, exit" + + # Toggles + "${mod}, j, togglesplit" + "${mod}, Space, togglefloating" + + # Focus movements + "${mod}, h, movefocus, l" + "${mod}, j, movefocus, d" + "${mod}, k, movefocus, u" + "${mod}, l, movefocus, r" + + # Window movements + "${modS}, h, movewindow, l" + "${modS}, j, movewindow, d" + "${modS}, k, movewindow, u" + "${modS}, l, movewindow, r" + + # Window resizing + "${modC}, h, resizeactive, -30 0" + "${modC}, j, resizeactive, 0 30" + "${modC}, k, resizeactive, 0 -30" + "${modC}, l, resizeactive, 30 0" + ] + ++ ( + builtins.concatLists (builtins.genList ( + x: let + ws = let + c = (x + 1) / 10; + in + builtins.toString (x + 1 - (c * 10)); + in [ + # Workspaces + "${mod}, ${ws}, workspace, ${builtins.toString (x + 1)}" + "${modS}, ${ws}, movetoworkspace, ${builtins.toString (x + 1)}" + ] + ) + 10) + ); }; - - services = { - cliphist.enable = true; - udiskie.enable = true; - - swaync = { - enable = true; - style = builtins.fetchurl { - url = "https://github.com/catppuccin/swaync/releases/download/v0.2.3/mocha.css"; - sha256 = "1xr1wkg4zb467b35xhsfqiwhimfnn88i3ml5rf173rkm7fyby9qy"; - }; - }; - }; - - wayland.windowManager.hyprland = { - enable = true; - systemd.variables = ["--all"]; - - settings = let - rofi-clipboard = pkgs.writeScriptBin "rofi-clipboard" '' - tmp_dir="/tmp/cliphist" - rm -rf "$tmp_dir" - - if [[ -n "$1" ]]; then - cliphist decode <<<"$1" | wl-copy - exit - fi - - mkdir -p "$tmp_dir" - - read -r -d "" prog <$tmp_dir/"grp[1]"."grp[3]) - print \$0"\0icon\x1f$tmp_dir/"grp[1]"."grp[3] - next - } - 1 - EOF - cliphist list | gawk "$prog" - ''; - - mod = "SUPER"; - modC = "SUPER CTRL"; - modS = "SUPER SHIFT"; - - browser = "firefox-nightly"; - colorPicker = "notify-send -i gtk-color-picker $(${hyprpicker}/bin/hyprpicker -a) 'Copied to clipboard.'"; - fileManager = "nautilus"; - launcher = "rofi -show drun"; - clipboard = "rofi -modi '   ':${rofi-clipboard}/bin/rofi-clipboard -show '   ' -show-icons"; - terminal = "wezterm"; - - screenshot = mode: "${ - hyprshot.overrideAttrs { - # Fixes cursors showing in region shots - src = pkgs.fetchFromGitHub { - owner = "BenCarmichael01"; - repo = "Hyprshot"; - rev = "84e2adcd5dd9060178d0d028ad032734797fba23"; - hash = "sha256-XDKwBiUMWvxoWpkdJ0EK4kEqPSTZLcF6axHjom3c5Jk="; - }; - } - }/bin/hyprshot --clipboard-only -m ${mode}"; - in { - decoration.rounding = 10; - dwindle.preserve_split = true; - gestures.workspace_swipe = true; - input.touchpad = { - clickfinger_behavior = true; - natural_scroll = true; - }; - - device = [ - { - name = "logitech-usb-receiver"; - sensitivity = -0.4; - } - ]; - - layerrule = [ - "dimaround, rofi" - ]; - - animations = { - enabled = true; - - bezier = [ - "overshot,0.7,0.6,0.1,1.1" - "bounce,1,1.6,0.1,0.85" - ]; - - animation = [ - "windows,1,5,bounce,popin" - "border,1,20,default" - "fade,1,5,default" - "workspaces,1,5,overshot,slide" - ]; - }; - - general = { - border_size = 2; - gaps_in = 10; - resize_on_border = true; - - "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; - "col.inactive_border" = "rgba(595959aa)"; - }; - - exec-once = [ - "waybar" - "${mpvpaper}/bin/mpvpaper -vp -o 'no-audio loop' DP-1 ${builtins.toString ./wall.mp4}" - "${copyq}/bin/copyq --start-server" - ]; - - misc = { - force_default_wallpaper = 0; - disable_hyprland_logo = true; - }; - - monitor = [ - "eDP-1, disable" - "DP-1, 2560x1440@165, auto, auto" - ]; - - env = [ - # Nvidia stuff - "GBM_BACKEND, nvidia-drm" - "__GLX_VENDOR_LIBRARY_NAME, nvidia" - "LIBVA_DRIVER_NAME, nvidia" - "WLR_DRM_DEVICES, $HOME/.config/hypr/card" - - # Cursors - "HYPRCURSOR_SIZE, 24" - "XCURSOR_SIZE, 24" - ]; - - bindm = [ - "${mod}, mouse:272, movewindow" - "${mod}, mouse:273, resizewindow" - ]; - - bind = - [ - # Apps - "${mod}, v, exec, ${clipboard}" - "${mod}, c, exec, ${colorPicker}" - "${mod}, w, exec, ${browser}" - "${mod}, e, exec, ${fileManager}" - "${mod}, r, exec, ${launcher}" - "${mod}, Return, exec, ${terminal}" - - # Screenshots - "${modS}, s, exec, ${screenshot "window"}" - "${modC}, 3, exec, ${screenshot "output -c"}" - "${modC}, 4, exec, ${screenshot "region -C 0,0"}" - - # Mouse controls - "${mod}, mouse_down, workspace, e-1" - "${mod}, mouse_up, workspace, e+1" - - # Quitting - "${mod}, q, killactive" - "${modS}, q, exit" - - # Toggles - "${mod}, j, togglesplit" - "${mod}, Space, togglefloating" - - # Focus movements - "${mod}, h, movefocus, l" - "${mod}, j, movefocus, d" - "${mod}, k, movefocus, u" - "${mod}, l, movefocus, r" - - # Window movements - "${modS}, h, movewindow, l" - "${modS}, j, movewindow, d" - "${modS}, k, movewindow, u" - "${modS}, l, movewindow, r" - ] - ++ ( - builtins.concatLists (builtins.genList ( - x: let - ws = let - c = (x + 1) / 10; - in - builtins.toString (x + 1 - (c * 10)); - in [ - # Workspaces - "${mod}, ${ws}, workspace, ${builtins.toString (x + 1)}" - "${modS}, ${ws}, movetoworkspace, ${builtins.toString (x + 1)}" - ] - ) - 10) - ); - }; - }; - } + }; +} diff --git a/modules/home/hyprland/rofi.nix b/modules/home/hyprland/rofi.nix new file mode 100644 index 0000000..7d86723 --- /dev/null +++ b/modules/home/hyprland/rofi.nix @@ -0,0 +1,28 @@ +{pkgs, ...}: { + programs.rofi = { + enable = true; + catppuccin.enable = true; + package = pkgs.rofi-wayland; + + extraConfig = { + modi = "run,drun,window"; + icon-theme = "Oranchelo"; + show-icons = true; + terminal = "wezterm"; + drun-display-format = "{icon} {name}"; + location = 0; + disable-history = false; + hide-scrollbar = true; + display-drun = "  Apps "; + display-run = "  Run "; + display-window = " 󰍲 Window"; + display-Network = " 󰤨 Network"; + sidebar-mode = true; + }; + + theme = { + "*".font = "Maple Mono NF 14"; + window.border-radius = 10; + }; + }; +} diff --git a/modules/home/hyprland/services.nix b/modules/home/hyprland/services.nix new file mode 100644 index 0000000..163be9e --- /dev/null +++ b/modules/home/hyprland/services.nix @@ -0,0 +1,14 @@ +{...}: { + services = { + cliphist.enable = true; + udiskie.enable = true; + + swaync = { + enable = true; + style = builtins.fetchurl { + url = "https://github.com/catppuccin/swaync/releases/download/v0.2.3/mocha.css"; + sha256 = "1xr1wkg4zb467b35xhsfqiwhimfnn88i3ml5rf173rkm7fyby9qy"; + }; + }; + }; +} diff --git a/modules/home/hyprland/waybar.nix b/modules/home/hyprland/waybar.nix new file mode 100644 index 0000000..375f51c --- /dev/null +++ b/modules/home/hyprland/waybar.nix @@ -0,0 +1,282 @@ +{ + config, + lib, + pkgs, + ... +}: let + palette = config.colorScheme.palette; + betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)"; +in { + programs.waybar = { + enable = true; + package = pkgs.waybar; + settings = [ + { + layer = "top"; + position = "top"; + + modules-center = ["hyprland/workspaces"]; + + modules-left = [ + "custom/startmenu" + "hyprland/window" + "pulseaudio" + "cpu" + "memory" + ]; + + modules-right = [ + "mpris" + "network" + "custom/notification" + "tray" + "clock" + ]; + + "mpris" = { + format = "{player_icon} {title} - {artist}"; + format-paused = "{status_icon} {title} - {artist}"; + player-icons.default = "󰝚"; + status-icons.paused = "󰏤"; + max-length = 40; + }; + + "hyprland/workspaces" = { + format = "{name}"; + format-icons = { + default = " "; + active = " "; + urgent = " "; + }; + on-scroll-up = "hyprctl dispatch workspace e-1"; + on-scroll-down = "hyprctl dispatch workspace e+1"; + }; + + "clock" = { + format = " {:L%I:%M %p}"; + tooltip = true; + tooltip-format = "{:%A, %d.%B %Y }\n{calendar}"; + }; + + "hyprland/window" = { + max-length = 40; + rewrite = { + "" = "󰍹 Desktop"; + "(.*) — Firefox Nightly" = "󰈹 $1"; + "(.*) - Slack" = "󰒱 $1"; + ".*?Discord \\| @?(.*)" = "󰙯 $1"; + "WezTerm - (?:\\[.*] ?)?(.*)" = " $1"; + "Telegram(?: \\((\\d+)\\))?" = " Telegram"; + "Steam" = "󰓓 Steam"; + }; + }; + + "memory" = { + interval = 5; + format = " {}%"; + tooltip = true; + }; + + "cpu" = { + interval = 5; + format = " {usage:2}%"; + tooltip = true; + }; + + "disk" = { + format = " {free}"; + tooltip = true; + }; + + "network" = { + format-icons = [ + "󰤯" + "󰤟" + "󰤢" + "󰤥" + "󰤨" + ]; + format-ethernet = " {bandwidthDownOctets}"; + format-wifi = "{icon} {essid}"; + format-disconnected = "󰤮"; + tooltip = false; + }; + + "tray" = { + spacing = 12; + }; + + "pulseaudio" = { + format = "{icon} {volume}% {format_source}"; + format-bluetooth = "{volume}% {icon} {format_source}"; + format-bluetooth-muted = "󰅶 {icon} {format_source}"; + format-muted = "󰅶 {format_source}"; + format-source = " {volume}%"; + format-source-muted = ""; + format-icons = { + headphone = ""; + hands-free = ""; + headset = "󰋎"; + phone = ""; + portable = ""; + car = ""; + default = [ + "" + "" + "" + ]; + }; + on-click = "sleep 0.1 && pavucontrol"; + }; + + "custom/startmenu" = { + tooltip = false; + format = " "; + on-click = "rofi -show drun"; + }; + + "custom/notification" = { + tooltip = false; + format = "{icon} {}"; + format-icons = { + notification = ""; + none = ""; + dnd-notification = ""; + dnd-none = ""; + inhibited-notification = ""; + inhibited-none = ""; + dnd-inhibited-notification = ""; + dnd-inhibited-none = ""; + }; + return-type = "json"; + exec = "swaync-client -swb"; + on-click = "swaync-client -t &"; + escape = true; + }; + } + ]; + + style = lib.concatStrings [ + '' + * { + border: none; + border-radius: 0px; + font-family: Maple Mono NF; + font-size: 16px; + min-height: 0px; + } + + window#waybar { + background-color: #${palette.base00}; + } + + #workspaces { + background: #${palette.base01}; + border-radius: 16px; + color: #${palette.base00}; + margin: 4px 4px; + padding: 8px 5px; + } + + #workspaces button { + animation: gradient_horizontal 15s ease infinite; + background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); + background-size: 300% 300%; + border-radius: 16px; + color: #${palette.base00}; + font-weight: bold; + margin: 0px 3px; + opacity: 0.5; + padding: 0px 5px; + transition: ${betterTransition}; + } + + #workspaces button.active { + animation: gradient_horizontal 15s ease infinite; + background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); + background-size: 300% 300%; + border-radius: 16px; + color: #${palette.base00}; + font-weight: bold; + margin: 0px 3px; + min-width: 40px; + opacity: 1.0; + padding: 0px 5px; + transition: ${betterTransition}; + } + + #workspaces button:hover { + animation: gradient_horizontal 15s ease infinite; + background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09}); + background-size: 300% 300%; + border-radius: 16px; + color: #${palette.base00}; + font-weight: bold; + opacity: 0.8; + transition: ${betterTransition}; + } + + @keyframes gradient_horizontal { + 0% { background-position: 0% 50%; } + 50% { background-position: 100% 50%; } + 100% { background-position: 0% 50%; } + } + + @keyframes swiping { + 0% { background-position: 0% 200%; } + 100% { background-position: 200% 200%; } + } + + tooltip { + background: #${palette.base00}; + border: 1px solid #${palette.base0E}; + border-radius: 12px; + } + + tooltip label { + color: #${palette.base07}; + } + + #window, #pulseaudio, #cpu, #memory, #idle_inhibitor { + background: #${palette.base01}; + border-radius: 24px 10px 24px 10px; + color: #${palette.base05}; + font-weight: bold; + margin: 4px 0px; + margin-left: 7px; + padding: 0px 18px; + } + + #custom-startmenu { + background: #${palette.base01}; + border-radius: 0px 0px 40px 0px; + color: #${palette.base0D}; + font-size: 28px; + margin: 0px; + padding: 0px 30px 0px 15px; + } + + #mpris, #network, #custom-notification, #tray { + background: #${palette.base01}; + border-radius: 10px 24px 10px 24px; + color: #${palette.base05}; + font-weight: bold; + margin: 4px 0px; + margin-right: 7px; + padding: 0px 18px; + } + + #clock { + animation: gradient_horizontal 15s ease infinite; + background: linear-gradient(45deg, #${palette.base0C}, #${palette.base0F}, #${palette.base0B}, #${palette.base08}); + background-size: 300% 300%; + border-radius: 0px 0px 0px 40px; + color: #${palette.base00}; + font-weight: bold; + margin: 0px; + padding: 0px 15px 0px 30px; + } + '' + ]; + }; +} diff --git a/systems/x86_64-linux/navis/default.nix b/systems/x86_64-linux/navis/default.nix index 1d7d04e..febc922 100644 --- a/systems/x86_64-linux/navis/default.nix +++ b/systems/x86_64-linux/navis/default.nix @@ -97,7 +97,6 @@ with lib // pkgs // inputs; { BROWSER = "firefox-nightly"; DIRENV_WARN_TIMEOUT = "100s"; EDITOR = "nvim"; - NIXOS_OZONE_WL = "1"; TERMINAL = "wezterm"; }; @@ -118,7 +117,6 @@ with lib // pkgs // inputs; { persistence."/persist" = { hideMounts = true; directories = [ - "/etc/mullvad-vpn" "/etc/NetworkManager" "/etc/secrets" "/etc/ssh" @@ -249,6 +247,7 @@ with lib // pkgs // inputs; { }; programs = { + darling.enable = true; dconf.enable = true; fish.enable = true; gamemode.enable = true; @@ -265,6 +264,125 @@ with lib // pkgs // inputs; { enable = true; flake = "/home/marshall/nix-config"; }; + + nix-ld = { + enable = true; + libraries = with pkgs; [ + SDL + SDL2 + SDL2_image + SDL2_mixer + SDL2_ttf + SDL_image + SDL_mixer + SDL_ttf + alsa-lib + at-spi2-atk + at-spi2-core + atk + bzip2 + cairo + cups + curlWithGnuTls + dbus + dbus-glib + desktop-file-utils + e2fsprogs + expat + flac + fontconfig + freeglut + freetype + fribidi + fuse + fuse3 + gdk-pixbuf + glew110 + glib + gmp + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-ugly + gst_all_1.gstreamer + gtk2 + harfbuzz + icu + keyutils.lib + libGL + libGLU + libappindicator-gtk2 + libcaca + libcanberra + libcap + libclang.lib + libdbusmenu + libdrm + libgcrypt + libgpg-error + libidn + libjack2 + libjpeg + libmikmod + libogg + libpng12 + libpulseaudio + librsvg + libsamplerate + libthai + libtheora + libtiff + libudev0-shim + libusb1 + libuuid + libvdpau + libvorbis + libvpx + libxcrypt-legacy + libxkbcommon + libxml2 + mesa + nspr + nss + openssl + p11-kit + pango + pixman + python3 + speex + stdenv.cc.cc + tbb + udev + vulkan-loader + wayland + xorg.libICE + xorg.libSM + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXft + xorg.libXi + xorg.libXinerama + xorg.libXmu + xorg.libXrandr + xorg.libXrender + xorg.libXt + xorg.libXtst + xorg.libXxf86vm + xorg.libpciaccess + xorg.libxcb + xorg.xcbutil + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + xorg.xcbutilwm + xorg.xkeyboardconfig + xz + zlib + ]; + }; }; networking = { @@ -283,7 +401,6 @@ with lib // pkgs // inputs; { flatpak.enable = true; getty.autologinUser = "marshall"; gnome.gnome-keyring.enable = true; - mullvad-vpn.enable = true; ollama.enable = true; openssh.enable = true; spice-vdagentd.enable = true; @@ -336,7 +453,6 @@ with lib // pkgs // inputs; { opengl = { enable = true; - driSupport = true; driSupport32Bit = true; extraPackages = [ vaapiVdpau