Compare commits

13 Commits

Author SHA1 Message Date
761067ca6e nixvim plugins
install all currently wanted plugins
2026-04-13 18:09:16 +02:00
d7b58e2216 nixvim
install initial nixvim
2026-04-08 10:13:11 +02:00
6f64253c4b permissions
correct permissions of the scripts
2026-04-03 18:09:20 +02:00
2dd361ec24 update 2026-03-31 13:55:40 +02:00
6f0d716cba yazi
install yazi plugins
2026-03-30 00:34:49 +02:00
090fb01c0a openscad & kitty
enable nvim openscad and switch to kitty
2026-03-28 13:55:32 +01:00
234e6c0813 printer & openscad
add indent for openscad and fix printer
2026-03-27 14:42:39 +01:00
eb67cd011d zsh & swap 2026-03-27 13:09:42 +01:00
0524833771 zathura revert 2026-03-26 16:36:30 +01:00
980121be58 zathara
disable theme
2026-03-26 16:29:58 +01:00
797395dd2a openscad
get openscad nixvim package
2026-03-26 16:28:11 +01:00
f615c1694e KJR
remove KJR Mail
2026-03-25 18:41:44 +01:00
5769fe3a1f ssh-agent
enable ssh-agent
2026-03-25 16:20:17 +01:00
86 changed files with 1836 additions and 1410 deletions

View File

@@ -1,19 +0,0 @@
{ pkgs, ... }:
{
services.printing.drivers = [ pkgs.epson-escpr ];
hardware.printers = {
ensurePrinters = [{
name = "Epson-XP-520";
location = "Home";
deviceUri = "http://192.168.178.34:631/ipp/print";
model =
"epson-inkjet-printer-escpr/Epson-XP-520_Series-epson-escpr-en.ppd";
ppdOptions = {
PageSize = "A4";
Ink = "Color";
};
}];
ensureDefaultPrinter = "Epson-XP-520";
};
}

View File

@@ -6,9 +6,9 @@ in
{ {
# ── Steam & Printer ─────────────────────────────────────────────────── # ── Steam & Printer ───────────────────────────────────────────────────
imports = [ imports = [
./builds/steam.nix ./system/steam.nix
./builds/printer.nix ./system/printer.nix
./builds/sops.nix ./system/sops.nix
]; ];
# ── Use the systemd-boot EFI boot loader. ───────────────────────────── # ── Use the systemd-boot EFI boot loader. ─────────────────────────────
@@ -43,11 +43,14 @@ in
}; };
nix = { nix = {
# ── Flakes ─────────────────────────────────────────────────────────── # ── Flakes ───────────────────────────────────────────────────────────
settings.experimental-features = [ settings = {
download-buffer-size = 524288000;
experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"
]; ];
};
# ── Garbage collect ─────────────────────────────────────────────────── # ── Garbage collect ───────────────────────────────────────────────────
gc = { gc = {
@@ -71,7 +74,6 @@ in
defaultSession = "river"; defaultSession = "river";
}; };
libinput.enable = true; # Enable touchpad. libinput.enable = true; # Enable touchpad.
printing.enable = true;
}; };
programs = { programs = {
@@ -184,5 +186,5 @@ in
allowUnfree = true; allowUnfree = true;
permittedInsecurePackages = [ "electron-32.3.3" ]; permittedInsecurePackages = [ "electron-32.3.3" ];
}; };
system.stateVersion = "23.11"; system.stateVersion = "26.05";
} }

165
flake.lock generated
View File

@@ -5,11 +5,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1773403535, "lastModified": 1774799062,
"narHash": "sha256-47MZaFrHxNO8tVUAmtVnerXUw2WWVluBOiU9MulN/yM=", "narHash": "sha256-U9RGxFsLeKivD1+7sVXj5TltHGfB4m/dkn3dENT2fSM=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "d45b5665cc638bad1b794350de02f4dd41b0bb47", "rev": "948a8ee84858d053b83f01c8c168f9f4347937e6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -81,6 +81,24 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -88,11 +106,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1773962693, "lastModified": 1775143651,
"narHash": "sha256-nf9pgktDE4E2TCavUT1vh3Nd/tfKixL1BK6P32Zp3hI=", "narHash": "sha256-S0RqAyDPMTcv9vASMaE8eY1QexFysAOdnxUxFHIPOyE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "9d3c1d636e7b8ab10f357cd9bee653cd400437de", "rev": "d166a078541982a76f14d3e06e9665fa5c9ed85e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -108,11 +126,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1773965157, "lastModified": 1775138742,
"narHash": "sha256-u6Ceko/AQ30asd/P68Y7gD0x3LtsjiPwC31TlwVnsac=", "narHash": "sha256-cyipL9p0VzyZT0wa+3KkeJYvtEYzyI1PjBOnGU8z3gI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "neovim-nightly-overlay", "repo": "neovim-nightly-overlay",
"rev": "7e711c5abd3b0ca9c0038606edeee6bcf09b055c", "rev": "0fff256cfbc6978e711c43555df210d46940e943",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -124,11 +142,11 @@
"neovim-src": { "neovim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1773942472, "lastModified": 1774915197,
"narHash": "sha256-VRtGTA4WWgrVrjZg+XrnRgMcbAa0EkYkWV5Wcn76/0g=", "narHash": "sha256-yor+eo8CVi7wBp7CjAMQnVoK+m197gsl7MvUzaqicns=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "06befe1e348bf540bb04a8c0cafe116616e71715", "rev": "dbc4800dda2b0dc3290dc79955f857256e0694e2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -144,11 +162,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1773974569, "lastModified": 1775098553,
"narHash": "sha256-Y71Afv2mVpus+EqUj0qAwPgyaABIvEtjnUAlw5EUo3A=", "narHash": "sha256-OFWIVY1vzAbPE73ksKAMsFh11AXZ3MjIymRQ90Butnc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-vscode-extensions", "repo": "nix-vscode-extensions",
"rev": "5b8548f9e2cbe14146df30858bd281404957846f", "rev": "361b17a5b2f4536a119c794a367a29b07691f941",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -159,11 +177,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1773122722, "lastModified": 1773821835,
"narHash": "sha256-FIqHByVqxCprNjor1NqF80F2QQoiiyqanNNefdlvOg4=", "narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "62dc67aa6a52b4364dd75994ec00b51fbf474e50", "rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -175,11 +193,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1773628058, "lastModified": 1774701658,
"narHash": "sha256-hpXH0z3K9xv0fHaje136KY872VT2T5uwxtezlAskQgY=", "narHash": "sha256-CIS/4AMUSwUyC8X5g+5JsMRvIUL3YUfewe8K4VrbsSQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f8573b9c935cfaa162dd62cc9e75ae2db86f85df", "rev": "b63fe7f000adcfa269967eeff72c64cafecbbebe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -191,11 +209,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1773821835, "lastModified": 1775036866,
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0", "rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -207,11 +225,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1773821835, "lastModified": 1775036866,
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0", "rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -221,6 +239,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 1772419343,
"narHash": "sha256-QU3Cd5DJH7dHyMnGEFfPcZDaCAsJQ6tUD+JuUsYqnKU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "93178f6a00c22fcdee1c6f5f9ab92f2072072ea9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
@@ -230,11 +264,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1772402258, "lastModified": 1774802402,
"narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=", "narHash": "sha256-L1UJ/zxKTyyaGGmytH6OYlgQ0HGSMhvPkvU+iz4Mkb8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10", "rev": "cbd8536a05d1aae2593cb5c9ace1010c8c5845cb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -249,11 +283,11 @@
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1774003391, "lastModified": 1775159663,
"narHash": "sha256-3wzfMk2W/r0is+A6CMlHgG44hW/vIJ0NprJPNOqHYG4=", "narHash": "sha256-KES+OClaN0Vy/BkjW60UFo3dnQWpjkd1vIKEoynnlk0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "da2dd0472635372ee44134502fde664df1e5820f", "rev": "008b7b102054965988abf26ea261314a2e6672d5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -271,7 +305,29 @@
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"nixvim": "nixvim", "nixvim": "nixvim",
"nur": "nur", "nur": "nur",
"sops-nix": "sops-nix" "sops-nix": "sops-nix",
"yazi": "yazi"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"yazi",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772420823,
"narHash": "sha256-q3oVwz1Rx41D1D+F6vg41kpOkk3Zi3KwnkHEZp7DCGs=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "458eea8d905c609e9d889423e6b8a1c7bc2f792c",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
} }
}, },
"sops-nix": { "sops-nix": {
@@ -281,11 +337,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1774154798, "lastModified": 1774910634,
"narHash": "sha256-zsTuloDSdKf+PrI1MsWx5z/cyGEJ8P3eERtAfdP8Bmg=", "narHash": "sha256-B+rZDPyktGEjOMt8PcHKYmgmKoF+GaNAFJhguktXAo0=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "3e0d543e6ba6c0c48117a81614e90c6d8c425170", "rev": "19bf3d8678fbbfbc173beaa0b5b37d37938db301",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -308,6 +364,41 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"yazi": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_5",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1775132067,
"narHash": "sha256-JFcGvXwV9O55bUDY9MilD2+/qUPqYg9IHsdH6oJzCGw=",
"owner": "sxyazi",
"repo": "yazi",
"rev": "86b8f0779ca5406fb6fead8c248d3ab23c9b1db0",
"type": "github"
},
"original": {
"owner": "sxyazi",
"repo": "yazi",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@@ -33,6 +33,8 @@
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
yazi.url = "github:sxyazi/yazi";
}; };
outputs = outputs =
@@ -45,6 +47,7 @@
nixvim, nixvim,
nur, nur,
sops-nix, sops-nix,
yazi,
... ...
}@inputs: }@inputs:
{ {

View File

@@ -52,7 +52,7 @@
sops sops
]; ];
stateVersion = "23.11"; stateVersion = "26.05";
}; };
programs.home-manager.enable = true; programs.home-manager.enable = true;

View File

@@ -1,18 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
fira-code
];
programs.alacritty = {
enable = true;
settings.font = {
size = 8;
normal.family = "Fira Code";
bold.family = "Fira Code";
italic.family = "Fira Code";
};
};
}

View File

