From 860bcb3bc65421a8b8e1de479b17b6374826013f Mon Sep 17 00:00:00 2001 From: pagedmov Date: Fri, 18 Oct 2024 19:13:12 -0400 Subject: [PATCH] Refactored file structure to make more sense, made default.nixes less verbose --- flake.lock | 198 +++--------------- flake.nix | 13 +- hosts/desktop/default.nix | 2 +- modules/home/default.nix | 39 ---- modules/home/environment/default.nix | 21 ++ .../{ => environment}/hyprland/default.nix | 0 .../{ => environment}/hyprland/desktop.nix | 0 .../{ => environment}/hyprland/hyprland.nix | 0 .../{ => environment}/hyprland/laptop.nix | 0 modules/home/environment/laptop_userpkgs.nix | 36 ---- .../home/{ => environment}/swaync/config.json | 0 .../swaync/default.nix} | 0 .../home/{ => environment}/swaync/style.css | 0 .../{desktop_userpkgs.nix => userpkgs.nix} | 2 - .../home/{ => environment}/waybar/default.nix | 0 .../{ => environment}/waybar/settings.nix | 0 .../home/{ => environment}/waybar/style.nix | 0 .../home/{ => environment}/waybar/waybar.nix | 0 .../users.nix => home/home-manager.nix} | 14 +- modules/home/programs/default.nix | 31 +++ modules/home/programs/gaming/default.nix | 7 + modules/home/programs/gaming/gaming_pkgs.nix | 7 + modules/home/programs/{ => gaming}/steam.nix | 0 modules/sys/configuration.nix | 17 ++ modules/sys/default.nix | 27 --- modules/sys/environment/default.nix | 16 ++ modules/sys/hardware/default.nix | 16 ++ modules/sys/software/default.nix | 24 +++ modules/sys/software/nixvim/autocmd.nix | 36 ++++ modules/sys/software/nixvim/default.nix | 12 ++ modules/sys/software/nixvim/keymaps.nix | 31 +++ modules/sys/software/nixvim/options.nix | 36 ++++ modules/sys/software/nixvim/plugins/alpha.nix | 8 + .../sys/software/nixvim/plugins/barbar.nix | 10 + modules/sys/software/nixvim/plugins/cmp.nix | 12 ++ modules/sys/software/nixvim/plugins/coq.nix | 10 + .../sys/software/nixvim/plugins/default.nix | 15 ++ .../software/nixvim/plugins/extra_plugins.nix | 52 +++++ modules/sys/software/nixvim/plugins/lsp.nix | 20 ++ .../sys/software/nixvim/plugins/lualine.nix | 44 ++++ .../sys/software/nixvim/plugins/nvim-tree.nix | 88 ++++++++ .../sys/software/nixvim/plugins/plugins.nix | 24 +++ .../sys/software/nixvim/plugins/telescope.nix | 14 ++ .../software/nixvim/plugins/vim-matchup.nix | 23 ++ 44 files changed, 618 insertions(+), 287 deletions(-) delete mode 100644 modules/home/default.nix create mode 100644 modules/home/environment/default.nix rename modules/home/{ => environment}/hyprland/default.nix (100%) rename modules/home/{ => environment}/hyprland/desktop.nix (100%) rename modules/home/{ => environment}/hyprland/hyprland.nix (100%) rename modules/home/{ => environment}/hyprland/laptop.nix (100%) delete mode 100644 modules/home/environment/laptop_userpkgs.nix rename modules/home/{ => environment}/swaync/config.json (100%) rename modules/home/{swaync/swaync.nix => environment/swaync/default.nix} (100%) rename modules/home/{ => environment}/swaync/style.css (100%) rename modules/home/environment/{desktop_userpkgs.nix => userpkgs.nix} (91%) rename modules/home/{ => environment}/waybar/default.nix (100%) rename modules/home/{ => environment}/waybar/settings.nix (100%) rename modules/home/{ => environment}/waybar/style.nix (100%) rename modules/home/{ => environment}/waybar/waybar.nix (100%) rename modules/{sys/environment/users.nix => home/home-manager.nix} (95%) create mode 100644 modules/home/programs/default.nix create mode 100644 modules/home/programs/gaming/default.nix create mode 100644 modules/home/programs/gaming/gaming_pkgs.nix rename modules/home/programs/{ => gaming}/steam.nix (100%) create mode 100644 modules/sys/configuration.nix delete mode 100644 modules/sys/default.nix create mode 100644 modules/sys/environment/default.nix create mode 100644 modules/sys/hardware/default.nix create mode 100644 modules/sys/software/default.nix create mode 100644 modules/sys/software/nixvim/autocmd.nix create mode 100644 modules/sys/software/nixvim/default.nix create mode 100644 modules/sys/software/nixvim/keymaps.nix create mode 100644 modules/sys/software/nixvim/options.nix create mode 100644 modules/sys/software/nixvim/plugins/alpha.nix create mode 100644 modules/sys/software/nixvim/plugins/barbar.nix create mode 100644 modules/sys/software/nixvim/plugins/cmp.nix create mode 100644 modules/sys/software/nixvim/plugins/coq.nix create mode 100644 modules/sys/software/nixvim/plugins/default.nix create mode 100644 modules/sys/software/nixvim/plugins/extra_plugins.nix create mode 100644 modules/sys/software/nixvim/plugins/lsp.nix create mode 100644 modules/sys/software/nixvim/plugins/lualine.nix create mode 100644 modules/sys/software/nixvim/plugins/nvim-tree.nix create mode 100644 modules/sys/software/nixvim/plugins/plugins.nix create mode 100644 modules/sys/software/nixvim/plugins/telescope.nix create mode 100644 modules/sys/software/nixvim/plugins/vim-matchup.nix diff --git a/flake.lock b/flake.lock index a23ae36..e32f1f1 100644 --- a/flake.lock +++ b/flake.lock @@ -102,17 +102,16 @@ "devshell": { "inputs": { "nixpkgs": [ - "nvim", "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1722113426, - "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", + "lastModified": 1728330715, + "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", "owner": "numtide", "repo": "devshell", - "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", + "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", "type": "github" }, "original": { @@ -168,22 +167,6 @@ } }, "flake-compat_4": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_5": { "flake": false, "locked": { "lastModified": 1673956053, @@ -200,37 +183,18 @@ } }, "flake-parts": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { "inputs": { "nixpkgs-lib": [ - "nvim", "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { @@ -297,28 +261,25 @@ "git-hooks": { "inputs": { "flake-compat": [ - "nvim", "nixvim", "flake-compat" ], "gitignore": "gitignore_2", "nixpkgs": [ - "nvim", "nixvim", "nixpkgs" ], "nixpkgs-stable": [ - "nvim", "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1727514110, - "narHash": "sha256-0YRcOxJG12VGDFH8iS8pJ0aYQQUAgo/r3ZAL+cSh9nk=", + "lastModified": 1728778939, + "narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "85f7a7177c678de68224af3402ab8ee1bcee25c8", + "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", "type": "github" }, "original": { @@ -352,7 +313,6 @@ "gitignore_2": { "inputs": { "nixpkgs": [ - "nvim", "nixvim", "git-hooks", "nixpkgs" @@ -372,28 +332,6 @@ "type": "github" } }, - "gitignore_3": { - "inputs": { - "nixpkgs": [ - "nvim", - "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" - } - }, "gnome-shell": { "flake": false, "locked": { @@ -434,17 +372,16 @@ "home-manager_2": { "inputs": { "nixpkgs": [ - "nvim", "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1727383923, - "narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=", + "lastModified": 1728903686, + "narHash": "sha256-ZHFrGNWDDriZ4m8CA/5kDa250SG1LiiLPApv1p/JF0o=", "owner": "nix-community", "repo": "home-manager", - "rev": "ffe2d07e771580a005e675108212597e5b367d2d", + "rev": "e1aec543f5caf643ca0d94b6a633101942fd065f", "type": "github" }, "original": { @@ -728,17 +665,16 @@ "nix-darwin": { "inputs": { "nixpkgs": [ - "nvim", "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1727507295, - "narHash": "sha256-I/FrX1peu4URoj5T5odfuKR2rm4GjYJJpCGF9c0/lDA=", + "lastModified": 1728901530, + "narHash": "sha256-I9Qd0LnAsEGHtKE9+uVR0iDFmsijWSy7GT0g3jihG4Q=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "f2e1c4aa29fc211947c3a7113cba1dd707433b70", + "rev": "a60ac02f9466f85f092e576fd8364dfc4406b5a6", "type": "github" }, "original": { @@ -763,18 +699,6 @@ "type": "github" } }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1725233747, - "narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" - } - }, "nixpkgs-stable": { "locked": { "lastModified": 1720386169, @@ -791,22 +715,6 @@ "type": "github" } }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1720386169, - "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1728888510, @@ -875,23 +783,22 @@ "inputs": { "devshell": "devshell", "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts", "git-hooks": "git-hooks", "home-manager": "home-manager_2", "nix-darwin": "nix-darwin", "nixpkgs": [ - "nvim", "nixpkgs" ], "nuschtosSearch": "nuschtosSearch", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1727557953, - "narHash": "sha256-xe8JQaNOPTyzWsSlLu2yC6qw4SjOMHrXk4Iq+pIgLhM=", + "lastModified": 1729196897, + "narHash": "sha256-xftdQl0kxWJZNWCDSl0pU2E7zCmGjhD/N9ZWgPXK0A0=", "owner": "nix-community", "repo": "nixvim", - "rev": "2c4e4681db658deeceb2f781136d7ba1d0009521", + "rev": "3c7b6ae5d1524c691a1b65f7290facd0dc296e40", "type": "github" }, "original": { @@ -919,17 +826,16 @@ "inputs": { "flake-utils": "flake-utils", "nixpkgs": [ - "nvim", "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1727452028, - "narHash": "sha256-ehl/A4HQFRyqj1Fk7cl+dgSf/2Fb1jLwWJtZaMU6RfU=", + "lastModified": 1728905062, + "narHash": "sha256-W/lClt0bRgFRO0WFtytX/LEILpPNq+FOjIfESpkeu5c=", "owner": "NuschtOS", "repo": "search", - "rev": "9f7426e532ef8dfc839c4a3fcc567b13a20a70d3", + "rev": "f82d3e1c1c9d1eaeb91878519e2d27b27c66ce84", "type": "github" }, "original": { @@ -938,29 +844,6 @@ "type": "github" } }, - "nvim": { - "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": [ - "nixpkgs" - ], - "nixvim": "nixvim", - "pre-commit-hooks": "pre-commit-hooks_2" - }, - "locked": { - "lastModified": 1729154510, - "narHash": "sha256-9Ajo8TveKRz2KN9eO9AgpMuPMl0g9pf/ehU6NKFxDiQ=", - "owner": "pagedMov", - "repo": "pagedmov-nixvim", - "rev": "28b2293063c2881ac07efc875e75539360500d3b", - "type": "github" - }, - "original": { - "owner": "pagedMov", - "repo": "pagedmov-nixvim", - "type": "github" - } - }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -985,30 +868,6 @@ "type": "github" } }, - "pre-commit-hooks_2": { - "inputs": { - "flake-compat": "flake-compat_3", - "gitignore": "gitignore_3", - "nixpkgs": [ - "nvim", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_2" - }, - "locked": { - "lastModified": 1727514110, - "narHash": "sha256-0YRcOxJG12VGDFH8iS8pJ0aYQQUAgo/r3ZAL+cSh9nk=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "85f7a7177c678de68224af3402ab8ee1bcee25c8", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "home-manager": "home-manager", @@ -1016,8 +875,8 @@ "hyprland": "hyprland", "hyprpicker": "hyprpicker", "nixpkgs": "nixpkgs_4", + "nixvim": "nixvim", "nur": "nur", - "nvim": "nvim", "spicetify-nix": "spicetify-nix", "stylix": "stylix", "toilet": "toilet" @@ -1025,7 +884,7 @@ }, "spicetify-nix": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_3", "nixpkgs": [ "nixpkgs" ] @@ -1050,7 +909,7 @@ "base16-fish": "base16-fish", "base16-helix": "base16-helix", "base16-vim": "base16-vim", - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_4", "flake-utils": "flake-utils_2", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", @@ -1206,17 +1065,16 @@ "treefmt-nix": { "inputs": { "nixpkgs": [ - "nvim", "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1727431250, - "narHash": "sha256-uGRlRT47ecicF9iLD1G3g43jn2e+b5KaMptb59LHnvM=", + "lastModified": 1727984844, + "narHash": "sha256-xpRqITAoD8rHlXQafYZOLvUXCF6cnZkPfoq67ThN0Hc=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "879b29ae9a0378904fbbefe0dadaed43c8905754", + "rev": "4446c7a6fc0775df028c5a3f6727945ba8400e64", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a626039..71e3f59 100644 --- a/flake.nix +++ b/flake.nix @@ -8,6 +8,11 @@ hyprpicker.url = "github:hyprwm/hyprpicker"; stylix.url = "github:danth/stylix"; + nixvim = { + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -24,11 +29,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - nvim = { - url = "github:pagedMov/pagedmov-nixvim"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - toilet = { url = "github:pagedMov/toilet-extra-fonts"; inputs.nixpkgs.follows = "nixpkgs"; @@ -40,7 +40,7 @@ nur, home-manager, self, - nvim, + nixvim, toilet, stylix, ... @@ -58,6 +58,7 @@ modules = [ ./hosts/desktop stylix.nixosModules.stylix + nixvim.nixosModules.nixvim nur.nixosModules.nur ]; }; diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 4494b72..867a32f 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -8,7 +8,7 @@ ... }: { imports = [ - ./../../modules/sys + ./../../modules/sys/configuration.nix ./hardware.nix ./settings.nix ]; diff --git a/modules/home/default.nix b/modules/home/default.nix deleted file mode 100644 index 2e4aa25..0000000 --- a/modules/home/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - host, - nur, - self, - inputs, - username, - config, - home-manager, - ... -}: let - desktop_modules = - if (host == "onagesson") - then [(import ./programs/steam.nix)] - else []; -in { - imports = - [(import ./programs/btop.nix)] - ++ [(import ./programs/yazi.nix)] - ++ [(import ./programs/kitty.nix)] - ++ [(import ./programs/fuzzel.nix)] - ++ [(import ./programs/eza.nix)] - ++ [(import ./programs/cava.nix)] - ++ [(import ./programs/bat.nix)] - ++ [(import ./programs/fzf.nix)] - ++ [(import ./programs/git.nix)] - ++ [(import ./programs/password-store.nix)] - ++ [(import ./programs/autojump.nix)] - ++ [(import ./programs/firefox.nix)] - ++ [(import ./environment/gtk.nix)] - ++ [(import ./environment/spicetify.nix)] - ++ [(import ./environment/starship.nix)] - ++ [(import ./environment/desktop_userpkgs.nix)] - ++ [(import ./environment/zshell.nix)] - ++ [(import ./waybar)] - ++ [(import ./hyprland)] - ++ [(import ./scripts)] - ++ [(import ./swaync/swaync.nix)] - ++ desktop_modules; -} diff --git a/modules/home/environment/default.nix b/modules/home/environment/default.nix new file mode 100644 index 0000000..52430fa --- /dev/null +++ b/modules/home/environment/default.nix @@ -0,0 +1,21 @@ +{ + host, + nur, + nixvim, + self, + inputs, + username, + config, + home-manager, + ... +}: { + imports = + [(import ./gtk.nix)] + ++ [(import ./spicetify.nix)] + ++ [(import ./starship.nix)] + ++ [(import ./userpkgs.nix)] + ++ [(import ./zshell.nix)] + ++ [(import ./waybar)] + ++ [(import ./hyprland)] + ++ [(import ./swaync)]; +} diff --git a/modules/home/hyprland/default.nix b/modules/home/environment/hyprland/default.nix similarity index 100% rename from modules/home/hyprland/default.nix rename to modules/home/environment/hyprland/default.nix diff --git a/modules/home/hyprland/desktop.nix b/modules/home/environment/hyprland/desktop.nix similarity index 100% rename from modules/home/hyprland/desktop.nix rename to modules/home/environment/hyprland/desktop.nix diff --git a/modules/home/hyprland/hyprland.nix b/modules/home/environment/hyprland/hyprland.nix similarity index 100% rename from modules/home/hyprland/hyprland.nix rename to modules/home/environment/hyprland/hyprland.nix diff --git a/modules/home/hyprland/laptop.nix b/modules/home/environment/hyprland/laptop.nix similarity index 100% rename from modules/home/hyprland/laptop.nix rename to modules/home/environment/hyprland/laptop.nix diff --git a/modules/home/environment/laptop_userpkgs.nix b/modules/home/environment/laptop_userpkgs.nix deleted file mode 100644 index 43014e6..0000000 --- a/modules/home/environment/laptop_userpkgs.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - pkgs, - inputs, - ... -}: let - nvim = inputs.nvim.packages."x86_64-linux".default; - toilet = inputs.toilet.packages."x86_64-linux".default; -in { - home.packages = with pkgs; [ - gtk3 - uhk-agent - sqlite - starship - zathura - imagemagick - yt-dlp - vlc - speedtest-cli - vesktop - obs-studio - neovide - chromium - zsh - zsh-syntax-highlighting - zsh-history-substring-search - zsh-autosuggestions - rustup - libreoffice - handbrake - gtrash - ripgrep - nvim - toilet - python3 - ]; -} diff --git a/modules/home/swaync/config.json b/modules/home/environment/swaync/config.json similarity index 100% rename from modules/home/swaync/config.json rename to modules/home/environment/swaync/config.json diff --git a/modules/home/swaync/swaync.nix b/modules/home/environment/swaync/default.nix similarity index 100% rename from modules/home/swaync/swaync.nix rename to modules/home/environment/swaync/default.nix diff --git a/modules/home/swaync/style.css b/modules/home/environment/swaync/style.css similarity index 100% rename from modules/home/swaync/style.css rename to modules/home/environment/swaync/style.css diff --git a/modules/home/environment/desktop_userpkgs.nix b/modules/home/environment/userpkgs.nix similarity index 91% rename from modules/home/environment/desktop_userpkgs.nix rename to modules/home/environment/userpkgs.nix index a3143ac..58f3317 100644 --- a/modules/home/environment/desktop_userpkgs.nix +++ b/modules/home/environment/userpkgs.nix @@ -4,7 +4,6 @@ host, ... }: let - nvim = inputs.nvim.packages."x86_64-linux".default; toilet = inputs.toilet.packages."x86_64-linux".default; desktop_pkgs = if (host == "oganesson") @@ -40,7 +39,6 @@ in { libreoffice gtrash ripgrep - nvim toilet python3 ] diff --git a/modules/home/waybar/default.nix b/modules/home/environment/waybar/default.nix similarity index 100% rename from modules/home/waybar/default.nix rename to modules/home/environment/waybar/default.nix diff --git a/modules/home/waybar/settings.nix b/modules/home/environment/waybar/settings.nix similarity index 100% rename from modules/home/waybar/settings.nix rename to modules/home/environment/waybar/settings.nix diff --git a/modules/home/waybar/style.nix b/modules/home/environment/waybar/style.nix similarity index 100% rename from modules/home/waybar/style.nix rename to modules/home/environment/waybar/style.nix diff --git a/modules/home/waybar/waybar.nix b/modules/home/environment/waybar/waybar.nix similarity index 100% rename from modules/home/waybar/waybar.nix rename to modules/home/environment/waybar/waybar.nix diff --git a/modules/sys/environment/users.nix b/modules/home/home-manager.nix similarity index 95% rename from modules/sys/environment/users.nix rename to modules/home/home-manager.nix index 415cf1c..72a3449 100644 --- a/modules/sys/environment/users.nix +++ b/modules/home/home-manager.nix @@ -1,10 +1,10 @@ { - config, - inputs, - pkgs, - username, - self, host, + pkgs, + self, + inputs, + username, + config, ... }: let nur = config.nur; @@ -24,7 +24,9 @@ in { }; programs.home-manager.enable = true; imports = [ - ./../../home + ./programs + ./environment + ./scripts ]; home = { username = "${username}"; diff --git a/modules/home/programs/default.nix b/modules/home/programs/default.nix new file mode 100644 index 0000000..73b59a6 --- /dev/null +++ b/modules/home/programs/default.nix @@ -0,0 +1,31 @@ +{ + host, + nur, + nixvim, + self, + inputs, + username, + config, + home-manager, + ... +}: let + desktop_modules = + if (host == "onagesson") + then [(import ./gaming)] + else []; +in { + imports = + [(import ./btop.nix)] + ++ [(import ./yazi.nix)] + ++ [(import ./kitty.nix)] + ++ [(import ./fuzzel.nix)] + ++ [(import ./eza.nix)] + ++ [(import ./cava.nix)] + ++ [(import ./bat.nix)] + ++ [(import ./fzf.nix)] + ++ [(import ./git.nix)] + ++ [(import ./password-store.nix)] + ++ [(import ./autojump.nix)] + ++ [(import ./firefox.nix)] + ++ desktop_modules; +} diff --git a/modules/home/programs/gaming/default.nix b/modules/home/programs/gaming/default.nix new file mode 100644 index 0000000..a628395 --- /dev/null +++ b/modules/home/programs/gaming/default.nix @@ -0,0 +1,7 @@ +{ ... }: + +{ + imports = + [(import ./steam.nix)] + ++ [(import ./gaming_pkgs.nix)]; +} diff --git a/modules/home/programs/gaming/gaming_pkgs.nix b/modules/home/programs/gaming/gaming_pkgs.nix new file mode 100644 index 0000000..b7689bb --- /dev/null +++ b/modules/home/programs/gaming/gaming_pkgs.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + snes9x-gtk + ]; +} diff --git a/modules/home/programs/steam.nix b/modules/home/programs/gaming/steam.nix similarity index 100% rename from modules/home/programs/steam.nix rename to modules/home/programs/gaming/steam.nix diff --git a/modules/sys/configuration.nix b/modules/sys/configuration.nix new file mode 100644 index 0000000..51d03d5 --- /dev/null +++ b/modules/sys/configuration.nix @@ -0,0 +1,17 @@ +{ + inputs, + nixpkgs, + config, + self, + username, + host, + ... +}: { + imports = [ + ./hardware + ./software + ./environment + ../home/home-manager.nix + ]; +} + diff --git a/modules/sys/default.nix b/modules/sys/default.nix deleted file mode 100644 index 1dab5e2..0000000 --- a/modules/sys/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - inputs, - nixpkgs, - config, - self, - username, - host, - ... -}: let - desktop_modules = - if (host == "oganesson") - then [ - ./software/virtualization.nix - ] - else []; -in { - imports = - [(import ./hardware/bootloader.nix)] - ++ [(import ./hardware/network.nix)] - ++ [(import ./software/packages.nix)] - ++ [(import ./software/programs.nix)] - ++ [(import ./software/services.nix)] - ++ [(import ./environment/sddm.nix)] - ++ [(import ./environment/users.nix)] - ++ [(import ./environment/stylix.nix)] - ++ desktop_modules; -} diff --git a/modules/sys/environment/default.nix b/modules/sys/environment/default.nix new file mode 100644 index 0000000..ffabb8f --- /dev/null +++ b/modules/sys/environment/default.nix @@ -0,0 +1,16 @@ + +{ + inputs, + nixpkgs, + nixvim, + config, + self, + username, + host, + ... +}: { + imports = + [(import ./sddm.nix)] + ++ [(import ./stylix.nix)]; +} + diff --git a/modules/sys/hardware/default.nix b/modules/sys/hardware/default.nix new file mode 100644 index 0000000..c748941 --- /dev/null +++ b/modules/sys/hardware/default.nix @@ -0,0 +1,16 @@ + +{ + inputs, + nixpkgs, + nixvim, + config, + self, + username, + host, + ... +}: { + imports = + [( import ./bootloader.nix )] + ++ [( import ./network.nix )]; +} + diff --git a/modules/sys/software/default.nix b/modules/sys/software/default.nix new file mode 100644 index 0000000..744ea9b --- /dev/null +++ b/modules/sys/software/default.nix @@ -0,0 +1,24 @@ + +{ + inputs, + nixpkgs, + config, + self, + username, + host, + ... +}: +let + desktop_modules = if (host == "oganesson") then + [(import ./virtualization.nix)] + else []; +in +{ + imports = + [(import ./packages.nix)] + ++ [(import ./programs.nix)] + ++ [(import ./services.nix)] + ++ [(import ./nixvim)] + ++ desktop_modules; +} + diff --git a/modules/sys/software/nixvim/autocmd.nix b/modules/sys/software/nixvim/autocmd.nix new file mode 100644 index 0000000..9508ca0 --- /dev/null +++ b/modules/sys/software/nixvim/autocmd.nix @@ -0,0 +1,36 @@ +{...}: { + programs.nixvim = { + autoCmd = [ + { + command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd= --titleposition=left zsh"; + event = ["VimEnter"]; + pattern = ["*"]; + desc = "Create a floating terminal, placed in the top right"; + } + { + command = "silent! mkview"; + event = ["BufWinLeave"]; + pattern = ["*"]; + desc = "Save session window settings to be loaded next time the file is opened"; + } + { + command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &"; + event = ["BufWinLeave"]; + pattern = ["*"]; + desc = "Play a neat little sound effect when you close neovim"; + } + { + command = "silent! loadview"; + event = ["BufWinEnter"]; + pattern = ["*"]; + desc = "Load previous session window settings for the opened file (folds, cursor pos, etc)"; + } + { + command = "setlocal textwidth = 135"; + event = ["BufWinEnter" "BufEnter"]; + pattern = ["*.md" "*.wiki" "*.txt"]; + desc = "Set automatic linebreaks in plain text file formats"; + } + ]; + }; +} diff --git a/modules/sys/software/nixvim/default.nix b/modules/sys/software/nixvim/default.nix new file mode 100644 index 0000000..50dfb49 --- /dev/null +++ b/modules/sys/software/nixvim/default.nix @@ -0,0 +1,12 @@ +{ + config, + pkgs, + ... +}: { + imports = [ + ./plugins + ./options.nix + ./keymaps.nix + ./autocmd.nix + ]; +} diff --git a/modules/sys/software/nixvim/keymaps.nix b/modules/sys/software/nixvim/keymaps.nix new file mode 100644 index 0000000..a7075de --- /dev/null +++ b/modules/sys/software/nixvim/keymaps.nix @@ -0,0 +1,31 @@ +{ + programs.nixvim = { + keymaps = [ + { + action = "W"; + key = ""; + mode = "n"; + } + { + action = "w"; + key = ""; + mode = "n"; + } + { + action = "FloatermToggle shadeterm"; + key = ""; + mode = "n"; + } + { + action = "NvimTreeToggle"; + key = ""; + mode = "n"; + } + { + action = "FloatermToggle shadeterm"; + key = ""; + mode = "t"; + } + ]; + }; +} diff --git a/modules/sys/software/nixvim/options.nix b/modules/sys/software/nixvim/options.nix new file mode 100644 index 0000000..9548d20 --- /dev/null +++ b/modules/sys/software/nixvim/options.nix @@ -0,0 +1,36 @@ +{ config, ... }: + +{ + programs.nixvim = { + enable = true; + diagnostics.signs = false; + extraConfigLua = '' + if vim.g.started_by_firenvim == true then + vim.o.laststatus = 0 + end + if vim.g.neovide then + vim.g.neovide_refresh_rate = 144 + vim.g.neovide_cursor_vfx_mode = "sonicboom" + vim.g.neovide_cursor_animate_in_insert_mode = false + end + + vim.opt.number = true + vim.opt.relativenumber = true + vim.opt.hlsearch = true + vim.opt.incsearch = true + vim.opt.shiftwidth = 2 + vim.opt.tabstop = 2 + vim.opt.termguicolors = true + vim.opt.ruler = true + vim.opt.scrolloff = 6 + vim.opt.undofile = true + vim.opt.foldmethod = "manual" + vim.opt.wrap = true + vim.opt.linebreak = true + vim.opt.textwidth = 0 + vim.opt.breakat = " \t!@*-+;:,./?" + + vim.g.mapleader = "!" + ''; + }; +} diff --git a/modules/sys/software/nixvim/plugins/alpha.nix b/modules/sys/software/nixvim/plugins/alpha.nix new file mode 100644 index 0000000..5bf4531 --- /dev/null +++ b/modules/sys/software/nixvim/plugins/alpha.nix @@ -0,0 +1,8 @@ +{ + programs.nixvim = { + plugins.alpha = { + enable = true; + theme = "dashboard"; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/barbar.nix b/modules/sys/software/nixvim/plugins/barbar.nix new file mode 100644 index 0000000..e77c725 --- /dev/null +++ b/modules/sys/software/nixvim/plugins/barbar.nix @@ -0,0 +1,10 @@ +{ + programs.nixvim = { + plugins.barbar = { + enable = true; + settings = { + auto_hide = 1; + }; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/cmp.nix b/modules/sys/software/nixvim/plugins/cmp.nix new file mode 100644 index 0000000..3dfc9b8 --- /dev/null +++ b/modules/sys/software/nixvim/plugins/cmp.nix @@ -0,0 +1,12 @@ +{ + programs.nixvim = { + plugins.cmp = { + autoEnableSources = true; + settings.sources = [ + {name = "nvim_lsp";} + {name = "path";} + {name = "buffer";} + ]; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/coq.nix b/modules/sys/software/nixvim/plugins/coq.nix new file mode 100644 index 0000000..cadede4 --- /dev/null +++ b/modules/sys/software/nixvim/plugins/coq.nix @@ -0,0 +1,10 @@ +{ + programs.nixvim = { + plugins.coq-nvim = { + enable = true; + settings = { + auto_start = true; + }; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/default.nix b/modules/sys/software/nixvim/plugins/default.nix new file mode 100644 index 0000000..9bad1ba --- /dev/null +++ b/modules/sys/software/nixvim/plugins/default.nix @@ -0,0 +1,15 @@ +{ + imports = [ + ./alpha.nix + ./vim-matchup.nix + ./coq.nix + ./barbar.nix + ./cmp.nix + ./lsp.nix + ./lualine.nix + ./plugins.nix + ./nvim-tree.nix + ./telescope.nix + ./extra_plugins.nix + ]; +} diff --git a/modules/sys/software/nixvim/plugins/extra_plugins.nix b/modules/sys/software/nixvim/plugins/extra_plugins.nix new file mode 100644 index 0000000..225f5ee --- /dev/null +++ b/modules/sys/software/nixvim/plugins/extra_plugins.nix @@ -0,0 +1,52 @@ +{pkgs, ...}: { + programs.nixvim = { + extraPlugins = [ + (pkgs.vimUtils.buildVimPlugin { + # vimwiki + name = "vimwiki"; + src = pkgs.fetchFromGitHub { + owner = "vimwiki"; + repo = "vimwiki"; + rev = "705ad1e0dded0e3b7ff5fac78547ab67c9d39bdf"; + hash = "sha256-Upx29rIPwW/e7Lkmf0PNOpIACnAXIzlkfa6V1p2nYHM="; + }; + }) + (pkgs.vimUtils.buildVimPlugin { + name = "vim-markdown"; + src = pkgs.fetchFromGitHub { + owner = "preservim"; + repo = "vim-markdown"; + rev = "8f6cb3a6ca4e3b6bcda0730145a0b700f3481b51"; + hash = "sha256-ZCCSjZ5Xok4rnIwfa4VUEaz6d3oW9066l0EkoqiTppM="; + }; + }) + (pkgs.vimUtils.buildVimPlugin { + name = "vim-sneak"; + src = pkgs.fetchFromGitHub { + owner = "justinmk"; + repo = "vim-sneak"; + rev = "c13d0497139b8796ff9c44ddb9bc0dc9770ad2dd"; + hash = "sha256-ndWhnV0fgCcqCGwVyM07GfmUB3CitBZbOWvZtsB1tBk="; + }; + }) + (pkgs.vimUtils.buildVimPlugin { + name = "vim-slash"; + src = pkgs.fetchFromGitHub { + owner = "junegunn"; + repo = "vim-slash"; + rev = "31aee09b7ea8893a18fa34f65e63e364fc998444"; + hash = "sha256-hC590lmKBssLCSKPF9O2cnt6TCJkklzbbhDNhf1ozUU="; + }; + }) + (pkgs.vimUtils.buildVimPlugin { + name = "automkdir.nvim"; + src = pkgs.fetchFromGitHub { + owner = "mateuszwieloch"; + repo = "automkdir.nvim"; + rev = "beeb2dd76f1c3ac776d901c43217a774f1f045de"; + hash = "sha256-lKSCZ80b/+OV56858FDK7x/zhcuU/AWuCDe+8NdhziU="; + }; + }) + ]; + }; +} diff --git a/modules/sys/software/nixvim/plugins/lsp.nix b/modules/sys/software/nixvim/plugins/lsp.nix new file mode 100644 index 0000000..8238c2a --- /dev/null +++ b/modules/sys/software/nixvim/plugins/lsp.nix @@ -0,0 +1,20 @@ +{ + programs.nixvim = { + plugins.lsp = { + enable = true; + servers = { + bashls.enable = true; + ccls.enable = true; + clangd.enable = true; + cmake.enable = true; + html.enable = true; + jsonls.enable = true; + lua_ls.enable = true; + marksman.enable = true; + nil_ls.enable = true; + pyright.enable = true; + sqls.enable = true; + }; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/lualine.nix b/modules/sys/software/nixvim/plugins/lualine.nix new file mode 100644 index 0000000..f06ed52 --- /dev/null +++ b/modules/sys/software/nixvim/plugins/lualine.nix @@ -0,0 +1,44 @@ +{ + programs.nixvim = { + plugins.lualine = { + enable = true; + settings = { + options = { + icons_enabled = true; + theme = "auto"; + component_separators = { + left = ""; + right = ""; + }; + section_separators = { + left = ""; + right = ""; + }; + always_divide_middle = true; + globalstatus = false; + refresh = { + statusline = 1000; + tabline = 1000; + winbar = 1000; + }; + }; + sections = { + lualine_a = ["mode"]; + lualine_b = ["buffers"]; + lualine_c = [""]; + lualine_x = ["searchcount" "fileformat" "filetype"]; + lualine_y = ["branch" "diff" "diagnostics"]; + lualine_z = ["location"]; + }; + inactive_sections = { + lualine_a = []; + lualine_b = []; + lualine_c = ["filename"]; + lualine_x = ["location"]; + lualine_y = []; + lualine_z = []; + }; + }; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/nvim-tree.nix b/modules/sys/software/nixvim/plugins/nvim-tree.nix new file mode 100644 index 0000000..7087430 --- /dev/null +++ b/modules/sys/software/nixvim/plugins/nvim-tree.nix @@ -0,0 +1,88 @@ +{ + programs.nixvim = { + plugins.nvim-tree = { + enable = true; + hijackUnnamedBufferWhenOpening = false; + openOnSetup = false; + onAttach = { + __raw = '' + function(bufnr) + local api = require('nvim-tree.api') + + local function opts(desc) + return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } + end + + -- BEGIN_DEFAULT_ON_ATTACH + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set('n', '', api.node.open.replace_tree_buffer, opts('Open: In Place')) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) + vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) + vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set('n', '', api.node.open.vertical, opts('Open: Vertical Split')) + vim.keymap.set('n', '', api.node.open.horizontal, opts('Open: Horizontal Split')) + vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'b', api.node.open.preview, opts('Open Preview')) + vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) + vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) + vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create File Or Directory')) + vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) + vim.keymap.set('n', 'bt', api.marks.bulk.trash, opts('Trash Bookmarked')) + vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) + vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle Filter: No Buffer')) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Filter: Git Clean')) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) + vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) + vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) + vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic')) + vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic')) + vim.keymap.set('n', 'F', api.live_filter.clear, opts('Live Filter: Clear')) + vim.keymap.set('n', 'f', api.live_filter.start, opts('Live Filter: Start')) + vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) + vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) + vim.keymap.set('n', 'ge', api.fs.copy.basename, opts('Copy Basename')) + vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Filter: Dotfiles')) + vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Filter: Git Ignore')) + vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) + vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) + vim.keymap.set('n', 'L', api.node.open.toggle_group_empty, opts('Toggle Group Empty')) + vim.keymap.set('n', 'M', api.tree.toggle_no_bookmark_filter, opts('Toggle Filter: No Bookmark')) + vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker')) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) + vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) + vim.keymap.set('n', 'u', api.fs.rename_full, opts('Rename: Full Path')) + vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden')) + vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) + vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD')) + -- END_DEFAULT_ON_ATTACH + end + ''; + }; + view = { + side = "right"; + centralizeSelection = true; + number = true; + relativenumber = true; + width = 40; + }; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/plugins.nix b/modules/sys/software/nixvim/plugins/plugins.nix new file mode 100644 index 0000000..ec0a3a3 --- /dev/null +++ b/modules/sys/software/nixvim/plugins/plugins.nix @@ -0,0 +1,24 @@ +{ + programs.nixvim = { + plugins = { + nvim-surround.enable = true; + indent-blankline.enable = true; + treesitter.enable = true; + lastplace.enable = true; + markdown-preview.enable = true; + gitsigns.enable = true; + web-devicons.enable = true; + endwise.enable = true; + marks.enable = true; + trouble.enable = true; + floaterm.enable = true; + fugitive.enable = true; + rustaceanvim.enable = true; + firenvim.enable = true; + dap = { + enable = true; + extensions.dap-ui.enable = true; + }; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/telescope.nix b/modules/sys/software/nixvim/plugins/telescope.nix new file mode 100644 index 0000000..a3e9e04 --- /dev/null +++ b/modules/sys/software/nixvim/plugins/telescope.nix @@ -0,0 +1,14 @@ +{ + programs.nixvim = { + plugins.telescope = { + enable = true; + settings = { + pickers = { + find_files = { + hidden = true; + }; + }; + }; + }; + }; +} diff --git a/modules/sys/software/nixvim/plugins/vim-matchup.nix b/modules/sys/software/nixvim/plugins/vim-matchup.nix new file mode 100644 index 0000000..ac569fd --- /dev/null +++ b/modules/sys/software/nixvim/plugins/vim-matchup.nix @@ -0,0 +1,23 @@ +{ + programs.nixvim = { + plugins.vim-matchup = { + enable = true; + enableSurround = true; + textObj.enable = true; + motion = { + enable = true; + cursorEnd = true; + }; + matchParen = { + hiSurroundAlways = true; + offscreen = { + method = "popup"; + }; + }; + treesitterIntegration = { + enable = true; + includeMatchWords = true; + }; + }; + }; +}