Refactored file structure to make more sense, made default.nixes less verbose

This commit is contained in:
pagedmov
2024-10-18 19:13:12 -04:00
parent c21c929a10
commit 860bcb3bc6
44 changed files with 618 additions and 287 deletions

198
flake.lock generated
View File

@@ -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": {

View File

@@ -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
];
};

View File

@@ -8,7 +8,7 @@
...
}: {
imports = [
./../../modules/sys
./../../modules/sys/configuration.nix
./hardware.nix
./settings.nix
];

View File

@@ -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;
}

View File

@@ -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)];
}

View File

@@ -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
];
}

View File

@@ -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
]

View File

@@ -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}";

View File

@@ -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;
}

View File

@@ -0,0 +1,7 @@
{ ... }:
{
imports =
[(import ./steam.nix)]
++ [(import ./gaming_pkgs.nix)];
}

View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
snes9x-gtk
];
}

View File

@@ -0,0 +1,17 @@
{
inputs,
nixpkgs,
config,
self,
username,
host,
...
}: {
imports = [
./hardware
./software
./environment
../home/home-manager.nix
];
}

View File

@@ -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;
}

View File

@@ -0,0 +1,16 @@
{
inputs,
nixpkgs,
nixvim,
config,
self,
username,
host,
...
}: {
imports =
[(import ./sddm.nix)]
++ [(import ./stylix.nix)];
}

View File

@@ -0,0 +1,16 @@
{
inputs,
nixpkgs,
nixvim,
config,
self,
username,
host,
...
}: {
imports =
[( import ./bootloader.nix )]
++ [( import ./network.nix )];
}

View File

@@ -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;
}

View File

@@ -0,0 +1,36 @@
{...}: {
programs.nixvim = {
autoCmd = [
{
command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --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";
}
];
};
}

View File

@@ -0,0 +1,12 @@
{
config,
pkgs,
...
}: {
imports = [
./plugins
./options.nix
./keymaps.nix
./autocmd.nix
];
}

View File

@@ -0,0 +1,31 @@
{
programs.nixvim = {
keymaps = [
{
action = "<C-W>W";
key = "<S-Tab>";
mode = "n";
}
{
action = "<C-w>w";
key = "<Tab>";
mode = "n";
}
{
action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>";
mode = "n";
}
{
action = "<cmd>NvimTreeToggle<CR>";
key = "<F3>";
mode = "n";
}
{
action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>";
mode = "t";
}
];
};
}

View File

@@ -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 = "!"
'';
};
}

View File

@@ -0,0 +1,8 @@
{
programs.nixvim = {
plugins.alpha = {
enable = true;
theme = "dashboard";
};
};
}

View File

@@ -0,0 +1,10 @@
{
programs.nixvim = {
plugins.barbar = {
enable = true;
settings = {
auto_hide = 1;
};
};
};
}

View File

@@ -0,0 +1,12 @@
{
programs.nixvim = {
plugins.cmp = {
autoEnableSources = true;
settings.sources = [
{name = "nvim_lsp";}
{name = "path";}
{name = "buffer";}
];
};
};
}

View File

@@ -0,0 +1,10 @@
{
programs.nixvim = {
plugins.coq-nvim = {
enable = true;
settings = {
auto_start = true;
};
};
};
}

View File

@@ -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
];
}

View File

@@ -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=";
};
})
];
};
}

View File

@@ -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;
};
};
};
}

View File

@@ -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 = [];
};
};
};
};
}

View File

@@ -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', '<C-]>', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place'))
vim.keymap.set('n', '<C-k>', api.node.show_info_popup, opts('Info'))
vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename'))
vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab'))
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split'))
vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory'))
vim.keymap.set('n', '<CR>', 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;
};
};
};
}

View File

@@ -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;
};
};
};
}

View File

@@ -0,0 +1,14 @@
{
programs.nixvim = {
plugins.telescope = {
enable = true;
settings = {
pickers = {
find_files = {
hidden = true;
};
};
};
};
};
}

View File

@@ -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;
};
};
};
}