@@ -1,16 +1,16 @@
{ {
imports = [ imports = [
./3dprint.nix ./3dprint.nix
./alacritty.nix
./anki.nix ./anki.nix
./calibre.nix ./calibre.nix
./digikam.nix ./digikam.nix
./eww ./eww
./filebrowser.nix ./filebrowser
./git.nix ./git.nix
./hyprlock.nix ./hyprlock.nix
./imv.nix ./imv.nix
./inkscape.nix ./inkscape.nix
./kitty.nix
./libreoffice.nix ./libreoffice.nix
./messenger.nix ./messenger.nix
./nixvim ./nixvim

View File

@@ -1,15 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
kdePackages.dolphin
kdePackages.dolphin-plugins
kdePackages.baloo-widgets
kdePackages.baloo
nautilus
udisks
yazi
];
xdg.configFile."menus/applications.menu".source =
"${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
}

View File

@@ -0,0 +1,252 @@
{ inputs, pkgs, ... }:
let
exifaudio = pkgs.fetchFromGitHub {
owner = "Sonico98";
repo = "exifaudio.yazi";
rev = "4506f9d";
sha256 = "sha256-RWCqWBpbmU3sh/A+LBJPXL/AY292blKb/zZXGvIA5/o=";
};
bunny = pkgs.fetchFromGitHub {
owner = "stelcodes";
repo = "bunny.yazi";
rev = "71b14a3";
sha256 = "sha256-uQO0C00yOFPWq8KEO/kEZM6tFZRc9SiXfgN7kzlwDeA=";
};
in
{
home.packages = with pkgs; [
# kdePackages.dolphin
# kdePackages.dolphin-plugins
# kdePackages.baloo-widgets
# kdePackages.baloo
exiftool
nautilus
ouch
udisks
];
xdg.configFile."menus/applications.menu".source =
"${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
# ── Yazi ──────────────────────────────────────────────────────────────
programs.yazi = {
enable = true;
package = inputs.yazi.packages.${pkgs.stdenv.hostPlatform.system}.default;
enableZshIntegration = true;
initLua = ./init.lua;
settings = {
yazi = {
ratio = [
1
4
3
];
sort_by = "natural";
sort_sensitive = true;
sort_reverse = false;
sort_dir_first = true;
linemode = "none";
show_hidden = true;
show_symlink = true;
};
preview = {
image_filter = "lanczos3";
image_quality = 90;
tab_size = 1;
max_width = 600;
max_height = 900;
cache_dir = "";
ueberzug_scale = 1;
ueberzug_offset = [
0
0
0
0
];
};
tasks = {
micro_workers = 5;
macro_workers = 10;
bizarre_retry = 5;
};
plugin = {
prepend_previewers = [
{
run = "exifaudio";
mime = "audio/*";
}
];
prepend_fetchers = [
{
id = "git";
url = "*";
run = "git";
}
{
id = "git";
url = "*/";
run = "git";
}
];
};
opener = {
extract = [
{
run = "ouch d -y %*";
desc = "Extract here with ouch";
for = "windows";
}
{
run = "ouch d -y $@";
desc = "Extract here with ouch";
for = "unix";
}
];
};
};
keymap = {
mgr.prepend_keymap = [
{
run = "plugin mount";
on = [ "M" ];
}
{
run = "plugin ouch";
on = [ "C" ];
}
{
run = "plugin bunny";
on = [
";"
];
desc = "Start bunny";
}
{
run = "plugin bunny fuzzy";
on = [
"'"
];
desc = "Start bunny fuzzy search";
}
{
run = "plugin chmod";
on = [
"c"
"m"
];
desc = "Chmod on selected files";
}
{
run = "plugin sudo -- paste";
on = [
"R"
"p"
"p"
];
desc = "sudo paste";
}
{
run = "plugin sudo -- paste --force";
on = [
"R"
"P"
];
desc = "sudo paste";
}
{
run = "plugin sudo -- rename";
on = [
"R"
"r"
];
desc = "sudo rename";
}
{
run = "plugin sudo -- link";
on = [
"R"
"p"
"l"
];
desc = "sudo link";
}
{
run = "plugin sudo -- link --relative";
on = [
"R"
"p"
"r"
];
desc = "sudo link relative path";
}
{
run = "plugin sudo -- hardlink";
on = [
"R"
"p"
"L"
];
desc = "sudo hardlink";
}
{
run = "plugin sudo -- create";
on = [
"R"
"a"
];
desc = "sudo create";
}
{
run = "plugin sudo -- remove";
on = [
"R"
"d"
];
desc = "sudo trash";
}
{
run = "plugin sudo -- remove --permanently";
on = [
"R"
"D"
];
desc = "sudo delete";
}
{
run = "plugin sudo -- chmod";
on = [
"R"
"m"
];
desc = "sudo chmod";
}
{
run = [ "plugin wl-clipboard" ];
on = [ "<C-y" ];
}
];
};
plugins = {
bunny = bunny;
chmod = pkgs.yaziPlugins.chmod;
exifaudio = exifaudio;
git = pkgs.yaziPlugins.git;
mount = pkgs.yaziPlugins.mount;
ouch = pkgs.yaziPlugins.ouch;
sudo = pkgs.yaziPlugins.sudo;
wl-clipboard = pkgs.yaziPlugins.wl-clipboard;
};
};
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
}

View File

@@ -0,0 +1,25 @@
require("bunny"):setup({
hops = {
{ key = "/", path = "/", desc = "Root" },
{ key = "n", path = "/nix/store", desc = "Nix store" },
{ key = "~", path = "~", desc = "Home" },
{ key = "r", path = "~/Repos", desc = "Repos" },
{ key = "d", path = "~/Downloads", desc = "Downloads" },
{ key = "D", path = "~/Documents", desc = "Documents" },
{ key = "c", path = "~/.config", desc = "Config files" },
{ key = { "N", "h" }, path = "~/Nextcloud", desc = "Nexctloud root" },
{ key = { "N", "d" }, path = "~/Nextcloud/Data/Documents", desc = "Nextcloud documents" },
{ key = { "N", "u" }, path = "~/Nextcloud/Uni", desc = "Nextcloud uni" },
-- key and path attributes are required, desc is optional
},
desc_strategy = "path", -- If desc isn't present, use "path" or "filename", default is "path"
ephemeral = true, -- Enable ephemeral hops, default is true
tabs = true, -- Enable tab hops, default is true
notify = false, -- Notify after hopping, default is false
fuzzy_cmd = "fzf", -- Fuzzy searching command, default is "fzf"
})
require("git"):setup({
-- Order of status signs showing in the linemode
order = 1500,
})

View File

@@ -11,6 +11,11 @@
programs.kitty = { programs.kitty = {
enable = true; enable = true;
font = {
size = 8;
name = "Fira Code";
package = pkgs.fira-code;
};
settings = { settings = {
clear_all_shortcuts = true; clear_all_shortcuts = true;
enabled_layouts = "splits:slit_axis=horizontal,stack"; enabled_layouts = "splits:slit_axis=horizontal,stack";

View File

@@ -1,4 +1,4 @@
{ inputs, pkgs, ... }: { pkgs, inputs, ... }:
{ {
imports = [ imports = [
@@ -6,38 +6,38 @@
./plugins ./plugins
]; ];
home.sessionVariables = { home.sessionVariables.EDITOR = "nvim";
EDITOR = "nvim";
};
programs.nixvim = { programs.nixvim = {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
extraPackages = with pkgs; [ # TODO:
nixpkgs.useGlobalPackages = false;
clipboard = {
providers = {
wl-copy.enable = true;
};
};
viAlias = true;
vimAlias = true;
lualoader.enable = true;
extraPackages = with pkgs; [
texliveFull texliveFull
texlivePackages.standalone texlivePackages.standalone
texlivePackages.relsize # needed for BA texlivePackages.relsize # needed for BA
# papis-nvim # papis-nvim
]; ];
extraConfigVim = ''
filetype plugin on nixpkgs.useGlobalPackages = false;
set nocompatible
syntax on clipboard.providers.wl-copy.enable = true;
''; keymaps = [
{
key = "Y";
action = ''"+y'';
options.silent = true;
}
{
key = "P";
action = ''"+p'';
options.silent = true;
}
];
viAlias = true;
vimAlias = true;
lualoader.enable = true;
globals = { globals = {
mapleader = " "; mapleader = " ";

View File

@@ -0,0 +1,45 @@
{ ... }:
{
programs.nixvim = {
plugins = {
aerial = {
enable = true;
lazyLoad.settings.cmd = [
"AerialToggle"
"AerialNavToggle"
];
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>a";
group = "Aerial";
icon = " ";
}
];
};
keymaps = [
{
key = "<leader>at";
action = "<cmd>AerialToggle<cr>";
options.desc = "Aerial tab";
}
{
key = "<leader>an";
action = "<cmd>AerialNavToggle<cr>";
options.desc = "Aerial navgation";
}
{
key = "<leader>a.";
action = "<cmd>AerialNext<cr>";
options.desc = "Aerial next";
}
{
key = "<leader>a,";
action = "<cmd>AerialPrev<cr>";
options.desc = "Aerial previous";
}
];
};
}

View File

@@ -1,13 +1,10 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins.nvim-autopairs = {
nvim-autopairs = {
enable = true; enable = true;
settings = { autoLoad = true;
check_ts = true;
}; settings.check_ts = true;
};
}; };
} }

View File

@@ -3,9 +3,9 @@
{ {
programs.nixvim = { programs.nixvim = {
plugins = { plugins = {
barbar = { barbar.enable = true;
enable = true; autoLoad = true;
};
which-key.settings.spec = [ which-key.settings.spec = [
{ {
__unkeyed-1 = "<leader>b"; __unkeyed-1 = "<leader>b";
@@ -22,62 +22,49 @@
} }
]; ];
}; };
keymaps = [ keymaps = [
{ {
action = "<CMD>BufferPrevious<CR>"; action = "<CMD>BufferPrevious<CR>";
key = "<leader>,"; key = "<leader>,";
mode = "n"; mode = "n";
options = { options.desc = "Tab ";
desc = "Tab ";
};
} }
{ {
action = "<CMD>BufferNext<CR>"; action = "<CMD>BufferNext<CR>";
key = "<leader>."; key = "<leader>.";
mode = "n"; mode = "n";
options = { options.desc = "Tab ";
desc = "Tab ";
};
} }
{ {
action = "<CMD>BufferMovePrevious<CR>"; action = "<CMD>BufferMovePrevious<CR>";
key = "<leader>b<"; key = "<leader>b<";
mode = "n"; mode = "n";
options = { options.desc = "Re-Order ";
desc = "Re-Order ";
};
} }
{ {
action = "<CMD>BufferMoveNext<CR>"; action = "<CMD>BufferMoveNext<CR>";
key = "<leader>b>"; key = "<leader>b>";
mode = "n"; mode = "n";
options = { options.desc = "Re-Order ";
desc = "Re-Order ";
};
} }
{ {
action = "<CMD>BufferClose<CR>"; action = "<CMD>BufferClose<CR>";
key = "<leader>bc"; key = "<leader>bc";
mode = "n"; mode = "n";
options = { options.desc = "Close";
desc = "Close";
};
} }
{ {
action = "<CMD>tabnew +Telescope\\ file_browser<CR>"; action = "<CMD>tabnew +Telescope\\ yazi<CR>"; # TODO: does not work
key = "<leader>bn"; key = "<leader>bn";
mode = "n"; mode = "n";
options = { options.desc = "Create";
desc = "Create";
};
} }
{ {
action = "<CMD>BufferPick<CR>"; action = "<CMD>BufferPick<CR>";
key = "<leader>bp"; key = "<leader>bp";
mode = "n"; mode = "n";
options = { options.desc = "Pick Tab";
desc = "Pick Tab";
};
} }
]; ];
}; };

View File

@@ -1,10 +1,10 @@
{ ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins.bullets = {
plugins = {
bullets = {
enable = true; enable = true;
lazyLoad.settings.filetypes = [ "md" "txt" "gitcommit" ];
settings = { settings = {
enabled_file_types = [ enabled_file_types = [
"markdown" "markdown"
@@ -16,17 +16,17 @@
custom_mappings = [ custom_mappings = [
[ [
"nmap" "nmap"
"o" "<leader>mn"
"<Plug>(bullets-newline)" "<Plug>(bullets-newline)"
] ]
[ [
"vmap" "vmap"
"gN" "<leader>mr"
"<Plug>(bullets-renumber)" "<Plug>(bullets-renumber)"
] ]
[ [
"nmap" "nmap"
"gN" "<leader>mr"
"<Plug>(bullets-renumber)" "<Plug>(bullets-renumber)"
] ]
[ [
@@ -62,7 +62,4 @@
]; ];
}; };
}; };
};
};
} }

View File

@@ -1,35 +1,30 @@
{ ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins = {
plugins = {
blink-cmp = { blink-cmp = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
keymap = { keymap.preset = "default";
preset = "default"; snippets.preset = "luasnip";
};
snippets = { completion.accept = {
preset = "luasnip";
};
completion = {
accept = {
auto_brackets = { auto_brackets = {
enabled = true; enabled = true;
kind_resolution = { kind_resolution.enabled = true;
enabled = true;
};
semantic_token_resolution = { semantic_token_resolution = {
enabled = true; enabled = true;
timeout_ms = 400; timeout_ms = 400;
}; };
}; };
}; };
};
sources = { sources = {
per_filetype = { per_filetype.yaml = [ "papis" ];
yaml = [ "papis" ];
};
providers = { providers = {
spell = { spell = {
module = "blink-cmp-spell"; module = "blink-cmp-spell";
@@ -37,19 +32,23 @@
score_offset = 100; score_offset = 100;
opts = { }; opts = { };
}; };
vimtex = { vimtex = {
name = "vimtex"; name = "vimtex";
module = "blink.compat.source"; module = "blink.compat.source";
}; };
dap = { dap = {
name = "dap"; name = "dap";
module = "blink.compat.source"; module = "blink.compat.source";
}; };
mkdnflow = { mkdnflow = {
name = "mkdnflow"; name = "mkdnflow";
module = "blink.compat.source"; module = "blink.compat.source";
}; };
}; };
default = [ default = [
"lsp" "lsp"
"mkdnflow" "mkdnflow"
@@ -68,6 +67,4 @@
cmp-vimtex.enable = true; cmp-vimtex.enable = true;
# cmp-dap.enable = true; # cmp-dap.enable = true;
}; };
};
} }

View File

@@ -0,0 +1,15 @@
{ ... }:
{
programs.nixvim.plugins.colorizer = {
enable = true;
lazyLoad.settings.filetypes = [
"css"
"scss"
"less"
"sass"
"html"
"svg"
];
};
}

View File

@@ -5,7 +5,9 @@
plugins = { plugins = {
comment-box = { comment-box = {
enable = true; enable = true;
autoLoad = true;
}; };
which-key.settings.spec = [ which-key.settings.spec = [
{ {
__unkeyed-1 = "<leader>c"; __unkeyed-1 = "<leader>c";
@@ -14,41 +16,32 @@
} }
]; ];
}; };
keymaps = [ keymaps = [
{ {
key = "<leader>cb"; key = "<leader>cb";
action = "<Cmd>CBccbox<CR>"; action = "<Cmd>CBccbox<CR>";
options = { options.desc = "Box Title";
desc = "Box Title";
};
} }
{ {
key = "<leader>ct"; key = "<leader>ct";
action = "<Cmd>CBllline<CR>"; action = "<Cmd>CBllline<CR>";
options = { options.desc = "Titled Line";
desc = "Titled Line";
};
} }
{ {
key = "<leader>cl"; key = "<leader>cl";
action = "<Cmd>CBline<CR>"; action = "<Cmd>CBline<CR>";
options = { options.desc = "Simple Line";
desc = "Simple Line";
};
} }
{ {
key = "<leader>cm"; key = "<leader>cm";
action = "<Cmd>CBllbox14<CR>"; action = "<Cmd>CBllbox14<CR>";
options = { options.desc = "Marked";
desc = "Marked";
};
} }
{ {
key = "<leader>cd"; key = "<leader>cd";
action = "<Cmd>CBd<CR>"; action = "<Cmd>CBd<CR>";
options = { options.desc = "Remove a Box";
desc = "Remove a Box";
};
} }
]; ];
}; };

View File

@@ -1,16 +1,10 @@
{ ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins.comment = {
plugins = {
comment = {
enable = true; enable = true;
settings = { autoLoad = true;
mappings = {
basic = true; settings.mappings.basic = true;
};
};
};
};
}; };
} }

View File

@@ -21,13 +21,13 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
conform-nvim = { conform-nvim = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
formatters_by_ft = { formatters_by_ft = {
lua = [ "stylua" ]; lua = [ "stylua" ];
rust = [ "rustfmt" ]; rust = [ "rustfmt" ];
python = [ python = [ "black" ];
"black"
];
haskell = [ "fourmolu" ]; haskell = [ "fourmolu" ];
terraform = [ "hcl" ]; terraform = [ "hcl" ];
elixir = [ "mix" ]; elixir = [ "mix" ];
@@ -47,9 +47,7 @@
yaml = [ "prettierd" ]; yaml = [ "prettierd" ];
nu = [ "topiary_nu" ]; nu = [ "topiary_nu" ];
nix = [ "nixfmt" ]; nix = [ "nixfmt" ];
tex = [ tex = [ "tex-fmt" ];
"tex-fmt"
];
"_" = [ "_" = [
"squeeze_blanks" "squeeze_blanks"
"trim_whitespace" "trim_whitespace"
@@ -94,9 +92,7 @@
"2" "2"
]; ];
}; };
tex-fmt = { tex-fmt.command = "tex-fmt";
command = "tex-fmt";
};
}; };
}; };
}; };

View File

@@ -0,0 +1,49 @@
{ ... }:
{
programs.nixvim = {
plugins = {
csvview = {
enable = true;
lazyLoad.settings.cmd = [
"CsvViewEnable"
"CsvViewToggle"
];
settings = {
parser.async_chunksize = 30;
view = {
display_mode = "border";
spacing = 2;
};
};
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>z";
group = "CSV";
icon = " ";
}
];
};
keymaps = [
{
key = "<leader>ze";
action = "<Cmd>CsvViewEnable<CR>";
options.desc = "Csv enable preview";
}
{
key = "<leader>zd";
action = "<Cmd>CsvViewDisable<CR>";
options.desc = "Csv disable preview";
}
{
key = "<leader>zt";
action = "<Cmd>CsvViewToggle<CR>";
options.desc = "Csv toggle preview";
}
];
};
}

View File

@@ -1,4 +1,4 @@
{ config, pkgs, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
@@ -13,10 +13,13 @@
plugins = { plugins = {
dap-python = { dap-python = {
enable = true; enable = true;
autoLoad = true;
}; };
dap = { dap = {
enable = true; enable = true;
autoLoad = true;
luaConfig.post = '' luaConfig.post = ''
local dap, dapui = require("dap"), require("dapui") local dap, dapui = require("dap"), require("dapui")
dap.listeners.before.attach.dapui_config = function() dap.listeners.before.attach.dapui_config = function()
@@ -32,11 +35,13 @@
dapui.close() dapui.close()
end end
''; '';
adapters = { adapters = {
executables = { executables = {
lldb = { lldb = {
command = "${pkgs.lldb_19}/bin/lldb-dap"; command = "${pkgs.lldb_19}/bin/lldb-dap";
}; };
gdb = { gdb = {
command = "${pkgs.gdb}/bin/gdb"; command = "${pkgs.gdb}/bin/gdb";
args = [ args = [
@@ -45,6 +50,7 @@
"set print pretty on" "set print pretty on"
]; ];
}; };
rust-gdb = { rust-gdb = {
command = "${pkgs.rustc}/bin/rust-gdb"; command = "${pkgs.rustc}/bin/rust-gdb";
args = [ args = [
@@ -55,9 +61,8 @@
}; };
}; };
}; };
signs = {
dapBreakpoint.text = ""; signs.dapBreakpoint.text = "";
};
configurations = { configurations = {
cpp = [ cpp = [
{ {
@@ -104,6 +109,7 @@
cwd = "\${workspaceFolder}"; cwd = "\${workspaceFolder}";
} }
]; ];
c = [ c = [
{ {
name = "Launch file"; name = "Launch file";
@@ -136,6 +142,7 @@
args = { }; args = { };
} }
]; ];
rust = [ rust = [
{ {
name = "Launch"; name = "Launch";
@@ -182,12 +189,17 @@
]; ];
}; };
}; };
dap-ui = { dap-ui = {
enable = true; enable = true;
autoLoad = true;
}; };
dap-virtual-text = { dap-virtual-text = {
enable = true; enable = true;
autoLoad = true;
}; };
which-key.settings.spec = [ which-key.settings.spec = [
{ {
__unkeyed-1 = "<leader>d"; __unkeyed-1 = "<leader>d";
@@ -196,70 +208,55 @@
} }
]; ];
}; };
keymaps = [ keymaps = [
{ {
key = "<leader>dt"; key = "<leader>dt";
action.__raw = "function() require('dap').toggle_breakpoint() end"; action.__raw = "function() require('dap').toggle_breakpoint() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Toggle Breakpoint";
desc = "Toggle Breakpoint";
};
} }
{ {
key = "<leader>dc"; key = "<leader>dc";
action.__raw = "function() require('dap').continue() end"; action.__raw = "function() require('dap').continue() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Continue";
desc = "Continue";
};
} }
{ {
key = "<leader>dc"; key = "<leader>dc";
action.__raw = "function() require('dap').continue() end"; action.__raw = "function() require('dap').continue() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Continue";
desc = "Continue";
};
} }
{ {
key = "<leader>di"; key = "<leader>di";
action.__raw = "function() require('dap').step_into() end"; action.__raw = "function() require('dap').step_into() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Step Into";
desc = "Step Into";
};
} }
{ {
key = "<leader>do"; key = "<leader>do";
action.__raw = "function() require('dap').step_over() end"; action.__raw = "function() require('dap').step_over() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Step Over";
desc = "Step Over";
};
} }
{ {
key = "<leader>du"; key = "<leader>du";
action.__raw = "function() require('dap').step_out() end"; action.__raw = "function() require('dap').step_out() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Step Out";
desc = "Step Out";
};
} }
{ {
key = "<leader>dr"; key = "<leader>dr";
action.__raw = "function() require('dap').repl.open() end"; action.__raw = "function() require('dap').repl.open() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Open REPL";
desc = "Open REPL";
};
} }
{ {
key = "<leader>dl"; key = "<leader>dl";
action.__raw = "function() require('dap').run_last() end"; action.__raw = "function() require('dap').run_last() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Run Last";
desc = "Run Last";
};
} }
{ {
key = "<leader>dq"; key = "<leader>dq";
@@ -272,27 +269,21 @@
end end
''; '';
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Terminate";
desc = "Terminate";
};
} }
{ {
key = "<leader>db"; key = "<leader>db";
action.__raw = "function() require('dap').list_breakpoints() end"; action.__raw = "function() require('dap').list_breakpoints() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "List Breakpoints";
desc = "List Breakpoints";
};
} }
{ {
key = "<leader>de"; key = "<leader>de";
action.__raw = "function() require('dap').set_exception_breakpoints({ ' all ' }) end"; action.__raw = "function() require('dap').set_exception_breakpoints({ ' all ' }) end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Set Exception Breakpoints";
desc = "Set Exception Breakpoints";
};
} }
]; ];
}; };
} }

