From 8ce92278016c60d2425df2fb6ae7586ca5404c5a Mon Sep 17 00:00:00 2001 From: FabricSoul Date: Tue, 6 May 2025 18:45:27 -0400 Subject: [PATCH] update: home-manger config --- flake.lock | 307 ++++++++++++++---------------- flake.nix | 14 +- home/fabric/default.nix | 92 ++++++++- home/fabric/desktop/hypridle.nix | 14 ++ home/fabric/desktop/hyprland.nix | 15 +- home/fabric/desktop/hyprpanel.nix | 28 ++- home/fabric/desktop/hyprpaper.nix | 14 ++ home/fabric/programs/nixvim.nix | 219 +++++++++++++++++---- home/fabric/programs/tmux.nix | 4 +- home/fabric/programs/yazi.nix | 17 ++ home/fabric/programs/zsh.nix | 15 +- hosts/common/global/default.nix | 10 +- hosts/common/global/tailscale.nix | 5 + hosts/common/optional/wifi.nix | 3 - hosts/zion/default.nix | 1 - 15 files changed, 524 insertions(+), 234 deletions(-) create mode 100644 home/fabric/desktop/hypridle.nix create mode 100644 home/fabric/desktop/hyprpaper.nix create mode 100644 home/fabric/programs/yazi.nix create mode 100644 hosts/common/global/tailscale.nix delete mode 100644 hosts/common/optional/wifi.nix diff --git a/flake.lock b/flake.lock index 1caeaff..c266c4b 100644 --- a/flake.lock +++ b/flake.lock @@ -44,41 +44,28 @@ "type": "github" } }, - "devshell": { + "fenix": { "inputs": { "nixpkgs": [ - "nixvim", + "openapi-tui", "nixpkgs" - ] + ], + "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1735644329, - "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=", - "owner": "numtide", - "repo": "devshell", - "rev": "f7795ede5b02664b57035b3b757876703e2c3eac", + "lastModified": 1710310970, + "narHash": "sha256-YREcSnbDH7Es6MDvhmzPBBF3exEg2EP4sd3QCiPyWyI=", + "owner": "nix-community", + "repo": "fenix", + "rev": "df74cae97f59a868ad355af6a703e7845d0ae648", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-compat": { - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "revCount": 69, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -87,11 +74,11 @@ ] }, "locked": { - "lastModified": 1738453229, - "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { @@ -118,51 +105,21 @@ "type": "github" } }, - "git-hooks": { + "flake-utils_2": { "inputs": { - "flake-compat": [ - "nixvim", - "flake-compat" - ], - "gitignore": "gitignore", - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] + "systems": "systems_2" }, "locked": { - "lastModified": 1737465171, - "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "nixvim", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, @@ -173,38 +130,16 @@ ] }, "locked": { - "lastModified": 1739757849, - "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", + "lastModified": 1746413188, + "narHash": "sha256-i6BoiQP0PasExESQHszC0reQHfO6D4aI2GzOwZMOI20=", "owner": "nix-community", "repo": "home-manager", - "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", + "rev": "8a318641ac13d3bc0a53651feaee9560f9b2d89a", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.11", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1739757849, - "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-24.11", + "ref": "master", "repo": "home-manager", "type": "github" } @@ -212,16 +147,14 @@ "hyprpanel": { "inputs": { "ags": "ags", - "nixpkgs": [ - "nixpkgs" - ] + "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1740863579, - "narHash": "sha256-U4amsszfgPUTAa9FrIlYsCCpmAyko22h/nbjhmAZvAs=", + "lastModified": 1745885816, + "narHash": "sha256-yuIb6/gGcII+2YgtTLcYdga0pcL63B18xQ/oitOhg7k=", "owner": "jas-singhfsu", "repo": "hyprpanel", - "rev": "2be9f1ef6c2df2ecf0eebe5a039e8029d8d151cd", + "rev": "0c82ce9704c8063be8d8f60443071c91943eb68c", "type": "github" }, "original": { @@ -244,65 +177,43 @@ ] }, "locked": { - "lastModified": 1729958008, - "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", + "lastModified": 1737371634, + "narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=", "owner": "NuschtOS", "repo": "ixx", - "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", + "rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648", "type": "github" }, "original": { "owner": "NuschtOS", - "ref": "v0.0.6", + "ref": "v0.0.7", "repo": "ixx", "type": "github" } }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1739553546, - "narHash": "sha256-L4ou3xfOr17EAe836djRoQ7auVkYOREMtiQa82wVGqU=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "353846417f985e74fdc060555f17939e4472ea2c", - "type": "github" - }, - "original": { - "owner": "lnl7", - "ref": "nix-darwin-24.11", - "repo": "nix-darwin", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1741332913, - "narHash": "sha256-ri1e8ZliWS3Jnp9yqpKApHaOo7KBN33W8ECAKA4teAQ=", + "lastModified": 1736344531, + "narHash": "sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc+c2c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "20755fa05115c84be00b04690630cb38f0a203ad", + "rev": "bffc22eb12172e6db3c5dde9e3e5628f8e3e7912", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-24.11", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1741310760, - "narHash": "sha256-aizILFrPgq/W53Jw8i0a1h1GZAAKtlYOrG/A5r46gVM=", + "lastModified": 1746397377, + "narHash": "sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX+GGtN9f/n4lU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "de0fe301211c267807afd11b12613f5511ff7433", + "rev": "ed30f8aba41605e3ab46421e3dcb4510ec560ff8", "type": "github" }, "original": { @@ -312,31 +223,57 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1746397377, + "narHash": "sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX+GGtN9f/n4lU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ed30f8aba41605e3ab46421e3dcb4510ec560ff8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1710272261, + "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixvim": { "inputs": { - "devshell": "devshell", - "flake-compat": "flake-compat", "flake-parts": "flake-parts", - "git-hooks": "git-hooks", - "home-manager": "home-manager_2", - "nix-darwin": "nix-darwin", "nixpkgs": [ "nixpkgs" ], - "nuschtosSearch": "nuschtosSearch", - "treefmt-nix": "treefmt-nix" + "nuschtosSearch": "nuschtosSearch" }, "locked": { - "lastModified": 1740919463, - "narHash": "sha256-8jEXQsZUiG86T/H8dCxYOJ+kAT+ppVylaPYiFwrNL6g=", + "lastModified": 1746536883, + "narHash": "sha256-EJax0aiJIVJlqF7QyAefZ9fi1HgGcm7U1rBkcm2Z3Ps=", "owner": "nix-community", "repo": "nixvim", - "rev": "7e27ae55d17db65bd3ff02bcbec0615d50584910", + "rev": "c26f5c2e31c1da895bf9289783ff8e2fe3637ca0", "type": "github" }, "original": { "owner": "nix-community", - "ref": "nixos-24.11", + "ref": "main", "repo": "nixvim", "type": "github" } @@ -351,11 +288,11 @@ ] }, "locked": { - "lastModified": 1739738736, - "narHash": "sha256-Rl4Fw+3PsLTEzzUGlB8kePaiIersDbv5voAif3D6LoM=", + "lastModified": 1745046075, + "narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=", "owner": "NuschtOS", "repo": "search", - "rev": "9ff62c8e1fbe5dc649dee680c7eb4935936c8ac3", + "rev": "066afe8643274470f4a294442aadd988356a478f", "type": "github" }, "original": { @@ -364,13 +301,52 @@ "type": "github" } }, + "openapi-tui": { + "inputs": { + "fenix": "fenix", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_3", + "systems": "systems_3" + }, + "locked": { + "lastModified": 1741352034, + "narHash": "sha256-rC0lfWZpiiAAShyVDqr1gKTeWmWC+gVp4UmL96Y81mE=", + "owner": "zaghaghi", + "repo": "openapi-tui", + "rev": "0128f314c18f0e551930b18419f99de95919f8e5", + "type": "github" + }, + "original": { + "owner": "zaghaghi", + "repo": "openapi-tui", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", "hyprpanel": "hyprpanel", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", - "nixvim": "nixvim" + "nixvim": "nixvim", + "openapi-tui": "openapi-tui" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1710248332, + "narHash": "sha256-5Ozfx1xSscOrdCQoTLvcJHTtxgQ15YrXpjqce4vdzkQ=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "a2e274142f35d21fd28d28655f4af8e8531ab649", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" } }, "systems": { @@ -388,24 +364,33 @@ "type": "github" } }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, + "systems_2": { "locked": { - "lastModified": 1739829690, - "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "3d0579f5cc93436052d94b73925b48973a104204", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "numtide", - "repo": "treefmt-nix", + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", "type": "github" } } diff --git a/flake.nix b/flake.nix index 3ab9446..2f0b99e 100644 --- a/flake.nix +++ b/flake.nix @@ -2,25 +2,28 @@ description = "Fabric's flake"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; home-manager = { - url = "github:nix-community/home-manager/release-24.11"; + url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprpanel = { url = "github:jas-singhfsu/hyprpanel"; - inputs.nixpkgs.follows = "nixpkgs"; + # inputs.nixpkgs.follows = "nixpkgs"; # inputs.home-manager.follows = "home-manager"; # Add this line }; nixvim = { - url = "github:nix-community/nixvim/nixos-24.11"; + url = "github:nix-community/nixvim/main"; # If using a stable channel you can use `url = "github:nix-community/nixvim/nixos-"` inputs.nixpkgs.follows = "nixpkgs"; }; + openapi-tui = { + url = "github:zaghaghi/openapi-tui"; + }; }; outputs = { @@ -30,6 +33,7 @@ home-manager, nixvim, hyprpanel, + openapi-tui, ... }: let lib = nixpkgs.lib; @@ -48,7 +52,7 @@ homeConfigurations.fabric = home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = { - inherit nixvim hyprpanel; + inherit nixvim hyprpanel openapi-tui; }; modules = [ { diff --git a/home/fabric/default.nix b/home/fabric/default.nix index ea85d11..ab14157 100644 --- a/home/fabric/default.nix +++ b/home/fabric/default.nix @@ -14,16 +14,19 @@ ./programs/tmux.nix ./programs/zsh.nix ./programs/ssh.nix + ./programs/yazi.nix # Import desktop configurations ./desktop/hyprland.nix ./desktop/hyprpanel.nix + ./desktop/hyprpaper.nix + ./desktop/hypridle.nix ]; # Home Manager needs a bit of information about you and the paths it should manage home.username = "fabric"; home.homeDirectory = "/home/fabric"; - home.stateVersion = "24.11"; + home.stateVersion = "25.05"; # Session variables home.sessionVariables = { @@ -42,11 +45,80 @@ kitty firefox mpv - nerdfonts + + nerd-fonts.dejavu-sans-mono + nerd-fonts.daddy-time-mono + nerd-fonts.d2coding + nerd-fonts.cousine + nerd-fonts.commit-mono + nerd-fonts.comic-shanns-mono + nerd-fonts.code-new-roman + nerd-fonts.caskaydia-mono + nerd-fonts.caskaydia-cove + nerd-fonts.blex-mono + nerd-fonts.bitstream-vera-sans-mono + nerd-fonts.bigblue-terminal + nerd-fonts.aurulent-sans-mono + nerd-fonts.arimo + nerd-fonts.anonymice + nerd-fonts.agave + nerd-fonts._3270 + nerd-fonts._0xproto + nerd-fonts.zed-mono + nerd-fonts.victor-mono + nerd-fonts.ubuntu-sans + nerd-fonts.ubuntu-mono + nerd-fonts.ubuntu + nerd-fonts.tinos + nerd-fonts.terminess-ttf + nerd-fonts.symbols-only + nerd-fonts.space-mono + nerd-fonts.shure-tech-mono + nerd-fonts.sauce-code-pro + nerd-fonts.roboto-mono + nerd-fonts.recursive-mono + nerd-fonts.proggy-clean-tt + nerd-fonts.profont + nerd-fonts.overpass + nerd-fonts.open-dyslexic + nerd-fonts.noto + nerd-fonts.mononoki + nerd-fonts.monoid + nerd-fonts.monofur + nerd-fonts.monaspace + nerd-fonts.meslo-lg + nerd-fonts.martian-mono + nerd-fonts.lilex + nerd-fonts.liberation + nerd-fonts.lekton + nerd-fonts.jetbrains-mono + nerd-fonts.iosevka-term-slab + nerd-fonts.iosevka-term + nerd-fonts.iosevka + nerd-fonts.intone-mono + nerd-fonts.inconsolata-lgc + nerd-fonts.inconsolata-go + nerd-fonts.inconsolata + nerd-fonts.im-writing + nerd-fonts.hurmit + nerd-fonts.heavy-data + nerd-fonts.hasklug + nerd-fonts.hack + nerd-fonts.gohufont + nerd-fonts.go-mono + nerd-fonts.geist-mono + nerd-fonts.fira-mono + nerd-fonts.fira-code + nerd-fonts.fantasque-sans-mono + nerd-fonts.envy-code-r + nerd-fonts.droid-sans-mono + nerd-fonts.departure-mono + + wl-clipboard + tmux discord fzf - yazi zsh pavucontrol wofi @@ -74,6 +146,20 @@ btop leetgo gnumake + openapi-tui + sqlite + tree + openconnect + lynx + mdbook + zola + unzip + hugo + sass + sshfs + tree-sitter + heroic + gimp3 ]; # Enable home-manager diff --git a/home/fabric/desktop/hypridle.nix b/home/fabric/desktop/hypridle.nix new file mode 100644 index 0000000..eb31021 --- /dev/null +++ b/home/fabric/desktop/hypridle.nix @@ -0,0 +1,14 @@ +{...}: { + services.hypridle = { + enable = true; + settings = { + listener = [ + { + timeout = 600; + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + ]; + }; + }; +} diff --git a/home/fabric/desktop/hyprland.nix b/home/fabric/desktop/hyprland.nix index 92f90f7..a8ca7de 100644 --- a/home/fabric/desktop/hyprland.nix +++ b/home/fabric/desktop/hyprland.nix @@ -15,7 +15,7 @@ general = { gaps_in = 0; - gaps_out = "0, 600, 0, 600"; + gaps_out = "0, 440, 0, 440"; }; input = { @@ -28,9 +28,9 @@ ]; windowrule = [ - "workspace 6 silent,^(discord)$" - "workspace 4 silent,^(kitty)$" - "workspace 5 silent,^(firefox)$" + "workspace 6 silent,class:^(discord)$" + "workspace 4 silent,class:^(kitty)$" + "workspace 5 silent,class:^(firefox)$" ]; # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more @@ -75,9 +75,10 @@ "$mainMod SHIFT, 9, movetoworkspace, 9" "$mainMod SHIFT, 0, movetoworkspace, 10" ]; - # monitor = [ - # "DP-3,preferred,auto,1,workspace=1,addreserved,200,200,0,0" - # ]; + + monitor = [ + "DP-3, 3440x1440@144.00HZ, 0x0, 1" + ]; }; }; home.sessionVariables.NIXOS_OZONE_WL = "1"; diff --git a/home/fabric/desktop/hyprpanel.nix b/home/fabric/desktop/hyprpanel.nix index 810ff0a..f673cb4 100644 --- a/home/fabric/desktop/hyprpanel.nix +++ b/home/fabric/desktop/hyprpanel.nix @@ -17,27 +17,23 @@ enable = true; # Add to Hyprland config - hyprland.enable = true; + # hyprland.enable = true; # Fix the overwrite issue overwrite.enable = false; - # Import a theme - theme = "rose_pine_moon_split"; - - # Configure bar layouts for monitors - layout = { - "bar.layouts" = { - "0" = { - left = ["dashboard" "workspaces" "windowtitle"]; - middle = ["clock"]; - right = ["volume" "network" "bluetooth" "systray" "media" "notifications"]; - }; - }; - }; - # Configure and theme options settings = { + # Configure bar layouts for monitors + layout = { + "bar.layouts" = { + "0" = { + left = ["dashboard" "workspaces" "windowtitle"]; + middle = ["clock"]; + right = ["volume" "network" "bluetooth" "systray" "media" "notifications"]; + }; + }; + }; bar.launcher.autoDetectIcon = true; bar.workspaces.show_icons = true; @@ -52,6 +48,8 @@ menus.dashboard.directories.enabled = false; menus.dashboard.stats.enable_gpu = true; + # Import a theme + theme.name = "rose_pine_moon_split"; theme.bar.transparent = false; theme.font = { diff --git a/home/fabric/desktop/hyprpaper.nix b/home/fabric/desktop/hyprpaper.nix new file mode 100644 index 0000000..d8857b8 --- /dev/null +++ b/home/fabric/desktop/hyprpaper.nix @@ -0,0 +1,14 @@ +# home/fabric/desktop/wallpaper.nix +{...}: { + services.hyprpaper = { + enable = true; + settings = { + preload = [ + "~/Pictures/wallpaper/wallpaper.jpg" + ]; + wallpaper = [ + ",~/Pictures/wallpaper/wallpaper.jpg" + ]; + }; + }; +} diff --git a/home/fabric/programs/nixvim.nix b/home/fabric/programs/nixvim.nix index 144499e..38dc391 100644 --- a/home/fabric/programs/nixvim.nix +++ b/home/fabric/programs/nixvim.nix @@ -2,7 +2,93 @@ {pkgs, ...}: { programs.nixvim = { enable = true; + diagnostic.settings = { + enable = true; + update_in_insert = true; + severity_sort = true; + + # NOTE: Opt-in with 0.11 + virtual_text = { + enable = true; + severity.min = "warn"; + source = "if_many"; + }; + virtual_lines = { + current_line = true; + }; + + float = { + border = "rounded"; + }; + + jump = { + severity.__raw = "vim.diagnostic.severity.WARN"; + }; + + signs = { + text = { + "__rawKey__vim.diagnostic.severity.ERROR" = ""; + "__rawKey__vim.diagnostic.severity.WARN" = ""; + "__rawKey__vim.diagnostic.severity.HINT" = "󰌵"; + "__rawKey__vim.diagnostic.severity.INFO" = ""; + }; + texthl = { + "__rawKey__vim.diagnostic.severity.ERROR" = "DiagnosticError"; + "__rawKey__vim.diagnostic.severity.WARN" = "DiagnosticWarn"; + "__rawKey__vim.diagnostic.severity.HINT" = "DiagnosticHint"; + "__rawKey__vim.diagnostic.severity.INFO" = "DiagnosticInfo"; + }; + }; + }; plugins = { + avante = { + enable = true; + settings = { + diff = { + autojump = true; + debug = false; + list_opener = "copen"; + }; + highlights = { + diff = { + current = "DiffText"; + incoming = "DiffAdd"; + }; + }; + hints = { + enabled = true; + }; + mappings = { + diff = { + both = "cb"; + next = "]x"; + none = "c0"; + ours = "co"; + prev = "[x"; + theirs = "ct"; + }; + jump = { + next = "]]"; + prev = "[["; + }; + }; + # provider = "ollama"; + # ollama = { + # endpoint = "http://127.0.0.1:11434"; + # model = "gemma3:12b"; + # }; + windows = { + sidebar_header = { + align = "center"; + rounded = true; + }; + width = 30; + wrap = true; + }; + }; + }; + nvim-ufo.enable = true; + render-markdown.enable = true; nui.enable = true; auto-session = { enable = true; @@ -23,7 +109,7 @@ }; web-devicons.enable = true; nix.enable = true; - bufferline.enable = true; + bufferline.enable = false; lualine.enable = true; luasnip.enable = true; yanky = { @@ -34,11 +120,33 @@ }; ts-comments.enable = true; telescope = { + settings = { + pickers = { + find_files = { + hidden = true; + }; + }; + }; enable = true; keymaps = { " " = { action = "find_files"; }; + "tl" = { + action = "live_grep"; + }; + "td" = { + action = "lsp_definitions"; + }; + "tr" = { + action = "lsp_references"; + }; + "ti" = { + action = "lsp_implementations"; + }; + "ts" = { + action = "lsp_document_symbols"; + }; }; settings = { defaults = { @@ -51,11 +159,6 @@ "%.ipynb" "^node_modules/" "^.next/" - "%.env" - "%.env.local" - "%.env.development.local" - "%.env.test.local" - "%.env.production.local" "^npm-debug.log" "^yarn-debug.log" "^yarn-error.log" @@ -67,7 +170,9 @@ "^tailwind.config.js.backup" "%.css.map" "^styles/dist/" + ".*_templ%.go$" ]; + hidden = true; }; }; }; @@ -111,16 +216,16 @@ indent-blankline.enable = true; harpoon = { enable = true; - keymaps = { - addFile = "ha"; - toggleQuickMenu = ""; - navFile = { - "1" = "h;"; - "2" = "h,"; - "3" = "h."; - "4" = "hp"; - }; - }; + # keymaps = { + # addFile = "ha"; + # toggleQuickMenu = ""; + # navFile = { + # "1" = "h;"; + # "2" = "h,"; + # "3" = "h."; + # "4" = "hp"; + # }; + # }; }; yazi.enable = true; gitsigns = { @@ -259,9 +364,19 @@ lsp = { enable = true; inlayHints = true; + keymaps.lspBuf = { + K = "hover"; + gD = "references"; + gd = "definition"; + gi = "implementation"; + gt = "type_definition"; + }; + servers = { ts_ls.enable = true; eslint.enable = true; + templ.enable = true; + htmx.enable = true; nil_ls = { enable = true; }; @@ -284,6 +399,7 @@ enable = true; settings = { hints = { + enable = true; assignVariableTypes = true; compositeLiteralFields = true; compositeLiteralTypes = true; @@ -339,16 +455,26 @@ vim-suda.enable = true; }; extraPlugins = [ - (pkgs.vimUtils.buildVimPlugin { - name = "plenary.nvim"; - src = pkgs.fetchFromGitHub { - owner = "nvim-lua"; - repo = "plenary.nvim"; - rev = "v0.1.4"; - hash = "sha256-zR44d9MowLG1lIbvrRaFTpO/HXKKrO6lbtZfvvTdx+o="; - }; - }) ]; + extraConfigLua = '' + vim.lsp.inlay_hint.enable(true) + vim.filetype.add({ + extension = { + cob = "cobweb", + cobweb = "cobweb", + }, + }) + local parser_config = require "nvim-treesitter.parsers".get_parser_configs() + parser_config.cobweb = { + install_info = { + url = "~/tree-sitter-cobweb", -- local path or git repo + files = {"src/parser.c"}, + generate_requires_npm = false, + requires_generate_from_grammar = false, + }, + filetype = "cobweb", + } + ''; globals.mapleader = " "; opts = { relativenumber = true; @@ -373,6 +499,42 @@ colorcolumn = "80"; }; keymaps = [ + { + mode = "n"; + key = "ha"; + action.__raw = "function() require'harpoon':list():add() end"; + options.desc = "Harpoon add file"; + } + { + mode = "n"; + key = ""; + action.__raw = "function() require'harpoon'.ui:toggle_quick_menu(require'harpoon':list()) end"; + options.desc = "Harpoon quick menu"; + } + { + mode = "n"; + key = "h;"; + action.__raw = "function() require'harpoon':list():select(1) end"; + options.desc = "Harpoon file 1"; + } + { + mode = "n"; + key = "h,"; + action.__raw = "function() require'harpoon':list():select(2) end"; + options.desc = "Harpoon file 2"; + } + { + mode = "n"; + key = "h."; + action.__raw = "function() require'harpoon':list():select(3) end"; + options.desc = "Harpoon file 3"; + } + { + mode = "n"; + key = "hp"; + action.__raw = "function() require'harpoon':list():select(4) end"; + options.desc = "Harpoon file 4"; + } { mode = "n"; key = ""; @@ -480,13 +642,6 @@ key = "p"; action = "\"_dP"; } - - # Toggleterm - # { - # mode = "n"; - # key = "t"; - # action = ":ToggleTerm direction=float"; - # } ]; colorschemes.rose-pine.enable = true; }; diff --git a/home/fabric/programs/tmux.nix b/home/fabric/programs/tmux.nix index 6421d23..8c13bbb 100644 --- a/home/fabric/programs/tmux.nix +++ b/home/fabric/programs/tmux.nix @@ -24,9 +24,9 @@ # Vi copy mode bindings bind-key -T copy-mode-vi v send-keys -X begin-selection - bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy" + bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy" bind-key P paste-buffer - bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy" + bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy" ''; }; } diff --git a/home/fabric/programs/yazi.nix b/home/fabric/programs/yazi.nix new file mode 100644 index 0000000..cb9df05 --- /dev/null +++ b/home/fabric/programs/yazi.nix @@ -0,0 +1,17 @@ +# home/fabric/programs/yazi.nix +{ + config, + pkgs, + ... +}: { + programs = { + yazi = { + enable = true; + settings = { + manager = { + show_hidden = true; + }; + }; + }; + }; +} diff --git a/home/fabric/programs/zsh.nix b/home/fabric/programs/zsh.nix index c1562d6..94b8704 100644 --- a/home/fabric/programs/zsh.nix +++ b/home/fabric/programs/zsh.nix @@ -17,10 +17,19 @@ ]; }; initExtra = '' - export PATH="/home/fabric/.deno/bin:$PATH" - export PATH=$PATH:(go env GOPATH)/bin - alias wails='$(go env GOPATH)/bin/wails' + export PATH="/home/fabric/.deno/bin:$PATH" + export PATH="/home/fabric/.local/lib/bin:$PATH" + export PATH=$PATH:(go env GOPATH)/bin + GOPATH=$HOME/go + PATH=$PATH:/usr/local/go/bin:$GOPATH/bin + PATH="$HOME/.govm/shim:$PATH" + + alias t="tmux" + alias ta="tmux attach" + alias n="nvim" + alias gmt="go mod tidy" + alias gmi="go mod init" ''; prezto = { tmux = { diff --git a/hosts/common/global/default.nix b/hosts/common/global/default.nix index 0b63d12..badd3d4 100644 --- a/hosts/common/global/default.nix +++ b/hosts/common/global/default.nix @@ -7,6 +7,7 @@ }: { imports = [ ./locale.nix + ./tailscale.nix ]; # Enable nix flakes @@ -18,14 +19,18 @@ # Basic system packages environment.systemPackages = with pkgs; [ vim + git greetd.greetd greetd.tuigreet libinput libnotify kitty zsh - ollama + # ollama + ollama-cuda usbutils + obs-studio + obs-studio-plugins.input-overlay ]; # Enable the OpenSSH daemon @@ -50,7 +55,8 @@ hyprland.enable = true; zsh.enable = true; }; + networking.enableIPv6 = false; # This value determines the NixOS release version - system.stateVersion = "24.11"; + system.stateVersion = "25.05"; } diff --git a/hosts/common/global/tailscale.nix b/hosts/common/global/tailscale.nix new file mode 100644 index 0000000..44ce578 --- /dev/null +++ b/hosts/common/global/tailscale.nix @@ -0,0 +1,5 @@ +{...}: { + services.tailscale = { + enable = true; + }; +} diff --git a/hosts/common/optional/wifi.nix b/hosts/common/optional/wifi.nix deleted file mode 100644 index a6d4afe..0000000 --- a/hosts/common/optional/wifi.nix +++ /dev/null @@ -1,3 +0,0 @@ -# hosts/common/optional/wifi.nix -{...}: { -} diff --git a/hosts/zion/default.nix b/hosts/zion/default.nix index 5db1ef1..7745e8f 100644 --- a/hosts/zion/default.nix +++ b/hosts/zion/default.nix @@ -14,7 +14,6 @@ ../common/optional/nvidia.nix ../common/optional/docker.nix ../common/optional/steam.nix - ../common/optional/wifi.nix ]; # Bootloader