feat: migrating neovim
This commit is contained in:
parent
86266f8205
commit
8d5e0e6566
47 changed files with 1964 additions and 222 deletions
|
|
@ -5,7 +5,6 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
sound.enable = true;
|
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
stylix = {
|
stylix = {
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-terminal-storm.yaml";
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml";
|
||||||
image = ./wallpaper.jpg;
|
# image = ./wallpaper.jpg;
|
||||||
|
image = ../../wallpapers/nix-black-4k.png;
|
||||||
|
#polarity = "dark";
|
||||||
autoEnable = true;
|
autoEnable = true;
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
|
|
||||||
285
flake.lock
generated
285
flake.lock
generated
|
|
@ -254,19 +254,17 @@
|
||||||
},
|
},
|
||||||
"devshell": {
|
"devshell": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_3",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"neovim-config",
|
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717408969,
|
"lastModified": 1722113426,
|
||||||
"narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=",
|
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"rev": "1ebbe68d57457c8cae98145410b164b5477761f4",
|
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -340,11 +338,11 @@
|
||||||
"flake-compat_5": {
|
"flake-compat_5": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1673956053,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -369,52 +367,19 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_7": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1673956053,
|
|
||||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_8": {
|
|
||||||
"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-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"neovim-config",
|
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717285511,
|
"lastModified": 1722555600,
|
||||||
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
|
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
|
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -464,11 +429,11 @@
|
||||||
"systems": "systems_5"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -513,25 +478,26 @@
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
"git-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_4",
|
"flake-compat": [
|
||||||
|
"nixvim",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
"gitignore": "gitignore_2",
|
"gitignore": "gitignore_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"neovim-config",
|
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": [
|
"nixpkgs-stable": [
|
||||||
"neovim-config",
|
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719259945,
|
"lastModified": 1723202784,
|
||||||
"narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=",
|
"narHash": "sha256-qbhjc/NEGaDbyy0ucycubq4N3//gDFFH3DOmp1D3u1Q=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07",
|
"rev": "c7012d0c18567c889b948781bc74a501e92275d1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -565,7 +531,6 @@
|
||||||
"gitignore_2": {
|
"gitignore_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"neovim-config",
|
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"git-hooks",
|
"git-hooks",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
|
@ -586,28 +551,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore_3": {
|
"gitignore_3": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"neovim-config",
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore_4": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"pre-commit-hooks",
|
"pre-commit-hooks",
|
||||||
|
|
@ -694,17 +637,16 @@
|
||||||
"home-manager_2": {
|
"home-manager_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"neovim-config",
|
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719588253,
|
"lastModified": 1723399884,
|
||||||
"narHash": "sha256-A03i8xiVgP14DCmV5P7VUv37eodCjY4e1iai0b2EuuM=",
|
"narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7e68e55d2e16d3a1e92a679430728c35a30fd24e",
|
"rev": "086f619dd991a4d355c07837448244029fc2d9ab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -775,11 +717,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723579231,
|
"lastModified": 1723656907,
|
||||||
"narHash": "sha256-PL9C3aOetj+TS+vXvNhh7q5bm3g70oakg+iSu5eQBUQ=",
|
"narHash": "sha256-11tgstIQZP3RRrBEF3ym9L6oS+vzqZJ7Mp6eB2PaN+0=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "3b4aabe04c7756fb0a70d78b6f0e701228f46345",
|
"rev": "197f8807900afc81c1c92ad17e621d1998ee268b",
|
||||||
"revCount": 5087,
|
"revCount": 5088,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
|
|
@ -896,26 +838,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"neovim-config": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs_4",
|
|
||||||
"nixvim": "nixvim",
|
|
||||||
"pre-commit-hooks": "pre-commit-hooks_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1720909351,
|
|
||||||
"narHash": "sha256-LCu37KwuttiyteM3YceYwrRI7pbpJf/X6frWYNsUbos=",
|
|
||||||
"owner": "gwg313",
|
|
||||||
"repo": "nvim-nix",
|
|
||||||
"rev": "155587a7367579026137db5f4c882555e74205e3",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "gwg313",
|
|
||||||
"repo": "nvim-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix": {
|
"nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
|
|
@ -945,17 +867,16 @@
|
||||||
"nix-darwin": {
|
"nix-darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"neovim-config",
|
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719128254,
|
"lastModified": 1722924007,
|
||||||
"narHash": "sha256-I7jMpq0CAOZA/i70+HDQO/ulLttyQu/K70cSESiMX7A=",
|
"narHash": "sha256-+CQDamNwqO33REJLft8c26NbUi2Td083hq6SvAm2xkU=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "50581970f37f06a4719001735828519925ef8310",
|
"rev": "91010a5613ffd7ee23ee9263213157a1c422b705",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1100,22 +1021,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1718811006,
|
|
||||||
"narHash": "sha256-0Y8IrGhRmBmT7HHXlxxepg2t8j1X90++qRN3lukGaIk=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "03d771e513ce90147b65fe922d87d3a0356fc125",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-23.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable_3": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1720386169,
|
"lastModified": 1720386169,
|
||||||
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
||||||
|
|
@ -1131,7 +1036,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_4": {
|
"nixpkgs-stable_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721524707,
|
"lastModified": 1721524707,
|
||||||
"narHash": "sha256-5NctRsoE54N86nWd0psae70YSLfrOek3Kv1e8KoXe/0=",
|
"narHash": "sha256-5NctRsoE54N86nWd0psae70YSLfrOek3Kv1e8KoXe/0=",
|
||||||
|
|
@ -1196,38 +1101,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1719506693,
|
|
||||||
"narHash": "sha256-C8e9S7RzshSdHB7L+v9I51af1gDM5unhJ2xO1ywxNH8=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "b2852eb9365c6de48ffb0dc2c9562591f652242a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_5": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1719506693,
|
|
||||||
"narHash": "sha256-C8e9S7RzshSdHB7L+v9I51af1gDM5unhJ2xO1ywxNH8=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "b2852eb9365c6de48ffb0dc2c9562591f652242a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_6": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723362943,
|
"lastModified": 1723362943,
|
||||||
"narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
|
"narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
|
||||||
|
|
@ -1243,7 +1116,23 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1723175592,
|
||||||
|
"narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "5e0ca22929f3342b19569b21b2f3462f053e497b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721466660,
|
"lastModified": 1721466660,
|
||||||
"narHash": "sha256-pFSxgSZqZ3h+5Du0KvEL1ccDZBwu4zvOil1zzrPNb3c=",
|
"narHash": "sha256-pFSxgSZqZ3h+5Du0KvEL1ccDZBwu4zvOil1zzrPNb3c=",
|
||||||
|
|
@ -1259,7 +1148,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715534503,
|
"lastModified": 1715534503,
|
||||||
"narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=",
|
"narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=",
|
||||||
|
|
@ -1284,14 +1173,15 @@
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5",
|
||||||
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719766415,
|
"lastModified": 1723670331,
|
||||||
"narHash": "sha256-VM/R+4pnY5twlwk/kCRNAgeyWQG7cjgXkhopboxwIi8=",
|
"narHash": "sha256-bQaWqflbYdOn28NJHMTMMPgswlQRXhZh+a3WQAeyaFE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "714aa7bb18269b4ff8c3430e6b30689d340f3fcd",
|
"rev": "a96aa9730af8c85dd7ed15e359ac23e9686f0a9a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1300,6 +1190,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nuschtosSearch": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1723367906,
|
||||||
|
"narHash": "sha256-v1qA4WBGDI2uH/TVqRwuXSBP341W681psbzYJ8zrjog=",
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"rev": "6ca2c3ae05a915c160512bd41f6810f456c9b30d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"poetry2nix": {
|
"poetry2nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
|
|
@ -1355,37 +1267,13 @@
|
||||||
},
|
},
|
||||||
"pre-commit-hooks_2": {
|
"pre-commit-hooks_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_5",
|
"flake-compat": "flake-compat_4",
|
||||||
"gitignore": "gitignore_3",
|
"gitignore": "gitignore_3",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"neovim-config",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
|
||||||
"lastModified": 1719259945,
|
|
||||||
"narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "pre-commit-hooks.nix",
|
|
||||||
"rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "pre-commit-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pre-commit-hooks_3": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_6",
|
|
||||||
"gitignore": "gitignore_4",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723202784,
|
"lastModified": 1723202784,
|
||||||
"narHash": "sha256-qbhjc/NEGaDbyy0ucycubq4N3//gDFFH3DOmp1D3u1Q=",
|
"narHash": "sha256-qbhjc/NEGaDbyy0ucycubq4N3//gDFFH3DOmp1D3u1Q=",
|
||||||
|
|
@ -1406,11 +1294,11 @@
|
||||||
"devenv": "devenv",
|
"devenv": "devenv",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"neovim-config": "neovim-config",
|
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"pre-commit-hooks": "pre-commit-hooks_3",
|
"nixvim": "nixvim",
|
||||||
|
"pre-commit-hooks": "pre-commit-hooks_2",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
"superfile": "superfile"
|
"superfile": "superfile"
|
||||||
|
|
@ -1418,8 +1306,8 @@
|
||||||
},
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7",
|
"nixpkgs": "nixpkgs_6",
|
||||||
"nixpkgs-stable": "nixpkgs-stable_4"
|
"nixpkgs-stable": "nixpkgs-stable_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723501126,
|
"lastModified": 1723501126,
|
||||||
|
|
@ -1444,7 +1332,7 @@
|
||||||
"base16-kitty": "base16-kitty",
|
"base16-kitty": "base16-kitty",
|
||||||
"base16-tmux": "base16-tmux",
|
"base16-tmux": "base16-tmux",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"flake-compat": "flake-compat_7",
|
"flake-compat": "flake-compat_5",
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"home-manager": "home-manager_3",
|
"home-manager": "home-manager_3",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -1467,10 +1355,10 @@
|
||||||
},
|
},
|
||||||
"superfile": {
|
"superfile": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_8",
|
"flake-compat": "flake-compat_6",
|
||||||
"flake-utils": "flake-utils_4",
|
"flake-utils": "flake-utils_4",
|
||||||
"gomod2nix": "gomod2nix",
|
"gomod2nix": "gomod2nix",
|
||||||
"nixpkgs": "nixpkgs_8"
|
"nixpkgs": "nixpkgs_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722991483,
|
"lastModified": 1722991483,
|
||||||
|
|
@ -1579,17 +1467,16 @@
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"neovim-config",
|
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719243788,
|
"lastModified": 1723454642,
|
||||||
"narHash": "sha256-9T9mSY35EZSM1KAwb7K9zwQ78qTlLjosZgtUGnw4rn4=",
|
"narHash": "sha256-S0Gvsenh0II7EAaoc9158ZB4vYyuycvMGKGxIbERNAM=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "065a23edceff48f948816b795ea8cc6c0dee7cdf",
|
"rev": "349de7bc435bdff37785c2466f054ed1766173be",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
};
|
};
|
||||||
ags.url = "github:Aylur/ags";
|
ags.url = "github:Aylur/ags";
|
||||||
|
|
||||||
neovim-config.url = "github:gwg313/nvim-nix";
|
# neovim-config.url = "github:gwg313/nvim-nix";
|
||||||
|
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
|
||||||
|
|
@ -46,6 +46,10 @@
|
||||||
url = "github:MHNightCat/superfile";
|
url = "github:MHNightCat/superfile";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
};
|
||||||
|
|
||||||
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
||||||
pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@
|
||||||
../modules/ssh.nix
|
../modules/ssh.nix
|
||||||
../modules/gh-dash.nix
|
../modules/gh-dash.nix
|
||||||
../modules/ags.nix
|
../modules/ags.nix
|
||||||
|
../modules/neovim
|
||||||
|
../modules/yazi.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
|
|
@ -39,9 +41,7 @@
|
||||||
|
|
||||||
# You can also add overlays exported from other flakes:
|
# You can also add overlays exported from other flakes:
|
||||||
# neovim-nightly-overlay.overlays.default
|
# neovim-nightly-overlay.overlays.default
|
||||||
(final: prev: {
|
(final: prev: {neovim = inputs.neovim-config.packages."x86_64-linux".default;})
|
||||||
neovim = inputs.neovim-config.packages."x86_64-linux".default;
|
|
||||||
})
|
|
||||||
|
|
||||||
# Or define it inline, for example:
|
# Or define it inline, for example:
|
||||||
# (final: prev: {
|
# (final: prev: {
|
||||||
|
|
@ -65,8 +65,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-terminal-storm.yaml";
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml";
|
||||||
image = ./wallpaper.jpg;
|
image = ../../wallpapers/nix-black-4k.png;
|
||||||
autoEnable = true;
|
autoEnable = true;
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
# Add stuff for your user as you see fit:
|
# Add stuff for your user as you see fit:
|
||||||
# programs.neovim.enable = true;
|
# programs.neovim.enable = true;
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [openvpn];
|
||||||
openvpn
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable home-manager and git
|
# Enable home-manager and git
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,8 @@
|
||||||
../modules/devenv.nix
|
../modules/devenv.nix
|
||||||
../modules/gh-dash.nix
|
../modules/gh-dash.nix
|
||||||
../modules/ssh.nix
|
../modules/ssh.nix
|
||||||
|
../modules/neovim/default.nix
|
||||||
|
../modules/yazi.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
|
|
@ -37,9 +39,9 @@
|
||||||
|
|
||||||
# You can also add overlays exported from other flakes:
|
# You can also add overlays exported from other flakes:
|
||||||
# neovim-nightly-overlay.overlays.default
|
# neovim-nightly-overlay.overlays.default
|
||||||
(final: prev: {
|
# (final: prev: {
|
||||||
neovim = inputs.neovim-config.packages."x86_64-linux".default;
|
# neovim = inputs.neovim-config.packages."x86_64-linux".default;
|
||||||
})
|
# })
|
||||||
|
|
||||||
# Or define it inline, for example:
|
# Or define it inline, for example:
|
||||||
# (final: prev: {
|
# (final: prev: {
|
||||||
|
|
@ -63,10 +65,12 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-terminal-storm.yaml";
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml";
|
||||||
image = ./wallpaper.jpg;
|
image = ../../wallpapers/nix-black-4k.png;
|
||||||
|
# polarity = "dark";
|
||||||
autoEnable = true;
|
autoEnable = true;
|
||||||
enable = true;
|
enable = true;
|
||||||
|
targets.nixvim.enable = false;
|
||||||
|
|
||||||
opacity.terminal = 1.0;
|
opacity.terminal = 1.0;
|
||||||
fonts.sizes.terminal = 20;
|
fonts.sizes.terminal = 20;
|
||||||
|
|
@ -101,9 +105,7 @@
|
||||||
|
|
||||||
# Add stuff for your user as you see fit:
|
# Add stuff for your user as you see fit:
|
||||||
# programs.neovim.enable = true;
|
# programs.neovim.enable = true;
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [openvpn];
|
||||||
openvpn
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable home-manager and git
|
# Enable home-manager and git
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
|
||||||
BIN
home-manager/machines/wallpaper2.png
Normal file
BIN
home-manager/machines/wallpaper2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.4 MiB |
|
|
@ -10,6 +10,7 @@
|
||||||
gtksourceview
|
gtksourceview
|
||||||
webkitgtk
|
webkitgtk
|
||||||
accountsservice
|
accountsservice
|
||||||
|
libdbusmenu-gtk3
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
# A fast, GPU-accelerated terminal emulator.
|
# A fast, GPU-accelerated terminal emulator.
|
||||||
{...}: {
|
{pkgs, ...}: {
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
env = {TERM = "xterm-256color";};
|
env = {
|
||||||
|
TERM = "xterm-256color";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
home.packages = with pkgs; [ueberzugpp];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
home.packages = with pkgs;
|
home.packages = with pkgs;
|
||||||
[
|
[
|
||||||
# Editors
|
# Editors
|
||||||
neovim # Improved version of vim, often used with overlays.
|
# neovim # Improved version of vim, often used with overlays.
|
||||||
vim # Highly configurable text editor popular for efficiency and extensibility.
|
vim # Highly configurable text editor popular for efficiency and extensibility.
|
||||||
|
|
||||||
# Builtin Replacements
|
# Builtin Replacements
|
||||||
|
|
@ -53,6 +53,9 @@
|
||||||
tree # Displays directory structure in a tree-like format.
|
tree # Displays directory structure in a tree-like format.
|
||||||
unzip # Command-line tool for extracting files from ZIP archives.
|
unzip # Command-line tool for extracting files from ZIP archives.
|
||||||
yt-dlp # Fork of youtube-dl, facilitating video downloads from various sites.
|
yt-dlp # Fork of youtube-dl, facilitating video downloads from various sites.
|
||||||
|
age
|
||||||
|
portal
|
||||||
|
atac
|
||||||
|
|
||||||
# TUI Apps
|
# TUI Apps
|
||||||
#ncdu_2
|
#ncdu_2
|
||||||
|
|
@ -77,6 +80,7 @@
|
||||||
entr # Event notifier for automation and development, executing commands whenever files change in the specified directory.
|
entr # Event notifier for automation and development, executing commands whenever files change in the specified directory.
|
||||||
git-cliff # Tool for visualizing project commit history and generating release notes.
|
git-cliff # Tool for visualizing project commit history and generating release notes.
|
||||||
grex # Tool generating regular expressions from user-provided test cases.
|
grex # Tool generating regular expressions from user-provided test cases.
|
||||||
|
sshs
|
||||||
|
|
||||||
# Nix Tools
|
# Nix Tools
|
||||||
alejandra # Nix code formatter.
|
alejandra # Nix code formatter.
|
||||||
|
|
|
||||||
26
home-manager/modules/neovim/default.nix
Normal file
26
home-manager/modules/neovim/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
# A cat clone with syntax highlighting and Git integration.
|
||||||
|
{inputs, ...}: {
|
||||||
|
imports = [
|
||||||
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
|
./options.nix
|
||||||
|
./plugins
|
||||||
|
];
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
luaLoader.enable = true;
|
||||||
|
|
||||||
|
performance = {
|
||||||
|
combinePlugins = {
|
||||||
|
enable = true;
|
||||||
|
standalonePlugins = [
|
||||||
|
"hmts.nvim"
|
||||||
|
"nvim-treesitter"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
byteCompileLua.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
64
home-manager/modules/neovim/options.nix
Normal file
64
home-manager/modules/neovim/options.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
globals = {
|
||||||
|
mapleader = " ";
|
||||||
|
# Disable useless providers
|
||||||
|
loaded_ruby_provider = 0; # Ruby
|
||||||
|
loaded_perl_provider = 0; # Perl
|
||||||
|
loaded_python_provider = 0; # Python 2
|
||||||
|
};
|
||||||
|
|
||||||
|
clipboard = {
|
||||||
|
# Use system clipboard
|
||||||
|
register = "unnamedplus";
|
||||||
|
|
||||||
|
providers.wl-copy.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
opts = {
|
||||||
|
updatetime = 100; # Faster completion
|
||||||
|
|
||||||
|
# Line numbers
|
||||||
|
relativenumber = true; # Relative line numbers
|
||||||
|
number = true; # Display the absolute line number of the current line
|
||||||
|
hidden = true; # Keep closed buffer open in the background
|
||||||
|
mouse = "a"; # Enable mouse control
|
||||||
|
mousemodel = "extend"; # Mouse right-click extends the current selection
|
||||||
|
splitbelow = true; # A new window is put below the current one
|
||||||
|
splitright = true; # A new window is put right of the current one
|
||||||
|
|
||||||
|
swapfile = false; # Disable the swap file
|
||||||
|
modeline = true; # Tags such as 'vim:ft=sh'
|
||||||
|
modelines = 100; # Sets the type of modelines
|
||||||
|
undofile = true; # Automatically save and restore undo history
|
||||||
|
incsearch = true; # Incremental search: show match for partly typed search command
|
||||||
|
inccommand = "split"; # Search and replace: preview changes in quickfix list
|
||||||
|
ignorecase = true; # When the search query is lower-case, match both lower and upper-case
|
||||||
|
# patterns
|
||||||
|
smartcase = true; # Override the 'ignorecase' option if the search pattern contains upper
|
||||||
|
# case characters
|
||||||
|
scrolloff = 8; # Number of screen lines to show around the cursor
|
||||||
|
cursorline = false; # Highlight the screen line of the cursor
|
||||||
|
cursorcolumn = false; # Highlight the screen column of the cursor
|
||||||
|
signcolumn = "yes"; # Whether to show the signcolumn
|
||||||
|
colorcolumn = ""; # Columns to highlight
|
||||||
|
laststatus = 3; # When to use a status line for the last window
|
||||||
|
fileencoding = "utf-8"; # File-content encoding for the current buffer
|
||||||
|
termguicolors = true; # Enables 24-bit RGB color in the |TUI|
|
||||||
|
spell = false; # Highlight spelling mistakes (local to window)
|
||||||
|
wrap = false; # Prevent text from wrapping
|
||||||
|
|
||||||
|
# Tab options
|
||||||
|
tabstop = 4; # Number of spaces a <Tab> in the text stands for (local to buffer)
|
||||||
|
shiftwidth = 4; # Number of spaces used for each step of (auto)indent (local to buffer)
|
||||||
|
expandtab = true; # Expand <Tab> to spaces in Insert mode (local to buffer)
|
||||||
|
autoindent = true; # Do clever autoindenting
|
||||||
|
|
||||||
|
textwidth = 0; # Maximum width of text that is being inserted. A longer line will be
|
||||||
|
# broken after white space to get this width.
|
||||||
|
|
||||||
|
# Folding
|
||||||
|
foldlevel = 99; # Folds with a level higher than this number will be closed
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home-manager/modules/neovim/plugins/autopairs.nix
Normal file
7
home-manager/modules/neovim/plugins/autopairs.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.nvim-autopairs = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
231
home-manager/modules/neovim/plugins/bufferline.nix
Normal file
231
home-manager/modules/neovim/plugins/bufferline.nix
Normal file
|
|
@ -0,0 +1,231 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.bufferline = let
|
||||||
|
mouse = {
|
||||||
|
right =
|
||||||
|
# lua
|
||||||
|
"'vertical sbuffer %d'";
|
||||||
|
close =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(bufnum)
|
||||||
|
require("mini.bufremove").delete(bufnum)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
options = {
|
||||||
|
mode = "buffers";
|
||||||
|
always_show_bufferline = true;
|
||||||
|
buffer_close_icon = "";
|
||||||
|
close_command.__raw = mouse.close;
|
||||||
|
close_icon = "";
|
||||||
|
diagnostics = "nvim_lsp";
|
||||||
|
diagnostics_indicator =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(count, level, diagnostics_dict, context)
|
||||||
|
local s = ""
|
||||||
|
for e, n in pairs(diagnostics_dict) do
|
||||||
|
local sym = e == "error" and " "
|
||||||
|
or (e == "warning" and " " or "" )
|
||||||
|
if(sym ~= "") then
|
||||||
|
s = s .. " " .. n .. sym
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return s
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
# Will make sure all names in bufferline are unique
|
||||||
|
enforce_regular_tabs = false;
|
||||||
|
|
||||||
|
groups = {
|
||||||
|
options = {
|
||||||
|
toggle_hidden_on_enter = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
items = [
|
||||||
|
{
|
||||||
|
name = "Tests";
|
||||||
|
highlight = {
|
||||||
|
underline = true;
|
||||||
|
fg = "#a6da95";
|
||||||
|
sp = "#494d64";
|
||||||
|
};
|
||||||
|
priority = 2;
|
||||||
|
# icon = "";
|
||||||
|
matcher.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(buf)
|
||||||
|
return buf.name:match('%test') or buf.name:match('%.spec')
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Docs";
|
||||||
|
highlight = {
|
||||||
|
undercurl = true;
|
||||||
|
fg = "#ffffff";
|
||||||
|
sp = "#494d64";
|
||||||
|
};
|
||||||
|
auto_close = false;
|
||||||
|
matcher.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(buf)
|
||||||
|
return buf.name:match('%.md') or buf.name:match('%.txt')
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
indicator = {
|
||||||
|
style = "icon";
|
||||||
|
icon = "▎";
|
||||||
|
};
|
||||||
|
|
||||||
|
left_trunc_marker = "";
|
||||||
|
max_name_length = 18;
|
||||||
|
max_prefix_length = 15;
|
||||||
|
modified_icon = "●";
|
||||||
|
|
||||||
|
numbers.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(opts)
|
||||||
|
return string.format('%s·%s', opts.raise(opts.id), opts.lower(opts.ordinal))
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
persist_buffer_sort = true;
|
||||||
|
right_mouse_command.__raw = mouse.right;
|
||||||
|
right_trunc_marker = "";
|
||||||
|
separator_style = "slant";
|
||||||
|
show_buffer_close_icons = true;
|
||||||
|
show_buffer_icons = true;
|
||||||
|
show_close_icon = true;
|
||||||
|
show_tab_indicators = true;
|
||||||
|
sort_by = "extension";
|
||||||
|
tab_size = 18;
|
||||||
|
|
||||||
|
offsets = [
|
||||||
|
{
|
||||||
|
filetype = "neo-tree";
|
||||||
|
text = "File Explorer";
|
||||||
|
text_align = "center";
|
||||||
|
highlight = "Directory";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# NOTE: fixes colorscheme with transparent_background
|
||||||
|
# and better contrast selected tabs
|
||||||
|
highlights = let
|
||||||
|
commonBgColor = "#363a4f";
|
||||||
|
commonFgColor = "#1e2030";
|
||||||
|
|
||||||
|
commonSelectedAttrs = {
|
||||||
|
bg = commonBgColor;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Define a set with common selected attributes
|
||||||
|
selectedAttrsSet = builtins.listToAttrs (
|
||||||
|
map
|
||||||
|
(name: {
|
||||||
|
inherit name;
|
||||||
|
value = commonSelectedAttrs;
|
||||||
|
})
|
||||||
|
[
|
||||||
|
# "separator_selected" # Handled uniquely
|
||||||
|
"buffer_selected"
|
||||||
|
"tab_selected"
|
||||||
|
"numbers_selected"
|
||||||
|
"close_button_selected"
|
||||||
|
"duplicate_selected"
|
||||||
|
"modified_selected"
|
||||||
|
"info_selected"
|
||||||
|
"warning_selected"
|
||||||
|
"error_selected"
|
||||||
|
"hint_selected"
|
||||||
|
"diagnostic_selected"
|
||||||
|
"info_diagnostic_selected"
|
||||||
|
"warning_diagnostic_selected"
|
||||||
|
"error_diagnostic_selected"
|
||||||
|
"hint_diagnostic_selected"
|
||||||
|
]
|
||||||
|
);
|
||||||
|
in
|
||||||
|
# Merge the common selected attributes with the unique attributes
|
||||||
|
selectedAttrsSet
|
||||||
|
// {
|
||||||
|
fill = {
|
||||||
|
bg = commonFgColor;
|
||||||
|
};
|
||||||
|
separator = {
|
||||||
|
fg = commonFgColor;
|
||||||
|
};
|
||||||
|
separator_visible = {
|
||||||
|
fg = commonFgColor;
|
||||||
|
};
|
||||||
|
separator_selected = {
|
||||||
|
bg = commonBgColor;
|
||||||
|
fg = commonFgColor;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bP";
|
||||||
|
action = ":BufferLineTogglePin<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Pin buffer toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bp";
|
||||||
|
action = ":BufferLinePick<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Pick Buffer";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bsd";
|
||||||
|
action = ":BufferLineSortByDirectory<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Sort By Directory";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bse";
|
||||||
|
action = ":BufferLineSortByExtension<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Sort By Extension";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bsr";
|
||||||
|
action = ":BufferLineSortByRelativeDirectory<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Sort By Relative Directory";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
65
home-manager/modules/neovim/plugins/catppuccin.nix
Normal file
65
home-manager/modules/neovim/plugins/catppuccin.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
_: {
|
||||||
|
programs.nixvim = {
|
||||||
|
colorschemes.catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
dim_inactive = {
|
||||||
|
enabled = false;
|
||||||
|
percentage = 0.25;
|
||||||
|
};
|
||||||
|
|
||||||
|
flavour = "macchiato";
|
||||||
|
|
||||||
|
integrations = {
|
||||||
|
aerial = true;
|
||||||
|
cmp = true;
|
||||||
|
dap = {
|
||||||
|
enabled = true;
|
||||||
|
enable_ui = true;
|
||||||
|
};
|
||||||
|
gitsigns = true;
|
||||||
|
headlines = true;
|
||||||
|
markdown = true;
|
||||||
|
mason = true;
|
||||||
|
mini.enabled = true;
|
||||||
|
|
||||||
|
native_lsp = {
|
||||||
|
enabled = true;
|
||||||
|
virtual_text = {
|
||||||
|
errors = ["italic"];
|
||||||
|
hints = ["italic"];
|
||||||
|
warnings = ["italic"];
|
||||||
|
information = ["italic"];
|
||||||
|
};
|
||||||
|
underlines = {
|
||||||
|
errors = ["underline"];
|
||||||
|
hints = ["underline"];
|
||||||
|
warnings = ["underline"];
|
||||||
|
information = ["underline"];
|
||||||
|
};
|
||||||
|
inlay_hints = {
|
||||||
|
background = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
neogit = true;
|
||||||
|
neotree = false;
|
||||||
|
noice = true;
|
||||||
|
notify = true;
|
||||||
|
rainbow_delimiters = true;
|
||||||
|
sandwich = true;
|
||||||
|
semantic_tokens = true;
|
||||||
|
symbols_outline = true;
|
||||||
|
telescope = {
|
||||||
|
enabled = true;
|
||||||
|
# style = "nvchad";
|
||||||
|
};
|
||||||
|
treesitter = true;
|
||||||
|
which_key = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
transparent_background = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home-manager/modules/neovim/plugins/comment.nix
Normal file
7
home-manager/modules/neovim/plugins/comment.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.comment = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
231
home-manager/modules/neovim/plugins/conform.nix
Normal file
231
home-manager/modules/neovim/plugins/conform.nix
Normal file
|
|
@ -0,0 +1,231 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
extraConfigLuaPre =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
local slow_format_filetypes = {}
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("FormatDisable", function(args)
|
||||||
|
if args.bang then
|
||||||
|
-- FormatDisable! will disable formatting just for this buffer
|
||||||
|
vim.b.disable_autoformat = true
|
||||||
|
else
|
||||||
|
vim.g.disable_autoformat = true
|
||||||
|
end
|
||||||
|
end, {
|
||||||
|
desc = "Disable autoformat-on-save",
|
||||||
|
bang = true,
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_user_command("FormatEnable", function()
|
||||||
|
vim.b.disable_autoformat = false
|
||||||
|
vim.g.disable_autoformat = false
|
||||||
|
end, {
|
||||||
|
desc = "Re-enable autoformat-on-save",
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_user_command("FormatToggle", function(args)
|
||||||
|
if args.bang then
|
||||||
|
-- Toggle formatting for current buffer
|
||||||
|
vim.b.disable_autoformat = not vim.b.disable_autoformat
|
||||||
|
else
|
||||||
|
-- Toggle formatting globally
|
||||||
|
vim.g.disable_autoformat = not vim.g.disable_autoformat
|
||||||
|
end
|
||||||
|
end, {
|
||||||
|
desc = "Toggle autoformat-on-save",
|
||||||
|
bang = true,
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
conform-nvim = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
formatOnSave =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(bufnr)
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if slow_format_filetypes[vim.bo[bufnr].filetype] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_format(err)
|
||||||
|
if err and err:match("timeout$") then
|
||||||
|
slow_format_filetypes[vim.bo[bufnr].filetype] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return { timeout_ms = 200, lsp_fallback = true }, on_format
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
formatAfterSave =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function(bufnr)
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if not slow_format_filetypes[vim.bo[bufnr].filetype] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
return { lsp_fallback = true }
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
# NOTE:
|
||||||
|
# Conform will run multiple formatters sequentially
|
||||||
|
# [ "1" "2" "3"]
|
||||||
|
# Use a sub-list to run only the first available formatter
|
||||||
|
# [ ["1"] ["2"] ["3"] ]
|
||||||
|
# Use the "*" filetype to run formatters on all filetypes.
|
||||||
|
# Use the "_" filetype to run formatters on filetypes that don't
|
||||||
|
# have other formatters configured.
|
||||||
|
formattersByFt = {
|
||||||
|
bash = [
|
||||||
|
"shellcheck"
|
||||||
|
"shellharden"
|
||||||
|
"shfmt"
|
||||||
|
];
|
||||||
|
bicep = ["bicep"];
|
||||||
|
c = ["clang_format"];
|
||||||
|
cmake = ["cmake-format"];
|
||||||
|
cpp = ["clang_format"];
|
||||||
|
cs = ["csharpier"];
|
||||||
|
css = ["stylelint"];
|
||||||
|
fish = ["fish_indent"];
|
||||||
|
fsharp = ["fantomas"];
|
||||||
|
haskell = ["ormolu"];
|
||||||
|
javascript = [
|
||||||
|
[
|
||||||
|
"prettierd"
|
||||||
|
"prettier"
|
||||||
|
]
|
||||||
|
];
|
||||||
|
json = ["jq"];
|
||||||
|
lua = ["stylua"];
|
||||||
|
markdown = ["deno_fmt"];
|
||||||
|
nix = ["nixfmt"];
|
||||||
|
python = [
|
||||||
|
"isort"
|
||||||
|
"black"
|
||||||
|
];
|
||||||
|
rust = ["rustfmt"];
|
||||||
|
sh = [
|
||||||
|
"shellcheck"
|
||||||
|
"shellharden"
|
||||||
|
"shfmt"
|
||||||
|
];
|
||||||
|
sql = ["sqlfluff"];
|
||||||
|
swift = ["swift_format"];
|
||||||
|
terraform = ["terraform_fmt"];
|
||||||
|
toml = ["taplo"];
|
||||||
|
typescript = [
|
||||||
|
[
|
||||||
|
"prettierd"
|
||||||
|
"prettier"
|
||||||
|
]
|
||||||
|
];
|
||||||
|
xml = [
|
||||||
|
"xmlformat"
|
||||||
|
"xmllint"
|
||||||
|
];
|
||||||
|
yaml = ["yamlfmt"];
|
||||||
|
zig = ["zigfmt"];
|
||||||
|
"_" = [
|
||||||
|
"squeeze_blanks"
|
||||||
|
"trim_whitespace"
|
||||||
|
"trim_newlines"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
formatters = {
|
||||||
|
black = {
|
||||||
|
command = lib.getExe pkgs.black;
|
||||||
|
};
|
||||||
|
bicep = {
|
||||||
|
command = lib.getExe pkgs.bicep;
|
||||||
|
};
|
||||||
|
cmake-format = {
|
||||||
|
command = lib.getExe pkgs.cmake-format;
|
||||||
|
};
|
||||||
|
csharpier = {
|
||||||
|
command = lib.getExe pkgs.csharpier;
|
||||||
|
};
|
||||||
|
deno_fmt = {
|
||||||
|
command = lib.getExe pkgs.deno;
|
||||||
|
};
|
||||||
|
isort = {
|
||||||
|
command = lib.getExe pkgs.isort;
|
||||||
|
};
|
||||||
|
fantomas = {
|
||||||
|
command = lib.getExe pkgs.fantomas;
|
||||||
|
};
|
||||||
|
ormolu = {
|
||||||
|
command = lib.getExe pkgs.ormolu;
|
||||||
|
};
|
||||||
|
jq = {
|
||||||
|
command = lib.getExe pkgs.jq;
|
||||||
|
};
|
||||||
|
nixfmt = {
|
||||||
|
command = lib.getExe pkgs.nixfmt-rfc-style;
|
||||||
|
};
|
||||||
|
prettierd = {
|
||||||
|
command = lib.getExe pkgs.prettierd;
|
||||||
|
};
|
||||||
|
rustfmt = {
|
||||||
|
command = lib.getExe pkgs.rustfmt;
|
||||||
|
};
|
||||||
|
shellcheck = {
|
||||||
|
command = lib.getExe pkgs.shellcheck;
|
||||||
|
};
|
||||||
|
shfmt = {
|
||||||
|
command = lib.getExe pkgs.shfmt;
|
||||||
|
};
|
||||||
|
shellharden = {
|
||||||
|
command = lib.getExe pkgs.shellharden;
|
||||||
|
};
|
||||||
|
sqlfluff = {
|
||||||
|
command = lib.getExe pkgs.sqlfluff;
|
||||||
|
};
|
||||||
|
squeeze_blanks = {
|
||||||
|
comamnd = lib.getExe' pkgs.coreutils "cat";
|
||||||
|
};
|
||||||
|
stylelint = {
|
||||||
|
command = lib.getExe pkgs.stylelint;
|
||||||
|
};
|
||||||
|
stylua = {
|
||||||
|
command = lib.getExe pkgs.stylua;
|
||||||
|
};
|
||||||
|
swift_format = {
|
||||||
|
command = lib.getExe pkgs.swift-format;
|
||||||
|
};
|
||||||
|
taplo = {
|
||||||
|
command = lib.getExe pkgs.taplo;
|
||||||
|
};
|
||||||
|
terraform_fmt = {
|
||||||
|
command = lib.getExe pkgs.terraform;
|
||||||
|
};
|
||||||
|
xmlformat = {
|
||||||
|
command = lib.getExe pkgs.xmlformat;
|
||||||
|
};
|
||||||
|
yamlfmt = {
|
||||||
|
command = lib.getExe pkgs.yamlfmt;
|
||||||
|
};
|
||||||
|
zigfmt = {
|
||||||
|
command = lib.getExe pkgs.zig;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
33
home-manager/modules/neovim/plugins/default.nix
Normal file
33
home-manager/modules/neovim/plugins/default.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
_: {
|
||||||
|
imports = [
|
||||||
|
# ./none-ls.nix
|
||||||
|
./autopairs.nix
|
||||||
|
./bufferline.nix
|
||||||
|
./catppuccin.nix
|
||||||
|
./comment.nix
|
||||||
|
./conform.nix
|
||||||
|
./diffview.nix
|
||||||
|
./flash.nix
|
||||||
|
./git-conflict.nix
|
||||||
|
./gitsigns.nix
|
||||||
|
./harpoon.nix
|
||||||
|
./illuminate.nix
|
||||||
|
./lightbulb.nix
|
||||||
|
./lualine.nix
|
||||||
|
./lsp.nix
|
||||||
|
./mini-bufremove.nix
|
||||||
|
./navic.nix
|
||||||
|
./nix.nix
|
||||||
|
./noice.nix
|
||||||
|
./notify.nix
|
||||||
|
./precognition.nix
|
||||||
|
./spectre.nix
|
||||||
|
./telescope.nix
|
||||||
|
./todo-comments.nix
|
||||||
|
./toggleterm.nix
|
||||||
|
./treesitter.nix
|
||||||
|
./trouble.nix
|
||||||
|
./which-key.nix
|
||||||
|
./yazi.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
32
home-manager/modules/neovim/plugins/diffview.nix
Normal file
32
home-manager/modules/neovim/plugins/diffview.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
diffview = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gd";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
vim.g.diffview_enabled = not vim.g.diffview_enabled
|
||||||
|
if vim.g.diffview_enabled then
|
||||||
|
vim.cmd('DiffviewClose')
|
||||||
|
else
|
||||||
|
vim.cmd('DiffviewOpen')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Git Diff toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
93
home-manager/modules/neovim/plugins/flash.nix
Normal file
93
home-manager/modules/neovim/plugins/flash.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.flash = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
labels = "rsthnaio";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"x"
|
||||||
|
"o"
|
||||||
|
];
|
||||||
|
key = "s";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
require("flash").jump()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Flash";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"x"
|
||||||
|
"o"
|
||||||
|
];
|
||||||
|
key = "S";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
require("flash").treesitter()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Flash Treesitter";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "o";
|
||||||
|
key = "r";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
require("flash").remote()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Flash Remote";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = [
|
||||||
|
"o"
|
||||||
|
"x"
|
||||||
|
];
|
||||||
|
key = "R";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
require("flash").treesitter_search()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Treesitter Search";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "c";
|
||||||
|
key = "<c-s>";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
require("flash").toggle()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Toggle Flash Search";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
20
home-manager/modules/neovim/plugins/git-conflict.nix
Normal file
20
home-manager/modules/neovim/plugins/git-conflict.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
_: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
git-conflict = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
default_mappings = {
|
||||||
|
ours = "co";
|
||||||
|
theirs = "ct";
|
||||||
|
none = "c0";
|
||||||
|
both = "cb";
|
||||||
|
next = "]x";
|
||||||
|
prev = "[x";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
118
home-manager/modules/neovim/plugins/gitsigns.nix
Normal file
118
home-manager/modules/neovim/plugins/gitsigns.nix
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.gitsigns = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
signs = {
|
||||||
|
add.text = "▎";
|
||||||
|
change.text = "▎";
|
||||||
|
delete.text = "";
|
||||||
|
topdelete.text = "";
|
||||||
|
changedelete.text = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gs";
|
||||||
|
action = "<cmd>Gitsigns stage_hunk<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Stage Hunk";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gr";
|
||||||
|
action = "<cmd>Gitsigns reset_hunk<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Reset Hunk";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<leader>gs";
|
||||||
|
action = "<cmd>lua function() Gitsigns stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Stage Hunk";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<leader>gr";
|
||||||
|
action = "function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Reset Hunk";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gS";
|
||||||
|
action = "<cmd>Gitsigns stage_buffer<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Stage Buffer";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gu";
|
||||||
|
action = "<cmd>Gitsigns undo_stage_hunk<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Undo Stage Hunk";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gR";
|
||||||
|
action = "<cmd> Gitsigns reset_buffer<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Reset Buffer";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gp";
|
||||||
|
action = "<cmd> Gitsigns preview_hunk<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Preview Hunk";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gb";
|
||||||
|
action = "<cmd> Gitsigns toggle_current_line_blame<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Blame";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# {
|
||||||
|
# mode = "n";
|
||||||
|
# key = "<leader>gd";
|
||||||
|
# action = "<cmd> Gitsigns diffthis<CR>";
|
||||||
|
# options = {
|
||||||
|
# silent = true;
|
||||||
|
# desc = "Diff";
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
59
home-manager/modules/neovim/plugins/harpoon.nix
Normal file
59
home-manager/modules/neovim/plugins/harpoon.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
harpoon.enable = true;
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>m";
|
||||||
|
mode = "n";
|
||||||
|
group = " Marks";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>mm";
|
||||||
|
action = ":lua require('harpoon.ui').toggle_quick_menu()<CR>";
|
||||||
|
# lua = true;
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Mark Menu";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ma";
|
||||||
|
action = ":lua require('harpoon.mark').add_file()<CR>";
|
||||||
|
# lua = true;
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Mark File";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>mn";
|
||||||
|
action = ":lua require('harpoon.ui').nav_next()<CR>";
|
||||||
|
# lua = true;
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Next Mark";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>mp";
|
||||||
|
action = ":lua require('harpoon.ui').nav_prev()<CR>";
|
||||||
|
# lua = true;
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Prev Mark";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
17
home-manager/modules/neovim/plugins/illuminate.nix
Normal file
17
home-manager/modules/neovim/plugins/illuminate.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
illuminate = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
filetypesDenylist = [
|
||||||
|
"dirvish"
|
||||||
|
"fugitive"
|
||||||
|
"neo-tree"
|
||||||
|
"TelescopePrompt"
|
||||||
|
];
|
||||||
|
largeFileCutoff = 3000;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home-manager/modules/neovim/plugins/lightbulb.nix
Normal file
7
home-manager/modules/neovim/plugins/lightbulb.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.nvim-lightbulb = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
123
home-manager/modules/neovim/plugins/lsp.nix
Normal file
123
home-manager/modules/neovim/plugins/lsp.nix
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
extraConfigLuaPre =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
vim.fn.sign_define("DiagnosticSignError", { text = " ", texthl = "DiagnosticError", linehl = "", numhl = "" })
|
||||||
|
vim.fn.sign_define("DiagnosticSignWarn", { text = " ", texthl = "DiagnosticWarn", linehl = "", numhl = "" })
|
||||||
|
vim.fn.sign_define("DiagnosticSignHint", { text = " ", texthl = "DiagnosticHint", linehl = "", numhl = "" })
|
||||||
|
vim.fn.sign_define("DiagnosticSignInfo", { text = " ", texthl = "DiagnosticInfo", linehl = "", numhl = "" })
|
||||||
|
'';
|
||||||
|
plugins = {
|
||||||
|
lspkind.enable = true;
|
||||||
|
lsp-lines.enable = true;
|
||||||
|
lsp-format.enable = false; # conform-nvim does this
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
keymaps = {
|
||||||
|
silent = true;
|
||||||
|
diagnostic = {
|
||||||
|
# Navigate in diagnostics
|
||||||
|
"<leader>lp" = "goto_prev";
|
||||||
|
"<leader>ln" = "goto_next";
|
||||||
|
};
|
||||||
|
|
||||||
|
extra = [
|
||||||
|
{
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.format({
|
||||||
|
async = true,
|
||||||
|
range = {
|
||||||
|
["start"] = vim.api.nvim_buf_get_mark(0, "<"),
|
||||||
|
["end"] = vim.api.nvim_buf_get_mark(0, ">"),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
mode = "v";
|
||||||
|
key = "<leader>lf";
|
||||||
|
options = {
|
||||||
|
desc = "Format selection";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
lspBuf = {
|
||||||
|
"<leader>la" = "code_action";
|
||||||
|
"<leader>ld" = "definition";
|
||||||
|
"<leader>lf" = "format";
|
||||||
|
"<leader>lD" = "references";
|
||||||
|
"<leader>lt" = "type_definition";
|
||||||
|
"<leader>li" = "implementation";
|
||||||
|
"<leader>lh" = "hover";
|
||||||
|
"<leader>lr" = "rename";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
servers = {
|
||||||
|
nil-ls = {
|
||||||
|
enable = true;
|
||||||
|
filetypes = ["nix"];
|
||||||
|
settings = {
|
||||||
|
formatting = {
|
||||||
|
command = ["${lib.getExe pkgs.nixfmt-rfc-style}"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>l";
|
||||||
|
group = " LSP";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>la";
|
||||||
|
desc = "Code Action";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>ld";
|
||||||
|
desc = "Definition";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>lD";
|
||||||
|
desc = "References";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>lf";
|
||||||
|
desc = "Format";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>lp";
|
||||||
|
desc = "Prev";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>ln";
|
||||||
|
desc = "Next";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>lt";
|
||||||
|
desc = "Type Definition";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>li";
|
||||||
|
desc = "Implementation";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>lh";
|
||||||
|
desc = "Hover";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>lr";
|
||||||
|
desc = "Rename";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home-manager/modules/neovim/plugins/lualine.nix
Normal file
7
home-manager/modules/neovim/plugins/lualine.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.lualine = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
64
home-manager/modules/neovim/plugins/mini-bufremove.nix
Normal file
64
home-manager/modules/neovim/plugins/mini-bufremove.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
mini = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
modules = {
|
||||||
|
bufremove = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>c";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''require("mini.bufremove").delete'';
|
||||||
|
options = {
|
||||||
|
desc = "Close buffer";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-w>";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''require("mini.bufremove").delete'';
|
||||||
|
options = {
|
||||||
|
desc = "Close buffer";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bc";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function ()
|
||||||
|
local current = vim.api.nvim_get_current_buf()
|
||||||
|
|
||||||
|
local get_listed_bufs = function()
|
||||||
|
return vim.tbl_filter(function(bufnr)
|
||||||
|
return vim.api.nvim_buf_get_option(bufnr, "buflisted")
|
||||||
|
end, vim.api.nvim_list_bufs())
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, bufnr in ipairs(get_listed_bufs()) do
|
||||||
|
if bufnr ~= current
|
||||||
|
then require("mini.bufremove").delete(bufnr)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Close all buffers but current";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
8
home-manager/modules/neovim/plugins/navic.nix
Normal file
8
home-manager/modules/neovim/plugins/navic.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.navic = {
|
||||||
|
enable = true;
|
||||||
|
lsp.autoAttach = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home-manager/modules/neovim/plugins/nix.nix
Normal file
7
home-manager/modules/neovim/plugins/nix.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.nix = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home-manager/modules/neovim/plugins/noice.nix
Normal file
7
home-manager/modules/neovim/plugins/noice.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.noice = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
32
home-manager/modules/neovim/plugins/none-ls.nix
Normal file
32
home-manager/modules/neovim/plugins/none-ls.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.none-ls = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
cmd = ["bash -c nvim"];
|
||||||
|
|
||||||
|
debug = true;
|
||||||
|
};
|
||||||
|
sources = {
|
||||||
|
code_actions = {
|
||||||
|
statix.enable = true;
|
||||||
|
};
|
||||||
|
diagnostics = {
|
||||||
|
statix.enable = true;
|
||||||
|
deadnix.enable = true;
|
||||||
|
};
|
||||||
|
formatting = {
|
||||||
|
alejandra.enable = true;
|
||||||
|
stylua.enable = true;
|
||||||
|
shfmt.enable = true;
|
||||||
|
nixpkgs_fmt.enable = true;
|
||||||
|
# prettier = {
|
||||||
|
# enable = true;
|
||||||
|
# disableTsServerFormatter = true;
|
||||||
|
# };
|
||||||
|
# black.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home-manager/modules/neovim/plugins/notify.nix
Normal file
7
home-manager/modules/neovim/plugins/notify.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.notify = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
26
home-manager/modules/neovim/plugins/precognition.nix
Normal file
26
home-manager/modules/neovim/plugins/precognition.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPlugins = [pkgs.vimPlugins.precognition-nvim];
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>uP";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
if require("precognition").toggle() then
|
||||||
|
vim.notify("precognition on")
|
||||||
|
else
|
||||||
|
vim.notify("precognition off")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
options = {
|
||||||
|
desc = "Precognition Toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
21
home-manager/modules/neovim/plugins/spectre.nix
Normal file
21
home-manager/modules/neovim/plugins/spectre.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
spectre = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>rs";
|
||||||
|
action = ":Spectre<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Spectre toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
240
home-manager/modules/neovim/plugins/telescope.nix
Normal file
240
home-manager/modules/neovim/plugins/telescope.nix
Normal file
|
|
@ -0,0 +1,240 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [ripgrep];
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>fc";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").find_files {
|
||||||
|
prompt_title = "Config Files",
|
||||||
|
cwd = vim.fn.stdpath "config",
|
||||||
|
follow = true,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Find config files";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>fF";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").find_files({ hidden = true, no_ignore = true})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Find all files";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>fT";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").colorscheme({ enable_preview = true })
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Find theme";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>fW";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").live_grep {
|
||||||
|
additional_args = function(args) return vim.list_extend(args, { "--hidden", "--no-ignore" }) end,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Find words in all files";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>f?";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").live_grep { grep_open_files=true }
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Find words in all open buffers";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>fe";
|
||||||
|
action = ":Telescope file_browser<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "File Explorer";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# mode = "n";
|
||||||
|
# key = "<leader>fO";
|
||||||
|
# action = ":Telescope frecency<CR>";
|
||||||
|
# options = {
|
||||||
|
# desc = "Find Frequent Files";
|
||||||
|
# silent = true;
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins.telescope = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
extensions = {
|
||||||
|
file-browser = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
hidden = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# FIX: annoying frecency validation on startup about removed files
|
||||||
|
# frecency = {
|
||||||
|
# enable = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
ui-select = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = {
|
||||||
|
"<leader>f'" = {
|
||||||
|
action = "marks";
|
||||||
|
options.desc = "View marks";
|
||||||
|
};
|
||||||
|
"<leader>f/" = {
|
||||||
|
action = "current_buffer_fuzzy_find";
|
||||||
|
options.desc = "Fuzzy find in current buffer";
|
||||||
|
};
|
||||||
|
"<leader>f<CR>" = {
|
||||||
|
action = "resume";
|
||||||
|
options.desc = "Resume action";
|
||||||
|
};
|
||||||
|
"<leader>fa" = {
|
||||||
|
action = "autocommands";
|
||||||
|
options.desc = "View autocommands";
|
||||||
|
};
|
||||||
|
"<leader>fC" = {
|
||||||
|
action = "commands";
|
||||||
|
options.desc = "View commands";
|
||||||
|
};
|
||||||
|
"<leader>fb" = {
|
||||||
|
action = "buffers";
|
||||||
|
options.desc = "View buffers";
|
||||||
|
};
|
||||||
|
"<leader>fc" = {
|
||||||
|
action = "grep_string";
|
||||||
|
options.desc = "Grep string";
|
||||||
|
};
|
||||||
|
"<leader>fd" = {
|
||||||
|
action = "diagnostics";
|
||||||
|
options.desc = "View diagnostics";
|
||||||
|
};
|
||||||
|
"<leader>ff" = {
|
||||||
|
action = "find_files";
|
||||||
|
options.desc = "Find files";
|
||||||
|
};
|
||||||
|
"<leader>fh" = {
|
||||||
|
action = "help_tags";
|
||||||
|
options.desc = "View help tags";
|
||||||
|
};
|
||||||
|
"<leader>fk" = {
|
||||||
|
action = "keymaps";
|
||||||
|
options.desc = "View keymaps";
|
||||||
|
};
|
||||||
|
"<leader>fm" = {
|
||||||
|
action = "man_pages";
|
||||||
|
options.desc = "View man pages";
|
||||||
|
};
|
||||||
|
"<leader>fo" = {
|
||||||
|
action = "oldfiles";
|
||||||
|
options.desc = "View old files";
|
||||||
|
};
|
||||||
|
"<leader>fr" = {
|
||||||
|
action = "registers";
|
||||||
|
options.desc = "View registers";
|
||||||
|
};
|
||||||
|
"<leader>fs" = {
|
||||||
|
action = "lsp_document_symbols";
|
||||||
|
options.desc = "Search symbols";
|
||||||
|
};
|
||||||
|
"<leader>fq" = {
|
||||||
|
action = "quickfix";
|
||||||
|
options.desc = "Search quickfix";
|
||||||
|
};
|
||||||
|
"<leader>fw" = {
|
||||||
|
action = "live_grep";
|
||||||
|
options.desc = "Live grep";
|
||||||
|
};
|
||||||
|
"<leader>gC" = {
|
||||||
|
action = "git_bcommits";
|
||||||
|
options.desc = "View git bcommits";
|
||||||
|
};
|
||||||
|
"<leader>gB" = {
|
||||||
|
action = "git_branches";
|
||||||
|
options.desc = "View git branches";
|
||||||
|
};
|
||||||
|
"<leader>gc" = {
|
||||||
|
action = "git_commits";
|
||||||
|
options.desc = "View git commits";
|
||||||
|
};
|
||||||
|
"<leader>gs" = {
|
||||||
|
action = "git_status";
|
||||||
|
options.desc = "View git status";
|
||||||
|
};
|
||||||
|
"<leader>gS" = {
|
||||||
|
action = "git_stash";
|
||||||
|
options.desc = "View git stashes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
defaults = {
|
||||||
|
file_ignore_patterns = [
|
||||||
|
"^.git/"
|
||||||
|
"^.mypy_cache/"
|
||||||
|
"^__pycache__/"
|
||||||
|
"^output/"
|
||||||
|
"^data/"
|
||||||
|
"%.ipynb"
|
||||||
|
];
|
||||||
|
set_env.COLORTERM = "truecolor";
|
||||||
|
};
|
||||||
|
|
||||||
|
pickers = {
|
||||||
|
colorscheme = {
|
||||||
|
enable_preview = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
home-manager/modules/neovim/plugins/todo-comments.nix
Normal file
7
home-manager/modules/neovim/plugins/todo-comments.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.todo-comments = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
57
home-manager/modules/neovim/plugins/toggleterm.nix
Normal file
57
home-manager/modules/neovim/plugins/toggleterm.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.toggleterm = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
direction = "float";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tt";
|
||||||
|
action = ":ToggleTerm<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Open Terminal";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tg";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
local toggleterm = require('toggleterm.terminal')
|
||||||
|
|
||||||
|
toggleterm.Terminal:new({cmd = 'lazygit',hidden = true}):toggle()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Open Lazygit";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gg";
|
||||||
|
action.__raw =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
local toggleterm = require('toggleterm.terminal')
|
||||||
|
|
||||||
|
toggleterm.Terminal:new({cmd = 'lazygit',hidden = true}):toggle()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Open Lazygit";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
24
home-manager/modules/neovim/plugins/treesitter.nix
Normal file
24
home-manager/modules/neovim/plugins/treesitter.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
treesitter = {
|
||||||
|
enable = true;
|
||||||
|
nixvimInjections = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
indent.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
treesitter-context = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
treesitter-refactor = {
|
||||||
|
enable = true;
|
||||||
|
highlightDefinitions.enable = true;
|
||||||
|
};
|
||||||
|
hmts.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
108
home-manager/modules/neovim/plugins/trouble.nix
Normal file
108
home-manager/modules/neovim/plugins/trouble.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
trouble = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
modes = {
|
||||||
|
preview_split = {
|
||||||
|
mode = "diagnostics";
|
||||||
|
preview = {
|
||||||
|
type = "split";
|
||||||
|
relative = "win";
|
||||||
|
position = "right";
|
||||||
|
size = 0.5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
preview_float = {
|
||||||
|
mode = "diagnostics";
|
||||||
|
preview = {
|
||||||
|
type = "float";
|
||||||
|
relative = "editor";
|
||||||
|
border = "rounded";
|
||||||
|
title = "Preview";
|
||||||
|
title_pos = "center";
|
||||||
|
position = [
|
||||||
|
0
|
||||||
|
(-2)
|
||||||
|
];
|
||||||
|
size = {
|
||||||
|
width = 0.3;
|
||||||
|
height = 0.3;
|
||||||
|
};
|
||||||
|
zindex = 200;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed = "<leader>x";
|
||||||
|
mode = "n";
|
||||||
|
group = " Trouble";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xx";
|
||||||
|
action = "<cmd>Trouble preview_split toggle<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Diagnostics toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xX";
|
||||||
|
action = "<cmd>Trouble preview_split toggle filter.buf=0<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Buffer Diagnostics toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>us";
|
||||||
|
action = "<cmd>Trouble symbols toggle focus=false<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Symbols toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xl";
|
||||||
|
action = "<cmd>Trouble lsp toggle focus=false win.position=right<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "LSP Definitions / references / ... toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xL";
|
||||||
|
action = "<cmd>Trouble loclist toggle<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Location List toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>xQ";
|
||||||
|
action = "<cmd>Trouble qflist toggle<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Quickfix List toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
17
home-manager/modules/neovim/plugins/which-key.nix
Normal file
17
home-manager/modules/neovim/plugins/which-key.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.which-key = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
spec = [
|
||||||
|
# "<leader>m" = " Marks";
|
||||||
|
# "<leader>t" = " Trouble";
|
||||||
|
# "<leader>w" = " Window";
|
||||||
|
# "<leader>d" = " Dap";
|
||||||
|
# "<leader>n" = " Neorg";
|
||||||
|
# "<leader>l" = " Lsp";
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
21
home-manager/modules/neovim/plugins/yazi.nix
Normal file
21
home-manager/modules/neovim/plugins/yazi.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{...}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.yazi.enable = true;
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>e";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
require('yazi').yazi()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
desc = "Yazi toggle";
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
56
home-manager/modules/yazi.nix
Normal file
56
home-manager/modules/yazi.nix
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
{pkgs, ...}: let
|
||||||
|
plugins-repo = pkgs.fetchFromGitHub {
|
||||||
|
owner = "yazi-rs";
|
||||||
|
repo = "plugins";
|
||||||
|
rev = "a3ee7173bff700214bc2d993ef605c3c41d800c9";
|
||||||
|
hash = "sha256-m2A/vIgGMzFzhaOgFL21cZua8h2XaYu7Jb6yuZQKiTw=";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
programs.yazi = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
shellWrapperName = "y";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
manager = {
|
||||||
|
show_hidden = true;
|
||||||
|
};
|
||||||
|
preview = {
|
||||||
|
max_width = 1000;
|
||||||
|
max_height = 1000;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
chmod = "${plugins-repo}/chmod.yazi";
|
||||||
|
full-border = "${plugins-repo}/full-border.yazi";
|
||||||
|
max-preview = "${plugins-repo}/max-preview.yazi";
|
||||||
|
starship = pkgs.fetchFromGitHub {
|
||||||
|
owner = "Rolv-Apneseth";
|
||||||
|
repo = "starship.yazi";
|
||||||
|
rev = "dc9989c2bdd3d04e615d3bbb5f3bf99ed6ce1a35";
|
||||||
|
sha256 = "sha256-AwBqOKWtz5BzY7Sye1JljWI2t+JQGGQfOT6oQN7YTOg=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
initLua = ''
|
||||||
|
require("full-border"):setup()
|
||||||
|
require("starship"):setup()
|
||||||
|
'';
|
||||||
|
|
||||||
|
keymap = {
|
||||||
|
manager.prepend_keymap = [
|
||||||
|
{
|
||||||
|
on = "T";
|
||||||
|
run = "plugin --sync max-preview";
|
||||||
|
desc = "Maximize or restore the preview pane";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = ["c" "m"];
|
||||||
|
run = "plugin chmod";
|
||||||
|
desc = "Chmod on selected files";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
BIN
wallpapers/ai.png
Normal file
BIN
wallpapers/ai.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.4 MiB |
BIN
wallpapers/classic.jpg
Normal file
BIN
wallpapers/classic.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 MiB |
BIN
wallpapers/night.jpg
Normal file
BIN
wallpapers/night.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 786 KiB |
BIN
wallpapers/nix-black-4k.png
Normal file
BIN
wallpapers/nix-black-4k.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
Loading…
Add table
Add a link
Reference in a new issue