View File

@@ -1,23 +1,24 @@
{ {
imports = [ imports = [
./aerial.nix
./autopairs.nix ./autopairs.nix
./barbar.nix ./barbar.nix
./bullets.nix ./bullets.nix
./cmp.nix ./cmp.nix
./colorizor.nix
./comment-box.nix ./comment-box.nix
./comment.nix ./comment.nix
./conform.nix ./conform.nix
./csvview.nix
./dap.nix ./dap.nix
./diffview.nix
./dynomark.nix ./dynomark.nix
./edgy.nix ./edgy.nix
./gitsigns.nix ./gitsigns.nix
./haskell-tools.nix ./img-clip.nix
./knap.nix ./knap.nix
./leap.nix
./lsp.nix
./ltex-extra.nix
./lualine.nix ./lualine.nix
./lsp.nix
./lz-n.nix
./markdown-preview.nix ./markdown-preview.nix
./mkdnflow.nix ./mkdnflow.nix
./neoscroll.nix ./neoscroll.nix
@@ -27,15 +28,14 @@
./oil.nix ./oil.nix
./otter.nix ./otter.nix
./papis.nix ./papis.nix
./peek.nix ./rainbow.nix
./markdown-preview.nix ./render-markdown.nix
./rustaceanvim.nix
./smart-splits.nix ./smart-splits.nix
./snippets.nix ./snippets.nix
./sniprun.nix ./sniprun.nix
./startup.nix ./startup.nix
./surround.nix ./surround.nix
./telescope.nix
./texpresso.nix
./todo-comments.nix ./todo-comments.nix
./toggleterm.nix ./toggleterm.nix
./treesitter.nix ./treesitter.nix
@@ -43,10 +43,12 @@
./typst-preview.nix ./typst-preview.nix
./typst-vim.nix ./typst-vim.nix
./undotree.nix ./undotree.nix
./unified.nix
./vimtex.nix ./vimtex.nix
./web-devicons.nix ./web-devicons.nix
./which-key.nix ./which-key.nix
./yanky.nix ./wilder.nix
./zk.nix ./yazi.nix
./yuck.nix
]; ];
} }

