dotfiles

My PC Dotfiles & Website
commit 15037484e692bf9dbecc3aa34913043164d4a922
parent d95f1229052ed17ea0032410c53093e0539f0d11
Author: maydayv7 <maydayv7@gmail.com>
Date:   Wed, 11 Jun 2025 23:59:25 +0530

feat: Many Changes

- Use `nixpkgs-wayland`
- Add YT Music configuration
- Add `tmux` configuration
- Drop KMSCon
- Update `adwaita` colors

Diffstat:

MCHANGELOG.md | 8++++++++
Mdevices/valkyrie/default.nix | 2+-
Mfiles/colors/adwaita.yaml | 30+++++++++++++++---------------
Mfiles/colors/catppuccin.yaml | 34+++++++++++++++++-----------------
Mfiles/colors/elementary.yaml | 26+++++++++++++-------------
Mfiles/flake.nix | 6++++++
Afiles/tmuxrc.tmux | 11+++++++++++
Afiles/ytmusic.json | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mflake.lock | 148++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
Mflake.nix | 31+++++++++++++++++++++----------
Mmodules/README.md | 5+++--
Mmodules/apps/notes.nix | 16++++++++++++++--
Mmodules/apps/youtube.nix | 43++++++++++++++++++++++++++++++++++++-------
Dmodules/base/console.nix | 30------------------------------
Mmodules/base/default.nix | 7+++++++
Mmodules/configuration.nix | 30++++++++++++++----------------
Mmodules/gui/desktop/gnome/default.nix | 8+++-----
Mmodules/gui/desktop/hyprland/apps/launcher.nix | 5+++--
Mmodules/gui/desktop/hyprland/apps/misc.nix | 101++++++++++++++++++++++++++++++++++++++-----------------------------------------
Mmodules/gui/desktop/hyprland/apps/panel.nix | 2+-
Mmodules/gui/theme.nix | 1+
Mmodules/shell/default.nix | 42++++++++++++++++++++++++++++++++++++++----
Mpackages/flake.nix | 1+
Dpackages/patches/391574.patch | 46----------------------------------------------
24 files changed, 462 insertions(+), 227 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -1,5 +1,13 @@ ## 2025 +### June + +- Use `nixpkgs-wayland` +- Add YT Music configuration +- Add `tmux` configuration +- Drop KMSCon +- Update `adwaita` colors + ### May - Use `ddterm` with GNOME diff --git a/devices/valkyrie/default.nix b/devices/valkyrie/default.nix @@ -72,7 +72,7 @@ gui = { desktop = "hyprland"; display = "eDP-1"; - wallpaper = "Thread"; + wallpaper = "Quasar"; fancy = true; }; diff --git a/files/colors/adwaita.yaml b/files/colors/adwaita.yaml @@ -1,18 +1,18 @@ scheme: "Adwaita" author: "maydayv7" -base00: "#1E1E1E" -base01: "#242424" -base02: "#303030" -base03: "#5E5C64" -base04: "#C0BFBC" -base05: "#F6F5F4" -base06: "#CDAB8F" +base00: "#1c1c1f" +base01: "#222226" +base02: "#3d3846" +base03: "#5e5c64" +base04: "#c0bfbc" +base05: "#f6f5f4" +base06: "#cdab8f" base07: "#62a0ea" -base08: "#ED333B" -base09: "#FFA348" -base0A: "#F5C211" -base0B: "#57E389" -base0C: "#0AB9DC" -base0D: "#1E78E4" -base0E: "#9841BB" -base0F: "#C061CB" +base08: "#ed333b" +base09: "#ffa348" +base0A: "#f5c211" +base0B: "#57e389" +base0C: "#0ab9dc" +base0D: "#1e78e4" +base0E: "#9841bb" +base0F: "#c061cb" diff --git a/files/colors/catppuccin.yaml b/files/colors/catppuccin.yaml @@ -1,18 +1,18 @@ scheme: "Catppuccin Macchiato" -author: "catppuccin" -base00: "#24273A" -base01: "#1E2030" -base02: "#363A4F" -base03: "#494D64" -base04: "#5B6078" -base05: "#CAD3F5" -base06: "#F4DBD6" -base07: "#B7BDF8" -base08: "#ED8796" -base09: "#F5A97F" -base0A: "#EED49F" -base0B: "#A6DA95" -base0C: "#8BD5CA" -base0D: "#8AADF4" -base0E: "#C6A0F6" -base0F: "#F0C6C6" +author: "Catppuccin" +base00: "#24273a" +base01: "#1e2030" +base02: "#363a4f" +base03: "#494d64" +base04: "#5b6078" +base05: "#cad3f5" +base06: "#f4dbd6" +base07: "#b7bdf8" +base08: "#ed8796" +base09: "#f5a97f" +base0A: "#eed49f" +base0B: "#a6da95" +base0C: "#8bd5ca" +base0D: "#8aadf4" +base0E: "#c6a0f6" +base0F: "#f0c6c6" diff --git a/files/colors/elementary.yaml b/files/colors/elementary.yaml @@ -1,18 +1,18 @@ scheme: "Elementary OS" author: "maydayv7" -base00: "#2D363A" +base00: "#2d363a" base01: "#073642" base02: "#073642" -base03: "#94A3A5" -base04: "#94A3A5" -base05: "#C0BFBC" -base06: "#DEDDDA" -base07: "#EEEEEE" -base08: "#DC322F" -base09: "#CB4B16" -base0A: "#B58900" +base03: "#94a3a5" +base04: "#94a3a5" +base05: "#c0bfbc" +base06: "#deddda" +base07: "#eeeeee" +base08: "#dc322f" +base09: "#cb4b16" +base0A: "#b58900" base0B: "#859900" -base0C: "#2AA198" -base0D: "#268BD2" -base0E: "#D33682" -base0F: "#EC0048" +base0C: "#2aa198" +base0D: "#268bd2" +base0E: "#d33682" +base0F: "#ec0048" diff --git a/files/flake.nix b/files/flake.nix @@ -138,6 +138,9 @@ # Document Templates templates = ./templates; + # Terminal Multiplexer + tmux = readFile ./tmuxrc.tmux; + # Visual Studio Code Editor vscode = map.files { directory = ./vscode; @@ -147,5 +150,8 @@ # My Personal Website website = ../site; + + # YouTube + youtube = readFile ./ytmusic.json; }; } diff --git a/files/tmuxrc.tmux b/files/tmuxrc.tmux @@ -0,0 +1,11 @@ +set -g default-command "${SHELL}" +set-option -g mouse on +set-option -g focus-events on +set -g set-clipboard on +set-option -g automatic-rename on +set-option -g status-style bg=default +set-option -ga terminal-overrides ",xterm*:Tc" + +# Split with same directory +bind | split-window -h -c "#{pane_current_path}" +bind - split-window -v -c "#{pane_current_path}" diff --git a/files/ytmusic.json b/files/ytmusic.json @@ -0,0 +1,56 @@ +{ + "window-size": { + "width": 800, + "height": 800 + }, + "window-maximized": true, + "window-position": { + "x": 0, + "y": 0 + }, + "url": "https://music.youtube.com", + "options": { + "tray": true, + "appVisible": true, + "autoUpdates": false, + "alwaysOnTop": false, + "hideMenu": true, + "hideMenuWarned": true, + "startAtLogin": false, + "disableHardwareAcceleration": false, + "removeUpgradeButton": false, + "restartOnConfigChanges": false, + "trayClickPlayPause": false, + "autoResetAppCache": false, + "resumeOnStart": true, + "likeButtons": "", + "proxy": "", + "startingPage": "", + "overrideUserAgent": false, + "usePodcastParticipantAsArtist": false, + "themes": ["@theme"] + }, + "plugins": { + "notifications": {}, + "video-toggle": { + "mode": "custom" + }, + "precise-volume": { + "globalShortcuts": {} + }, + "discord": { + "listenAlong": true + }, + "album-color-theme": { + "enabled": false + }, + "crossfade": { + "enabled": true + } + }, + "__internal__": { + "migrations": { + "version": "3.9.0" + } + } +} diff --git a/flake.lock b/flake.lock @@ -256,6 +256,21 @@ } }, "flake-compat_5": { + "locked": { + "lastModified": 1746162366, + "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_6": { "flake": false, "locked": { "lastModified": 1673956053, @@ -271,6 +286,24 @@ "type": "github" } }, + "flake-utils": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flatpak": { "locked": { "lastModified": 1739444422, @@ -782,11 +815,11 @@ ] }, "locked": { - "lastModified": 1749104492, - "narHash": "sha256-G4rO3i1GQAytNAD0cPD8Psh72daNaf5VCa+8Snr1JBs=", + "lastModified": 1749648513, + "narHash": "sha256-2Gl1k1deCEsYHAGePJXSQzLG2GUs1QxzpQu4wpS1980=", "owner": "H3rmt", "repo": "hyprswitch", - "rev": "8ebb333cd0dad0ff919ea1790136c8e6120d4560", + "rev": "2b4243c7a32e39c53331ace08fad71c17bcf7252", "type": "github" }, "original": { @@ -924,6 +957,25 @@ "type": "github" } }, + "lib-aggregate": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1749384866, + "narHash": "sha256-xWsaXDt1kV2NtvMuS+Rd62jqrWGgkFDeiRIa5yQRgGA=", + "owner": "nix-community", + "repo": "lib-aggregate", + "rev": "ec6842bc742938f5f16608661cc4a1810fc177d3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "lib-aggregate", + "type": "github" + } + }, "nixcord": { "inputs": { "flake-compat": "flake-compat_3", @@ -964,6 +1016,21 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1749345370, + "narHash": "sha256-w2J8aeSsMT6v6xAokr076vSCDHs5LRi2JkTUyNsEl4o=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "2a3d74c76852805ec8eba6dd52350e85e75805ec", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { "lastModified": 1730741070, @@ -980,6 +1047,22 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1749285348, + "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "inputs": { "flake-parts": [ @@ -1106,9 +1189,11 @@ "stable": "stable", "stylix": "stylix", "systems": "systems_2", + "tmux": "tmux", "unstable": "unstable", "utils": "utils_2", "vscode": "vscode", + "waypkgs": "waypkgs", "windows": "windows" } }, @@ -1268,6 +1353,21 @@ "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": { @@ -1349,6 +1449,26 @@ "type": "github" } }, + "tmux": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1748977843, + "narHash": "sha256-0gXtFVan+Urb79AjFOjHdjl3Q73m8M3wFSo3ZhjxcBA=", + "owner": "niksingh710", + "repo": "minimal-tmux-status", + "rev": "de2bb049a743e0f05c08531a0461f7f81da0fc72", + "type": "github" + }, + "original": { + "owner": "niksingh710", + "repo": "minimal-tmux-status", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1448,9 +1568,29 @@ "type": "github" } }, - "windows": { + "waypkgs": { "inputs": { "flake-compat": "flake-compat_5", + "lib-aggregate": "lib-aggregate", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1749648849, + "narHash": "sha256-hRvzcTaA46cKSkfAnhB38qab2shUBfXDg8VnCQNpx2Q=", + "owner": "nix-community", + "repo": "nixpkgs-wayland", + "rev": "60e0443c3367f4b45ea50f2e0cfa6c33c997d87e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs-wayland", + "type": "github" + } + }, + "windows": { + "inputs": { + "flake-compat": "flake-compat_6", "nixpkgs": [ "unstable" ] diff --git a/flake.nix b/flake.nix @@ -43,18 +43,21 @@ # Unstable Packages Repository unstable.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; - # Proprietary Software - proprietary = { - url = "github:maydayv7/proprietary"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # Packaged Games gaming = { url = "github:fufexan/nix-gaming"; inputs.flake-parts.follows = "framework"; }; + # Wayland Packages + waypkgs.url = "github:nix-community/nixpkgs-wayland"; + + # Proprietary Software + proprietary = { + url = "github:maydayv7/proprietary"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + ## Configuration Modules ## ## Language Addendum # Supported Architectures @@ -172,6 +175,12 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + # Tmux Theme + tmux = { + url = "github:niksingh710/minimal-tmux-status"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + ## Hyprland # Core hyprland = { @@ -266,10 +275,11 @@ trusted-substituters = [ "https://maydayv7-dotfiles.cachix.org" "https://cache.nixos.org" - "https://hyprland.cachix.org" + "https://nixpkgs-unfree.cachix.org" "https://nix-community.cachix.org" "https://nix-gaming.cachix.org" - "https://nixpkgs-unfree.cachix.org" + "https://nixpkgs-wayland.cachix.org" + "https://hyprland.cachix.org" "https://catppuccin.cachix.org" ]; @@ -277,10 +287,11 @@ trusted-public-keys = [ "maydayv7-dotfiles.cachix.org-1:dpECO0Z2ZMttY6JgWHuAR5M7cqeyfFjUsvHdnMz+j6U=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" + "nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" - "nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs=" + "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "catppuccin.cachix.org-1:noG/4HkbhJb+lUAdKrph6LaozJvAeEEZj4N732IysmU=" ]; }; diff --git a/modules/README.md b/modules/README.md @@ -19,6 +19,8 @@ Configuration [Builder](./configuration.nix) - `wine` - - `enable`: Install Utility Windows apps - `true / false` - `package`: Package to use for `wine` - Ex. `pkgs.winePackages.staging` + - `logseq.style`: Path to Logseq Notes CSS + - `ytmusic.style`: YouTube Music CSS - [`base`](./base): Module that contains the base common/shared configuration - @@ -31,8 +33,7 @@ Configuration [Builder](./configuration.nix) - `display`: Main GUI Display - Ex. `"HDMI-A-1"` - `wallpaper`: Desktop Wallpaper Choice (taken from `files.wallpapers`) - `fancy`: Enable Fancy GUI Effects - `true / false` - - `fonts` - - - `enable`: Enable Fonts Configuration - `true / false` + - `fonts.enable`: Enable Fonts Configuration - `true / false` - `icons` - - `name`: Application Icons Theme - Ex. `Papirus` - `package`: Icons Package - Ex. `pkgs.papirus-icon-theme` diff --git a/modules/apps/notes.nix b/modules/apps/notes.nix @@ -7,15 +7,24 @@ ... }: let - enable = builtins.elem "notes" config.apps.list; + inherit (lib) mkIf mkOption types; mutable = { mutable = true; force = true; }; + + enable = builtins.elem "notes" config.apps.list; + cfg = config.apps.logseq; in { + options.apps.logseq.style = mkOption { + description = "Path to Logseq Notes CSS"; + type = types.str; + default = ""; + }; + ## Logseq Configuration ## - config = lib.mkIf enable { + config = mkIf enable { environment.systemPackages = [ pkgs.logseq ]; user = { @@ -31,6 +40,9 @@ in ".logseq/preferences.json" = { text = prefs; } // mutable; + ".logseq/config/config.edn".text = mkIf ( + cfg.style != "" + ) ''{:custom-css-url "@import ${cfg.style};"}''; } // util.map.folder { directory = settings; diff --git a/modules/apps/youtube.nix b/modules/apps/youtube.nix @@ -2,24 +2,53 @@ config, lib, pkgs, + files, ... }: let - enable = builtins.elem "youtube" config.apps.list; + inherit (builtins) elem toFile; + inherit (lib) + mkIf + mkOption + replaceStrings + types + ; + + enable = elem "youtube" config.apps.list; in { + options.apps.ytmusic.style = mkOption { + description = "YouTube Music CSS"; + type = types.str; + default = ""; + }; + ## YT Configuration ## - config = lib.mkIf enable { + config = mkIf enable { environment.systemPackages = with pkgs; [ youtube-music youtube-tui yt-dlp ]; - user.persist.directories = [ - ".config/YouTube Music" - ".config/youtube-tui" - ".local/share/youtube-tui" - ]; + user = { + persist.directories = [ + ".config/YouTube Music" + ".config/youtube-tui" + ".local/share/youtube-tui" + ]; + + homeConfig.home.file.".config/YouTube Music/config.json" = { + text = + replaceStrings + [ "@theme" ] + [ + (toFile "style.css" config.apps.ytmusic.style) + ] + files.youtube; + mutable = true; + force = true; + }; + }; }; } diff --git a/modules/base/console.nix b/modules/base/console.nix @@ -1,30 +0,0 @@ -{ - config, - pkgs, - ... -}: -let - font = builtins.head config.fonts.fontconfig.defaultFonts.monospace; -in -{ - ## Console Configuration ## - config = { - # Setup - console = { - earlySetup = true; - packages = [ pkgs.terminus_font ]; - font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz"; - useXkbConfig = true; - }; - - # TTY - services.kmscon = { - enable = true; - hwRender = false; # ! # https://github.com/NixOS/nixpkgs/issues/385497 - extraConfig = '' - font-name=${font} - font-size=14 - ''; - }; - }; -} diff --git a/modules/base/default.nix b/modules/base/default.nix @@ -66,6 +66,13 @@ in man.enable = true; }; + # Console + console = { + earlySetup = true; + packages = [ pkgs.terminus_font ]; + font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz"; + }; + # Essential Utilities environment = { variables."NIXOS_SPECIALISATION" = diff --git a/modules/configuration.nix b/modules/configuration.nix @@ -1,8 +1,19 @@ inputs: let - inherit (inputs) self; + inherit (inputs) self nixpkgs; util = self.lib; inherit (self) files; + + inherit (nixpkgs) lib; + inherit (lib) fileContents mkIf; + inherit (builtins) + attrValues + hashString + map + removeAttrs + replaceStrings + substring + ; in ## Configuration Build Function ## { @@ -27,18 +38,6 @@ let # Package Channel pkgs = self.legacyPackages."${system}"; - # Configuration Libraries - inherit (inputs.nixpkgs) lib; - inherit (lib) fileContents mkIf; - inherit (builtins) - attrValues - hashString - map - removeAttrs - replaceStrings - substring - ; - # User Build Function user' = { @@ -71,9 +70,8 @@ let }; }; in -# Assertions -assert (user == null) -> (users != null); ## Device Configuration ## +assert (user == null) -> (users != null); # User must be defined import ((self.patchedPkgs system) + "/nixos/lib/eval-config.nix") { inherit system; @@ -127,7 +125,7 @@ import ((self.patchedPkgs system) + "/nixos/lib/eval-config.nix") { }; # Version - stateVersion = fileContents "${inputs.nixpkgs}/lib/.version"; + stateVersion = fileContents "${nixpkgs}/lib/.version"; configurationRevision = if (self ? rev) then "${substring 0 8 self.lastModifiedDate}.${self.shortRev}" diff --git a/modules/gui/desktop/gnome/default.nix b/modules/gui/desktop/gnome/default.nix @@ -220,11 +220,6 @@ in firefoxGnomeTheme.enable = true; }; - # Logseq Bonofix Theme - home.file.".logseq/config.edn" = mkIf (exists "notes") { - text = ''{:custom-css-url "@import url('https://cdn.jsdelivr.net/gh/sansui233/logseq-bonofix-theme/custom.css');"}''; - }; - programs = { # Discord GNOME Theme nixcord.quickCss = mkIf (exists "discord") ''@import url("https://raw.githubusercontent.com/ricewind012/discord-gnome-theme/master/gnome.theme.css");''; @@ -242,6 +237,9 @@ in }; }; + # Logseq Bonofix Theme + apps.logseq.style = "url('https://cdn.jsdelivr.net/gh/sansui233/logseq-bonofix-theme/custom.css')"; + # Flatpak Apps services.flatpak = mkIf config.services.flatpak.enable { remotes = [ diff --git a/modules/gui/desktop/hyprland/apps/launcher.nix b/modules/gui/desktop/hyprland/apps/launcher.nix @@ -24,12 +24,13 @@ enable = true; default_terminal = "kitty"; width = 700; - max_items = 10; - show_when_empty = false; + max_items = 4; + show_when_empty = true; plugins = { applications = { run_cache_weeks = 4; show_execs = true; + show_actions_submenu = true; }; websearch.engines = [ { diff --git a/modules/gui/desktop/hyprland/apps/misc.nix b/modules/gui/desktop/hyprland/apps/misc.nix @@ -13,6 +13,14 @@ let in { ## 3rd Party Apps Configuration + apps = with theme; { + # Logseq Notes + logseq.style = "url('https://logseq.${name}.com/ctp-${variant}.css')"; + + # YouTube Music + ytmusic.style = "@import url('https://youtubemusic.${name}.com/src/${variant}.css');"; + }; + user.homeConfig = { # Theme imports = [ inputs.catppuccin.homeModules.catppuccin ]; @@ -23,68 +31,57 @@ in thunderbird.enable = true; }; - programs = { + programs = with theme; { # Code Editor vscode.profiles.default = mkIf (exists "vscode") { extensions = [ pkgs.vscode-extensions.catppuccin.catppuccin-vsc-icons ]; - userSettings = with theme; { + userSettings = { "workbench.iconTheme" = "${name}-${variant}"; "terminal.external.linuxExec" = "kitty"; }; }; # Discord Chat - nixcord.quickCss = - with theme; - mkIf (exists "discord") ''@import url("https://${name}.github.io/discord/dist/${name}-${variant}-${accent}.theme.css");''; + nixcord.quickCss = mkIf (exists "discord") ''@import url("https://${name}.github.io/discord/dist/${name}-${variant}-${accent}.theme.css");''; }; - home.file = { - # Logseq Notes - ".logseq/config.edn" = - with theme; - mkIf (exists "notes") { - text = ''{:custom-css-url "@import url('https://logseq.${name}.com/ctp-${variant}.css');"}''; - }; - - # KDE Apps - ".config/kdeglobals".text = - with config.lib.stylix.colors; - '' - [Colors:Selection] - BackgroundNormal=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} - BackgroundAlternate=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} - ForegroundNormal=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} - ForegroundActive=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} - ForegroundInactive=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} - ForegroundLink=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} - ForegroundVisited=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} - '' - + (concatStringsSep "\n" ( - map - (name: '' - [Colors:${name}] - BackgroundNormal=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} - BackgroundAlternate=${base01-rgb-r},${base01-rgb-g},${base01-rgb-b} - DecorationFocus=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} - DecorationHover=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} - ForegroundNormal=${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} - ForegroundActive=${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} - ForegroundInactive =${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} - ForegroundLink=${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} - ForegroundVisited=${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} - ForegroundNegative=${base08-rgb-r},${base08-rgb-g},${base08-rgb-b} - ForegroundNeutral=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} - ForegroundPositive=${base0B-rgb-r},${base0B-rgb-g},${base0B-rgb-b} - '') - [ - "View" - "Window" - "Button" - "Tooltip" - "Complementary" - ] - )); - }; + # KDE Apps + home.file.".config/kdeglobals".text = + with config.lib.stylix.colors; + '' + [Colors:Selection] + BackgroundNormal=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} + BackgroundAlternate=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} + ForegroundNormal=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} + ForegroundActive=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} + ForegroundInactive=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} + ForegroundLink=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} + ForegroundVisited=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} + '' + + (concatStringsSep "\n" ( + map + (name: '' + [Colors:${name}] + BackgroundNormal=${base00-rgb-r},${base00-rgb-g},${base00-rgb-b} + BackgroundAlternate=${base01-rgb-r},${base01-rgb-g},${base01-rgb-b} + DecorationFocus=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} + DecorationHover=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} + ForegroundNormal=${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} + ForegroundActive=${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} + ForegroundInactive =${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} + ForegroundLink=${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} + ForegroundVisited=${base05-rgb-r},${base05-rgb-g},${base05-rgb-b} + ForegroundNegative=${base08-rgb-r},${base08-rgb-g},${base08-rgb-b} + ForegroundNeutral=${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b} + ForegroundPositive=${base0B-rgb-r},${base0B-rgb-g},${base0B-rgb-b} + '') + [ + "View" + "Window" + "Button" + "Tooltip" + "Complementary" + ] + )); }; } diff --git a/modules/gui/desktop/hyprland/apps/panel.nix b/modules/gui/desktop/hyprland/apps/panel.nix @@ -18,7 +18,7 @@ programs.waybar = { enable = true; systemd.enable = true; - package = pkgs.waybar; + package = pkgs.waypkgs.waybar; style = files.hyprland.waybar; # Panel diff --git a/modules/gui/theme.nix b/modules/gui/theme.nix @@ -87,6 +87,7 @@ in homeManagerIntegration.autoImport = true; targets = { + console.enable = true; plymouth.enable = false; chromium.enable = false; }; diff --git a/modules/shell/default.nix b/modules/shell/default.nix @@ -2,6 +2,7 @@ config, lib, util, + inputs, pkgs, files, ... @@ -30,10 +31,26 @@ in { # Text Editor environment.variables."EDITOR" = "nano"; - programs.nano = { - enable = true; - syntaxHighlight = true; - nanorc = files.nano; + programs = { + nano = { + enable = true; + syntaxHighlight = true; + nanorc = files.nano; + }; + + # Terminal Multiplexer + tmux = { + enable = true; + keyMode = "emacs"; + shortcut = "Space"; + aggressiveResize = true; + baseIndex = 1; + clock24 = true; + escapeTime = 0; + historyLimit = 50000; + terminal = "tmux-256color"; + extraConfig = files.tmux; + }; }; } @@ -107,6 +124,23 @@ in map-syntax = [ ".ignore:Git Ignore" ]; }; }; + + # Terminal Multiplexer + tmux = with config.lib.stylix.colors; { + plugins = with pkgs.tmuxPlugins; [ + open + yank + inputs.tmux.packages."${pkgs.system}".default + ]; + + extraConfigBeforePlugins = '' + set -g @minimal-tmux-bg "#${base02}" + set -g @minimal-tmux-fg "#${base05}" + set -g @minimal-tmux-use-arrow true + set -g @minimal-tmux-right-arrow "" + set -g @minimal-tmux-left-arrow "" + ''; + }; }; user = { diff --git a/packages/flake.nix b/packages/flake.nix @@ -38,6 +38,7 @@ in unstable = import unstable { inherit system config; }; gaming = gaming.packages."${system}"; + waypkgs = waypkgs.packages."${system}"; code = vscode.extensions."${system}"; wine = windows.packages."${system}"; hyprworld = diff --git a/packages/patches/391574.patch b/packages/patches/391574.patch @@ -1,46 +0,0 @@ -From 46edf58124f5835009c96673c7a5498fbad29c2b Mon Sep 17 00:00:00 2001 -From: hustlerone <nine-ball@tutanota.com> -Date: Fri, 16 May 2025 20:31:30 +0200 -Subject: [PATCH] nixos,pkgs/kmscon: update package & modules to fix issues - ---- - nixos/modules/services/ttys/kmscon.nix | 4 +++- - pkgs/by-name/km/kmscon/package.nix | 6 +++--- - 2 files changed, 6 insertions(+), 4 deletions(-) - -diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix -index 9706a384bffebd..0ca439c69ed206 100644 ---- a/nixos/modules/services/ttys/kmscon.nix -+++ b/nixos/modules/services/ttys/kmscon.nix -@@ -112,7 +112,9 @@ in - serviceConfig.ExecStart = [ - "" - '' -- ${pkgs.kmscon}/bin/kmscon "--vt=%I" ${cfg.extraOptions} --seats=seat0 --no-switchvt --configdir ${configDir} --login -- ${pkgs.shadow}/bin/login -p ${autologinArg} -+ ${pkgs.kmscon}/bin/kmscon "--vt=%I" ${cfg.extraOptions} ${ -+ lib.optionalString (!cfg.hwRender) "--no-drm" -+ } --seats=seat0 --no-switchvt --configdir ${configDir} --login -- ${pkgs.shadow}/bin/login -p ${autologinArg} - '' - ]; - -diff --git a/pkgs/by-name/km/kmscon/package.nix b/pkgs/by-name/km/kmscon/package.nix -index b0d67da025c6d1..97a88e396b9dd7 100644 ---- a/pkgs/by-name/km/kmscon/package.nix -+++ b/pkgs/by-name/km/kmscon/package.nix -@@ -21,13 +21,13 @@ - }: - stdenv.mkDerivation { - pname = "kmscon"; -- version = "9.0.0-unstable-2025-01-09"; -+ version = "9.0.0-unstable-2025-05-16"; - - src = fetchFromGitHub { - owner = "Aetf"; - repo = "kmscon"; -- rev = "a81941f4464e6f9cee75bfb8a1db88c253ede33d"; -- sha256 = "sha256-l7Prt7CsYi4VCnp9xktvqqNT+4djSdO2GvP1JdxhNSI="; -+ rev = "f4d9b6bbe3e176bbaf908bf25f40335283227f99"; -+ sha256 = "sha256-TY2kJfUU2DGWqqcVr2l5fETw69cmxZ5sNs/GSa8IccY="; - }; - - strictDeps = true;