From ddd9a53ab0f262c446f93330db907388a894756b Mon Sep 17 00:00:00 2001 From: Joshua Elmasri Date: Mon, 7 Jul 2025 12:54:15 -0500 Subject: [PATCH] redid theming system to utilize stylix, purging unused module files next --- configuration.nix | 37 +- flake.lock | 475 ++++++++++++++++-- flake.nix | 14 +- hardware-configuration.nix | 12 +- home.nix | 96 +++- modules/cava/config | 18 +- modules/hypr/hyprland.conf | 15 +- modules/hypr/hyprland.nix | 198 ++++++++ .../hypr/{hyprlock.conf => hyprlock_old.conf} | 0 modules/kitty/kitty.conf | 2 +- modules/nvim/default.nix | 1 - modules/rofi/default.nix | 2 + modules/stylix.nix | 13 + scripts/SteamDeckOLED | 10 + scripts/screenON | 6 + 15 files changed, 798 insertions(+), 101 deletions(-) create mode 100644 modules/hypr/hyprland.nix rename modules/hypr/{hyprlock.conf => hyprlock_old.conf} (100%) create mode 100644 modules/rofi/default.nix create mode 100644 modules/stylix.nix create mode 100755 scripts/SteamDeckOLED create mode 100755 scripts/screenON diff --git a/configuration.nix b/configuration.nix index e04470e..35857b1 100644 --- a/configuration.nix +++ b/configuration.nix @@ -101,11 +101,10 @@ boot = { # Enable the GNOME Desktop Environment. - programs.hyprland.enable = true; services.desktopManager.plasma6.enable = false; services.displayManager.sddm.enable = false; services.displayManager.cosmic-greeter.enable = false; - services.desktopManager.cosmic.enable = true; + services.desktopManager.cosmic.enable = false; /*services.displayManager = { autoLogin.enable = true; autoLogin.user = "joshuaelm"; @@ -235,7 +234,7 @@ hardware.pulseaudio.extraConfig = '' fileSystems."/mnt/More-Games" = { - device = "/dev/sda1"; + device = "/dev/disk/by-uuid/eb1d5913-63fb-4fd8-8299-b428fd2d5ea0"; fsType = "btrfs"; options = [ "users" @@ -268,11 +267,11 @@ hardware.pulseaudio.extraConfig = '' targetPkgs = pkgs: with pkgs; [ alsa-lib atk cairo cups curl dbus expat file fish fontconfig freetype fuse glib gtk3 libGL libnotify libxml2 libxslt netcat nspr nss openjdk8 - openssl.dev pango appimage-run pkg-config strace udev vulkan-loader watch wget which + openssl.dev cava pango appimage-run pkg-config strace udev vulkan-loader watch wget which xorg.libX11 icu xorg.libxcb xorg.libXcomposite xorg.libXcursor xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXScrnSaver openssl xorg.libxshmfence xorg.libXtst - xorg.xcbutilkeysyms zlib fontconfig.lib libuuid xorg.libXft + xorg.xcbutilkeysyms zlib fontconfig.lib SDL2 libGL libuuid xorg.libXft ]; profile = ''export FHS=1''; runScript = "fish"; @@ -286,21 +285,25 @@ hardware.pulseaudio.extraConfig = '' cemu teamspeak6-client unetbootin + labymod-launcher + unzip winetricks cowsay pfetch ryujinx hyprpolkitagent gomatrix + python3 pavucontrol gnomeExtensions.tray-icons-reloaded pkgs.hyprpanel cider + xfce.thunar gnomeExtensions.open-bar + wallust steamtinkerlaunch grub2 cargo - btop inputs.zen-browser.packages."${system}".default qalculate-qt kdePackages.kdenlive @@ -327,9 +330,8 @@ hardware.pulseaudio.extraConfig = '' wine alvr bottles - #cava + cava pop-icon-theme - pop-launcher gnome-tweaks libnotify libreoffice @@ -337,7 +339,6 @@ hardware.pulseaudio.extraConfig = '' hunspellDicts.en_US neovide flatpak - rofi-wayland gradience ]; @@ -361,6 +362,24 @@ hardware.pulseaudio.extraConfig = '' dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server }; + nixpkgs.config.packageOverrides = pkgs: { + steam = pkgs.steam.override { + extraLibraries = pkgs: [ pkgs.xorg.libxcb ]; + extraPkgs = pkgs: with pkgs; [ + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + ]; + }; + }; + programs.gamescope = { enable = true; capSysNice = true; diff --git a/flake.lock b/flake.lock index a423ad0..64e647f 100644 --- a/flake.lock +++ b/flake.lock @@ -2,18 +2,18 @@ "nodes": { "ags": { "inputs": { - "astal": "astal", + "astal": "astal_2", "nixpkgs": [ "hyprpanel", "nixpkgs" ] }, "locked": { - "lastModified": 1736090999, - "narHash": "sha256-B5CJuHqfJrzPa7tObK0H9669/EClSHpa/P7B9EuvElU=", + "lastModified": 1744557573, + "narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=", "owner": "aylur", "repo": "ags", - "rev": "5527c3c07d92c11e04e7fd99d58429493dba7e3c", + "rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6", "type": "github" }, "original": { @@ -25,17 +25,15 @@ "astal": { "inputs": { "nixpkgs": [ - "hyprpanel", - "ags", "nixpkgs" ] }, "locked": { - "lastModified": 1735172721, - "narHash": "sha256-rtEAwGsHSppnkR3Qg3eRJ6Xh/F84IY9CrBBLzYabalY=", + "lastModified": 1750020774, + "narHash": "sha256-43lMH+9/0EHRhMuNvvo3Izvp1wXyMcSKRi8F2wSTepY=", "owner": "aylur", "repo": "astal", - "rev": "6c84b64efc736e039a8a10774a4a1bf772c37aa2", + "rev": "ca3190d077d09b9597e7de471a8e388a08f112e9", "type": "github" }, "original": { @@ -44,14 +42,140 @@ "type": "github" } }, + "astal_2": { + "inputs": { + "nixpkgs": [ + "hyprpanel", + "ags", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1742571008, + "narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=", + "owner": "aylur", + "repo": "astal", + "rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e", + "type": "github" + }, + "original": { + "owner": "aylur", + "repo": "astal", + "type": "github" + } + }, + "astal_3": { + "inputs": { + "nixpkgs": [ + "hyprpanel", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1748416910, + "narHash": "sha256-FEQcs58HL8Fe4i7XlqVEUwthjxwvRvgX15gTTfW17sU=", + "owner": "aylur", + "repo": "astal", + "rev": "c1bd89a47c81c66ab5fc6872db5a916c0433fb89", + "type": "github" + }, + "original": { + "owner": "aylur", + "repo": "astal", + "type": "github" + } + }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1746562888, + "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1748408240, + "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1748383148, + "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { - "lastModified": 1717312683, - "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", + "lastModified": 1746162366, + "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", "owner": "nix-community", "repo": "flake-compat", - "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", + "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", "type": "github" }, "original": { @@ -67,6 +191,27 @@ "nixpkgs" ] }, + "locked": { + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, "locked": { "lastModified": 1743550720, "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", @@ -99,6 +244,39 @@ "type": "github" } }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1748186689, + "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "48.2", + "repo": "gnome-shell", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -106,11 +284,11 @@ ] }, "locked": { - "lastModified": 1745894335, - "narHash": "sha256-m47zhftaod/oHOwoVT25jstdcVLhkrVGyvEHKjbnFHI=", + "lastModified": 1750304462, + "narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=", "owner": "nix-community", "repo": "home-manager", - "rev": "1ad123239957d40e11ef66c203d0a7e272eb48aa", + "rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c", "type": "github" }, "original": { @@ -143,14 +321,15 @@ "hyprpanel": { "inputs": { "ags": "ags", + "astal": "astal_3", "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1745885816, - "narHash": "sha256-yuIb6/gGcII+2YgtTLcYdga0pcL63B18xQ/oitOhg7k=", + "lastModified": 1750486389, + "narHash": "sha256-zOlR4uiw++aFWNRvlARY6Uz5VeXQFKXDMlUX45XSDX0=", "owner": "Jas-SinghFSU", "repo": "HyprPanel", - "rev": "0c82ce9704c8063be8d8f60443071c91943eb68c", + "rev": "0c2bcb773cdd55d385e68d59c8d43a066c029895", "type": "github" }, "original": { @@ -173,27 +352,27 @@ ] }, "locked": { - "lastModified": 1737371634, - "narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=", + "lastModified": 1748294338, + "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=", "owner": "NuschtOS", "repo": "ixx", - "rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648", + "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85", "type": "github" }, "original": { "owner": "NuschtOS", - "ref": "v0.0.7", + "ref": "v0.0.8", "repo": "ixx", "type": "github" } }, "master": { "locked": { - "lastModified": 1745949758, - "narHash": "sha256-/dnFkNd00YPbzyu9yzTe/5Zk/3Tg4m3OwBBYvZlx8lQ=", + "lastModified": 1750562696, + "narHash": "sha256-Gxh6uZvgYCs5VaHtkxAWRZoBeoaWorU+EUlFrclhkWM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4eba10d36219a263a5b51e4a6b2e4e6bbc00fcde", + "rev": "42cce0e237cd0ed6ae2bc3c5840b1188966a0e42", "type": "github" }, "original": { @@ -213,11 +392,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1745924915, - "narHash": "sha256-RuMUtaplJkaAtqkdG1+cD3trqmO2ykKqfK+3+HXPUVA=", + "lastModified": 1750520039, + "narHash": "sha256-sMxE77+YqBC8beZDUskuqM2NliKPBt+V9pL2OAE9Bys=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "329a9d639f0418cce05937a823f43b2b64191653", + "rev": "be0365958fcdb3681cad94b8daaf286466259602", "type": "github" }, "original": { @@ -228,11 +407,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1736344531, - "narHash": "sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc+c2c=", + "lastModified": 1748370509, + "narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bffc22eb12172e6db3c5dde9e3e5628f8e3e7912", + "rev": "4faa5f5321320e49a78ae7848582f684d64783e9", "type": "github" }, "original": { @@ -244,11 +423,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1745742390, - "narHash": "sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus=", + "lastModified": 1750330365, + "narHash": "sha256-hJ7XMNVsTnnbV2NPmStCC07gvv5l2x7+Skb7hyUzazg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "26245db0cb552047418cfcef9a25da91b222d6c7", + "rev": "d883b6213afa179b58ba8bace834f1419707d0ad", "type": "github" }, "original": { @@ -260,11 +439,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1745794561, - "narHash": "sha256-T36rUZHUART00h3dW4sV5tv4MrXKT7aWjNfHiZz7OHg=", + "lastModified": 1750365781, + "narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5461b7fa65f3ca74cef60be837fd559a8918eaa0", + "rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54", "type": "github" }, "original": { @@ -295,14 +474,15 @@ "nixpkgs": [ "nixpkgs" ], - "nuschtosSearch": "nuschtosSearch" + "nuschtosSearch": "nuschtosSearch", + "systems": "systems_2" }, "locked": { - "lastModified": 1745927529, - "narHash": "sha256-9ofvr5N24TOLjJTkUNdoaHE20l/+r04/9PMw4tmj6dE=", + "lastModified": 1750345447, + "narHash": "sha256-yOuSSfI4xovXQpSkZUK02CBcY1f0Nvm0RhnUN8xn2rY=", "owner": "nix-community", "repo": "nixvim", - "rev": "944a3168813367bb71389c53b94992f69b5be79f", + "rev": "6a1a348ab1f00bd32d2392b5c2fc72489c699af3", "type": "github" }, "original": { @@ -311,6 +491,32 @@ "type": "github" } }, + "nur": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1748730660, + "narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=", + "owner": "nix-community", + "repo": "NUR", + "rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "nuschtosSearch": { "inputs": { "flake-utils": "flake-utils", @@ -321,11 +527,11 @@ ] }, "locked": { - "lastModified": 1745046075, - "narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=", + "lastModified": 1749730855, + "narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=", "owner": "NuschtOS", "repo": "search", - "rev": "066afe8643274470f4a294442aadd988356a478f", + "rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742", "type": "github" }, "original": { @@ -336,12 +542,14 @@ }, "root": { "inputs": { + "astal": "astal", "home-manager": "home-manager", "hyprpanel": "hyprpanel", "master": "master", "nixos-cosmic": "nixos-cosmic", "nixpkgs": "nixpkgs_2", "nixvim": "nixvim", + "stylix": "stylix", "zen-browser": "zen-browser" } }, @@ -353,11 +561,11 @@ ] }, "locked": { - "lastModified": 1745894113, - "narHash": "sha256-dxO3caQZMv/pMtcuXdi+SnAtyki6HFbSf1IpgQPXZYc=", + "lastModified": 1750473400, + "narHash": "sha256-wiW2j63MyGQyyijRF25hf7Ab7vx4G8pCiGjUe3OGV4c=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "e552fe1b16ffafd678ebe061c22b117e050769ed", + "rev": "3d7d4c4e284f26d6dc4840491c66884912be0062", "type": "github" }, "original": { @@ -366,6 +574,40 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-parts": "flake-parts_2", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems_3", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1751840923, + "narHash": "sha256-4HZxn+PrWytrWVg5c5SEetv3m9/k7rngJq27zKuRIfo=", + "owner": "danth", + "repo": "stylix", + "rev": "5259682ce58d935f248297bf1c9793a5cee0787e", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -381,17 +623,150 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1748180480, + "narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1748740859, + "narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "57d5f9683ff9a3b590643beeaf0364da819aedda", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1725758778, + "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "stylix", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "zen-browser": { "inputs": { "home-manager": "home-manager_2", "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1745943904, - "narHash": "sha256-AJ4AFfiIAW9N/qztn9DxeY+/PJqFZIbpRGk21keSC0Y=", + "lastModified": 1750557004, + "narHash": "sha256-P3H0y4eYALvie8iFcT1LqmR+cB5UgT/qFoUWY/CX5O4=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "64670840168a8ac7cc3a60f5e405a64c7bcd4b45", + "rev": "5bebd80f8684a7298013fcf9bf846369d3a6542a", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 292ff22..ba7f099 100644 --- a/flake.nix +++ b/flake.nix @@ -7,6 +7,10 @@ url = "github:lilyinstarlight/nixos-cosmic"; inputs.nixpkgs.follows = "nixpkgs"; }; + stylix = { + url = "github:danth/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; zen-browser.url = "github:0xc000022070/zen-browser-flake"; master.url = "github:NixOS/nixpkgs/master"; home-manager.url = "github:nix-community/home-manager"; @@ -15,10 +19,14 @@ url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; + astal = { + url = "github:aylur/astal"; + inputs.nixpkgs.follows = "nixpkgs"; + }; home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = { self, nixpkgs, nixos-cosmic, home-manager, hyprpanel, zen-browser, master, nixvim }@inputs: + outputs = { self, stylix, astal, nixpkgs, nixos-cosmic, home-manager, hyprpanel, zen-browser, master, nixvim }@inputs: { nixosConfigurations = { nixos = nixpkgs.lib.nixosSystem { @@ -35,13 +43,15 @@ [ inputs.hyprpanel.overlay ]; _module.args = { inherit inputs; }; } + #stylix.nixosModules.stylix nixos-cosmic.nixosModules.default ./configuration.nix home-manager.nixosModules.home-manager { home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.users.joshuaelm = { - imports = [ ./home.nix nixvim.homeManagerModules.nixvim]; + imports = [ ./home.nix nixvim.homeManagerModules.nixvim stylix.homeModules.stylix ]; }; } ]; diff --git a/hardware-configuration.nix b/hardware-configuration.nix index e90d77e..83fdf69 100644 --- a/hardware-configuration.nix +++ b/hardware-configuration.nix @@ -8,18 +8,19 @@ [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "/dev/disk/by-uuid/f0d6eecb-87d2-44bd-b0b8-913fdd21900a"; - fsType = "ext4"; + { device = "/dev/disk/by-uuid/b6501e43-45c0-46bc-b77f-2f42c3a15572"; + fsType = "btrfs"; + options = [ "subvol=@" ]; }; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/D16C-97D4"; + { device = "/dev/disk/by-uuid/FE68-923D"; fsType = "vfat"; options = [ "fmask=0077" "dmask=0077" ]; }; @@ -32,7 +33,6 @@ # with explicit per-interface declarations with `networking.interfaces..useDHCP`. networking.useDHCP = lib.mkDefault true; # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; - # networking.interfaces.vboxnet0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; diff --git a/home.nix b/home.nix index 3afb50e..4a63e05 100644 --- a/home.nix +++ b/home.nix @@ -6,7 +6,7 @@ home.username = "joshuaelm"; home.homeDirectory = "/home/joshuaelm"; - imports = [ modules/nvim ]; + imports = [ modules/nvim ./modules/stylix.nix ./modules/hypr/hyprland.nix ]; home.packages = [ @@ -14,27 +14,31 @@ pkgs.waybar pkgs.signal-desktop-bin pkgs.swaybg - pkgs.kitty + pkgs.gpu-screen-recorder + pkgs.gpu-screen-recorder-gtk pkgs.supersonic pkgs.adw-gtk3 - pkgs.cava ]; - programs.hyprlock.enable = true; + programs.hyprlock.enable = false; + programs.kitty.enable = true; + programs.cava.enable = true; + programs.btop.enable = true; + programs.rofi.enable = true; + programs.rofi.package = pkgs.rofi-wayland; + services.hyprpaper.enable = true; + wayland.windowManager.hyprland.enable = true; - xdg.configFile.hypr.source = ./modules/hypr; + #xdg.configFile.hypr.source = ./modules/hypr; xdg.configFile.waybar.source = ./modules/waybar; xdg.configFile.cava.source = ./modules/cava; - xdg.configFile.kitty.source = ./modules/kitty; - xdg.configFile.rofi.source = ./modules/rofi; + #xdg.configFile.kitty.source = ./modules/kitty; + #xdg.configFile.rofi.source = ./modules/rofi; xdg.configFile.dunst.source = ./modules/dunst; home.file.".cache/ags/hyprpanel/options.json".source = ./modules/hyprpanel/options.json; - xdg.configFile.hypr.force = true; xdg.configFile.waybar.force = true; xdg.configFile.cava.force = true; - xdg.configFile.kitty.force = true; - xdg.configFile.rofi.force = true; xdg.configFile.dunst.force = true; home.file.".cache/ags/hyprpanel/options.json".force = true; @@ -43,6 +47,50 @@ services.mpd-mpris.enable = true; + programs.rofi.extraConfig = { + show-icons = true; + drun-display-format = "{icon} {name}"; + hide-scrollbar = true; + sidebar-mode = true; + dpi = 110; + font = "FreeSans Regular 12"; + icon-theme = "Gruvbox-Plus-Dark"; + }; + programs.rofi.theme = { + window.height = 600; + window.width = 600; + window.border-radius = 10; + + element = { + padding = 5; + border-radius = 10; + }; + inputbar.padding = 14; + listview = { + padding = 8; + border-radius = "0 0 10 10"; + border = "2 2 2 2"; + dynamic = false; + }; + "element-text element-icon" = { + size = 40; + margin = "0 10 0 0"; + }; + mainbox.children = "inputbar, message, listview"; + mainbox.spacing = 0; + }; + + programs.kitty.extraConfig = '' + font_family Fira Code Nerd Font + bold_font auto + italic_font auto + bold_italic_font auto + confirm_os_window_close 0 + cursor_shape beam + cursor_trail 3 + ''; + + # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage # when a new Home Manager release introduces backwards @@ -52,7 +100,33 @@ # the Home Manager release notes for a list of state version # changes in each release. home.stateVersion = "23.11"; - + xdg.dataFile = { + "Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf".text = '' + "compatibilitytools" + { + "compat_tools" + { + "Proton-stl" // Internal name of this tool + { + "install_path" "." + "display_name" "Steam Tinker Launch" + + "from_oslist" "windows" + "to_oslist" "linux" + } + } + } + ''; + "Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch".source = + config.lib.file.mkOutOfStoreSymlink "${pkgs.steamtinkerlaunch}/bin/steamtinkerlaunch"; + "Steam/compatibilitytools.d/SteamTinkerLaunch/toolmanifest.vdf".text = '' + "manifest" + { + "commandline" "/steamtinkerlaunch run" + "commandline_waitforexitandrun" "/steamtinkerlaunch waitforexitandrun" + } + ''; + }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; diff --git a/modules/cava/config b/modules/cava/config index 78d8fb9..956f718 100644 --- a/modules/cava/config +++ b/modules/cava/config @@ -107,7 +107,7 @@ # 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. # 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or # use one of the predefined ones. -; method = ncurses +; method = raw # Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'. # Default is 'bottom'. Other orientations are only supported on sdl and ncruses @@ -128,7 +128,7 @@ ; raw_target = /dev/stdout # Raw data format. Can be 'binary' or 'ascii'. -; data_format = binary +; data_format = ascii # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). ; bit_format = 16bit @@ -164,20 +164,6 @@ ; for glsl output mode, keep rendering even if no audio ; continuous_rendering = 0 -[color] -gradient = 0 -gradient_count = 8 - -#GruvBox Green to Red Gradient -gradient_color_1 = '#98971a' -gradient_color_2 = '#98971a' -gradient_color_3 = '#fabd2f' -gradient_color_4 = '#fabd2f' -gradient_color_5 = '#fabd2f' -gradient_color_6 = '#d65d0e' -gradient_color_7 = '#cc241d' -gradient_color_8 = '#cc241d' -color = '#3b4252' [smoothing] diff --git a/modules/hypr/hyprland.conf b/modules/hypr/hyprland.conf index b1813c0..52110e6 100644 --- a/modules/hypr/hyprland.conf +++ b/modules/hypr/hyprland.conf @@ -3,11 +3,12 @@ autogenerated = 0 # remove this line to remove the warning source=~/.config/hypr/rose-pine.conf # See https://wiki.hyprland.org/Configuring/Monitors/ -monitor = HDMI-A-1, 3840x2160@60, 0x0, 1.5 -#monitor = HDMI-A-1, disable +#monitor = HDMI-A-1, 3840x2160@60, 0x0, 1.5 +monitor = HDMI-A-1, disable #monitor = sunshine, highres@highrr, 0x0, 1 +monitor = DP-1, highres@highrr, 0x0, 1 +#monitor = DP-1, highres@highrr, 0x0, 1, bitdepth, 10, cm, hdr, sdrsaturation, 1, sdrbrightness, 1 exec-once = hyprctl dispatch workspace 1 -exec-once = swaybg -i ~/NixOS-Configs/Wallpaper/sDpJ0mPGhn4FnbWOsOI4HoiYUvnyKjJck4RJnPZo-3609584059.jpg #exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427 exec-once = hyprlock # exec-once = waybar @@ -24,8 +25,8 @@ exec-once = sunshine # Set programs that you use $terminal = kitty -$fileManager = cosmic-files -$menu = rofi -config ~/.config/rofi/apps.rasi -show drun +$fileManager = thunar +$menu = rofi -show drun # Some default env vars. env = XCURSOR_SIZE,24 @@ -190,3 +191,7 @@ bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow + +# Screen Recording +bind = , code:76, exec, killall -SIGUSR1 gpu-screen-recorder +bind = , code:75, exec, killall -SIGINT gpu-screen-recorder diff --git a/modules/hypr/hyprland.nix b/modules/hypr/hyprland.nix new file mode 100644 index 0000000..646fcc5 --- /dev/null +++ b/modules/hypr/hyprland.nix @@ -0,0 +1,198 @@ +{pkgs, ...}: + +{ + wayland.windowManager.hyprland.extraConfig = '' + autogenerated = 0 # remove this line to remove the warning + + +# See https://wiki.hyprland.org/Configuring/Monitors/ +#monitor = HDMI-A-1, 3840x2160@60, 0x0, 1.5 +monitor = HDMI-A-1, disable +#monitor = sunshine, highres@highrr, 0x0, 1 +monitor = DP-1, highres@highrr, 0x0, 1 +#monitor = DP-1, highres@highrr, 0x0, 1, bitdepth, 10, cm, hdr, sdrsaturation, 1, sdrbrightness, 1 +exec-once = hyprctl dispatch workspace 1 +#exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427 +exec-once = hyprlock +# exec-once = waybar +exec-once = hyprpanel +exec-once = systemctl --user start hyprpolkitagent +exec-once = sunshine +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +# exec-once = waybar & hyprpaper & firefox + + +# Set programs that you use +$terminal = kitty +$fileManager = thunar +$menu = rofi -show drun + +# Some default env vars. +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + accel_profile = flat + + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 5 + border_size = 2 + layout = dwindle + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + + blur { + enabled = yes + size = 5 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } + + shadow { + enabled = true + offset = 3, 3 + color = rgba(323232cc) + } +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +layerrule = unset, overlay + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers +} + + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more + + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# Window Rules + + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, M, exec, hyprlock +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, V, togglefloating, +bind = $mainMod, Space, exec, $menu +bind = $mainMod, B, exec, zen +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, F, fullscreen, +bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ +bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Screen Recording +bind = , code:76, exec, killall -SIGUSR1 gpu-screen-recorder +bind = , code:75, exec, killall -SIGINT gpu-screen-recorder + ''; +} diff --git a/modules/hypr/hyprlock.conf b/modules/hypr/hyprlock_old.conf similarity index 100% rename from modules/hypr/hyprlock.conf rename to modules/hypr/hyprlock_old.conf diff --git a/modules/kitty/kitty.conf b/modules/kitty/kitty.conf index dea7721..83193f9 100644 --- a/modules/kitty/kitty.conf +++ b/modules/kitty/kitty.conf @@ -1,4 +1,3 @@ -include themes/nord.conf font_family Fira Code Nerd Font bold_font auto @@ -7,3 +6,4 @@ bold_italic_font auto confirm_os_window_close 0 cursor_shape beam +cursor_trail 3 diff --git a/modules/nvim/default.nix b/modules/nvim/default.nix index e1204d4..a780dc7 100644 --- a/modules/nvim/default.nix +++ b/modules/nvim/default.nix @@ -3,7 +3,6 @@ { programs.nixvim = { enable = true; - colorschemes.nord.enable = true; plugins.nvim-tree.enable = true; plugins.treesitter.enable = true; plugins.lualine.enable = true; diff --git a/modules/rofi/default.nix b/modules/rofi/default.nix new file mode 100644 index 0000000..0a5ebbd --- /dev/null +++ b/modules/rofi/default.nix @@ -0,0 +1,2 @@ +{pkgs, ...}: +{} diff --git a/modules/stylix.nix b/modules/stylix.nix new file mode 100644 index 0000000..647bfe6 --- /dev/null +++ b/modules/stylix.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + stylix.enable = true; + stylix.polarity = "dark"; + #stylix.targets.plymouth.enable = false; + stylix.targets.kitty.enable = true; + stylix.targets.hyprpaper.enable = true; + stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml"; + stylix.image = pkgs.fetchurl { + url = "https://w.wallhaven.cc/full/1p/wallhaven-1py8lw.jpg"; + hash = "sha256-smJTuprm8PVKWv56hfv9UMzDXkHm3R7O1ALaNpNYy3E="; + }; +} diff --git a/scripts/SteamDeckOLED b/scripts/SteamDeckOLED new file mode 100755 index 0000000..7b94359 --- /dev/null +++ b/scripts/SteamDeckOLED @@ -0,0 +1,10 @@ +#!/bin/bash + +# Your main monitor (change this) +MONITOR="DP-1" + +hyprctl keyword monitor HDMI-A-1,1280x800@90,auto,1,bitdepth,10,cm,hdr + +# Disable the monitor +hyprctl keyword monitor $MONITOR,disable + diff --git a/scripts/screenON b/scripts/screenON new file mode 100755 index 0000000..a8ec986 --- /dev/null +++ b/scripts/screenON @@ -0,0 +1,6 @@ +#!/bin/bash + +hyprctl keyword monitor HDMI-A-1,disable + +hyprctl keyword monitor DP-1,highres@highrr,auto,1 +