View File

@@ -1,12 +0,0 @@
{ pkgs, ... }:
{
programs.nixvim = {
plugins = {
diffview = {
enable = true;
};
};
};
}

View File

@@ -14,11 +14,7 @@ let
in in
{ {
programs.nixvim = { programs.nixvim = {
extraPlugins = [ dynomark-nvim ];
extraPlugins = [
dynomark-nvim
];
extraConfigLua = "require('dynomark').setup({})"; extraConfigLua = "require('dynomark').setup({})";
keymaps = [ keymaps = [
@@ -26,17 +22,13 @@ in
key = "<leader>v"; key = "<leader>v";
action = "<Plug>(DynomarkToggle)"; action = "<Plug>(DynomarkToggle)";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Toggle Dynomark";
desc = "Toggle Dynomark";
};
} }
{ {
key = "<leader>V"; key = "<leader>V";
action = "<Plug>(DynomarkRun)"; action = "<Plug>(DynomarkRun)";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Run Dynomark query under cursor";
desc = "Run Dynomark query under cursor";
};
} }
]; ];
}; };

View File

@@ -9,10 +9,12 @@
# To prevent this, set `splitkeep` to either `screen` or `topline`. # To prevent this, set `splitkeep` to either `screen` or `topline`.
splitkeep = "screen"; splitkeep = "screen";
}; };
plugins = { plugins = {
edgy = { edgy = {
enable = true; enable = true;
autoLoad = true; autoLoad = true;
settings = { settings = {
bottom.__raw = '' bottom.__raw = ''
{ {
@@ -37,6 +39,7 @@
} }
} }
''; '';
left.__raw = '' left.__raw = ''
{ {
-- Neo-tree filesystem always takes half the screen height -- Neo-tree filesystem always takes half the screen height
@@ -77,4 +80,3 @@
}; };
}; };
} }

View File

@@ -1,11 +1,8 @@
{ ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins.gitsigns = {
plugins = {
gitsigns = {
enable = true; enable = true;
}; autoLoad = true;
};
}; };
} }

View File

@@ -12,8 +12,6 @@
haskellPackages.ghci-dap haskellPackages.ghci-dap
]; ];
extraPlugins = with pkgs.vimPlugins; [ extraPlugins = with pkgs.vimPlugins; [ haskell-tools-nvim ];
haskell-tools-nvim
];
}; };
} }

View File

@@ -0,0 +1,22 @@
{ ... }:
{
programs.nixvim = {
plugins.img-clip = {
enable = true;
lazyLoad.settings.filetypes = [
"md"
"tex"
"typ"
];
};
keymaps = [
{
key = "<leader>p";
action = "<cmd>PasteImage<cr>";
options.desc = "Paste image";
}
];
};
}

View File

@@ -1,6 +1,5 @@
{ pkgs, ... }: { pkgs, ... }:
# TODO: Make filetype keybindings work
let let
keys = [ keys = [
{ {
@@ -11,9 +10,7 @@ let
"v" "v"
"i" "i"
]; ];
options = { options.desc = "Close Viewer (knap)";
desc = "Close Viewer (knap)";
};
} }
{ {
action.__raw = "function() require('knap').toggle_autopreviewing() end"; action.__raw = "function() require('knap').toggle_autopreviewing() end";
@@ -23,9 +20,7 @@ let
"v" "v"
"i" "i"
]; ];
options = { options.desc = "Toggle Auto-Processing (knap)";
desc = "Toggle Auto-Processing (knap)";
};
} }
{ {
action.__raw = "function() require('knap').forward_jump() end"; action.__raw = "function() require('knap').forward_jump() end";
@@ -35,9 +30,7 @@ let
"v" "v"
"i" "i"
]; ];
options = { options.desc = "SyncTeX Forward Search (Knap)";
desc = "SyncTeX Forward Search (Knap)";
};
} }
]; ];
in in
@@ -47,22 +40,18 @@ in
texliveFull texliveFull
rubber rubber
]; ];
programs.nixvim = { programs.nixvim = {
extraPlugins = with pkgs.vimPlugins; [ knap ]; extraPlugins = with pkgs.vimPlugins; [ knap ];
globals = { globals.knap_settings = {
knap_settings = {
htmltohtmlviewerlaunch = "luakit %outputfile%"; htmltohtmlviewerlaunch = "luakit %outputfile%";
mdtohtmlviewerlaunch = "luakit %outputfile%"; mdtohtmlviewerlaunch = "luakit %outputfile%";
markdowntohtmlviewerlaunch = "luakit %outputfile%"; markdowntohtmlviewerlaunch = "luakit %outputfile%";
}; };
};
files = { files = {
"ftplugin/latex.lua" = { "ftplugin/latex.lua".keymaps = keys;
keymaps = keys; "ftplugin/markdown.lua".keymaps = keys;
};
"ftplugin/markdown.lua" = {
keymaps = keys;
};
}; };
}; };
} }

View File

@@ -1,30 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
leap = {
enable = true;
settings = {
case_sensitive = false;
};
};
};
keymaps = [
{
key = "s";
action = "<Plug>(leap)";
mode = [
"n"
"x"
"o"
];
}
{
key = "S";
action = "<Plug>(leap-from-window)";
mode = [ "n" ];
}
];
};
}

View File

