diff --git a/flake.lock b/flake.lock index 8f5c175..6775cbf 100644 --- a/flake.lock +++ b/flake.lock @@ -1,38 +1,5 @@ { "nodes": { - "aquamarine": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1771610171, - "narHash": "sha256-+DeInuhbm6a6PpHDNUS7pozDouq2+8xSDefoNaZLW0E=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "7f9eb087703ec4acc6b288d02fa9ea3db803cd3d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, "awww": { "inputs": { "flake-compat": "flake-compat", @@ -65,13 +32,14 @@ "nt": [ "nt" ], + "sops-nix": "sops-nix", "systems": [ "systems" ] }, "locked": { - "lastModified": 1772102584, - "narHash": "sha256-tGcuWO36uW4+BPs8vP/PrMJM/e84Zcn69r1EhzTr/m4=", + "lastModified": 1772148969, + "narHash": "sha256-1Rib48xxOv5unR6KyBRs1wRoyC8MGguBno75fFGGbPs=", "path": "/home/me/cry/mk/cerulean", "type": "path" }, @@ -162,22 +130,6 @@ } }, "flake-compat_3": { - "flake": false, - "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", - "owner": "NixOS", - "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_4": { "locked": { "lastModified": 1733328505, "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", @@ -249,28 +201,6 @@ "type": "github" } }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "hyprland", - "pre-commit-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" - } - }, "grub2-themes": { "inputs": { "nixpkgs": [ @@ -312,325 +242,6 @@ "type": "github" } }, - "hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprgraphics": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1770511807, - "narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "7c75487edd43a71b61adb01cae8326d277aab683", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-guiutils": "hyprland-guiutils", - "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs", - "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_2", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1772129629, - "narHash": "sha256-vUCMHuxPNd7PKy1mQsjRUDIHvI4eMbbJxl/iNwzWmGM=", - "owner": "hyprwm", - "repo": "Hyprland", - "rev": "70cdd819e4bee3c4dcea6961d32e61e6afe4eeb0", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "Hyprland", - "type": "github" - } - }, - "hyprland-guiutils": { - "inputs": { - "aquamarine": [ - "hyprland", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprtoolkit": "hyprtoolkit", - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1767023960, - "narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=", - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1765214753, - "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1771866172, - "narHash": "sha256-fYFoXhQLrm1rD8vSFKQBOEX4OGCuJdLt1amKfHd5GAw=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "0b219224910e7642eb0ed49f0db5ec3d008e3e41", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprtoolkit": { - "inputs": { - "aquamarine": [ - "hyprland", - "hyprland-guiutils", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprland-guiutils", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprland-guiutils", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprland-guiutils", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprland-guiutils", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "hyprland-guiutils", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-guiutils", - "systems" - ] - }, - "locked": { - "lastModified": 1764592794, - "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", - "owner": "hyprwm", - "repo": "hyprtoolkit", - "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprtoolkit", - "type": "github" - } - }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1771271487, - "narHash": "sha256-41gEiUS0Pyw3L/ge1l8MXn61cK14VAhgWB/JV8s/oNI=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "340a792e3b3d482c4ae5f66d27a9096bdee6d76d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1770501770, - "narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, - "hyprwire": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1771606233, - "narHash": "sha256-F3PLUqQ/TwgR70U+UeOqJnihJZ2EuunzojYC4g5xHr0=", - "owner": "hyprwm", - "repo": "hyprwire", - "rev": "06c7f1f8c4194786c8400653c4efc49dc14c0f3a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwire", - "type": "github" - } - }, "mango": { "inputs": { "flake-parts": "flake-parts", @@ -754,7 +365,7 @@ }, "nixcord": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_3", "flake-parts": "flake-parts_2", "nixpkgs": [ "nixpkgs" @@ -776,16 +387,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1771848320, - "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", - "owner": "NixOS", + "lastModified": 1771208521, + "narHash": "sha256-X01Q3DgSpjeBpapoGA4rzKOn25qdKxbPnxHeMLNoHTU=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "rev": "fa56d7d6de78f5a7f997b0ea2bc6efd5868ad9e8", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", + "owner": "nixos", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } @@ -820,22 +431,6 @@ "type": "github" } }, - "nixpkgs-master": { - "locked": { - "lastModified": 1772170669, - "narHash": "sha256-ClBvX0YzaJOaGZInNi0e3mFknzr/rAdwKbWrjO1j1sg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ee234284495a7ff3ecffb062595102fdc4fbe617", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "master", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-unstable": { "locked": { "lastModified": 1771008912, @@ -853,22 +448,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1771903837, - "narHash": "sha256-sdaqdnsQCv3iifzxwB22tUwN/fSHoN7j2myFW5EIkGk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "e764fc9a405871f1f6ca3d1394fb422e0a0c3951", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-25.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1767313136, "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", @@ -887,8 +466,8 @@ "nt": { "inputs": { "nix-unit": "nix-unit", - "nixpkgs": "nixpkgs_3", - "systems": "systems_3" + "nixpkgs": "nixpkgs_2", + "systems": "systems_2" }, "locked": { "lastModified": 1770975056, @@ -904,29 +483,6 @@ "url": "https://tearforge.net/cry/nt" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat_3", - "gitignore": "gitignore", - "nixpkgs": [ - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1771858127, - "narHash": "sha256-Gtre9YoYl3n25tJH2AoSdjuwcqij5CPxL3U3xysYD08=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "49bbbfc218bf3856dfa631cead3b052d78248b83", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "awww": "awww", @@ -934,17 +490,15 @@ "dobutterfliescry-net": "dobutterfliescry-net", "grub2-themes": "grub2-themes", "home-manager": "home-manager", - "hyprland": "hyprland", "mango": "mango", "nix-flatpak": "nix-flatpak", "nixcats": "nixcats", "nixcord": "nixcord", - "nixpkgs": "nixpkgs_2", - "nixpkgs-master": "nixpkgs-master", + "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", "nt": "nt", "sddm-silent": "sddm-silent", - "systems": "systems_4" + "systems": "systems_3" } }, "rust-overlay": { @@ -1009,6 +563,27 @@ "type": "github" } }, + "sops-nix": { + "inputs": { + "nixpkgs": [ + "cerulean", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772048434, + "narHash": "sha256-/wA0OaH6kZ/pFA+nXR/tvg5oupOmEDmMS5us79JT60o=", + "owner": "Mic92", + "repo": "sops-nix", + "rev": "334daa7c273dd8bf7a0cd370e4e16022b64e55e9", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "sops-nix", + "type": "github" + } + }, "spectrum": { "flake": false, "locked": { @@ -1042,16 +617,16 @@ }, "systems_2": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -1070,21 +645,6 @@ "type": "github" } }, - "systems_4": { - "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" - } - }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1124,47 +684,6 @@ "repo": "flake-utils", "type": "github" } - }, - "xdph": { - "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1761431178, - "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 3123130..df36837 100644 --- a/flake.nix +++ b/flake.nix @@ -2,11 +2,10 @@ description = "im gonna cry again ;-;"; inputs = { - systems.url = "github:nix-systems/default-linux"; + systems.url = "github:nix-systems/default"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; - nixpkgs-master.url = "github:NixOS/nixpkgs/master"; home-manager = { url = "github:nix-community/home-manager/release-25.11"; @@ -34,14 +33,6 @@ }; }; - hyprland = { - url = "github:hyprwm/Hyprland"; - inputs = { - # nixpkgs.follows = "nixpkgs"; - # systems.follows = "systems"; - }; - }; - awww = { url = "git+https://codeberg.org/LGFae/awww"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/groups/cryde/default.nix b/groups/cryde/default.nix index 0596a01..0229556 100644 --- a/groups/cryde/default.nix +++ b/groups/cryde/default.nix @@ -54,6 +54,20 @@ mango.enable = true; + neovim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + configure = { + customRC = '' + set number + set tabstop=4 + set shiftwidth=4 + ''; + }; + }; + # Thunar also uses: `services.tumbler` & `services.gvfs` thunar = { enable = true; diff --git a/homes/me/default.nix b/homes/me/default.nix index ad21f43..154a7b9 100755 --- a/homes/me/default.nix +++ b/homes/me/default.nix @@ -12,7 +12,6 @@ ../modules/term/foot.nix ../modules/editor/helix.nix - ../modules/editor/neovim ../modules/apps/firefox.nix ../modules/apps/thunderbird.nix @@ -36,10 +35,8 @@ homeDirectory = "/home/me"; shellAliases = { - # rebuild = "sudo nixos-rebuild switch --flake /home/me/flake --show-trace"; - # trybuild = "sudo nixos-rebuild test --flake /home/me/flake --show-trace"; - rebuild = "nh os switch ~/flake --show-trace"; - trybuild = "nh os test ~/flake --show-trace"; + rebuild = "sudo nixos-rebuild switch --flake /home/me/flake --show-trace"; + trybuild = "sudo nixos-rebuild test --flake /home/me/flake --show-trace"; brip = "batgrep"; # bat + ripgrep man = "batman"; # bat + man }; @@ -168,7 +165,7 @@ gnome-keyring.enable = true; }; # the ssh-agent won't set this for itself... - # systemd.user.sessionVariables.SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent"; + systemd.user.sessionVariables.SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent"; # Nicely reload system units when changing configs systemd.user.startServices = "sd-switch"; diff --git a/homes/modules/editor/neovim/default.nix b/homes/modules/editor/neovim/default.nix deleted file mode 100644 index c746c1b..0000000 --- a/homes/modules/editor/neovim/default.nix +++ /dev/null @@ -1,247 +0,0 @@ -# TODO: look into changing to this: -# https://github.com/BirdeeHub/nix-wrapper-modules -{ - inputs, - pkgs, - mpkgs, - ... -}: let - inherit - (inputs.nixcats) - utils - ; -in { - imports = [ - inputs.nixcats.homeModule - ]; - - config = { - # this value, nixCats is the defaultPackageName you pass to mkNixosModules - # it will be the namespace for your options. - nixCats = { - enable = true; - nixpkgs_version = inputs.nixpkgs-unstable; - # this will add the overlays from ./overlays and also, - # add any plugins in inputs named "plugins-pluginName" to pkgs.neovimPlugins - # It will not apply to overall system, just nixCats. - addOverlays = - # (import ./overlays inputs) ++ - [ - (utils.standardPluginOverlay inputs) - ]; - # see the packageDefinitions below. - # This says which of those to install. - packageNames = ["cryvim"]; - - luaPath = "${./.}"; - - # the .replace vs .merge options are for modules based on existing configurations, - # they refer to how multiple categoryDefinitions get merged together by the module. - # for useage of this section, refer to :h nixCats.flake.outputs.categories - categoryDefinitions.replace = { - pkgs, - settings, - categories, - extra, - name, - mkNvimPlugin, - ... - } @ packageDef: { - lspsAndRuntimeDeps = with pkgs; { - general = [ - ripgrep - fd - ]; - treesitter = [ - tree-sitter - ]; - lang = { - lua = [ - lua-language-server - stylua - ]; - nix = [ - nil - nix-doc # TODO: i forgot what this is for - nixfmt - ]; - rust = [ - cargo - mpkgs.rust-analyzer - rustfmt - ]; - zig = [ - pkgs.zls # FIX: using spkgs version as zls is broken rn ;-; - ]; - elixir = [ - elixir-ls - ]; - gleam = [ - gleam - ]; - haskell = [ - haskell-language-server - ormolu - ]; - java = [ - jdt-language-server - javaPackages.compiler.openjdk17 - javaPackages.compiler.openjdk21 - ]; - protobuf = [ - protols - buf - ]; - }; - }; - - startupPlugins = with pkgs.vimPlugins; { - general = [ - lze - plenary-nvim - nvim-notify - nvim-web-devicons - base16-nvim - mini-nvim - ]; - treesitter = [ - nvim-treesitter-textobjects - nvim-treesitter.withAllGrammars - ]; - }; - - optionalPlugins = with pkgs.vimPlugins; { - general = [ - ]; - ui = [ - dressing-nvim - ]; - qol = [ - undotree - mini-hipatterns - ]; - telescope = [ - telescope-nvim - telescope-fzf-native-nvim - telescope-ui-select-nvim - ]; - fyler = [ - fyler-nvim - ]; - lsp = [ - nvim-lspconfig - ]; - completion = [ - blink-cmp - nvim-cmp - luasnip - friendly-snippets - cmp_luasnip - cmp-buffer - cmp-path - cmp-nvim-lua - cmp-nvim-lsp - cmp-cmdline - cmp-nvim-lsp-signature-help - cmp-cmdline-history - lspkind-nvim - ]; - format = [ - conform-nvim - ]; - comment = [ - comment-nvim - ]; - lang = { - java = [ - nvim-jdtls - ]; - }; - }; - - # shared libraries to be added to LD_LIBRARY_PATH - # variable available to nvim runtime - sharedLibraries = { - general = with pkgs; [ - # libgit2 - ]; - }; - - environmentVariables = { - lang = { - rust.lsp = { - # it literally won't see the rust-analyzer provided to it - # if you don't use an envrionment variable to tell it - RUST_ANALYZER_CMD = "${mpkgs.rust-analyzer}/bin/rust-analyzer"; - }; - elixir.lsp = { - ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh"; - }; - java.lsp = { - JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}"; - OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}"; - OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}"; - }; - }; - }; - - extraWrapperArgs = {}; - # lists of the functions you would have passed to - # python.withPackages or lua.withPackages - - # get the path to this python environment - # in your lua config via - # vim.g.python3_host_prog - # or run from nvim terminal via :!-python3 - extraPython3Packages = {}; - # populates $LUA_PATH and $LUA_CPATH - extraLuaPackages = {}; - }; - - # see :help nixCats.flake.outputs.packageDefinitions - packageDefinitions.replace = { - # these are the names of your packages - # you can include as many as you wish. - cryvim = {pkgs, ...}: { - # they contain a settings set defined above - # see :help nixCats.flake.outputs.settings - settings = { - wrapRc = true; - # IMPORTANT: - # your alias may not conflict with your other packages. - aliases = [ - "cvim" - ]; - }; - # and a set of categories that you want - # (and other information to pass to lua) - categories = { - general = true; - - ui = true; - qol = true; - telescope = true; - fyler = true; - lsp = true; - completion = true; - treesitter = true; - format = true; - comment = true; - - lang = { - lua = true; - nix = true; - rust = true; - zig = true; - elixir = true; - gleam = true; - haskell = true; - java = true; - protobuf = true; - }; - }; - }; - }; - }; - }; -} diff --git a/homes/modules/editor/neovim/init.lua b/homes/modules/editor/neovim/init.lua deleted file mode 100644 index 696587c..0000000 --- a/homes/modules/editor/neovim/init.lua +++ /dev/null @@ -1,9 +0,0 @@ -vim.g.mapleader = " " - -vim.opt.termguicolors = true -- use terminal colors -vim.opt.relativenumber = true -vim.opt.wrap = false -vim.opt.colorcolumn = "80" - -require("plugins") -require("lsp") diff --git a/homes/modules/editor/neovim/lua/lsp/capabilities.lua b/homes/modules/editor/neovim/lua/lsp/capabilities.lua deleted file mode 100644 index 7e9957b..0000000 --- a/homes/modules/editor/neovim/lua/lsp/capabilities.lua +++ /dev/null @@ -1,66 +0,0 @@ -local M = {} - -function M.on_attach(_, bufnr) - -- we create a function that lets us more easily define mappings specific - -- for LSP related items. It sets the mode, buffer and description for us each time. - - local nmap = function(keys, func, desc) - if desc then - desc = "LSP: " .. desc - end - - vim.keymap.set("n", keys, func, { buffer = bufnr, desc = desc }) - end - - nmap("rn", vim.lsp.buf.rename, "[R]e[n]ame") - nmap("ca", vim.lsp.buf.code_action, "[C]ode [A]ction") - - nmap("gd", vim.lsp.buf.definition, "[G]oto [D]efinition") - - -- NOTE: why are these functions that call the telescope builtin? - -- because otherwise they would load telescope eagerly when this is defined. - -- due to us using the on_require handler to make sure it is available. - if nixCats("general.telescope") then - nmap("gr", function() - require("telescope.builtin").lsp_references() - end, "[G]oto [R]eferences") - nmap("gI", function() - require("telescope.builtin").lsp_implementations() - end, "[G]oto [I]mplementation") - nmap("ds", function() - require("telescope.builtin").lsp_document_symbols() - end, "[D]ocument [S]ymbols") - nmap("ws", function() - require("telescope.builtin").lsp_dynamic_workspace_symbols() - end, "[W]orkspace [S]ymbols") - nmap("dd", "Telescope diagnostics bufnr=0", "[D]ocument [D]iagnostics") - nmap("wd", "Telescope diagnostics", "[W]orkspace [D]iagnostics") - end -- TODO: someone who knows the builtin versions of these to do instead help me out please. - - nmap("D", vim.lsp.buf.type_definition, "Type [D]efinition") - nmap("e", vim.diagnostic.open_float, "Show [E]rror") - - -- See `:help K` for why this keymap - nmap("K", vim.lsp.buf.hover, "Hover Documentation") - nmap("", vim.lsp.buf.signature_help, "Signature Documentation") - - -- Lesser used LSP functionality - nmap("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration") - nmap("wa", vim.lsp.buf.add_workspace_folder, "[W]orkspace [A]dd Folder") - nmap("wr", vim.lsp.buf.remove_workspace_folder, "[W]orkspace [R]emove Folder") - nmap("wl", function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, "[W]orkspace [L]ist Folders") - - -- Create a command `:Format` local to the LSP buffer - vim.api.nvim_buf_create_user_command(bufnr, "Format", function(_) - vim.lsp.buf.format() - end, { desc = "Format current buffer with LSP" }) -end - -function M.get(server_name) - local capabilities = require("blink.cmp").get_lsp_capabilities() - - return capabilities -end -return M diff --git a/homes/modules/editor/neovim/lua/lsp/completion.lua b/homes/modules/editor/neovim/lua/lsp/completion.lua deleted file mode 100644 index b408f23..0000000 --- a/homes/modules/editor/neovim/lua/lsp/completion.lua +++ /dev/null @@ -1,103 +0,0 @@ -return { - { - "friendly-snippets", - dep_of = { "blink.cmp" }, - }, - { - "blink.cmp", - event = { "InsertEnter", "CmdlineEnter" }, - on_require = "blink", - load = function(name) - vim.cmd.packadd(name) - end, - after = function(plugin) - local blink = require("blink.cmp") - - blink.setup({ - keymap = { - [""] = { "show", "show_documentation", "hide_documentation" }, - [""] = { "hide", "fallback" }, - [""] = { "select_and_accept", "fallback" }, - - [""] = { "select_prev", "fallback_to_mappings" }, - [""] = { "select_next", "fallback_to_mappings" }, - [""] = { "select_prev", "fallback" }, - [""] = { "select_next", "fallback" }, - - [""] = { "scroll_documentation_up", "fallback" }, - [""] = { "scroll_documentation_down", "fallback" }, - - [""] = { "snippet_forward", "fallback" }, - [""] = { "snippet_backward", "fallback" }, - - [""] = { "show_signature", "hide_signature", "fallback" }, - }, - - appearance = { - nerd_font_variant = "mono", - }, - - sources = { - default = { "lsp", "path", "snippets", "buffer" }, - providers = { - lsp = { - name = "LSP", - module = "blink.cmp.sources.lsp", - enabled = true, - }, - path = { - name = "Path", - module = "blink.cmp.sources.path", - enabled = true, - }, - snippets = { - name = "Snippets", - module = "blink.cmp.sources.snippets", - enabled = true, - }, - buffer = { - name = "Buffer", - module = "blink.cmp.sources.buffer", - enabled = true, - }, - }, - }, - - completion = { - accept = { - auto_brackets = { - enabled = true, - }, - }, - - menu = { - border = "rounded", - max_height = 12, - scrolloff = 2, - - draw = { - columns = { - { "kind_icon", gap = 1 }, - { "label", "label_description", gap = 1 }, - }, - }, - }, - - documentation = { - auto_show = false, - window = { - border = "rounded", - }, - }, - }, - - signature = { - enabled = true, - window = { - border = "rounded", - }, - }, - }) - end, - }, -} diff --git a/homes/modules/editor/neovim/lua/lsp/indentation.lua b/homes/modules/editor/neovim/lua/lsp/indentation.lua deleted file mode 100644 index 5deae31..0000000 --- a/homes/modules/editor/neovim/lua/lsp/indentation.lua +++ /dev/null @@ -1,20 +0,0 @@ -vim.api.nvim_create_autocmd("FileType", { - pattern = { "lua", "nix", "gleam" }, - callback = function() - vim.opt_local.shiftwidth = 2 - vim.opt_local.tabstop = 2 - vim.opt_local.expandtab = true - end, -}) - -vim.api.nvim_create_autocmd("User", { - pattern = "TelescopePreviewerLoaded", - callback = function(args) - local ft = args.data.filetype - if vim.tbl_contains({ "lua", "nix", "gleam", "rust" }, ft) then - vim.bo.shiftwidth = 2 - vim.bo.tabstop = 2 - vim.bo.expandtab = true - end - end, -}) diff --git a/homes/modules/editor/neovim/lua/lsp/init.lua b/homes/modules/editor/neovim/lua/lsp/init.lua deleted file mode 100644 index e2d09ed..0000000 --- a/homes/modules/editor/neovim/lua/lsp/init.lua +++ /dev/null @@ -1,6 +0,0 @@ -require("lze").load({ - { import = "lsp.completion" }, -}) - -require("lsp.indentation") -require("lsp.lsp") diff --git a/homes/modules/editor/neovim/lua/lsp/lsp.lua b/homes/modules/editor/neovim/lua/lsp/lsp.lua deleted file mode 100644 index d115a00..0000000 --- a/homes/modules/editor/neovim/lua/lsp/lsp.lua +++ /dev/null @@ -1,134 +0,0 @@ -local servers = {} - -servers.lua_ls = { - settings = { - Lua = { - formatters = { - ignoreComments = false, - }, - signatureHelp = { enable = true }, - diagnostics = { - globals = { "nixCats", "vim" }, - -- disable = { 'missing-fields' }, - }, - workspace = { - -- make the server aware of the neovim runtime files - library = vim.api.nvim_get_runtime_file("", true), - checkThirdParty = false, - }, - }, - telemetry = { enabled = false }, - }, -} - -servers.nil_ls = { - settings = {}, -} - -local rust_analyzer_cmd = os.getenv("RUST_ANALYZER_CMD") -servers.rust_analyzer = { - cmd = { rust_analyzer_cmd }, - settings = { - server = { - -- For debugging rust-analyzer, to see log location do :LspInfo in neovim - -- extraEnv = { {["RA_LOG"]="project_model=debug"} }, - }, - cargo = { - allFeatures = false, - allTargets = false, - buildScripts = { enable = true }, - target = "x86_64-unknown-linux-gnu", - }, - diagnostics = { - enable = true, - }, - }, -} - -servers.zls = { - settings = {}, -} - -local elixir_ls_cmd = os.getenv("ELIXIR_LS_CMD") -servers.elixirls = { - cmd = { elixir_ls_cmd }, - settings = {}, -} - -servers.gleam = { - settings = {}, -} - -servers.hls = { - settings = {}, -} - -local java_home = os.getenv("JAVA_HOME") -servers.jdtls = { - settings = { - java = { - contentProvider = { preferred = "fernflower" }, - configuration = { - runtimes = { - { - name = "OpenJDK 17", - path = os.getenv("OPENJDK_17"), - }, - { - name = "OpenJDK 21", - path = os.getenv("OPENJDK_21"), - }, - }, - }, - }, - }, -} - -servers.protols = { - settings = {}, -} - --- Taken from nixCats example: --- If you were to comment out this autocommand --- and instead pass the on attach function directly to --- nvim-lspconfig, it would do the same thing. --- come to think of it, it might be better because then lspconfig doesnt have to be called before lsp attach? --- but you would still end up triggering on a FileType event anyway, so, it makes little difference. -vim.api.nvim_create_autocmd("LspAttach", { - group = vim.api.nvim_create_augroup("nixCats-lsp-attach", { clear = true }), - callback = function(event) - require("lsp.capabilities").on_attach(vim.lsp.get_client_by_id(event.data.client_id), event.buf) - end, -}) - -require("lze").load({ - { - "nvim-lspconfig", - event = "FileType", - after = function(plugin) - -- Just register configs, don't enable yet - for server_name, cfg in pairs(servers) do - vim.lsp.config(server_name, { - capabilities = require("lsp.capabilities").get(server_name), - settings = (cfg or {}).settings, - filetypes = (cfg or {}).filetypes, - cmd = (cfg or {}).cmd, - root_pattern = (cfg or {}).root_pattern, - }) - end - - -- Enable on-demand per filetype - for server_name, cfg in pairs(servers) do - local filetypes = cfg.filetypes or vim.lsp.config[server_name].filetypes - if filetypes then - vim.api.nvim_create_autocmd("FileType", { - pattern = filetypes, - callback = function() - vim.lsp.enable(server_name) - end, - }) - end - end - end, - }, -}) diff --git a/homes/modules/editor/neovim/lua/plugins/comment.lua b/homes/modules/editor/neovim/lua/plugins/comment.lua deleted file mode 100644 index caae704..0000000 --- a/homes/modules/editor/neovim/lua/plugins/comment.lua +++ /dev/null @@ -1,23 +0,0 @@ -return { - { - "comment.nvim", - event = { "BufReadPost", "BufNewFile" }, - after = function(plugin) - require("Comment").setup({ - toggler = { - line = "cc", - block = "bc", - }, - opleader = { - line = "c", - block = "b", - }, - extra = { - above = "c", - below = "co", - eol = "cA", - }, - }) - end, - }, -} diff --git a/homes/modules/editor/neovim/lua/plugins/dressing.lua b/homes/modules/editor/neovim/lua/plugins/dressing.lua deleted file mode 100644 index 42e7280..0000000 --- a/homes/modules/editor/neovim/lua/plugins/dressing.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - { - "dressing.nvim", - }, -} diff --git a/homes/modules/editor/neovim/lua/plugins/format.lua b/homes/modules/editor/neovim/lua/plugins/format.lua deleted file mode 100644 index 2cd28a4..0000000 --- a/homes/modules/editor/neovim/lua/plugins/format.lua +++ /dev/null @@ -1,34 +0,0 @@ --- docs -> https://github.com/stevearc/conform.nvim -return { - { - "conform.nvim", - enabled = nixCats("format") or false, - keys = { - { "p", desc = "Format File (pretty :3)" }, - }, - after = function(plugin) - local conform = require("conform") - - conform.setup({ - formatters_by_ft = { - lua = nixCats("lang.lua") and { "stylua" } or nil, - nix = nixCats("lang.nix") and { "nixfmt" } or nil, - rust = nixCats("lang.rust") and { "rustfmt", lsp_format = "fallback" } or nil, - haskell = nixCats("lang.haskell") and { "ormolu" } or nil, - proto = nixCats("lang.protobuf") and { "buf" } or nil, - }, - format_on_save = { - timeout_ms = 500, - }, - }) - - vim.keymap.set({ "n", "v" }, "p", function() - conform.format({ - lsp_fallback = false, - async = false, - timeout_ms = 1000, - }) - end, { desc = "Format File (pretty :3)" }) - end, - }, -} diff --git a/homes/modules/editor/neovim/lua/plugins/fyler.lua b/homes/modules/editor/neovim/lua/plugins/fyler.lua deleted file mode 100644 index 2737b78..0000000 --- a/homes/modules/editor/neovim/lua/plugins/fyler.lua +++ /dev/null @@ -1,22 +0,0 @@ -return { - { - "fyler.nvim", - cmd = { "Fyler" }, - keys = { - { - "tf", - function() - return require("fyler").toggle({ kind = "split_right" }) - end, - mode = { "n" }, - desc = "Open [F]yler", - }, - }, - load = function(name) - vim.cmd.packadd(name) - end, - after = function(plugin) - local fyler = require("fyler").setup() - end, - }, -} diff --git a/homes/modules/editor/neovim/lua/plugins/init.lua b/homes/modules/editor/neovim/lua/plugins/init.lua deleted file mode 100644 index 62de146..0000000 --- a/homes/modules/editor/neovim/lua/plugins/init.lua +++ /dev/null @@ -1,9 +0,0 @@ -require("lze").load({ - { import = "plugins.dressing" }, - { import = "plugins.telescope" }, - { import = "plugins.treesitter" }, - { import = "plugins.fyler" }, - { import = "plugins.mini-hipatterns" }, - { import = "plugins.format" }, - { import = "plugins.comment" }, -}) diff --git a/homes/modules/editor/neovim/lua/plugins/mini-hipatterns.lua b/homes/modules/editor/neovim/lua/plugins/mini-hipatterns.lua deleted file mode 100644 index f41688e..0000000 --- a/homes/modules/editor/neovim/lua/plugins/mini-hipatterns.lua +++ /dev/null @@ -1,76 +0,0 @@ -return { - { - "mini.hipatterns", - after = function(plugin) - local hipatterns = require("mini.hipatterns") - - -- Returns hex color group for matching short hex color. - -- - ---@param match string - ---@return string - local hex_color_short = function(_, match) - local style = "fg" -- 'fg' or 'bg', for extmark_opts_inline use 'fg' - local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4) - local hex = string.format("#%s%s%s%s%s%s", r, r, g, g, b, b) - return hipatterns.compute_hex_color_group(hex, style) - end - - -- Returns hex color group for matching alpha hex color. - -- - ---@param match string - ---@return string - local hex_color_alpha = function(_, match) - local style = "fg" -- 'fg' or 'bg', for extmark_opts_inline use 'fg' - local r, g, b = match:sub(2, 3), match:sub(4, 5), match:sub(6, 7) - local hex = string.format("#%s%s%s", r, g, b) - return hipatterns.compute_hex_color_group(hex, style) - end - - -- Returns extmark opts for highlights with virtual inline text. - -- - ---@param data table Includes `hl_group`, `full_match` and more. - ---@return table - local extmark_opts_inline = function(_, _, data) - return { - virt_text = { { "󰧞", data.hl_group } }, - virt_text_pos = "inline", - right_gravity = false, - } - end - - -- Returns extmark opts for highlights with virtual inline text. - -- - ---@param data table Includes `hl_group`, `full_match` and more. - ---@return table - local extmark_opts_inline_alpha = function(_, _, data) - return { - virt_text = { { "󱡓", data.hl_group } }, - virt_text_pos = "inline", - right_gravity = false, - } - end - - hipatterns.setup({ - highlighters = { - -- #rrggbb - hex_color = hipatterns.gen_highlighter.hex_color({ - style = "inline", - inline_text = "󰧞", - }), - -- #rgb - hex_color_short = { - pattern = "#%x%x%x%f[%X]", - group = hex_color_short, - extmark_opts = extmark_opts_inline, - }, - -- #rrggbbaa - hex_color_alpha = { - pattern = "#%x%x%x%x%x%x%x%x%f[%X]", - group = hex_color_alpha, - extmark_opts = extmark_opts_inline_alpha, - }, - }, - }) - end, - }, -} diff --git a/homes/modules/editor/neovim/lua/plugins/telescope.lua b/homes/modules/editor/neovim/lua/plugins/telescope.lua deleted file mode 100644 index a61f19c..0000000 --- a/homes/modules/editor/neovim/lua/plugins/telescope.lua +++ /dev/null @@ -1,78 +0,0 @@ -return { - { - "telescope.nvim", - cmd = { "Telescope" }, - keys = { - { - "f", - function() - return require("telescope.builtin").find_files() - end, - mode = { "n" }, - desc = "Telescope search [F]iles", - }, - { - "tr", - function() - return require("telescope.builtin").oldfiles() - end, - mode = { "n" }, - desc = "[T]elescope search [R]ecent files", - }, - { - "ts", - function() - return require("telescope.builtin").live_grep() - end, - mode = { "n" }, - desc = "[T]elescope [S]earch cwd with grep", - }, - { - "tw", - function() - return require("telescope.builtin").grep_string() - end, - mode = { "n" }, - desc = "[T]elescope search current [W]ord", - }, - { - "tk", - function() - return require("telescope.builtin").keymaps() - end, - mode = { "n" }, - desc = "[T]elescope search [K]eymaps", - }, - { - "tb", - function() - return require("telescope.builtin").buffers() - end, - mode = { "n" }, - desc = "[T]elescope search [B]uffers", - }, - }, - load = function(name) - vim.cmd.packadd(name) - vim.cmd.packadd("telescope-fzf-native.nvim") - end, - after = function(plugin) - local telescope = require("telescope") - local actions = require("telescope.actions") - - telescope.setup({ - defaults = { - mappings = { - i = { - [""] = actions.move_selection_previous, -- move to prev result - [""] = actions.move_selection_next, -- move to next result - [""] = actions.send_selected_to_qflist + actions.open_qflist, - }, - }, - }, - }) - - pcall(telescope.load_extension, "fzf") - end, - }, -} diff --git a/homes/modules/editor/neovim/lua/plugins/treesitter.lua b/homes/modules/editor/neovim/lua/plugins/treesitter.lua deleted file mode 100644 index 55984c7..0000000 --- a/homes/modules/editor/neovim/lua/plugins/treesitter.lua +++ /dev/null @@ -1,95 +0,0 @@ --- to help me write this after nvim-treesitter updated, i used: --- https://github.com/BirdeeHub/nixCats-nvim/blob/3c9bc4d7123e1b48d92f25ba505b889af541e897/templates/example/lua/myLuaConf/plugins/treesitter.lua - -return { - { - "nvim-treesitter", - lazy = false, - after = function(plugin) - --@param buf integer - --@param language string - local function treesitter_try_attach(buf, language) - --check if parser exists and load it - if not vim.treesitter.language.add(language) then - return - end - - -- enables syntax highlight and other treesitter features - vim.treesitter.start(buf, language) - - -- enables treesitter based folds - vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()" - - -- enables treesiter based indentation - vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" - end - - local available_parsers = require("nvim-treesitter").get_available() - vim.api.nvim_create_autocmd("FileType", { - callback = function(args) - local buf, filetype = args.buf, args.match - local language = vim.treesitter.language.get_lang(filetype) - if not language then - return - end - - local installed_parsers = require("nvim-treesitter").get_installed("parsers") - - if vim.tbl_contains(installed_parsers, language) then - -- enable the parser if it is installed - treesitter_try_attach(buf, language) - elseif vim.tbl_contains(available_parsers, language) then - -- if a parser is available in `nvim-treesitter` enable it after ensuring it is installed - require("nvim-treesitter").install(language):await(function() - treesitter_try_attach(buf, language) - end) - else - -- try to enable treesitter features in case the parser exists but is not available from `nvim-treesitter` - treesitter_try_attach(buf, language) - end - end, - }) - end, - }, - { - "nvim-treesitter-textobjects", - lazy = false, - before = function(plugin) - vim.g.no_plugin_maps = true - end, - after = function(plugin) - require("nvim-treesitter-textobjects").setup({ - select = { - lookahead = true, - selection_modes = { - ["@parameter.outer"] = "v", -- charwise - ["@function.outer"] = "V", -- linewise - }, - include_surrounding_whitespace = false, - }, - }) - - -- keymaps - vim.keymap.set({ "x", "o" }, "am", function() - require("nvim-treesitter-textobjects.select").select_textobject("@function.outer", "textobjects") - end) - vim.keymap.set({ "x", "o" }, "im", function() - require("nvim-treesitter-textobjects.select").select_textobject("@function.inner", "textobjects") - end) - vim.keymap.set({ "x", "o" }, "ac", function() - require("nvim-treesitter-textobjects.select").select_textobject("@class.outer", "textobjects") - end) - vim.keymap.set({ "x", "o" }, "ic", function() - require("nvim-treesitter-textobjects.select").select_textobject("@class.inner", "textobjects") - end) - -- You can also use captures from other query groups like `locals.scm` - vim.keymap.set({ "x", "o" }, "as", function() - require("nvim-treesitter-textobjects.select").select_textobject("@local.scope", "locals") - end) - - -- NOTE: for more textobjects options, see the following link. - -- This template is using the new `main` branch of the repo. - -- https://github.com/nvim-treesitter/nvim-treesitter-textobjects/tree/main - end, - }, -} diff --git a/homes/modules/editor/nixvim.nix b/homes/modules/editor/nixvim.nix new file mode 100755 index 0000000..9197417 --- /dev/null +++ b/homes/modules/editor/nixvim.nix @@ -0,0 +1,24 @@ +{ + config, + pkgs, + ... +}: { + programs.nixvim = { + enable = true; + # TODO: allow clipboard to be configurable based on system clipboard + colorschemes.dracula.enable = true; + plugins = { + lualine.enable = true; + treesitter.enable = true; + }; + + opts = { + number = true; + tabstop = 4; + softtabstop = 4; + shiftwidth = 4; + }; + + clipboard.providers.wl-copy.enable = true; + }; +} diff --git a/hosts/modules/hyprland/default.nix b/hosts/modules/hyprland/default.nix new file mode 100755 index 0000000..3029f7c --- /dev/null +++ b/hosts/modules/hyprland/default.nix @@ -0,0 +1,33 @@ +# NOTE: hyprland must be enabled in BOTH your host config (for running hyprland) +# and your home-manager config (for managing hyprland's config files) +{ + pkgs, + config, + lib, + ... +}: { + options.hyprland = { + enable = lib.mkEnableOption "Hyprland"; + }; + + config = lib.mkIf config.hyprland.enable { + programs.hyprland = { + enable = true; + portalPackage = pkgs.xdg-desktop-portal-hyprland; + #package = inputs.hyprland.packages.${pkgs.system}.hyprland; + xwayland.enable = true; + }; + + xdg.portal = { + enable = true; + wlr.enable = true; + + # extraPortals = with pkgs; [ + # xdg-desktop-portal-hyprland + # # xdg-desktop-portal-gtk + # ]; + }; + + # TODO: finish this (I didn't like the dotfiles I was getting inspo from and stopped) + }; +} diff --git a/hosts/modules/wm/hyprland.nix b/hosts/modules/wm/hyprland.nix index 4aa1eb9..e10eedc 100644 --- a/hosts/modules/wm/hyprland.nix +++ b/hosts/modules/wm/hyprland.nix @@ -1,11 +1,4 @@ -{ - inputs, - pkgs, - system, - ... -}: let - # hyprpkgs = inputs.hyprland.packages.${system} -in { +{pkgs, ...}: { environment.defaultPackages = with pkgs; [ hyprsunset ]; @@ -24,11 +17,9 @@ in { programs = { hyprland = { enable = true; - package = inputs.hyprland.packages.${system}.hyprland; - portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland; - # withUWSM = true; # Universal Wayland Session Manager xwayland.enable = true; + portalPackage = pkgs.xdg-desktop-portal-hyprland; }; }; } diff --git a/nixpkgs.nix b/nixpkgs.nix index fa6e201..18fcf98 100644 --- a/nixpkgs.nix +++ b/nixpkgs.nix @@ -11,6 +11,7 @@ (import ./overlays args) ]; config = { + # allowUnfree = false; allowBroken = false; allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ @@ -39,16 +40,5 @@ allowBroken = false; }; }; - - # nixpkgs-master - mpkgs = { - inherit system; - source = inputs.nixpkgs-master; - overlays = []; - config = { - allowUnfree = false; - allowBroken = false; - }; - }; }; }