The NixOS config for my Hetzner VPS
nixos
1{ pkgs, ... }:
2
3{
4 # List packages installed in system profile.
5 # You can use https://search.nixos.org/ to find more packages (and options).
6 environment.systemPackages = with pkgs; [
7 agenix
8 atuin
9 eza
10 gcc
11 git
12 httpie
13 jujutsu
14 nixfmt-rfc-style
15 ripgrep
16 rustup
17 zellij
18 ];
19
20 programs.fish = {
21 enable = true;
22 shellInit = ''
23 fish_vi_key_bindings
24 set fish_cursor_default block
25 set fish_cursor_insert line
26 set fish_cursor_replace_one underscore
27 set fish_cursor_visual block
28 '';
29 interactiveShellInit = ''
30 set -g fish_greeting
31
32 atuin init fish --disable-up-arrow | source
33 '';
34 };
35 users.defaultUserShell = pkgs.fish;
36 programs.starship.enable = true;
37
38 programs.nixvim = {
39 enable = true;
40 defaultEditor = true;
41 vimAlias = true;
42
43 colorschemes.tokyonight = {
44 enable = true;
45 settings.style = "storm";
46 };
47
48 lsp.servers.nixd.enable = true;
49
50 opts.number = true;
51
52 plugins = {
53 lspconfig.enable = true;
54 conform-nvim = {
55 enable = true;
56 settings = {
57 formatters_by_ft = {
58 nix = [ "nixfmt" ];
59 };
60 format_on_save = {
61 lsp_format = "fallback";
62 };
63 };
64 };
65 lualine.enable = true;
66 nvim-tree = {
67 enable = true;
68 settings = {
69 actions.open_file.quit_on_open = true;
70 };
71 };
72 sandwich.enable = true;
73 sleuth.enable = true;
74 spider = {
75 enable = true;
76 keymaps.motions = {
77 w = "w";
78 e = "e";
79 b = "b";
80 ge = "ge";
81 };
82 };
83 treesitter = {
84 enable = true;
85 settings = {
86 auto_install = true;
87 highlight.enable = true;
88 };
89 };
90 treesitter-context.enable = true;
91 web-devicons.enable = true;
92 };
93
94 keymaps = [
95 {
96 action = "<cmd>NvimTreeFindFile<cr>";
97 key = "<leader>n";
98 }
99 ];
100 };
101
102 programs.bat = {
103 enable = true;
104 extraPackages = with pkgs.bat-extras; [
105 batman
106 prettybat
107 ];
108 };
109
110 programs.htop.enable = true;
111}