@@ -7,7 +7,10 @@
]; ];
programs.nixvim = { programs.nixvim = {
plugins.lsp.enable = true; plugins.lsp = {
enable = true;
autoLoad = true;
};
lsp = { lsp = {
luaConfig = { luaConfig = {
@@ -17,65 +20,29 @@
''; '';
}; };
servers = { servers = {
nixd = { nixd.enable = false;
enable = false; rust_analyzer.enable = true;
}; leanls.enable = true;
rust_analyzer = {
enable = true;
};
leanls = {
enable = true;
};
nil_ls = { nil_ls = {
enable = !config.programs.nixvim.plugins.lsp.servers.nixd.enable; enable = !config.programs.nixvim.plugins.lsp.servers.nixd.enable;
config = { config = {
nil = { nil = {
formatting = { formatting.command = [ "nixfmt" ];
command = [ diagnostics.ignored = [ ];
"nixfmt" nix.flake.autoArchive = true;
];
};
diagnostics = {
ignored = [ ];
};
nix = {
flake = {
autoArchive = true;
}; };
}; };
}; };
}; nushell.enable = true;
}; pylsp.enable = true;
nushell = { pylyzer.enable = false;
enable = true; pyright.enable = true;
}; clangd.enable = true;
pylsp = { zk.enable = true;
enable = true; elixirls.enable = true;
}; marksman.enable = true;
pylyzer = { texlab.enable = true;
enable = false; lua_ls.enable = true;
};
pyright = {
enable = true;
};
clangd = {
enable = true;
};
zk = {
enable = true;
};
elixirls = {
enable = true;
};
marksman = {
enable = true;
};
texlab = {
enable = true;
};
lua_ls = {
enable = true;
};
ltex_plus = { ltex_plus = {
enable = true; enable = true;
package = pkgs.ltex-ls-plus; package = pkgs.ltex-ls-plus;
@@ -93,9 +60,7 @@
}; };
}; };
}; };
tinymist = { tinymist.enable = true;
enable = true;
};
}; };
}; };
}; };

View File

@@ -1,9 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
ltex-extra = {
enable = true;
};
};
}

View File

@@ -1,48 +1,8 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins.lualine = {
lualine = {
enable = true; enable = true;
# settings = { autoLoad = true;
# sections = {
# lualine_c = [
# {
# __unkeyed-1 = {
# __raw = ''
# function()
# require("trouble").statusline({
# mode = "lsp_document_symbols",
# groups = {},
# title = false,
# filter = { range = true },
# format = "{kind_icon}{symbol.name:Normal}",
# -- The following line is needed to fix the background color
# -- Set it to the lualine section you want to use
# hl_group = "lualine_c_normal",
# }
# ).get
# end
# '';
# };
# cond = {
# __raw = ''
# require("trouble").statusline({
# mode = "lsp_document_symbols",
# groups = {},
# title = false,
# filter = { range = true },
# format = "{kind_icon}{symbol.name:Normal}",
# -- The following line is needed to fix the background color
# -- Set it to the lualine section you want to use
# hl_group = "lualine_c_normal",
# }).has
# '';
# };
# }
# ];
# };
# };
};
}; };
} }

View File

@@ -0,0 +1,7 @@
{ ... }:
{
programs.nixvim.plugins.lz-n = {
enable = true;
};
}

View File

@@ -1,9 +1,8 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins.markdown-preview = {
markdown-preview = {
enable = true; enable = true;
}; lazyLoad.settings.filetypes = [ "md" ];
}; };
} }

View File

@@ -2,13 +2,13 @@
{ {
programs.nixvim = { programs.nixvim = {
extraConfigLua = '' extraConfigLua = ''vim.api.nvim_create_autocmd("FileType", {pattern = "markdown", command = "set awa"})'';
vim.api.nvim_create_autocmd("FileType", {pattern = "markdown", command = "set awa"})
'';
plugins = { plugins = {
mkdnflow = { mkdnflow = {
enable = true; enable = true;
lazyLoad.settings.filetypes = [ "md" ];
settings = { settings = {
links = { links = {
style = "wiki"; style = "wiki";
@@ -31,6 +31,7 @@
end end
''; '';
}; };
modules = { modules = {
conceal = true; conceal = true;
cursor = true; cursor = true;
@@ -42,10 +43,12 @@
tables = true; tables = true;
yaml = true; yaml = true;
}; };
filetypes = { filetypes = {
markdown = true; markdown = true;
qmd = true; qmd = true;
}; };
to_do = { to_do = {
symbols = [ symbols = [
" " " "
@@ -54,6 +57,7 @@
]; ];
status_propagation.up = true; status_propagation.up = true;
}; };
foldtext = { foldtext = {
title_transformer.__raw = '' title_transformer.__raw = ''
function() function()
@@ -104,6 +108,7 @@
middle = ""; middle = "";
}; };
}; };
mappings = { mappings = {
MkdnEnter = [ MkdnEnter = [
[ [
@@ -165,6 +170,7 @@
"<C-Space>" "<C-Space>"
]; ];
}; };
create_dirs = true; create_dirs = true;
new_file_template = { new_file_template = {
use_template = true; use_template = true;
@@ -175,8 +181,12 @@
template = '' template = ''
--- ---
title: {{ title }} title: {{ title }}
description:
published: true
date: {{ date }} date: {{ date }}
tags: [] tags: private
editor: markdown
dateCreated: {{ date }}
--- ---
# {{ title }} # {{ title }}
''; '';

View File

@@ -4,6 +4,8 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
neoscroll = { neoscroll = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
cursor_scrolls_alone = true; cursor_scrolls_alone = true;
easing_function = "quadratic"; easing_function = "quadratic";
@@ -22,7 +24,6 @@
respect_scrolloff = false; respect_scrolloff = false;
stop_eof = true; stop_eof = true;
}; };
}; };
}; };
} }

View File

@@ -1,14 +1,10 @@
{ ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins.neo-tree = {
plugins = {
neo-tree = {
enable = true; enable = true;
settings = { autoLoad = true;
enable_git_status = true;
}; settings.enable_git_status = true;
};
};
}; };
} }

View File

@@ -1,14 +1,16 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins.noice = {
noice = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
lsp.override = { lsp.override = {
"vim.lsp.util.convert_input_to_markdown_lines" = true; "vim.lsp.util.convert_input_to_markdown_lines" = true;
"vim.lsp.util.stylize_markdown" = true; "vim.lsp.util.stylize_markdown" = true;
}; };
prests = { prests = {
bottom_search = true; bottom_search = true;
command_palette = true; command_palette = true;
@@ -18,5 +20,4 @@
}; };
}; };
}; };
};
} }

View File

@@ -2,16 +2,13 @@
{ {
programs.nixvim = { programs.nixvim = {
plugins = { plugins.notify = {
notify = {
enable = true; enable = true;
settings = { autoLoad = true;
render = "wrapped-compact";
}; settings.render = "wrapped-compact";
};
};
opts = {
termguicolors = true;
}; };
opts.termguicolors = true;
}; };
} }

View File

@@ -1,9 +1,8 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins.oil = {
oil = {
enable = true; enable = true;
}; autoLoad = true;
}; };
} }

View File

@@ -0,0 +1,19 @@
{ ... }:
{
programs.nixvim.plugins.openscad = {
enable = true;
lazyLoad.settings.filetype = [ "scad" ];
luaConfig.post = ''
vim.g.openscad_fuzzy_finder = 'skim'
-- when the pdf_command is run, the last argument will be the pdf filename
vim.g.openscad_pdf_command = 'zathura'
vim.g.openscad_cheatsheet_window_blend = 15 --%
vim.g.openscad_load_snippets = false
-- should the openscad project automatically be opened on startup
vim.g.openscad_auto_open = false
vim.g.openscad_default_mappings = true
'';
};
}

View File

@@ -1,9 +1,8 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins.otter = {
otter = {
enable = true; enable = true;
}; autoLoad = true;
}; };
} }

View File

@@ -2,15 +2,13 @@
{ {
programs.nixvim = { programs.nixvim = {
plugins = { plugins.papis = {
papis = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
yq_bin = "${pkgs.yq-go}/bin/yq"; yq_bin = "${pkgs.yq-go}/bin/yq";
search = { search.provider = "telescope";
provider = "telescope";
};
};
}; };
}; };
@@ -19,9 +17,7 @@
key = "<leader>pp"; key = "<leader>pp";
action = "<CMD>Papis search<CR>"; action = "<CMD>Papis search<CR>";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Papis";
desc = "Papis";
};
} }
]; ];
}; };

View File

@@ -1,12 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
peek = {
enable = true;
settings = {
app = "firefox";
};
};
};
}

View File

@@ -0,0 +1,77 @@
{ ... }:
{
programs.nixvim.plugins.rainbow = {
enable = true;
autoLoad = true;
settings = {
active = 1;
conf = {
guifgs = [
"#f5c2e7"
"#eba0ac"
"#a6e3a1"
"#74c7ec"
"#f5e0dc"
"#cba6f7"
"#fab387"
"#94e2d5"
"#89b4fa"
"#f2cdcd"
"#f38ba8"
"#f9e2af"
"#89dceb"
"#b4befe"
];
operators = "_,_";
parentheses = [
"start=/(/ end=/)/ fold"
"start=/{/ end=/}/ fold"
"start=/\\[/ end=/\\]/ fold"
"start=/\\begin/ end=/\\end/ fold"
];
separately = {
"*".parentheses = [
"start=/(/ end=/)/ fold"
"start=/{/ end=/}/ fold"
"start=/\\[/ end=/\\]/ fold"
];
css = 0;
haskell.parentheses = [
"start=/(/ end=/)/ fold"
"start=/\[/ end=/\]/ fold"
"start=/\v\{\ze[^-]/ end=/}/ fold"
];
lisp.guifgs = [
"#f5c2e7"
"#eba0ac"
"#a6e3a1"
"#74c7ec"
"#f5e0dc"
"#cba6f7"
"#fab387"
"#94e2d5"
"#89b4fa"
"#f2cdcd"
"#f38ba8"
"#f9e2af"
"#89dceb"
"#b4befe"
];
markdown.parentheses_options = "containedin=markdownCode contained";
nerdtree = 0;
perl.syn_name_prefix = "perlBlockFoldRainbow";
stylus.parentheses = [ "start=/{/ end=/}/ fold contains=@colorableGroup" ];
tex.parentheses = [
"start=/(/ end=/)/ fold"
"start=/{/ end=/}/ fold"
"start=/\\[/ end=/\\]/ fold"
"start=/\\begin/ end=/\\end/ fold"
];
vim.parentheses_options = "containedin=vimFuncBody";
};
};
};
};
}

View File

