diff --git a/flake.lock b/flake.lock index a1305a7..ca303c3 100755 --- a/flake.lock +++ b/flake.lock @@ -87,6 +87,27 @@ "type": "github" } }, + "devshell": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1735644329, + "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=", + "owner": "numtide", + "repo": "devshell", + "rev": "f7795ede5b02664b57035b3b757876703e2c3eac", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, "dream2nix": { "inputs": { "nixpkgs": [ @@ -191,6 +212,20 @@ } }, "flake-compat_6": { + "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-compat_7": { "flake": false, "locked": { "lastModified": 1696426674, @@ -206,7 +241,7 @@ "type": "github" } }, - "flake-compat_7": { + "flake-compat_8": { "flake": false, "locked": { "lastModified": 1733328505, @@ -222,7 +257,7 @@ "type": "github" } }, - "flake-compat_8": { + "flake-compat_9": { "locked": { "lastModified": 1733328505, "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", @@ -280,6 +315,27 @@ } }, "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "nur", @@ -377,7 +433,25 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_8" + "systems": "systems_7" + }, + "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" + } + }, + "flake-utils_6": { + "inputs": { + "systems": "systems_9" }, "locked": { "lastModified": 1731533236, @@ -429,6 +503,32 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "nixvim", + "flake-compat" + ], + "gitignore": "gitignore_3", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -474,6 +574,28 @@ } }, "gitignore_3": { + "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", + "type": "github" + } + }, + "gitignore_4": { "inputs": { "nixpkgs": [ "pre-commit-hooks-nix", @@ -504,11 +626,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1738723095, - "narHash": "sha256-5l7ghUJb++dh59VlaZlmAKDoaJgCtT7pCKP87bRNFZE=", + "lastModified": 1738855896, + "narHash": "sha256-8fPYBNRogRoys8QFFRnMlSgzbRWpUVEEyRK6aTl5Yjg=", "owner": "helix-editor", "repo": "helix", - "rev": "b0e1eaf50d01257a743b8508f9eb29b78882c403", + "rev": "c36ed6ad929210674138f3f91a35208b8c9e3e9c", "type": "github" }, "original": { @@ -551,11 +673,32 @@ ] }, "locked": { - "lastModified": 1738789832, - "narHash": "sha256-HdlMPfObPu5y7oDfH/w3vvlU3UTQ/bQjSULChZARm5M=", + "lastModified": 1738878603, + "narHash": "sha256-fmhq8B3MvQLawLbMO+LWLcdC2ftLMmwSk+P29icJ3tE=", "owner": "nix-community", "repo": "home-manager", - "rev": "30ea6fed4e4b41693cebc2263373dd810de4de49", + "rev": "433799271274c9f2ab520a49527ebfe2992dcfbd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1738841109, + "narHash": "sha256-sEgE3nifaRU5gfAx33ds0tx/j+qM0/5/bHopv/w6c0c=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "f99c704fe3a4cf8d72b2d568ec80bc38be1a9407", "type": "github" }, "original": { @@ -640,11 +783,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1738770121, - "narHash": "sha256-A51F7pmZXFrVB1AIhlTPL4cHlgkRKC0ffMs5y9zSazc=", + "lastModified": 1738863928, + "narHash": "sha256-sQAMrDOw8BmhELfKuL/rCtTdXHt95PlIqfhGbIunVqQ=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "8a6778f0a087cdfc4bc1d3751b0be2c2bf3322aa", + "rev": "54441e0c4e51dd182f78876c014446d5d0359ba8", "type": "github" }, "original": { @@ -954,6 +1097,34 @@ "type": "github" } }, + "ixx": { + "inputs": { + "flake-utils": [ + "nixvim", + "nuschtosSearch", + "flake-utils" + ], + "nixpkgs": [ + "nixvim", + "nuschtosSearch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729958008, + "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.6", + "repo": "ixx", + "type": "github" + } + }, "lix": { "flake": false, "locked": { @@ -1014,6 +1185,27 @@ "type": "github" } }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1738743987, + "narHash": "sha256-O3bnAfsObto6l2tQOmQlrO6Z2kD6yKwOWfs7pA0CpOc=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "ae406c04577ff9a64087018c79b4fdc02468c87c", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, "nixos-cosmic": { "inputs": { "flake-compat": "flake-compat_5", @@ -1021,11 +1213,11 @@ "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1738805812, - "narHash": "sha256-3wupg+xSzRPUius7y29btqCR2l28GpCjwS9q83uK9uU=", + "lastModified": 1738903990, + "narHash": "sha256-Wp+yWCWMf/AiPQqKhh/WwyiX0p/9dDDQmX4tDFgpY94=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "bbab2cc88af97520259c5575bf29c83bf391424c", + "rev": "854ba004e57bc48ba163eeed4cc0a0cced4cff5e", "type": "github" }, "original": { @@ -1162,20 +1354,48 @@ "type": "github" } }, - "nur": { + "nixvim": { "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat_6", "flake-parts": "flake-parts_3", + "git-hooks": "git-hooks", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", "nixpkgs": [ "nixpkgs" ], + "nuschtosSearch": "nuschtosSearch", "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1738816609, - "narHash": "sha256-y5cbTsuUCMYigHjV9cD9+zcqpwu+oJIUnVtcnCWmIhg=", + "lastModified": 1738917768, + "narHash": "sha256-mQ3ysHsEVHVjX5EzRzYG5hrDY0cqP6O7kNlCg6wFA90=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "f2f70b4376874b74d9bae0df2d4bfd5292c1499e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nur": { + "inputs": { + "flake-parts": "flake-parts_4", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix_3" + }, + "locked": { + "lastModified": 1738918229, + "narHash": "sha256-1COZUlXOJd3xFcbUJbDwitan1iyO2RV/FlrrL0DjE5Y=", "owner": "nix-community", "repo": "NUR", - "rev": "e853d733b274463ff290f6f756f985406e740f30", + "rev": "afdea32d8180eca0a2fa6789d00b6cc52d8eecf5", "type": "github" }, "original": { @@ -1184,6 +1404,29 @@ "type": "github" } }, + "nuschtosSearch": { + "inputs": { + "flake-utils": "flake-utils_5", + "ixx": "ixx", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1738508923, + "narHash": "sha256-4DaDrQDAIxlWhTjH6h/+xfG05jt3qDZrZE/7zDLQaS4=", + "owner": "NuschtOS", + "repo": "search", + "rev": "86e2038290859006e05ca7201425ea5b5de4aecb", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat_2", @@ -1209,8 +1452,8 @@ }, "pre-commit-hooks-nix": { "inputs": { - "flake-compat": "flake-compat_6", - "gitignore": "gitignore_3", + "flake-compat": "flake-compat_7", + "gitignore": "gitignore_4", "nixpkgs": [ "nixpkgs" ] @@ -1305,10 +1548,11 @@ "ngipkgs": "ngipkgs", "nixos-cosmic": "nixos-cosmic", "nixpkgs": "nixpkgs_3", + "nixvim": "nixvim", "nur": "nur", "pre-commit-hooks-nix": "pre-commit-hooks-nix", "sops-nix": "sops-nix_2", - "systems": "systems_7", + "systems": "systems_8", "waybar": "waybar", "yazi": "yazi", "zed-editor": "zed-editor" @@ -1532,6 +1776,21 @@ } }, "systems_7": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_8": { "locked": { "lastModified": 1680978846, "narHash": "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=", @@ -1546,7 +1805,7 @@ "type": "github" } }, - "systems_8": { + "systems_9": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1584,6 +1843,27 @@ } }, "treefmt-nix_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1738680491, + "narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "64dbb922d51a42c0ced6a7668ca008dded61c483", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_3": { "inputs": { "nixpkgs": [ "nur", @@ -1606,7 +1886,7 @@ }, "waybar": { "inputs": { - "flake-compat": "flake-compat_7", + "flake-compat": "flake-compat_8", "nixpkgs": [ "nixpkgs" ] @@ -1668,16 +1948,16 @@ }, "yazi": { "inputs": { - "flake-utils": "flake-utils_5", + "flake-utils": "flake-utils_6", "nixpkgs": "nixpkgs_4", "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1738762515, - "narHash": "sha256-0LIVLou8bMYf4guwRy6YTNhMwwKWC4Ty1pg0bHm4588=", + "lastModified": 1738917769, + "narHash": "sha256-f8+C+L8eOugnyx4Zm2y3qAXH33BsI5F1JWecigPKuMg=", "owner": "sxyazi", "repo": "yazi", - "rev": "e9fcab3b375afef4b0083687388b90e060a55a37", + "rev": "17ff1e8812304d52aab56eb5dd6a220578a0dd74", "type": "github" }, "original": { @@ -1689,18 +1969,18 @@ "zed-editor": { "inputs": { "crane": "crane_2", - "flake-compat": "flake-compat_8", + "flake-compat": "flake-compat_9", "nixpkgs": [ "nixpkgs" ], "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1738822025, - "narHash": "sha256-ME4bjL8qSnJuDf7rPnO0P8A3IVFPm89gp7yKuSuVQac=", + "lastModified": 1738912888, + "narHash": "sha256-ViqtsIIOXupdWV2dDry/XIXG/kuZ5n72gbXXJpDCj1s=", "owner": "zed-industries", "repo": "zed", - "rev": "c61f12dd225ffabd3913aa29adfdf3feb1a62522", + "rev": "1f9d02607b46fe9b91521e531c7f4af14b85eea4", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e1f3eeb..116ebaf 100755 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,7 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; @@ -37,6 +38,10 @@ url = "github:helix-editor/helix"; inputs.nixpkgs.follows = "nixpkgs"; }; + nixvim = { + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic"; hyprland = { url = "github:hyprwm/Hyprland"; @@ -82,6 +87,7 @@ inputs.lix-module.nixosModules.default inputs.nur.modules.nixos.default inputs.sops-nix.nixosModules.sops + inputs.nixvim.nixosModules.nixvim ]; fallaryn = inputs.self.lib.mkLinuxSystem [ ./systems/fallaryn diff --git a/modules/home/cli/development/editing/neovim/default.nix b/modules/home/cli/development/editing/neovim/default.nix deleted file mode 100755 index 106781d..0000000 --- a/modules/home/cli/development/editing/neovim/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - programs.neovim.enable = true; -} diff --git a/modules/home/default.nix b/modules/home/default.nix index 7fd896a..52085b2 100755 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -21,15 +21,34 @@ in inherit (modules) cli brave - emulators firefox tor - code - gaming - media - messaging + ghostty + prismLauncher + steam + zed + feishin + obsidian + libreOffice + okular + kolourPaint + imageViewing + obsStudio + daVinci + mpv + freetube + discordCanary + element + signal sharing - tools + bitwarden + emote + flameshot + gnomeCalculator + scrcpy + systemMonitor + usbImager + virtManager hypr wayland theming diff --git a/modules/home/gui/apps/tools/systemMonitor/default.nix b/modules/home/gui/apps/tools/systemMonitor/default.nix new file mode 100755 index 0000000..88428fd --- /dev/null +++ b/modules/home/gui/apps/tools/systemMonitor/default.nix @@ -0,0 +1,11 @@ +{ + pkgs, + ... +}: +{ + home.packages = builtins.attrValues { + inherit (pkgs) + gnome-system-monitor + ; + }; +} diff --git a/modules/home/gui/desktop/hypr/land/default.nix b/modules/home/gui/desktop/hypr/land/default.nix index bcdf9e0..3ec6ec8 100755 --- a/modules/home/gui/desktop/hypr/land/default.nix +++ b/modules/home/gui/desktop/hypr/land/default.nix @@ -20,6 +20,7 @@ let input = import (configPath + /input.nix); misc = import (configPath + /misc.nix); windowrulev2 = import (configPath + /windowrulev2.nix); + xwayland = import (configPath + /xwayland.nix); }; in { diff --git a/modules/home/gui/desktop/theming/gtk/config/cursorTheme.nix b/modules/home/gui/desktop/theming/gtk/config/cursorTheme.nix deleted file mode 100755 index 23a9967..0000000 --- a/modules/home/gui/desktop/theming/gtk/config/cursorTheme.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - pkgs, - flake, - ... -}: -let - inherit (flake.config.aesthetics.themes) cursor; -in -{ - name = "catppuccin-macchiato-dark-cursors"; - package = pkgs.catppuccin-cursors.macchiatoDark; - size = cursor.size; -} diff --git a/modules/home/gui/desktop/theming/gtk/config/gtk3.nix b/modules/home/gui/desktop/theming/gtk/config/gtk3.nix deleted file mode 100755 index ee1ec73..0000000 --- a/modules/home/gui/desktop/theming/gtk/config/gtk3.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - extraConfig = { - gtk-application-prefer-dark-theme = true; - }; -} diff --git a/modules/home/gui/desktop/theming/gtk/config/homeCursor.nix b/modules/home/gui/desktop/theming/gtk/config/homeCursor.nix deleted file mode 100755 index 037cc12..0000000 --- a/modules/home/gui/desktop/theming/gtk/config/homeCursor.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs, flake, ... }: -let - inherit (flake.config.aesthetics.themes) - cursor - ; -in -{ - gtk.enable = true; - x11.enable = true; - name = "catppuccin-mocha-dark-cursors"; - package = pkgs.catppuccin-cursors.macchiatoDark; - size = cursor.size; -} diff --git a/modules/home/gui/desktop/theming/gtk/config/iconTheme.nix b/modules/home/gui/desktop/theming/gtk/config/iconTheme.nix deleted file mode 100755 index 199e53d..0000000 --- a/modules/home/gui/desktop/theming/gtk/config/iconTheme.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs, ... }: -{ - package = pkgs.catppuccin-papirus-folders.override { - flavor = "macchiato"; - accent = "mauve"; - }; - name = "Papirus-Dark"; -} diff --git a/modules/home/gui/desktop/theming/gtk/config/theme.nix b/modules/home/gui/desktop/theming/gtk/config/theme.nix deleted file mode 100755 index ae38e2a..0000000 --- a/modules/home/gui/desktop/theming/gtk/config/theme.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ pkgs, ... }: -{ - package = pkgs.catppuccin-gtk.override { - size = "compact"; - variant = "macchiato"; - accents = [ - "mauve" - ]; - }; - name = "catppuccin-macchiato-mauve-compact"; -} diff --git a/modules/home/gui/desktop/theming/gtk/default.nix b/modules/home/gui/desktop/theming/gtk/default.nix index 16938af..498427a 100755 --- a/modules/home/gui/desktop/theming/gtk/default.nix +++ b/modules/home/gui/desktop/theming/gtk/default.nix @@ -1,37 +1,43 @@ { pkgs, flake, ... }: let - configPath = ./config; - cursorThemePath = import (configPath + /cursorTheme.nix) { - inherit - flake - pkgs - ; - }; - iconThemePath = import (configPath + /iconTheme.nix) { - inherit - pkgs - ; - }; - themePath = import (configPath + /theme.nix) { - inherit - pkgs - ; - }; - homeCursorPath = import (configPath + /homeCursor.nix) { - inherit - flake - pkgs - ; - }; - gtk3Path = import (configPath + /gtk3.nix); + inherit (flake.config.aesthetics.themes) cursor; in { gtk = { enable = true; - gtk3 = gtk3Path; - cursorTheme = cursorThemePath; - iconTheme = iconThemePath; - theme = themePath; + gtk3 = { + extraConfig = { + gtk-application-prefer-dark-theme = true; + }; + }; + cursorTheme = { + name = "catppuccin-macchiato-dark-cursors"; + package = pkgs.catppuccin-cursors.macchiatoDark; + size = cursor.size; + }; + iconTheme = { + package = pkgs.catppuccin-papirus-folders.override { + flavor = "macchiato"; + accent = "mauve"; + }; + name = "Papirus-Dark"; + }; + theme = { + package = pkgs.catppuccin-gtk.override { + size = "compact"; + variant = "macchiato"; + accents = [ + "mauve" + ]; + }; + name = "catppuccin-macchiato-mauve-compact"; + }; + }; + home.pointerCursor = { + gtk.enable = true; + x11.enable = true; + name = "catppuccin-mocha-dark-cursors"; + package = pkgs.catppuccin-cursors.macchiatoDark; + size = cursor.size; }; - home.pointerCursor = homeCursorPath; } diff --git a/modules/nixos/programs/goldwarden/default.nix b/modules/nixos/programs/goldwarden/default.nix new file mode 100644 index 0000000..0be283b --- /dev/null +++ b/modules/nixos/programs/goldwarden/default.nix @@ -0,0 +1,3 @@ +{ + programs.goldwarden.enable = true; +} diff --git a/modules/nixos/programs/nixvim/default.nix b/modules/nixos/programs/nixvim/default.nix new file mode 100755 index 0000000..7dd4210 --- /dev/null +++ b/modules/nixos/programs/nixvim/default.nix @@ -0,0 +1,163 @@ +{ pkgs, ... }: +{ + programs.nixvim = { + enable = true; + colorschemes.catppuccin = { + enable = true; + settings.flavour = "macchiato"; + }; + globals.mapleader = " "; + keymaps = [ + { + action = "Neotree toggle"; + key = "e"; + mode = "n"; + options.silent = true; + } + ]; + + plugins = { + avante = { + enable = true; + settings = { + claude = { + model = "claude-3-5-sonnet-latest"; + }; + }; + }; + + trouble.enable = true; + web-devicons.enable = true; + conform-nvim = { + enable = true; + settings = { + formatters_by_ft = { + + css = [ + "prettierd" + "prettier" + ]; + html = [ + "prettierd" + "prettier" + ]; + javascript = [ + "prettierd" + "prettier" + ]; + javascriptreact = [ "prettier" ]; + json = [ "prettier" ]; + markdown = [ "prettier" ]; + nix = [ "nixfmt" ]; + rust = [ "rustfmt" ]; + sh = [ "shfmt" ]; + typescript = [ + "prettierd" + "prettier" + ]; + typescriptreact = [ "prettier" ]; + yaml = [ + "prettierd" + "prettier" + ]; + }; + formatters = { + asmfmt = { + command = "asmfmt"; + stdin = true; + }; + }; + }; + settings.format_on_save = { + lspFallback = true; + timeoutMs = 2000; + }; + }; + direnv = { + enable = true; + }; + treesitter = { + enable = true; + }; + lean.enable = true; + nix.enable = true; + markdown-preview.enable = true; + zellij.enable = true; + zellij-nav.enable = true; + yazi.enable = true; + gitsigns = { + enable = true; + settings = { + current_line_blame = true; + trouble = true; + }; + }; + copilot-chat = { + enable = true; + }; + nvim-tree = { + enable = true; + openOnSetupFile = true; + autoReloadOnWrite = true; + }; + nix-develop.enable = true; + lazygit.enable = true; + haskell-scope-highlighting.enable = true; + lsp = { + enable = true; + servers = { + elmls.enable = true; + hls = { + enable = true; + installGhc = true; + }; + ghcide.enable = true; + leanls.enable = true; + markdown_oxide.enable = true; + nixd.enable = true; + nushell.enable = true; + rls.enable = true; + rust_analyzer = { + enable = true; + installCargo = true; + installRustc = true; + }; + yamlls.enable = true; + java_language_server = { + package = "java-language-server"; + cmd = [ "java-language-server" ]; + }; + }; + }; + }; + opts = { + updatetime = 100; + number = true; + relativenumber = true; + splitbelow = true; + splitright = true; + scrolloff = 4; + + autoindent = true; + clipboard = "unnamedplus"; + expandtab = true; + shiftwidth = 2; + smartindent = true; + tabstop = 2; + + ignorecase = true; + incsearch = true; + smartcase = true; + wildmode = "list:longest"; + + swapfile = false; + undofile = true; + }; + clipboard.providers.wl-copy.enable = true; + extraPlugins = builtins.attrValues { + inherit (pkgs) + + ; + }; + }; +}