@@ -3,27 +3,44 @@
{ {
home.packages = with pkgs; [ python312Packages.pylatexenc ]; home.packages = with pkgs; [ python312Packages.pylatexenc ];
programs.nixvim.plugins = { programs.nixvim = {
plugins = {
render-markdown = { render-markdown = {
enable = true; enable = true;
lazyLoad.settings.filetypes = [ "md" ];
settings = { settings = {
ft = [ ft = [ "markdown" ];
"markdown" latex.enabled = false;
"quarto" completions.lsp.enabled = true;
];
latex = { code = {
enabled = false; width = "block";
}; min_width = 45;
completions = { left_pad = 2;
lsp = { language_pad = 2;
enabled = true;
};
}; };
heading.icons = [ "󰎤 " "󰎧 " "󰎪 " "󰎭 " "󰎱 " "󰎳 " ];
}; };
}; };
web-devicons = { which-key.settings.spec = [
enable = true; {
__unkeyed-1 = "<leader>m";
group = "Markdown";
icon = " ";
}
];
}; };
keymaps = [
{
action = "<CMD>RenderMarkdown toggle<CR>";
key = "<leader>ms";
mode = "n";
options.desc = "Toggle markdown preview";
}
];
}; };
} }

View File

@@ -0,0 +1,44 @@
{ pkgs, ... }:
{
programs.nixvim = {
extraPackages = with pkgs; [ rust-analyzer ];
plugins.rustaceanvim = {
enable = true;
lazyload.settings.filetype = [ "rs" ];
};
files."ftplugin/rust.lua" = {
keymaps = [
{
action.__raw = ''
function()
vim.cmd.RustAnalyzer('codeAction')
end
'';
key = "<leader>a";
mode = [ "n" ];
options = {
desc = "Code action";
silent = true;
buffer.__raw = "vim.api.nvim_get_current_buf()";
};
}
{
action.__raw = ''
function()
vim.cmd.RustAnalyzer({'hover', 'actions'})
end
'';
key = "K";
mode = [ "n" ];
options = {
silent = true;
buffer.__raw = "vim.api.nvim_get_current_buf()";
};
}
];
};
};
}

View File

@@ -1,11 +1,14 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim = {
plugins = {
smart-splits = { smart-splits = {
enable = true; enable = true;
autoLoad = true;
}; };
}; };
programs.nixvim.keymaps = [ keymaps = [
{ {
action.__raw = "require('smart-splits').move_cursor_left"; action.__raw = "require('smart-splits').move_cursor_left";
key = "<C-S-p>h"; key = "<C-S-p>h";
@@ -101,4 +104,5 @@
]; ];
} }
]; ];
};
} }

View File

@@ -1,15 +1,17 @@
{...}: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins = {
luasnip = { luasnip = {
enable = true; enable = true;
autoLoad = true;
fromVscode = [ { } ]; fromVscode = [ { } ];
}; };
friendly-snippets = { friendly-snippets = {
enable = true; enable = true;
lazyLoad.enable = false;
}; };
}; };
} }

View File

@@ -1,10 +1,10 @@
{ ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins.sniprun = {
plugins = {
sniprun = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
display = [ "VirtualLine" ]; display = [ "VirtualLine" ];
snipruncolors = { snipruncolors = {
@@ -14,6 +14,7 @@
ctermbg = "Cyan"; ctermbg = "Cyan";
ctermfg = "Black"; ctermfg = "Black";
}; };
SniprunVirtualTextErr = { SniprunVirtualTextErr = {
bg = "#ee99a0"; bg = "#ee99a0";
fg = "#000000"; fg = "#000000";
@@ -23,6 +24,4 @@
}; };
}; };
}; };
};
};
} }

View File

@@ -1,10 +1,10 @@
{ ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins.startup = {
plugins = {
startup = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
theme = "dashboard"; theme = "dashboard";
sections = { sections = {
@@ -27,9 +27,9 @@
"<leader>of" "<leader>of"
] ]
[ [
" File Browser" " Yazi"
"Telescope file_browser" "Telescope file_browser"
"<leader>fb" "<leader>yf"
] ]
[ [
" Colorschemes" " Colorschemes"
@@ -42,6 +42,7 @@
"<leader>nf" "<leader>nf"
] ]
]; ];
defaultColor = ""; defaultColor = "";
foldSection = true; foldSection = true;
highlight = "String"; highlight = "String";
@@ -50,6 +51,7 @@
title = "Basic Commands"; title = "Basic Commands";
type = "mapping"; type = "mapping";
}; };
header = { header = {
align = "center"; align = "center";
content = { content = {
@@ -66,6 +68,4 @@
}; };
}; };
}; };
};
};
} }

View File

@@ -1,11 +1,11 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins.nvim-surround = {
nvim-surround = {
enable = true; enable = true;
luaConfig.post = # lua autoLoad = true;
''
luaConfig.post = ''
local M = {} local M = {}
M.get_input = function(prompt) M.get_input = function(prompt)
@@ -37,6 +37,7 @@
end, end,
delete = "^(. ?)().-( ?.)()$", delete = "^(. ?)().-( ?.)()$",
}, },
[")"] = { [")"] = {
add = { "(", ")" }, add = { "(", ")" },
find = function() find = function()
@@ -44,6 +45,7 @@
end, end,
delete = "^(.)().-(.)()$", delete = "^(.)().-(.)()$",
}, },
["{"] = { ["{"] = {
add = { "{ ", " }" }, add = { "{ ", " }" },
find = function() find = function()
@@ -51,6 +53,7 @@
end, end,
delete = "^(. ?)().-( ?.)()$", delete = "^(. ?)().-( ?.)()$",
}, },
["}"] = { ["}"] = {
add = { "{", "}" }, add = { "{", "}" },
find = function() find = function()
@@ -58,6 +61,7 @@
end, end,
delete = "^(.)().-(.)()$", delete = "^(.)().-(.)()$",
}, },
["<"] = { ["<"] = {
add = { "< ", " >" }, add = { "< ", " >" },
find = function() find = function()
@@ -65,6 +69,7 @@
end, end,
delete = "^(. ?)().-( ?.)()$", delete = "^(. ?)().-( ?.)()$",
}, },
[">"] = { [">"] = {
add = { "<", ">" }, add = { "<", ">" },
find = function() find = function()
@@ -72,6 +77,7 @@
end, end,
delete = "^(.)().-(.)()$", delete = "^(.)().-(.)()$",
}, },
["["] = { ["["] = {
add = { "[ ", " ]" }, add = { "[ ", " ]" },
find = function() find = function()
@@ -79,6 +85,7 @@
end, end,
delete = "^(. ?)().-( ?.)()$", delete = "^(. ?)().-( ?.)()$",
}, },
["]"] = { ["]"] = {
add = { "[", "]" }, add = { "[", "]" },
find = function() find = function()
@@ -86,6 +93,7 @@
end, end,
delete = "^(.)().-(.)()$", delete = "^(.)().-(.)()$",
}, },
["'"] = { ["'"] = {
add = { "'", "'" }, add = { "'", "'" },
find = function() find = function()
@@ -93,6 +101,7 @@
end, end,
delete = "^(.)().-(.)()$", delete = "^(.)().-(.)()$",
}, },
['"'] = { ['"'] = {
add = { '"', '"' }, add = { '"', '"' },
find = function() find = function()
@@ -100,6 +109,7 @@
end, end,
delete = "^(.)().-(.)()$", delete = "^(.)().-(.)()$",
}, },
["`"] = { ["`"] = {
add = { "`", "`" }, add = { "`", "`" },
find = function() find = function()
@@ -107,6 +117,7 @@
end, end,
delete = "^(.)().-(.)()$", delete = "^(.)().-(.)()$",
}, },
["i"] = { ["i"] = {
add = function() add = function()
local left_delimiter = M.get_input("Enter the left delimiter: ") local left_delimiter = M.get_input("Enter the left delimiter: ")
@@ -120,8 +131,8 @@
}, },
} }
''; '';
settings = {
aliases = { settings.aliases = {
"a" = ">"; "a" = ">";
"b" = ")"; "b" = ")";
"B" = "}"; "B" = "}";
@@ -142,6 +153,7 @@
"`" "`"
]; ];
}; };
keymaps = { keymaps = {
insert = "<C-g>s"; insert = "<C-g>s";
insert_line = "<C-g>S"; insert_line = "<C-g>S";
@@ -157,6 +169,4 @@
change_line = "cS"; change_line = "cS";
}; };
}; };
};
};
} }

View File

@@ -1,49 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
ripgrep
fd
];
programs.nixvim.plugins = {
telescope = {
enable = true;
extensions = {
fzf-native.enable = true;
ui-select.enable = true;
undo.enable = true;
file-browser = {
enable = true;
settings = {
hijack_netrw = true;
};
};
};
keymaps = {
"<leader>ff" = {
action = "find_files";
options.desc = "List Files";
};
"<leader>fb" = {
action = "file_browser path=%:p:h select_buffer=true";
options.desc = "File Browser";
};
"<leader>fs" = {
action = "buffers";
options.desc = "List Open Buffers";
};
"<leader>fu" = {
action = "undo";
options.desc = "Undo Tree";
};
};
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>f";
group = "Telescope";
icon = "󰭎 ";
}
];
};
}

View File

@@ -1,30 +0,0 @@
{ ... }:
# TODO: Make filetype keybindings work
{
programs.nixvim = {
plugins = {
texpresso = {
enable = false;
};
};
files = {
"ftplugin/latex.lua" = {
keymaps = [
{
action = "<CMD>Texpresso %<CR>";
key = "<C-k>t";
mode = [
"n"
"v"
"i"
];
options = {
desc = "Start Texpresso";
};
}
];
};
};
};
}

View File

@@ -4,38 +4,47 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
todo-comments = { todo-comments = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
highlight = { highlight = {
comments_only = false; comments_only = false;
}; };
colors = { colors = {
default = [ default = [
"Identifier" "Identifier"
"#7C3AED" "#7C3AED"
]; ];
error = [ error = [
"DiagnosticError" "DiagnosticError"
"ErrorMsg" "ErrorMsg"
"#DC2626" "#DC2626"
]; ];
hint = [ hint = [
"DiagnosticHint" "DiagnosticHint"
"#10B981" "#10B981"
]; ];
info = [ info = [
"DiagnosticInfo" "DiagnosticInfo"
"#2563EB" "#2563EB"
]; ];
test = [ test = [
"Identifier" "Identifier"
"#FF00FF" "#FF00FF"
]; ];
warning = [ warning = [
"DiagnosticWarn" "DiagnosticWarn"
"WarningMsg" "WarningMsg"
"#FBBF24" "#FBBF24"
]; ];
}; };
keywords = { keywords = {
FIX = { FIX = {
alt = [ alt = [
@@ -47,10 +56,12 @@
color = "error"; color = "error";
icon = " "; icon = " ";
}; };
HACK = { HACK = {
color = "warning"; color = "warning";
icon = " "; icon = " ";
}; };
NOTE = { NOTE = {
alt = [ alt = [
"INFO" "INFO"
@@ -58,6 +69,7 @@
color = "hint"; color = "hint";
icon = " "; icon = " ";
}; };
PERF = { PERF = {
alt = [ alt = [
"OPTIM" "OPTIM"
@@ -66,6 +78,7 @@
]; ];
icon = " "; icon = " ";
}; };
TEST = { TEST = {
alt = [ alt = [
"TESTING" "TESTING"
@@ -75,10 +88,12 @@
color = "test"; color = "test";
icon = " "; icon = " ";
}; };
TODO = { TODO = {
color = "info"; color = "info";
icon = " "; icon = " ";
}; };
WARN = { WARN = {
alt = [ alt = [
"WARNING" "WARNING"

View File

@@ -5,38 +5,46 @@
plugins = { plugins = {
toggleterm = { toggleterm = {
enable = true; enable = true;
lazyLoad.settings.cmd = [
"ToggleTermSendCurrentLine"
"ToggleTermSendVisualLines"
"ToggleTermSendVisualSelection"
];
settings = { settings = {
open_mapping.__raw = "[[<c-,>]]"; open_mapping.__raw = "[[<c-,>]]";
insert_mappings = true; insert_mappings = true;
shade_terminals = false; shade_terminals = false;
}; };
}; };
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>s";
group = "Terminal";
icon = " ";
}
];
}; };
keymaps = [ keymaps = [
{ {
action = "<CMD>ToggleTermSendCurrentLine<CR>"; action = "<CMD>ToggleTermSendCurrentLine<CR>";
key = "<leader>sts"; key = "<leader>sl";
mode = "n"; mode = "n";
options = { options.desc = "Send Current Line";
desc = "Send Current Line";
};
} }
{ {
action = "<CMD>ToggleTermSendVisualLines<CR>"; action = "<CMD>ToggleTermSendVisualLines<CR>";
key = "<leader>stv"; key = "<leader>sv";
mode = "x"; mode = "x";
options = { options.desc = "Send all the (whole) lines in selection";
desc = "Send all the (whole) lines in selection";
};
} }
{ {
action = "<CMD>ToggleTermSendVisualSelection<CR>"; action = "<CMD>ToggleTermSendVisualSelection<CR>";
key = "<leader>sts"; key = "<leader>ss";
mode = "x"; mode = "x";
options = { options.desc = "Send selection";
desc = "Send selection";
};
} }
]; ];
}; };

View File

@@ -4,6 +4,8 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
treesitter = { treesitter = {
enable = true; enable = true;
autoLoad = true;
folding.enable = false; folding.enable = false;
settings = { settings = {
auto_install = false; auto_install = false;
@@ -13,6 +15,7 @@
ts-context-commentstring = { ts-context-commentstring = {
enable = true; enable = true;
lazyLoad.enable = false;
}; };
}; };
} }

View File

@@ -5,6 +5,8 @@
plugins = { plugins = {
trouble = { trouble = {
enable = true; enable = true;
lazyLoad.settings.cmd = "Trouble";
settings = { settings = {
modes = { modes = {
diagnostics = { diagnostics = {
@@ -14,9 +16,7 @@
# Diagnostics for the current buffer only # Diagnostics for the current buffer only
diagnostics_buffer = { diagnostics_buffer = {
mode = "diagnostics"; mode = "diagnostics";
filter = { filter.buf = 0;
buf = 0;
};
}; };
}; };
focus = false; focus = false;

View File

@@ -2,23 +2,19 @@
{ {
programs.nixvim = { programs.nixvim = {
plugins = { plugins.typst-preview = {
typst-preview = {
enable = true; enable = true;
lazyLoad = { lazyLoad = {
settings = { settings = {
ft = "typst"; ft = [ "typst" ];
cmd = "TypstPreview"; cmd = "TypstPreview";
}; };
}; };
settings = {
open_command = "qutebrowser --target tab %s"; settings.open_command = "qutebrowser --target tab %s";
}; };
};
}; files."ftplugin/typst.lua".keymaps = [
files = {
"ftplugin/typst.lua" = {
keymaps = [
{ {
action = "<CMD>TypstPreview<CR>"; action = "<CMD>TypstPreview<CR>";
key = "<C-k>t"; key = "<C-k>t";
@@ -27,12 +23,8 @@
"v" "v"
"i" "i"
]; ];
options = { options.desc = "Typst Preview";
desc = "Typst Preview";
};
} }
]; ];
}; };
};
};
} }

View File

@@ -1,17 +1,15 @@
{ ... }: { ... }:
# TODO: coneal does not work # TODO: conceal does not work
{ {
programs.nixvim = { programs.nixvim.plugins.typst-vim = {
plugins = {
typst-vim = {
enable = true; enable = true;
lazyLoad.settings.filetypes = [ "typst" ];
settings = { settings = {
conceal = 1; conceal = 1;
conceal_math = 1; conceal_math = 1;
conceal_emoji = 1; conceal_emoji = 1;
}; };
}; };
};
};
} }

View File

@@ -5,7 +5,38 @@
plugins = { plugins = {
undotree = { undotree = {
enable = true; enable = true;
lazyLoad.settings.cmd = "UndotreeShow";
}; };
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>t";
group = "Undotree";
icon = " ";
}
];
}; };
keymaps = [
{
key = "<leader>th";
action = "<cmd>UndotreeHide<cr>";
options.desc = "Hide undotree";
}
{
key = "<leader>tf";
action = "<cmd>UndotreeFocus<cr>";
options.desc = "Focus undotree";
}
{
key = "<leader>tp";
action = "<cmd>UndotreePersistUndo<cr>";
options.desc = "Persist undo";
}
{
key = "<leader>ts";
action = "<cmd>UndotreeShow<cr>";
options.desc = "Show undotree";
}
];
}; };
} }

View File

@@ -0,0 +1,33 @@
{ ... }:
{
programs.nixvim = {
plugins = {
unified = {
enable = true;
lazyLoad.settings.cmd = "Unified";
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>u";
group = "Unified";
icon = " ";
}
];
};
keymaps = [
{
key = "<leader>us";
action = "<cmd>Unified<cr>";
options.desc = "Start Unified";
}
{
key = "<leader>uq";
action = "<cmd>Unified reset<cr><cmd>Unified reset<cr>";
options.desc = "Stop Unified";
}
];
};
}

View File

@@ -1,17 +1,45 @@
{ ... }: { pkgs,... }:
{ {
programs.nixvim = { programs.nixvim = {
extraPackages = with pkgs; [
texliveFull
texlivePackages.standalone
texlivePackages.relsize # needed for BA
# papis-nvim
];
plugins = { plugins = {
vimtex = { vimtex = {
enable = true; enable = true;
lazyLoad.settings.filetype = [ "tex" ];
settings = { settings = {
view_automatic = false; view_automatic = false;
mappings_disable = { mappings_disable = {
"n" = [ "K" ]; "n" = [ "K" ];
}; };
view_method = "zathura";
}; };
}; };
ltex-extra = {
enable = true;
lazyLoad.settings.filetype = [ "tex" ];
};
texpresso = {
enable = true;
lazyload.settings.filetype = [ "tex" ];
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>v";
group = "Vimtex";
icon = " ";
}
];
}; };
autoGroups = { autoGroups = {
@@ -36,5 +64,36 @@
''; '';
} }
]; ];
keymaps = [
{
key = "<leader>vc";
action = "<cmd>VimtexCompile<cr>";
options.desc = "Start Vimtex";
}
{
key = "<leader>vs";
action = "<cmd>VimtexStop<cr>";
options.desc = "Stop Vimtex";
}
{
key = "<leader>vr";
action = "<cmd>VimtexClean<cr>";
options.desc = "Clean Vimtex";
}
];
files."ftplugin/latex.lua".keymaps = [
{
action = "<CMD>Texpresso %<CR>";
key = "<C-k>t";
mode = [
"n"
"v"
"i"
];
options.desc = "Start Texpresso";
}
];
}; };
} }

View File

@@ -1,9 +1,8 @@
{ ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins.web-devicons = {
plugins = { enable = true;
web-devicons.enable = true; autoLoad = true;
};
}; };
} }

View File

@@ -1,9 +1,8 @@
{ ... }: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins.which-key = {
which-key = {
enable = true; enable = true;
}; autoLoad = true;
}; };
} }

View File

@@ -0,0 +1,48 @@
{ ... }:
{
programs.nixvim.plugins.wilder = {
enable = true;
autoLoad = true;
settings.modes = [
":"
"/"
"?"
];
# Configure the wilder engine
options = {
pipeline.__raw = ''
wilder.branch(
wilder.cmdline_pipeline({
fuzzy = 1,
set_device = 1,
}),
wilder.vim_search_pipeline()
)
'';
renderer.__raw = ''
wilder.popupmenu_renderer(
wilder.popupmenu_border_theme({
highlighter = wilder.basic_highlighter(),
highlights = {
accent = "WilderAccent",
},
border = "rounded",
left = { " ", wilder.popupmenu_devicons() },
right = { " ", wilder.popupmenu_scrollbar() },
})
)
'';
};
};
# Define the custom highlight group for the accent color
programs.nixvim.highlight = {
WilderAccent = {
fg = "#f5c2e7";
bold = true;
};
};
}

View File

@@ -1,69 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
yanky = {
enable = true;
settings = {
ring = {
storage = "sqlite";
};
};
};
sqlite-lua = {
enable = true;
};
};
keymaps = [
{
key = "p";
action = "<Plug>(YankyPutAfter)";
mode = [
"n"
"x"
];
}
{
key = "P";
action = "<Plug>(YankyPutBefore)";
mode = [
"n"
"x"
];
}
{
key = "gp";
action = "<Plug>(YankyGPutAfter)";
mode = [
"n"
"x"
];
}
{
key = "gP";
action = "<Plug>(YankyGPutBefore)";
mode = [
"n"
"x"
];
}
{
key = "<c-p>";
action = "<Plug>(YankyPreviousEntry)";
mode = [
"n"
];
}
{
key = "<c-n>";
action = "<Plug>(YankyNextEntry)";
mode = [
"n"
];
}
];
};
}

View File

@@ -0,0 +1,37 @@
{ ... }:
{
programs.nixvim = {
plugins = {
yazi = {
enable = true;
autoLoad = true;
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>y";
group = "Yazi";
icon = " ";
}
];
};
keymaps = [
{
key = "<leader>yf";
action = "<cmd>Yazi<cr>";
options.desc = "Open yazi at the current file";
}
{
key = "<leader>yw";
action = "<cmd>Yazi cwd<cr>";
options.desc = "Open yazi at the current working directory";
}
{
key = "<leader>yl";
action = "<cmd>Yazi toggle<cr>";
options.desc = "Resume the last session";
}
];
};
}

View File

@@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim.plugins.yuck = {
enable = true;
lazyLoad.settings.filetypes = [ "yuck" ];
};
}

View File

@@ -1,95 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
zk = {
enable = true;
settings = {
picker = "telescope";
};
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>z";
group = "Zettelkasten";
icon = "󰝰 ";
}
];
};
keymaps = [
{
key = "<leader>zn";
action = "<Cmd>ZkNew { title = vim.fn.input('Title: ') }<CR>";
mode = [ "n" ];
options = {
desc = "Create";
};
}
{
key = "<leader>zo";
action = "<Cmd>ZkNotes { sort = { 'modified' } }<CR>";
mode = [ "n" ];
options = {
desc = "Open";
};
}
{
key = "<leader>zt";
action = "<Cmd>ZkTags<CR>";
mode = [ "n" ];
options = {
desc = "Open Tags";
};
}
{
key = "<leader>zf";
action = "<Cmd>ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }<CR>";
mode = [ "n" ];
options = {
desc = "Search";
};
}
{
key = "<leader>zf";
action = ":'<,'>ZkMatch<CR>";
mode = [ "v" ];
options = {
desc = "Search (Matching the Selection)";
};
}
];
files = {
# TODO: Add descriptions
# TODO: Did the sytnax change?
"ftplugin/markdown.lua" = {
extraConfigLua = # lua
''
-- Add the key mappings only for Markdown files in a zk notebook.
if require("zk.util").notebook_root(vim.fn.expand('%:p')) ~= nil then
local function map(...) vim.api.nvim_buf_set_keymap(0, ...) end
local opts = { noremap=true, silent=false }
-- Create a new note after asking for its title.
-- This overrides the global `<leader>zn` mapping to create the note in the same directory as the current buffer.
map("n", "<leader>zn", "<Cmd>ZkNew { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
-- Create a new note in the same directory as the current buffer, using the current selection for title.
map("v", "<leader>znt", ":'<,'>ZkNewFromTitleSelection { dir = vim.fn.expand('%:p:h') }<CR>", opts)
-- Create a new note in the same directory as the current buffer, using the current selection for note content and asking for its title.
map("v", "<leader>znc", ":'<,'>ZkNewFromContentSelection { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
-- Open notes linking to the current buffer.
map("n", "<leader>zb", "<Cmd>ZkBacklinks<CR>", opts)
-- Open notes linked by the current buffer.
map("n", "<leader>zl", "<Cmd>ZkLinks<CR>", opts)
-- Preview a linked note.
map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
-- Open the code actions for a visual selection.
map("v", "<leader>za", ":'<,'>lua vim.lsp.buf.range_code_action()<CR>", opts)
end
'';
};
};
};
}

View File

@@ -66,9 +66,7 @@
}; };
map = { map = {
normal = { normal = {
"Super+Shift Return" = "spawn alacritty"; "Super+Shift Return" = "spawn kitty";
# Messages
"Control+Super W" = "spawn 'printf \"Hello from Wayland!\" | dunstify -'";
# System # System
"Super P" = "spawn 'rofi -show drun'"; "Super P" = "spawn 'rofi -show drun'";
"Super+Shift C" = "close"; "Super+Shift C" = "close";

0
home/programs/taskwarrior/hooks/on-add.sh Executable file → Normal file
View File

View File

@@ -12,36 +12,12 @@
}; };
accounts.email = { accounts.email = {
accounts = { accounts = {
kjr = {
address = "elias.schroeter@kjr-ebe.de";
imap = {
host = "outlook.office365.com";
port = 993;
tls.enable = true;
};
realName = "Elias Schröter";
signature = {
text = ''
Mit freundlichen Grüßen,
Elias Schröter.
'';
showSignature = "append";
};
passwordCommand = "OAuth2";
smtp = {
host = "smtp.office365.com";
port = 587;
tls = {
enable = true;
useStartTls = true;
};
};
userName = "elias.schroeter@kjr-ebe.de";
thunderbird = { enable = true; };
};
privat = { privat = {
address = "elias.schroeter@e.email"; address = "elias.schroeter@e.email";
aliases = [ "elias.schroeter@murena.io" "xacufe67.cadome83@murena.io" ]; aliases = [
"elias.schroeter@murena.io"
"xacufe67.cadome83@murena.io"
];
imap = { imap = {
host = "mail.ecloud.global"; host = "mail.ecloud.global";
port = 993; port = 993;
@@ -66,7 +42,9 @@
}; };
userName = "elias.schroeter@e.email"; userName = "elias.schroeter@e.email";
primary = true; primary = true;
thunderbird = { enable = true; }; thunderbird = {
enable = true;
};
}; };
uni = { uni = {
address = "elias.schroeter@campus.lmu.de"; address = "elias.schroeter@campus.lmu.de";
@@ -94,7 +72,9 @@
}; };
userName = "elias.schroeter@campus.lmu.de"; userName = "elias.schroeter@campus.lmu.de";
primary = false; primary = false;
thunderbird = { enable = true; }; thunderbird = {
enable = true;
};
}; };
}; };
}; };

View File

@@ -13,11 +13,7 @@
enable = true; enable = true;
dotDir = "${config.xdg.configHome}/zsh"; dotDir = "${config.xdg.configHome}/zsh";
shellAliases = { shellAliases = {
encryptSops = "sops --age age1ammls20r5t3dx4cvhpt8n5dejxcpdmpqt37sa9r9fuztd8c43g4sz889zd -e -i secrets/secrets.yaml";
update = "sudo nixos-rebuild switch"; update = "sudo nixos-rebuild switch";
conWG = "ssh elias@logout.nonagon.dev -p 6969";
conWS = "ssh elias@192.168.31.200";
setupPC = "wlr-randr --output HDMI-A-2 --on --mode 1920x1080 --pos 0,0;wlr-randr --output DVI-D-1 --on --mode 1920x1080 --pos 1920,0;wlr-randr --output DP-2 --on --mode 1920x1080 --pos 3840,0 --primary";
}; };
autosuggestion.enable = true; autosuggestion.enable = true;
localVariables = { localVariables = {

View File

@@ -2,7 +2,6 @@
{ {
imports = [ imports = [
./emanote.nix
./flameshot.nix ./flameshot.nix
./fnott.nix ./fnott.nix
./gpg-agent.nix ./gpg-agent.nix

View File

@@ -1,23 +0,0 @@
{ config, ... }:
let
emanote = import (
builtins.fetchTarball {
url = "https://github.com/srid/emanote/archive/master.tar.gz";
sha256 = "0kr8bbq1awg2c2ra1mwjxqa9m7is9b6cdksvh48g4w354h5pqbnv";
}
);
in
{
imports = [ emanote.homeManagerModule ];
services.emanote = {
enable = true;
# host = "127.0.0.1"; # default listen address is 127.0.0.1
# port = 7000; # default http port is 7000
notes = [
"/home/elias/Nextcloud/zettelkasten"
];
# TODO: currentSystem
package = emanote.packages."x86_64-linux".default;
};
}

View File

@@ -1,5 +1,5 @@
{ ... }: { ... }:
{ {
services.ssh-agent.enable = false; services.ssh-agent.enable = true;
} }

View File

@@ -14,7 +14,7 @@ in
./hyprlock.nix ./hyprlock.nix
./nvim.nix ./nvim.nix
./taskwarrior.nix ./taskwarrior.nix
# ./qt.nix ./qt.nix
]; ];
catppuccin = { catppuccin = {
@@ -22,12 +22,12 @@ in
flavor = "mocha"; flavor = "mocha";
accent = "pink"; accent = "pink";
alacritty.enable = true;
anki.enable = true; anki.enable = true;
element-desktop.enable = true; element-desktop.enable = true;
firefox.enable = true; firefox.enable = true;
fzf.enable = true; fzf.enable = true;
imv.enable = true; imv.enable = true;
kitty.enable = true;
lazygit.enable = true; lazygit.enable = true;
rofi.enable = true; rofi.enable = true;
spotify-player.enable = true; spotify-player.enable = true;

View File

@@ -1,54 +1,71 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
"sr_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f"; device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=root" ]; options = [ "subvol=root" ];
}; };
fileSystems."/.swapvol" = fileSystems."/.swapvol" = {
{ device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f"; device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=swap" ]; options = [ "subvol=swap" ];
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/A38E-500D"; device = "/dev/disk/by-uuid/A38E-500D";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = [
"fmask=0022"
"dmask=0022"
];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f"; device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=home" ]; options = [ "subvol=home" ];
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f"; device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=nix" ]; options = [ "subvol=nix" ];
}; };
fileSystems."/partition-root" = fileSystems."/partition-root" = {
{ device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f"; device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f";
fsType = "btrfs"; fsType = "btrfs";
}; };
swapDevices = [ ]; swapDevices = [
{ device = "/dev/disk/by-uuid/aded1c84-f4d0-4841-ab2f-68266532737f"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View File

@@ -1,30 +1,42 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = [
"nvme"
"ehci_pci"
"xhci_pci"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/10e64a0a-7ef7-492e-8f1e-5d3916405d82"; device = "/dev/disk/by-uuid/10e64a0a-7ef7-492e-8f1e-5d3916405d82";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/40CB-8C4C"; device = "/dev/disk/by-uuid/40CB-8C4C";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/6a36bba4-5be8-4fd5-af21-05447bded927"; } { device = "/dev/disk/by-uuid/6a36bba4-5be8-4fd5-af21-05447bded927"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

32
system/printer.nix Normal file
View File

@@ -0,0 +1,32 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
gutenprint
];
services.printing = {
enable = true;
listenAddresses = [ "*:631" ];
allowFrom = [ "all" ];
browsing = true;
defaultShared = true;
openFirewall = true;
drivers = [ pkgs.epson-escpr ];
};
hardware.printers = {
ensurePrinters = [
{
name = "Epson-XP-520";
location = "Home";
deviceUri = "usb://EPSON/XP-520%20Series?serial=554656593133323698&interface=1";
model = "epson-inkjet-printer-escpr/Epson-XP-520_Series-epson-escpr-en.ppd";
ppdOptions = {
PageSize = "A4";
Ink = "Color";
};
}
];
ensureDefaultPrinter = "Epson-XP-520";
};
}