Merge remote-tracking branch 'origin/nixos' into nixos

nixos
Moritz Böhme 2023-04-17 14:47:16 +02:00
commit 69454aba52
Signed by: moritz
GPG Key ID: 970C6E89EB0547A9
74 changed files with 943 additions and 945 deletions

View File

@ -1,21 +1,5 @@
{ {
"nodes": { "nodes": {
"advanced-git-search-nvim": {
"flake": false,
"locked": {
"lastModified": 1677794481,
"narHash": "sha256-7G0WNcaIH1/4Zs4282UdWfRExdlAz6AHzqBlSu/qioQ=",
"owner": "aaronhallaert",
"repo": "advanced-git-search.nvim",
"rev": "e36797ade1af3d0404e14db83fd09db4e619e8dc",
"type": "github"
},
"original": {
"owner": "aaronhallaert",
"repo": "advanced-git-search.nvim",
"type": "github"
}
},
"agenix": { "agenix": {
"inputs": { "inputs": {
"darwin": "darwin", "darwin": "darwin",
@ -24,11 +8,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1677969766, "lastModified": 1680281360,
"narHash": "sha256-AIp/ZYZMNLDZR/H7iiAlaGpu4lcXsVt9JQpBlf43HRY=", "narHash": "sha256-XdLTgAzjJNDhAG2V+++0bHpSzfvArvr2pW6omiFfEJk=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "03b51fe8e459a946c4b88dcfb6446e45efb2c24e", "rev": "e64961977f60388dd0b49572bb0fc453b871f896",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -40,11 +24,11 @@
"arkenfox-userjs": { "arkenfox-userjs": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1678691587, "lastModified": 1680151825,
"narHash": "sha256-EGfPa1uGYwQLhM27nyWosJo5Pe4yIhC3JOW0vqajK7w=", "narHash": "sha256-EutseXvFnDkYq95GWiGrTFqI4fqybvsPQlVV0Wy5tFU=",
"owner": "arkenfox", "owner": "arkenfox",
"repo": "user.js", "repo": "user.js",
"rev": "e2e8c4ea8f9c8034a2ff72fe3c2d4a4a89404c10", "rev": "c84c419544cbbe4442190cc6325b926b519d8db5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -85,11 +69,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1678041467, "lastModified": 1681335578,
"narHash": "sha256-qqHbiN0ZfEuZ2guMAW5T011TqgrPqGqNWlHtd8AXtQA=", "narHash": "sha256-yIZqE6WpkgAllsJ7IAbn8k6IRz/0CS/xp6IR+8yrEP8=",
"owner": "zhaofengli", "owner": "zhaofengli",
"repo": "attic", "repo": "attic",
"rev": "1a3b6513b02202198bb497608d0cedc45119799b", "rev": "171c89fbe0f099e8bf6e466a1a1a12578f703f0e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -98,6 +82,22 @@
"type": "github" "type": "github"
} }
}, },
"bufferline-nvim": {
"flake": false,
"locked": {
"lastModified": 1681547098,
"narHash": "sha256-WZAJiDm77rS9S4tN7dz03jjnv1jFvTur6dLg8OkYVM4=",
"owner": "akinsho",
"repo": "bufferline.nvim",
"rev": "243893ba9d5d1049dd451a25cab32ec7f8f67bcf",
"type": "github"
},
"original": {
"owner": "akinsho",
"repo": "bufferline.nvim",
"type": "github"
}
},
"cmp-async-path": { "cmp-async-path": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -114,14 +114,30 @@
"type": "github" "type": "github"
} }
}, },
"comment-box-nvim": {
"flake": false,
"locked": {
"lastModified": 1678772374,
"narHash": "sha256-hD9eCcrDsispi+Nvwjy/MlNW0UmFfSbh8arQpCjeneM=",
"owner": "LudoPinelli",
"repo": "comment-box.nvim",
"rev": "6672213bd5d2625a666a297b66307967effa50bc",
"type": "github"
},
"original": {
"owner": "LudoPinelli",
"repo": "comment-box.nvim",
"type": "github"
}
},
"copilot-lua": { "copilot-lua": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1677479736, "lastModified": 1681223911,
"narHash": "sha256-n/SCrzzzL5WUHJk0sCXbgGusk/dQuy8DI9Pqdh+lVeQ=", "narHash": "sha256-ttF9LW6PNKk/BBWET2BUqtq5f7OIZ7ohtQevAaP8srg=",
"owner": "zbirenbaum", "owner": "zbirenbaum",
"repo": "copilot.lua", "repo": "copilot.lua",
"rev": "b41d4c9c7d4f5e0272bcf94061b88e244904c56f", "rev": "a4a37dda9e48986e5d2a90d6a3cbc88fca241dbb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -182,47 +198,6 @@
"type": "github" "type": "github"
} }
}, },
"emacs": {
"inputs": {
"emacs-overlay": "emacs-overlay",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1676394233,
"narHash": "sha256-RHO/MgRyFqgmIgogrL5LBmBhAt8hTpUJJ6Dww46GyZI=",
"ref": "main",
"rev": "6fb9f917901160b2b212f420a8a8e4995c823626",
"revCount": 98,
"type": "git",
"url": "ssh://git@gitea.moritzboeh.me/moritz/emacs.git"
},
"original": {
"ref": "main",
"type": "git",
"url": "ssh://git@gitea.moritzboeh.me/moritz/emacs.git"
}
},
"emacs-overlay": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1676025076,
"narHash": "sha256-sdYhoZsLLwRXZebP6DYfIgQRjFA+itdNXaPuCWfJYkk=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "581072bb0d49768da9370056f7b6e7b761b5d8be",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -272,12 +247,15 @@
} }
}, },
"flake-utils": { "flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": { "locked": {
"lastModified": 1667395993, "lastModified": 1681202837,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -302,36 +280,6 @@
} }
}, },
"flake-utils_3": { "flake-utils_3": {
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_5": {
"locked": { "locked": {
"lastModified": 1667395993, "lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
@ -346,41 +294,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_6": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"forgit-git": {
"flake": false,
"locked": {
"lastModified": 1677621471,
"narHash": "sha256-merUZ0IQ/qmDkquGFjKvc4vJBj4Ff62JpWYOB67lAVY=",
"owner": "wfxr",
"repo": "forgit",
"rev": "801239658718863b9c6e0ba21d027cb0caccd465",
"type": "github"
},
"original": {
"owner": "wfxr",
"repo": "forgit",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"emacs",
"pre-commit-hooks", "pre-commit-hooks",
"nixpkgs" "nixpkgs"
] ]
@ -399,24 +315,19 @@
"type": "github" "type": "github"
} }
}, },
"gitignore_2": { "gitignore-nvim": {
"inputs": { "flake": false,
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1660459072, "lastModified": 1680653909,
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", "narHash": "sha256-H6IXZTskIAOmp3U57NIT4Of45xXqrX/6VRm1s28S89Y=",
"owner": "hercules-ci", "owner": "wintermute-cell",
"repo": "gitignore.nix", "repo": "gitignore.nvim",
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", "rev": "b61e4a50b78f9a3702a4ed168ab6c9ceba5f6299",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hercules-ci", "owner": "wintermute-cell",
"repo": "gitignore.nix", "repo": "gitignore.nvim",
"type": "github" "type": "github"
} }
}, },
@ -424,17 +335,14 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
],
"utils": [
"flake-utils"
] ]
}, },
"locked": { "locked": {
"lastModified": 1678886248, "lastModified": 1681586243,
"narHash": "sha256-ff81NJtc+AgQhUlTCkx8t8hda0o72vSxDeHVGrfxH70=", "narHash": "sha256-vdP79IZuDZVNSl4RN1LgEuab1Tkbv4gCxiE8VLdRf7U=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2bd74d92bc7345f323ebcbfeb631d5cf4067ed8e", "rev": "40ebb62101c83de81e5fd7c3cfe5cea2ed21b1ad",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -443,38 +351,16 @@
"type": "github" "type": "github"
} }
}, },
"howdy": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks_2"
},
"locked": {
"lastModified": 1665343480,
"narHash": "sha256-mMaZFrDDiBcHDe8+lA87P3iMPea+RGfik5/E4Dyzk8U=",
"owner": "~moritzboehme",
"repo": "howdy",
"rev": "24a7cfb8c2fef1873275dbdf7c8ad562c22083de",
"type": "sourcehut"
},
"original": {
"owner": "~moritzboehme",
"repo": "howdy",
"type": "sourcehut"
}
},
"hypr-contrib": { "hypr-contrib": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1677679546, "lastModified": 1679036674,
"narHash": "sha256-L+QE6hIHxhYHWPA1jfgZsbQFYxheD/hzFhtwGFRdWOk=", "narHash": "sha256-2s3Hfq56jL8ePyc3+calPT34FNMK2zksqwPhIxAq20o=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "contrib", "repo": "contrib",
"rev": "d4eccc8e7d31d30c7ce39dc2b864c4f23f173855", "rev": "1af47a008e850c595aeddc83bb3f04fd81935caa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -486,16 +372,16 @@
"hyprland": { "hyprland": {
"inputs": { "inputs": {
"hyprland-protocols": "hyprland-protocols", "hyprland-protocols": "hyprland-protocols",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_2",
"wlroots": "wlroots", "wlroots": "wlroots",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1678899680, "lastModified": 1681652918,
"narHash": "sha256-o+bo+n1HYvYJVnOG/Y/nnxdx4Lu1oFgVyrHemBbT2sE=", "narHash": "sha256-ybXmD3OhyMG1Yz31lxT8de7aBi2mQmXmzAZ7q49Uvi4=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "f5669a7d6bdb54d21426f6aa31a66fe813fc4e7d", "rev": "b05ff89c76b2c9454c76daf2120f4ccb076a018d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -512,11 +398,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1671839510, "lastModified": 1681065697,
"narHash": "sha256-+PY1qqJfmZzzROgcIY4I7AkCwpnC+qBIYk2eFoA9RWc=", "narHash": "sha256-QPzwwlGKX95tl6ZEshboZbEwwAXww6lNLdVYd6T9Mrc=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-protocols", "repo": "hyprland-protocols",
"rev": "b8f55e02a328c47ed373133c52483bbfa20a1b75", "rev": "4d29e48433270a2af06b8bc711ca1fe5109746cd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -527,14 +413,14 @@
}, },
"hyprpaper": { "hyprpaper": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1678893556, "lastModified": 1681650457,
"narHash": "sha256-FHhBetkV/S7M9BMpbCzUWX/P5E7tGE4mZIpj/2m0K2M=", "narHash": "sha256-IGXRZrFGFqUeM5iDgP/ojbrd+gKL40PaFFAITxbkfZ0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprpaper", "repo": "hyprpaper",
"rev": "61961973cfd10853b32c7f904cdb88f9ab6d84dd", "rev": "3bfaac09f58ce31c33e1a56e7eaa606a87fe4c32",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -546,11 +432,11 @@
"lspsaga-nvim": { "lspsaga-nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1678361457, "lastModified": 1681470671,
"narHash": "sha256-nrsMdfF43k0RavCq2hZ799HpY/40O0bi4kAM18dR+f4=", "narHash": "sha256-mekeKttJSsBpTxMShC0l29/Wx3VKUnHMh6YtLYtx9Lk=",
"owner": "glepnir", "owner": "glepnir",
"repo": "lspsaga.nvim", "repo": "lspsaga.nvim",
"rev": "db6cdf51bf5ae45e4aa65760e597cf0d587c66ee", "rev": "b2feb95e84776f7c9cdfb96e4c89a582c9ade0e4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -561,11 +447,11 @@
}, },
"master": { "master": {
"locked": { "locked": {
"lastModified": 1678898370, "lastModified": 1681658302,
"narHash": "sha256-xTICr1j+uat5hk9FyuPOFGxpWHdJRibwZC+ATi0RbtE=", "narHash": "sha256-KDXpkA7JOTnffQWAA5W246FoJNbdSur5HgzYScOzYKQ=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ac718d02867a84b42522a0ece52d841188208f2c", "rev": "f30febf83039aaa4a4399d46d068900a2b449de6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -574,18 +460,21 @@
"type": "github" "type": "github"
} }
}, },
"neovim": { "neovim-flake": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_5", "flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_6" "nixpkgs": [
"neovim-nightly-overlay",
"nixpkgs"
]
}, },
"locked": { "locked": {
"dir": "contrib", "dir": "contrib",
"lastModified": 1678886704, "lastModified": 1681631972,
"narHash": "sha256-eSeJva5Wg9Dlccc9eLR/iPunQPpzHAYh6eGjPCJnnPE=", "narHash": "sha256-zF+sWaQPJpoDyhWXvwJGR7VryYr9+qBCWMTNRjA3BhQ=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "5a38e951ec1532ba1ee8b35b42181003866d479c", "rev": "0d9b0fbe579343fa6d6c46e6e1bf6bb8719ea5e0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -595,6 +484,26 @@
"type": "github" "type": "github"
} }
}, },
"neovim-nightly-overlay": {
"inputs": {
"flake-compat": "flake-compat_2",
"neovim-flake": "neovim-flake",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1681632748,
"narHash": "sha256-c0CskvdpipnTn5TSjq6KqNkeKRPYCDMmVTdZL08HTJA=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "0e3e0029aa6353ecb7304d4a683d8d6ee69379ef",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"type": "github"
}
},
"nil": { "nil": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@ -606,11 +515,11 @@
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1678728829, "lastModified": 1681412802,
"narHash": "sha256-KbA8uakGfjfvRH+Td/VegiLdHrnqIZHkMTQ5XBjL2dE=", "narHash": "sha256-IcEala6vFQ7SFNOPCeXBh9Jbl8nL2QOtLmO7RbDsBbo=",
"owner": "oxalica", "owner": "oxalica",
"repo": "nil", "repo": "nil",
"rev": "e7045f1779fd202a3316f84b864c304f339cccea", "rev": "1d5bc81023c21b22cfbea06a8b4b82963c01b941",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -620,70 +529,6 @@
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1673540789,
"narHash": "sha256-xqnxBOK3qctIeUVxecydrEDbEXjsvHCPGPbvsl63M/U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0f213d0fee84280d8c3a97f7469b988d6fe5fcdf",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1673800717,
"narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1673800717,
"narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1675758091,
"narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1658161305, "lastModified": 1658161305,
"narHash": "sha256-X/nhnMCa1Wx4YapsspyAs6QYz6T/85FofrI6NpdPDHg=", "narHash": "sha256-X/nhnMCa1Wx4YapsspyAs6QYz6T/85FofrI6NpdPDHg=",
@ -699,13 +544,29 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1677676435, "lastModified": 1678872516,
"narHash": "sha256-6FxdcmQr5JeZqsQvfinIMr0XcTyTuR7EXX0H3ANShpQ=", "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a08d6979dd7c82c4cef0dcc6ac45ab16051c1169", "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1680669251,
"narHash": "sha256-AVNE+0u4HlI3v96KCXE9risH7NKqj0QDLLfSckYXIbA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9c8ff8b426a8b07b9e0a131ac3218740dc85ba1e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -715,7 +576,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1674641431, "lastModified": 1674641431,
"narHash": "sha256-qfo19qVZBP4qn5M5gXc/h1MDgAtPA5VxJm9s8RUAkVk=", "narHash": "sha256-qfo19qVZBP4qn5M5gXc/h1MDgAtPA5VxJm9s8RUAkVk=",
@ -731,29 +592,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1671983799, "lastModified": 1681571934,
"narHash": "sha256-Z2Ro6hFPZHkBqkVXY5/aBUzxi5xizQGvuHQ9+T5B/ks=", "narHash": "sha256-Q3B3HTqhTahhPCT53ahK1FPktOXlEWmudSttd9CWGbE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fad51abd42ca17a60fc1d4cb9382e2d79ae31836", "rev": "29176972b4be60f7d3eb3101f696c99f2e6ada57",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1678843226,
"narHash": "sha256-TkA5tsC8N38HNgaI/odBbSOJWkUrD1uIB2A7Yms72Is=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "abb2ade261c33516716aa21068d8c10c48d03367",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -763,13 +608,29 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1671271357, "lastModified": 1681633309,
"narHash": "sha256-xRJdLbWK4v2SewmSStYrcLa0YGJpleufl44A19XSW8k=", "narHash": "sha256-HvEzKU/ZWGyIt2G+AIEKmMt/ED3P+Tgjw3/BkArti0o=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cb578ff7040066fd1b3f6f087bca796ddbf598b5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1681303793,
"narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "40f79f003b6377bd2f4ed4027dde1f8f922995dd", "rev": "fe2ecaf706a5907b5e54d979fbde4924d84b65fc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -797,71 +658,18 @@
}, },
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_3",
"flake-utils": [ "flake-utils": "flake-utils_3",
"emacs",
"flake-utils"
],
"gitignore": "gitignore", "gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": "nixpkgs_6",
"emacs",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1675688762, "lastModified": 1681413034,
"narHash": "sha256-oit/SxMk0B380ASuztBGQLe8TttO1GJiXF8aZY9AYEc=", "narHash": "sha256-/t7OjNQcNkeWeSq/CFLYVBfm+IEnkjoSm9iKvArnUUI=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "ab608394886fb04b8a5df3cb0bab2598400e3634", "rev": "d3de8f69ca88fb6f8b09e5b598be5ac98d28ede5",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"pre-commit-hooks_2": {
"inputs": {
"flake-utils": [
"howdy",
"flake-utils"
],
"nixpkgs": [
"howdy",
"nixpkgs"
]
},
"locked": {
"lastModified": 1664708386,
"narHash": "sha256-aCD8UUGNYb5nYzRmtsq/0yP9gFOQQHr/Lsb5vW+mucw=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "2e4a708918e14fdbd534cc94aaa9470cd19b2464",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"pre-commit-hooks_3": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_6",
"gitignore": "gitignore_2",
"nixpkgs": "nixpkgs_8",
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1678376203,
"narHash": "sha256-3tyYGyC8h7fBwncLZy5nCUjTJPrHbmNwp47LlNLOHSM=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "1a20b9708962096ec2481eeb2ddca29ed747770a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -872,28 +680,27 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"advanced-git-search-nvim": "advanced-git-search-nvim",
"agenix": "agenix", "agenix": "agenix",
"arkenfox-userjs": "arkenfox-userjs", "arkenfox-userjs": "arkenfox-userjs",
"asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver", "asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver",
"attic": "attic", "attic": "attic",
"bufferline-nvim": "bufferline-nvim",
"cmp-async-path": "cmp-async-path", "cmp-async-path": "cmp-async-path",
"comment-box-nvim": "comment-box-nvim",
"copilot-lua": "copilot-lua", "copilot-lua": "copilot-lua",
"emacs": "emacs", "flake-utils": "flake-utils",
"flake-utils": "flake-utils_3", "gitignore-nvim": "gitignore-nvim",
"forgit-git": "forgit-git",
"home-manager": "home-manager", "home-manager": "home-manager",
"howdy": "howdy",
"hypr-contrib": "hypr-contrib", "hypr-contrib": "hypr-contrib",
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprpaper": "hyprpaper", "hyprpaper": "hyprpaper",
"lspsaga-nvim": "lspsaga-nvim", "lspsaga-nvim": "lspsaga-nvim",
"master": "master", "master": "master",
"neovim": "neovim", "neovim-nightly-overlay": "neovim-nightly-overlay",
"nil": "nil", "nil": "nil",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_5",
"nvim-treesitter-textsubjects": "nvim-treesitter-textsubjects", "nvim-treesitter-textsubjects": "nvim-treesitter-textsubjects",
"pre-commit-hooks": "pre-commit-hooks_3", "pre-commit-hooks": "pre-commit-hooks",
"smartcolumn-nvim": "smartcolumn-nvim", "smartcolumn-nvim": "smartcolumn-nvim",
"stable": "stable", "stable": "stable",
"utils": "utils" "utils": "utils"
@ -938,11 +745,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1678415622, "lastModified": 1680488274,
"narHash": "sha256-tems1jHETCYEen8QrW61yVVX0F4zOGy4ImB43iDc7bY=", "narHash": "sha256-0vYMrZDdokVmPQQXtFpnqA2wEgCCUXf5a3dDuDVshn0=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "9f687941160108f89dd8bd2c650d32c15a35c7c7", "rev": "7ec2ff598a172c6e8584457167575b3a1a5d80d8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -954,11 +761,11 @@
"smartcolumn-nvim": { "smartcolumn-nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1677732751, "lastModified": 1679417638,
"narHash": "sha256-uu9h5Pjw05IokTbJxrVlavZXpm3Ny6jrmhcHXzvwngU=", "narHash": "sha256-DjPWBOLbzdfOQAx+6xgV1CD5NKuP1N6An2lmHNHd39Q=",
"owner": "m4xshen", "owner": "m4xshen",
"repo": "smartcolumn.nvim", "repo": "smartcolumn.nvim",
"rev": "6e16c7d1b5e8bf4cb7ddcab5c91745190e80e99d", "rev": "0c572e3eae48874f25b74394a486f38cadb5c958",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -969,11 +776,11 @@
}, },
"stable": { "stable": {
"locked": { "locked": {
"lastModified": 1678761643, "lastModified": 1681482634,
"narHash": "sha256-tapXZvg6Kg5Fm7Fm6i+7cRC5Exp2lX7cgMrqsfrGhuc=", "narHash": "sha256-cT/nr3L8khEYZSGp8qqwxFH+/q4/547MfyOdSj6MhBk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c4aec3c021620d98861639946123214207e98344", "rev": "fda0d99c2cbbb5c89d8855d258cb0821bd9113ad",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -983,6 +790,21 @@
"type": "github" "type": "github"
} }
}, },
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@ -1007,11 +829,11 @@
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.freedesktop.org", "host": "gitlab.freedesktop.org",
"lastModified": 1677789111, "lastModified": 1680810405,
"narHash": "sha256-dWrk+Q3bLdtFe5rkyaAKWCQJCeE/KFNllcu1DvBC38c=", "narHash": "sha256-LmI/4Yp/pOOoI4RxLRx9I90NBsiqdRLVOfbATKlgpkg=",
"owner": "wlroots", "owner": "wlroots",
"repo": "wlroots", "repo": "wlroots",
"rev": "5ae17de23f5fd9bb252a698f3771c840280e2c05", "rev": "7abda952d0000b72d240fe1d41457b9288f0b6e5",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -1033,11 +855,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1673116118, "lastModified": 1681127512,
"narHash": "sha256-eR0yDSkR2XYMesfdRWJs25kAdXET2mbNNHu5t+KUcKA=", "narHash": "sha256-vklOOhBj5W8fii6yN4L2WY5ZeifBmsq3+mJ2wC1Pk9U=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "d479c846531fd0e1d2357c9588b8310a2b859ef2", "rev": "04f579377a32781ce57c9cf4ba2a5bcb7f53fa97",
"type": "github" "type": "github"
}, },
"original": { "original": {

147
flake.nix
View File

@ -1,80 +1,84 @@
{ {
description = "My awesome system config"; description = "My awesome system config";
############## /*
### Inputs ###
############## Inputs
*/
inputs = { inputs = {
# Nix
master.url = "github:nixos/nixpkgs"; master.url = "github:nixos/nixpkgs";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
stable.url = "github:nixos/nixpkgs/nixos-22.11"; stable.url = "github:nixos/nixpkgs/nixos-22.11";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
utils.url = "github:gytis-ivaskevicius/flake-utils-plus"; utils.url = "github:gytis-ivaskevicius/flake-utils-plus";
utils.inputs.flake-utils.follows = "flake-utils"; utils.inputs.flake-utils.follows = "flake-utils";
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs"; agenix.inputs.nixpkgs.follows = "nixpkgs";
agenix.url = "github:ryantm/agenix";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
home-manager.inputs.utils.follows = "flake-utils";
# Zsh specific
forgit-git.url = "github:wfxr/forgit";
forgit-git.flake = false;
# Laptop Touchpad
asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout";
asus-touchpad-numpad-driver.flake = false;
arkenfox-userjs.url = "github:arkenfox/user.js";
arkenfox-userjs.flake = false;
howdy.url = "sourcehut:~moritzboehme/howdy";
howdy.inputs.nixpkgs.follows = "nixpkgs";
emacs.url = "git+ssh://git@gitea.moritzboeh.me/moritz/emacs.git?ref=main";
neovim.url = "github:neovim/neovim?dir=contrib";
nil.url = "github:oxalica/nil";
nil.inputs.nixpkgs.follows = "nixpkgs";
nil.inputs.flake-utils.follows = "flake-utils";
# Hyprland
hyprland.url = "github:hyprwm/Hyprland";
hyprpaper.url = "github:hyprwm/hyprpaper";
hypr-contrib.url = "github:hyprwm/contrib";
attic.url = "github:zhaofengli/attic";
attic.inputs.nixpkgs.follows = "nixpkgs";
attic.inputs.nixpkgs-stable.follows = "stable";
attic.inputs.flake-utils.follows = "flake-utils"; attic.inputs.flake-utils.follows = "flake-utils";
attic.inputs.nixpkgs-stable.follows = "stable";
attic.inputs.nixpkgs.follows = "nixpkgs";
attic.url = "github:zhaofengli/attic";
nvim-treesitter-textsubjects.url = "github:RRethy/nvim-treesitter-textsubjects"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
nvim-treesitter-textsubjects.flake = false; home-manager.url = "github:nix-community/home-manager";
smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; nil.inputs.flake-utils.follows = "flake-utils";
smartcolumn-nvim.flake = false; nil.inputs.nixpkgs.follows = "nixpkgs";
nil.url = "github:oxalica/nil";
copilot-lua.url = "github:zbirenbaum/copilot.lua"; pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
copilot-lua.flake = false;
lspsaga-nvim.url = "github:glepnir/lspsaga.nvim"; # Neovim
lspsaga-nvim.flake = false; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
advanced-git-search-nvim.url = "github:aaronhallaert/advanced-git-search.nvim"; bufferline-nvim.flake = false;
advanced-git-search-nvim.flake = false; bufferline-nvim.url = "github:akinsho/bufferline.nvim";
cmp-async-path.url = "github:FelipeLema/cmp-async-path"; cmp-async-path.url = "github:FelipeLema/cmp-async-path";
cmp-async-path.flake = false; cmp-async-path.flake = false;
comment-box-nvim.flake = false;
comment-box-nvim.url = "github:LudoPinelli/comment-box.nvim";
copilot-lua.flake = false;
copilot-lua.url = "github:zbirenbaum/copilot.lua";
gitignore-nvim.flake = false;
gitignore-nvim.url = "github:wintermute-cell/gitignore.nvim";
lspsaga-nvim.flake = false;
lspsaga-nvim.url = "github:glepnir/lspsaga.nvim";
nvim-treesitter-textsubjects.flake = false;
nvim-treesitter-textsubjects.url = "github:RRethy/nvim-treesitter-textsubjects";
smartcolumn-nvim.flake = false;
smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim";
# Hyprland
hypr-contrib.url = "github:hyprwm/contrib";
hyprland.url = "github:hyprwm/Hyprland";
hyprpaper.url = "github:hyprwm/hyprpaper";
# Laptop
asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout";
asus-touchpad-numpad-driver.flake = false;
# Firefox user.js
arkenfox-userjs.url = "github:arkenfox/user.js";
arkenfox-userjs.flake = false;
}; };
/*
Outputs
*/
outputs = outputs =
inputs@{ self, nixpkgs, utils, ... }: inputs@{ self, nixpkgs, utils, ... }:
utils.lib.mkFlake { utils.lib.mkFlake {
@ -85,22 +89,22 @@
channelsConfig.allowUnfree = true; channelsConfig.allowUnfree = true;
lib = nixpkgs.lib.extend lib = nixpkgs.lib.extend
(self: super: { my = import ./lib { lib = self; }; }); (self: _: { my = import ./lib { lib = self; }; });
################
### Overlays ###
################
/*
Overlays
*/
overlay = import ./overlays { overlay = import ./overlays {
inherit inputs; inherit inputs;
inherit (self) lib; inherit (self) lib;
}; };
channels.nixpkgs.overlaysBuilder = channels: [ channels.nixpkgs.overlaysBuilder = _: [
inputs.emacs.overlays.default
inputs.howdy.overlays.default
inputs.hypr-contrib.overlays.default inputs.hypr-contrib.overlays.default
inputs.hyprland.overlays.default inputs.hyprland.overlays.default
inputs.neovim-nightly-overlay.overlay
inputs.utils.overlay inputs.utils.overlay
self.overlay self.overlay
]; ];
@ -111,14 +115,16 @@
overlays.default = self.overlay; overlays.default = self.overlay;
############### /*
### Modules ###
############### Modules
*/
nixosModules = utils.lib.exportModules [ nixosModules = utils.lib.exportModules [
./modules/profiles/base.nix ./modules/profiles/base.nix
./modules/profiles/gaming.nix ./modules/profiles/gaming.nix
./modules/profiles/desktop.nix ./modules/profiles/desktop.nix
./modules/profiles/personal.nix
]; ];
hostDefaults.modules = [ hostDefaults.modules = [
@ -132,9 +138,7 @@
extraSpecialArgs = { inherit inputs self; }; extraSpecialArgs = { inherit inputs self; };
}; };
} }
inputs.hyprland.nixosModules.default
inputs.agenix.nixosModules.age inputs.agenix.nixosModules.age
inputs.howdy.nixosModules.default
]; ];
@ -142,6 +146,7 @@
./hosts/nixos-laptop ./hosts/nixos-laptop
self.nixosModules.desktop self.nixosModules.desktop
self.nixosModules.gaming self.nixosModules.gaming
self.nixosModules.personal
]; ];
@ -149,12 +154,14 @@
./hosts/nixos-desktop ./hosts/nixos-desktop
self.nixosModules.desktop self.nixosModules.desktop
self.nixosModules.gaming self.nixosModules.gaming
self.nixosModules.personal
]; ];
############### /*
### Outputs ###
############### Other Outputs
*/
outputsBuilder = channels: outputsBuilder = channels:
with channels.nixpkgs; { with channels.nixpkgs; {
devShells.default = mkShell { devShells.default = mkShell {

View File

@ -1,21 +1,23 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ lib { pkgs
, config
, pkgs
, inputs
, ... , ...
}: { }:
{
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
my = {
my.programs.hyprland.nvidiaSupport = true; programs.hyprland.nvidiaSupport = true;
services.mullvad.enable = true;
programs.ledger.enable = true;
};
# KERNEL # KERNEL
boot.kernelPackages = pkgs.linuxPackages_6_1; # HACK to get nvidia kernel package to build boot.kernelPackages = pkgs.linuxPackages_latest;
# BOOT # BOOT
boot = { boot = {

View File

@ -3,7 +3,6 @@
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config { config
, lib , lib
, pkgs
, modulesPath , modulesPath
, ... , ...
}: { }: {

View File

@ -1,8 +1,7 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config { pkgs
, pkgs
, inputs , inputs
, ... , ...
}: { }: {
@ -11,11 +10,6 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
# services.howdy = {
# enable = true;
# certainty = 3.0;
# };
# BOOT # BOOT
boot = { boot = {
supportedFilesystems = [ "btrfs" ]; supportedFilesystems = [ "btrfs" ];

View File

@ -1,10 +1,7 @@
# 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 { modulesPath
, lib
, pkgs
, modulesPath
, ... , ...
}: { }: {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];

View File

@ -1,6 +1,6 @@
{ lib, ... }: { lib, ... }:
lib.makeExtensible (self: rec { lib.makeExtensible (_: rec {
mkDate = longDate: lib.concatStringsSep "-" [ mkDate = longDate: lib.concatStringsSep "-" [
(builtins.substring 0 4 longDate) (builtins.substring 0 4 longDate)
(builtins.substring 4 2 longDate) (builtins.substring 4 2 longDate)
@ -16,7 +16,7 @@ lib.makeExtensible (self: rec {
mapModules = f: dir: mapModules = f: dir:
let let
filter = name: type: filterModules = name: type:
let let
isPublic = !(lib.hasPrefix "_" name); isPublic = !(lib.hasPrefix "_" name);
isSomething = type != null; isSomething = type != null;
@ -30,6 +30,8 @@ lib.makeExtensible (self: rec {
in in
isPublic && isSomething && isModule; isPublic && isSomething && isModule;
modulesInDir = lib.filterAttrs filterModules (builtins.readDir dir);
mkModule = name: _: mkModule = name: _:
let let
path = "${toString dir}/${name}"; path = "${toString dir}/${name}";
@ -40,7 +42,7 @@ lib.makeExtensible (self: rec {
in in
lib.nameValuePair normalizedName (f path); lib.nameValuePair normalizedName (f path);
in in
lib.mapAttrs' mkModule (lib.filterAttrs filter (builtins.readDir dir)); lib.mapAttrs' mkModule modulesInDir;
mapModules' = f: dir: lib.attrValues (mapModules f dir); mapModules' = f: dir: lib.attrValues (mapModules f dir);
}) })

View File

@ -1,9 +1,3 @@
{ config
, lib
, pkgs
, ...
}:
{ {
imports = [ imports = [
./bin ./bin

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, inputs , inputs
, ... , ...
}: }:

View File

@ -1,13 +1,8 @@
{ config { lib
, lib
, pkgs
, ... , ...
}: }:
with lib; with lib;
let
cfg = config.my.shell;
in
{ {
options.my.shell = { options.my.shell = {
abbreviations = mkOption { abbreviations = mkOption {
@ -17,7 +12,7 @@ in
}; };
aliases = mkOption { aliases = mkOption {
default = { }; default = { };
type = with types; attrsOf (nullOr (either str path)); type = with types; attrsOf str;
}; };
variables = mkOption { variables = mkOption {
default = { }; default = { };

View File

@ -1,6 +1,4 @@
{ config { config
, lib
, pkgs
, rosewater , rosewater
, flamingo , flamingo
, pink , pink
@ -27,12 +25,9 @@
, base , base
, mantle , mantle
, crust , crust
, ...
}: }:
with lib;
let
cfg = config.my.theming;
in
{ {
home-manager.users.moritz = { home-manager.users.moritz = {
programs = { programs = {

View File

@ -1,7 +1,6 @@
{ config { config
, lib , lib
, pkgs , pkgs
, inputs
, ... , ...
}: }:

View File

@ -1,4 +1,7 @@
{ config, lib, pkgs, ... }: { config
, lib
, ...
}:
with lib; with lib;
let let

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,9 +1,3 @@
{ config
, lib
, pkgs
, ...
}:
{ {
imports = [ imports = [
./config ./config

View File

@ -1,140 +1,60 @@
{ config { lib
, lib
, pkgs , pkgs
, ... , ...
}: }:
with lib; { with lib; {
my = { my = {
yubikey = { yubikey = {
enable = true; enable = mkDefault true;
luksSupport = { luksSupport = {
enable = true; enable = mkDefault true;
devices = [ "enc" ]; devices = mkDefault [ "enc" ];
}; };
}; };
wallpapers.enable = true; wallpapers.enable = mkDefault true;
theming = { theming = {
enable = true; enable = mkDefault true;
scheme = "catppuccin-macchiato"; scheme = mkDefault "catppuccin-macchiato";
};
virtualisation = {
podman.enable = true;
libvirtd.enable = true;
}; };
virtualisation.podman.enable = mkDefault true;
programs = { programs = {
adb.enable = true; chromium.enable = mkDefault true;
hyprland.enable = true; firefox.enable = mkDefault true;
code.enable = true; gpg.enable = mkDefault true;
firefox = { hyprland.enable = mkDefault true;
enable = true; logseq.enable = mkDefault true;
arkenfox = { nvim.enable = mkDefault true;
enable = true; python.versions."311".enable = mkDefault true;
overrides = { spotify.enable = mkDefault true;
## arkenfox overrides ssh.enable = mkDefault true;
# automatic search thunar.enable = mkDefault true;
"keyword.enabled" = true; zathura.enable = mkDefault true;
"browser.search.suggest.enabled" = true;
"browser.urlbar.suggest.searches" = true;
# startup page
"browser.startup.homepage" = "https://searxng.moritzboeh.me/";
"browser.startup.page" = 1;
# drm
"media.eme.enabled" = true;
# sanitisation
"privacy.clearOnShutdown.history" = false;
# disable letterboxing
"privacy.resistFingerprinting.letterboxing" = false;
## OTHER
# Dont show warning when accessing about:config
"browser.aboutConfig.showWarning" = false;
# Hide bookmarks
"browser.toolbars.bookmarks.visibility" = "never";
# Smooth scrolling
"general.smoothScroll.lines.durationMaxMS" = 125;
"general.smoothScroll.lines.durationMinMS" = 125;
"general.smoothScroll.mouseWheel.durationMaxMS" = 200;
"general.smoothScroll.mouseWheel.durationMinMS" = 100;
"general.smoothScroll.msdPhysics.enabled" = true;
"general.smoothScroll.other.durationMaxMS" = 125;
"general.smoothScroll.other.durationMinMS" = 125;
"general.smoothScroll.pages.durationMaxMS" = 125;
"general.smoothScroll.pages.durationMinMS" = 125;
"mousewheel.min_line_scroll_amount" = 40;
"mousewheel.system_scroll_override_on_root_content.enabled" = true;
"mousewheel.system_scroll_override_on_root_content.horizontal.factor" = 175;
"mousewheel.system_scroll_override_on_root_content.vertical.factor" = 175;
"toolkit.scrollbox.horizontalScrollDistance" = 6;
"toolkit.scrollbox.verticalScrollDistance" = 2;
};
};
};
git.signing = true;
gpg.enable = true;
hub.enable = true;
ledger.enable = true;
logseq.enable = true;
nvim.enable = true;
python.versions."311".enable = true;
ssh = {
enable = true;
includeSecrets = [ ../../secrets/ssh-home.age ];
};
spotify.enable = true;
thunar.enable = true;
zathura.enable = true;
}; };
services = { services = {
dunst.enable = true; dunst.enable = mkDefault true;
kdeconnect.enable = true; gammastep.enable = true;
mullvad.enable = true; kdeconnect.enable = mkDefault true;
openconnect.enable = true;
printing.enable = true; printing.enable = true;
redshift.enable = true;
wireguard.enable = true; wireguard.enable = true;
}; };
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# nix
nixpkgs-review
# ripping
abcde
handbrake
picard
# other
anki anki
calibre calibre
jellyfin-media-player
keepassxc keepassxc
libreoffice nixpkgs-review
pavucontrol pavucontrol
stable.libreoffice # HACK to fix build error
stable.signal-desktop stable.signal-desktop
tlaplusToolbox
vlc
thunderbird
plantuml
jetbrains.pycharm-professional
synology-drive-client synology-drive-client
texlive.combined.scheme-full texlive.combined.scheme-full
thunderbird
vlc
]; ];
programs = { programs.nix-ld.enable = true;
chromium.enable = true;
nix-ld.enable = true;
};
home-manager.users.moritz = { home-manager.users.moritz = {
services.nextcloud-client = { services.nextcloud-client = {
@ -149,7 +69,5 @@ with lib; {
alsa.enable = true; alsa.enable = true;
pulse.enable = true; pulse.enable = true;
}; };
# Remap capslock to esc and shift + capslock to capslock
xserver.xkbOptions = "terminate:ctrl_alt_bksp,caps:escape_shifted_capslock";
}; };
} }

View File

@ -1,6 +1,4 @@
{ config { pkgs
, lib
, pkgs
, ... , ...
}: { }: {
programs.steam.enable = true; programs.steam.enable = true;

View File

@ -0,0 +1,60 @@
{ lib, ... }:
with lib;
{
my = {
services.openconnect.enable = true;
programs = {
ssh.includeSecrets = mkDefault [ ../../secrets/ssh-home.age ];
git.signing = mkDefault true;
hub.enable = mkDefault true;
firefox.arkenfox = {
enable = mkDefault true;
overrides = mkDefault {
## arkenfox overrides
# automatic search
"keyword.enabled" = true;
"browser.search.suggest.enabled" = true;
"browser.urlbar.suggest.searches" = true;
# startup page
"browser.startup.homepage" = "https://searxng.moritzboeh.me/";
"browser.startup.page" = 1;
# drm
"media.eme.enabled" = true;
# sanitisation
"privacy.clearOnShutdown.history" = false;
# disable letterboxing
"privacy.resistFingerprinting.letterboxing" = false;
## OTHER
# Dont show warning when accessing about:config
"browser.aboutConfig.showWarning" = false;
# Hide bookmarks
"browser.toolbars.bookmarks.visibility" = "never";
# Smooth scrolling
"general.smoothScroll.lines.durationMaxMS" = 125;
"general.smoothScroll.lines.durationMinMS" = 125;
"general.smoothScroll.mouseWheel.durationMaxMS" = 200;
"general.smoothScroll.mouseWheel.durationMinMS" = 100;
"general.smoothScroll.msdPhysics.enabled" = true;
"general.smoothScroll.other.durationMaxMS" = 125;
"general.smoothScroll.other.durationMinMS" = 125;
"general.smoothScroll.pages.durationMaxMS" = 125;
"general.smoothScroll.pages.durationMinMS" = 125;
"mousewheel.min_line_scroll_amount" = 40;
"mousewheel.system_scroll_override_on_root_content.enabled" = true;
"mousewheel.system_scroll_override_on_root_content.horizontal.factor" = 175;
"mousewheel.system_scroll_override_on_root_content.vertical.factor" = 175;
"toolkit.scrollbox.horizontalScrollDistance" = 6;
"toolkit.scrollbox.verticalScrollDistance" = 2;
};
};
};
};
}

View File

@ -0,0 +1,32 @@
{ pkgs }:
{
environment.systemPackages = with pkgs; [
# nix
nixpkgs-review
# ripping
abcde
handbrake
picard
# other
anki
calibre
jellyfin-media-player
keepassxc
stable.libreoffice # HACK to fix build error
pavucontrol
stable.signal-desktop
tlaplusToolbox
vlc
thunderbird
plantuml
jetbrains.pycharm-professional
synology-drive-client
texlive.combined.scheme-full
];
}

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -0,0 +1,26 @@
{ config
, lib
, pkgs
, ...
}:
with lib;
let
cfg = config.my.programs.chromium;
in
{
options.my.programs.chromium = {
enable = mkEnableOption "chromium";
package = mkOption {
type = types.package;
default = pkgs.stable.chromium;
defaultText = "pkgs.chromium";
description = "Chromium package to install.";
};
};
config = mkIf cfg.enable {
programs.chromium.enable = true;
environment.systemPackages = [ cfg.package ];
};
}

View File

@ -1,16 +1,10 @@
{ config
, lib
, pkgs
, ...
}:
{ {
imports = [ imports = [
./adb.nix ./adb.nix
./bspwm ./bspwm
./chromium.nix
./code.nix ./code.nix
./direnv.nix ./direnv.nix
./emacs.nix
./firefox.nix ./firefox.nix
./fish.nix ./fish.nix
./git.nix ./git.nix
@ -24,14 +18,13 @@
./ledger ./ledger
./logseq.nix ./logseq.nix
./miracast.nix ./miracast.nix
./nvim
./python.nix ./python.nix
./rofi ./rofi
./spotify.nix ./spotify.nix
./ssh.nix ./ssh.nix
./sway.nix ./sway.nix
./thunar.nix ./thunar.nix
./nvim
./xmonad
./zathura.nix ./zathura.nix
./zsh.nix ./zsh.nix
]; ];

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,33 +0,0 @@
{ config
, lib
, pkgs
, inputs
, ...
}:
with lib;
let
cfg = config.my.programs.emacs;
myEmacs = pkgs.emacsPgtkWithPackages;
in
{
options.my.programs.emacs.enable = mkEnableOption "emacs";
config = mkIf cfg.enable {
my.shell.aliases = {
emacs = "emacsclient -nw -a 'emacs -nw'";
};
fonts.fonts = with pkgs; [
emacs-all-the-icons-fonts
(iosevka-bin.override { variant = "aile"; })
];
users.users.moritz.packages = [ myEmacs ];
home-manager.users.moritz = {
home.sessionPath = [ "/home/moritz/.config/emacs/bin/" ];
services.emacs = {
enable = true;
package = myEmacs;
};
};
};
}

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, inputs , inputs
, ... , ...
}: }:

View File

@ -1,7 +1,6 @@
{ config { config
, lib , lib
, pkgs , pkgs
, inputs
, ... , ...
}: }:

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:
@ -44,8 +43,8 @@ in
general { general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5 gaps_in = 3
gaps_out = 5 gaps_out = 3
border_size = 2 border_size = 2
col.active_border = rgba(1affffee) col.active_border = rgba(1affffee)
col.inactive_border = rgba(595959aa) col.inactive_border = rgba(595959aa)
@ -161,7 +160,6 @@ in
bind = $mainMod , B , exec , rofi-bluetooth bind = $mainMod , B , exec , rofi-bluetooth
bind = $mainMod , C , exec , rofi -show calc -modi calc -no-show-match -no-sort | wl-copy bind = $mainMod , C , exec , rofi -show calc -modi calc -no-show-match -no-sort | wl-copy
bind = $mainMod , D , exec , hyprctl keyword general:layout dwindle bind = $mainMod , D , exec , hyprctl keyword general:layout dwindle
bind = $mainMod , E , exec , emacsclient -c -a emacs
bind = $mainMod , M , exec , hyprctl keyword general:layout master bind = $mainMod , M , exec , hyprctl keyword general:layout master
bind = $mainMod , R , exec , rofi -show combi bind = $mainMod , R , exec , rofi -show combi
bind = $mainMod , RETURN , exec , kitty bind = $mainMod , RETURN , exec , kitty

View File

@ -36,13 +36,6 @@ in
services.dunst.enable = true; services.dunst.enable = true;
}; };
# enable nix module
programs.hyprland = {
enable = true;
package = null; # because we use the home-manager module
};
# enable home-manager module # enable home-manager module
home-manager.users.moritz = { home-manager.users.moritz = {
# import home-manager module # import home-manager module

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -18,7 +18,7 @@ in
}; };
aliases = aliases =
let let
applyCommon = name: command: "${command} --payee note --strict --explicit"; applyCommon = _: command: "${command} --payee note --strict --explicit";
in in
mapAttrs applyCommon { mapAttrs applyCommon {
bal = "ledger bal"; bal = "ledger bal";

View File

@ -49,14 +49,17 @@ in
extraPackages = with pkgs; [ extraPackages = with pkgs; [
alejandra alejandra
black black
deadnix
isort isort
jq jq
nil nil
nixpkgs-fmt nixpkgs-fmt
nodePackages.bash-language-server nodePackages.bash-language-server
nodePackages.cspell
rustfmt rustfmt
shellcheck shellcheck
shfmt shfmt
statix
stylua stylua
sumneko-lua-language-server sumneko-lua-language-server
taplo taplo
@ -68,7 +71,7 @@ in
cmp_luasnip cmp_luasnip
copilot-cmp copilot-cmp
direnv-vim direnv-vim
impatient-nvim friendly-snippets
lsp_lines-nvim lsp_lines-nvim
lspkind-nvim lspkind-nvim
lspsaga-nvim-original lspsaga-nvim-original

View File

@ -1,39 +1,15 @@
require("impatient") vim.loader.enable()
---merge tables
---@param ... table[]
---@return table
local function table_merge(...)
local tables_to_merge = { ... }
assert(#tables_to_merge > 1, "There should be at least two tables to merge them")
for k, t in ipairs(tables_to_merge) do
assert(type(t) == "table", string.format("Expected a table as function parameter %d", k))
end
local result = tables_to_merge[1]
for i = 2, #tables_to_merge do
local from = tables_to_merge[i]
for k, v in pairs(from) do
if type(v) == "table" then
result[k] = result[k] or {}
result[k] = table_merge(result[k], v)
else
result[k] = v
end
end
end
return result
end
-- Load custom treesitter grammar for org filetype
require("orgmode").setup_ts_grammar()
require("nvim-treesitter.configs").setup({ require("nvim-treesitter.configs").setup({
sync_install = false, sync_install = false,
auto_install = false, auto_install = false,
highlight = { highlight = {
enable = true, enable = true,
additional_vim_regex_highlighting = false, -- Required for spellcheck, some LaTex highlights and
-- code block highlights that do not have ts grammar
additional_vim_regex_highlighting = { "org" },
}, },
}) })
@ -42,6 +18,7 @@ vim.api.nvim_create_autocmd("InsertEnter", {
callback = function() callback = function()
local cmp = require("cmp") local cmp = require("cmp")
local luasnip = require("luasnip") local luasnip = require("luasnip")
require("luasnip.loaders.from_vscode").lazy_load()
require("copilot_cmp").setup() require("copilot_cmp").setup()
local default_sources = { local default_sources = {
@ -97,7 +74,7 @@ vim.api.nvim_create_autocmd("InsertEnter", {
}) })
cmp.setup.filetype("org", { cmp.setup.filetype("org", {
sources = table_merge(default_sources, { sources = vim.tbl_deep_extend("force", default_sources, {
{ name = "buffer", priority = 5 }, { name = "buffer", priority = 5 },
{ name = "orgmode", priority = 5 }, { name = "orgmode", priority = 5 },
}), }),
@ -167,11 +144,8 @@ require("lspsaga").setup({
enable = false, enable = false,
}, },
lightbulb = { lightbulb = {
enable = true, enable = false,
enable_in_insert = true, enable_in_insert = false,
sign = true,
sign_priority = 40,
virtual_text = false,
}, },
}) })
@ -181,10 +155,7 @@ local on_attach_def = function(_, bufnr)
K = { "<cmd>Lspsaga hover_doc ++quiet<cr>", "show info" }, K = { "<cmd>Lspsaga hover_doc ++quiet<cr>", "show info" },
["<leader>"] = { ["<leader>"] = {
l = { l = {
name = "lsp",
d = { "<cmd>Lspsaga show_cursor_diagnostics<cr>", "open diagnostic window" }, d = { "<cmd>Lspsaga show_cursor_diagnostics<cr>", "open diagnostic window" },
n = { "<cmd>Lspsaga diagnostic_jump_next<CR>", "next error" },
p = { "<cmd>Lspsaga diagnostic_jump_prev<CR>", "prev error" },
c = { "<cmd>Lspsaga code_action<cr>", "code action" }, c = { "<cmd>Lspsaga code_action<cr>", "code action" },
r = { "<cmd>Lspsaga rename<cr>", "rename" }, r = { "<cmd>Lspsaga rename<cr>", "rename" },
i = { "<cmd>Lspsaga hover_doc ++keep<cr>", "show info (sticky)" }, i = { "<cmd>Lspsaga hover_doc ++keep<cr>", "show info (sticky)" },
@ -196,27 +167,23 @@ local on_attach_def = function(_, bufnr)
mode = { "n", "v" }, mode = { "n", "v" },
}, },
}, },
w = {
name = "workspace",
a = { vim.lsp.buf.add_workspace_folder, "add workspace folder" },
r = { vim.lsp.buf.remove_workspace_folder, "remove workspace folder" },
l = {
function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end,
"list workspace folders",
},
},
t = { t = {
name = "toggle",
l = { lsp_lines.toggle, "lsp lines" }, l = { lsp_lines.toggle, "lsp lines" },
}, },
}, },
g = { g = {
name = "goto", d = { "<cmd>Lspsaga peek_definition<cr>", "Goto definition" },
d = { "<cmd>Lspsaga peek_definition<cr>", "definition" }, t = { "<cmd>Lspsaga peek_type_definition<cr>", "Goto type defininition" },
t = { "<cmd>Lspsaga peek_type_definition<cr>", "type defininition" }, h = { "<cmd>Lspsaga lsp_finder<CR>", "Lsp finder" },
h = { "<cmd>Lspsaga lsp_finder<CR>", "lsp finder" }, r = { "<cmd>Telescope lsp_references<cr>", "Goto reference" },
D = { vim.lsp.buf.declaration, "Goto declaration" },
I = { "<cmd>Telescope lsp_implementations<cr>", "Goto implementation" },
},
["["] = {
d = { "<cmd>Lspsaga diagnostic_jump_prev<cr>", "Previous diagnostic" },
},
["]"] = {
d = { "<cmd>Lspsaga diagnostic_jump_next<cr>", "Next diagnostic" },
}, },
}, { buffer = bufnr, silent = true }) }, { buffer = bufnr, silent = true })
end end
@ -234,7 +201,7 @@ local lspconfig_default_options = {
---@param options table ---@param options table
---@return nil ---@return nil
local function lspconfig_setup(lsp, options) local function lspconfig_setup(lsp, options)
local final_options = table_merge(lspconfig_default_options, options) local final_options = vim.tbl_deep_extend("force", lspconfig_default_options, options)
lspconfig[lsp].setup(final_options) lspconfig[lsp].setup(final_options)
end end

View File

@ -1,14 +1,74 @@
-- buffers -- buffer
require("which-key").register({ require("which-key").register({
b = { b = {
name = "buffers", name = "buffer",
b = { "<cmd>Telescope buffers<cr>", "List buffers" }, b = { "<cmd>Telescope buffers<cr>", "List buffers" },
d = { "<cmd>bd<cr>", "Delete buffer" }, d = { "<cmd>bd<cr>", "Delete buffer" },
n = { "<cmd>bnext<cr>", "Next buffer" },
p = { "<cmd>bprevious<cr>", "Previous buffer" },
}, },
}) })
-- window
require("which-key").register({
w = {
name = "window",
["|"] = { "<C-w>v", "Split window horizontally" },
["-"] = { "<C-w>s", "Split window vertically" },
w = { "<C-w>w", "Switch window" },
d = { "<C-w>c", "Delete window" },
},
}, { prefix = "<leader>" })
require("which-key").register({
["["] = {
b = { "<cmd>bprevious<cr>", "Previous buffer" },
},
["]"] = {
b = { "<cmd>bnext<cr>", "Next buffer" },
},
})
-- fast window move
require("which-key").register({
["<C-h>"] = { "<C-w>h", "Move window left" },
["<C-j>"] = { "<C-w>j", "Move window down" },
["<C-k>"] = { "<C-w>k", "Move window up" },
["<C-l>"] = { "<C-w>l", "Move window right" },
})
-- tab
require("which-key").register({
["<tab>"] = {
name = "tab",
["<tab>"] = { "<cmd>tabnew<cr>", "New tab" },
n = { "<cmd>tabnext<cr>", "Next tab" },
p = { "<cmd>tabprevious<cr>", "Previous tab" },
d = { "<cmd>tabclose<cr>", "Close tab" },
},
}, { prefix = "<leader>" })
-- file
require("which-key").register({
f = {
name = "file/find",
n = { "<cmd>enew<cr>", "New file" },
},
}, { prefix = "<leader>" })
-- better descriptions for navigation
require("which-key").register({
["<leader>"] = {
f = { name = "file/find" },
g = { name = "git" },
l = { name = "lsp" },
o = { name = "org" },
s = { name = "search" },
t = { name = "toggle" },
x = { name = "diagnostics/quickfix" },
},
["["] = { name = "prev" },
["]"] = { name = "next" },
g = { name = "goto" },
})
-- Clear search with <esc> -- Clear search with <esc>
require("which-key").register({ require("which-key").register({
["<esc>"] = { "<cmd>noh<cr><esc>", "Escape and clear hlsearch", mode = { "n", "i" } }, ["<esc>"] = { "<cmd>noh<cr><esc>", "Escape and clear hlsearch", mode = { "n", "i" } },

View File

@ -1,18 +0,0 @@
require("telescope").load_extension("advanced_git_search")
local advanced_git_search = require("telescope").extensions.advanced_git_search
vim.api.nvim_create_user_command(
"DiffCommitLine",
"lua require('telescope').extensions.advanced_git_search.diff_commit_line()",
{ range = true }
)
require("which-key").register({
g = {
name = "git",
b = { advanced_git_search.diff_branch_file, "diff branch file" },
l = { vim.cmd.DiffCommitLine, "diff commit line", mode = "v" },
f = { advanced_git_search.diff_commit_file, "diff commit file" },
c = { advanced_git_search.search_log_content, "search log content" },
C = { advanced_git_search.search_log_content_file, "search log content current file" },
r = { advanced_git_search.checkout_reflog, "checkout reflog" },
},
}, { prefix = "<leader>" })

View File

@ -0,0 +1 @@
require("comment-box").setup()

View File

@ -0,0 +1,3 @@
require("which-key").register({
i = { "<cmd>Gitignore<cr>", "Create .gitignore" },
}, { prefix = "<leader>g" })

View File

@ -1 +1,22 @@
require("gitsigns").setup() require("gitsigns").setup()
require("which-key").register({
["["] = {
h = { "<cmd>Gitsigns prev_hunk<cr>", "Previous hunk" },
},
["]"] = {
h = { "<cmd>Gitsigns next_hunk<cr>", "Next hunk" },
},
})
require("which-key").register({
h = {
name = "hunk",
s = { "<cmd>Gitsigns stage_hunk<cr>", "Stage hunk", mode = { "n", "v" } },
r = { "<cmd>Gitsigns reset_hunk<cr>", "Reset hunk", mode = { "n", "v" } },
S = { "<cmd>Gitsigns stage_buffer<cr>", "Stage buffer" },
R = { "<cmd>Gitsigns reset_buffer<cr>", "Reset buffer" },
u = { "<cmd>Gitsigns undo_stage_hunk<cr>", "Undo stage hunk" },
},
}, { prefix = "<leader>g" })
require("which-key").register({
h = { ":<C-U>Gitsigns select_hunk<cr>", "Gitsigns select hunk" },
}, { prefix = "i", mode = { "o", "x" } })

View File

@ -0,0 +1,195 @@
-- Unless you are still migrating, remove the deprecated commands from v1.x
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
require("neo-tree").setup({
close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab
popup_border_style = "rounded",
enable_git_status = true,
enable_diagnostics = true,
open_files_do_not_replace_types = { "terminal", "trouble", "qf" }, -- when opening files, do not use windows containing these filetypes or buftypes
sort_case_insensitive = false, -- used when sorting files and directories in the tree
sort_function = nil, -- use a custom function for sorting files and directories in the tree
-- sort_function = function (a,b)
-- if a.type == b.type then
-- return a.path > b.path
-- else
-- return a.type > b.type
-- end
-- end , -- this sorts files and directories descendantly
default_component_configs = {
container = {
enable_character_fade = true,
},
indent = {
indent_size = 2,
padding = 1, -- extra padding on left hand side
-- indent guides
with_markers = true,
indent_marker = "",
last_indent_marker = "",
highlight = "NeoTreeIndentMarker",
-- expander config, needed for nesting files
with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders
expander_collapsed = "",
expander_expanded = "",
expander_highlight = "NeoTreeExpander",
},
icon = {
folder_closed = "",
folder_open = "",
folder_empty = "",
-- The next two settings are only a fallback, if you use nvim-web-devicons and configure default icons there
-- then these will never be used.
default = "*",
highlight = "NeoTreeFileIcon",
},
modified = {
symbol = "[+]",
highlight = "NeoTreeModified",
},
name = {
trailing_slash = false,
use_git_status_colors = true,
highlight = "NeoTreeFileName",
},
git_status = {
symbols = {
-- Change type
added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name
modified = "", -- or "", but this is redundant info if you use git_status_colors on the name
deleted = "", -- this can only be used in the git_status source
renamed = "", -- this can only be used in the git_status source
-- Status type
untracked = "",
ignored = "",
unstaged = "",
staged = "",
conflict = "",
},
},
},
window = {
position = "left",
width = 40,
mapping_options = {
noremap = true,
nowait = true,
},
mappings = {
["<cr>"] = "open",
["<esc>"] = "revert_preview",
["P"] = { "toggle_preview", config = { use_float = false } },
["S"] = "open_split",
["s"] = "open_vsplit",
["t"] = "open_tabnew",
["C"] = "close_node",
["z"] = "close_all_nodes",
["a"] = {
"add",
-- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details
-- some commands may take optional config options, see `:h neo-tree-mappings` for details
config = {
show_path = "none", -- "none", "relative", "absolute"
},
},
["A"] = "add_directory", -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion.
["d"] = "delete",
["r"] = "rename",
["y"] = "copy_to_clipboard",
["x"] = "cut_to_clipboard",
["p"] = "paste_from_clipboard",
["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add":
["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add".
["q"] = "close_window",
["R"] = "refresh",
["?"] = "show_help",
["<"] = "prev_source",
[">"] = "next_source",
},
},
nesting_rules = {},
filesystem = {
filtered_items = {
visible = false, -- when true, they will just be displayed differently than normal items
hide_dotfiles = true,
hide_gitignored = true,
hide_hidden = true, -- only works on Windows for hidden files/directories
hide_by_name = {
--"node_modules"
},
hide_by_pattern = { -- uses glob style patterns
--"*.meta",
--"*/src/*/tsconfig.json",
},
always_show = { -- remains visible even if other settings would normally hide it
--".gitignored",
},
never_show = { -- remains hidden even if visible is toggled to true, this overrides always_show
--".DS_Store",
--"thumbs.db"
},
never_show_by_pattern = { -- uses glob style patterns
--".null-ls_*",
},
},
follow_current_file = false, -- This will find and focus the file in the active buffer every
-- time the current file is changed while the tree is open.
group_empty_dirs = false, -- when true, empty folders will be grouped together
hijack_netrw_behavior = "disabled", -- netrw disabled, opening a directory opens neo-tree
-- in whatever position is specified in window.position
-- "open_current", -- netrw disabled, opening a directory opens within the
-- window like netrw would, regardless of window.position
-- "disabled", -- netrw left alone, neo-tree does not handle opening dirs
use_libuv_file_watcher = false, -- This will use the OS level file watchers to detect changes
-- instead of relying on nvim autocmd events.
window = {
mappings = {
["<bs>"] = "navigate_up",
["."] = "set_root",
["H"] = "toggle_hidden",
["/"] = "fuzzy_finder",
["D"] = "fuzzy_finder_directory",
["#"] = "fuzzy_sorter", -- fuzzy sorting using the fzy algorithm
["f"] = "filter_on_submit",
["<c-x>"] = "clear_filter",
["[g"] = "prev_git_modified",
["]g"] = "next_git_modified",
},
fuzzy_finder_mappings = { -- define keymaps for filter popup window in fuzzy_finder_mode
["<S-tab>"] = "move_cursor_up",
["<tab>"] = "move_cursor_down",
},
},
},
buffers = {
follow_current_file = true, -- This will find and focus the file in the active buffer every
-- time the current file is changed while the tree is open.
group_empty_dirs = true, -- when true, empty folders will be grouped together
show_unloaded = true,
window = {
mappings = {
["bd"] = "buffer_delete",
["<bs>"] = "navigate_up",
["."] = "set_root",
},
},
},
git_status = {
window = {
position = "float",
mappings = {
["A"] = "git_add_all",
["gu"] = "git_unstage_file",
["ga"] = "git_add_file",
["gr"] = "git_revert_file",
["gc"] = "git_commit",
["gp"] = "git_push",
["gg"] = "git_commit_and_push",
},
},
},
})
require("which-key").register({
t = { "<cmd>Neotree toggle reveal<cr>", "Neotree" },
}, { prefix = "<leader>t", silent = true })

View File

@ -0,0 +1,58 @@
local null_ls = require("null-ls")
null_ls.setup({
sources = {
-- Code actions
null_ls.builtins.code_actions.cspell,
null_ls.builtins.code_actions.gitsigns,
null_ls.builtins.code_actions.shellcheck,
null_ls.builtins.code_actions.statix,
-- Completion
null_ls.builtins.completion.spell,
-- Diagnostics
null_ls.builtins.diagnostics.cspell,
null_ls.builtins.diagnostics.deadnix,
null_ls.builtins.diagnostics.shellcheck,
null_ls.builtins.diagnostics.statix,
},
})
-- disable cspell initially
null_ls.disable("cspell")
-- make sources toggle able
require("which-key").register({
n = {
name = "null-ls",
c = {
function()
null_ls.toggle("cspell")
end,
"cspell",
},
g = {
function()
null_ls.toggle("gitsigns")
end,
"gitsigns",
},
s = {
function()
null_ls.toggle("shellcheck")
end,
"shellcheck",
},
S = {
function()
null_ls.toggle("statix")
end,
"statix",
},
d = {
function()
null_ls.toggle("deadnix")
end,
"deadnix",
},
},
}, { prefix = "<leader>t" })

View File

@ -1 +1 @@
require("nvim-surround").setup({}) require("nvim-surround").setup()

View File

@ -1,10 +0,0 @@
-- disable netrw at the very start of your init.lua (strongly advised)
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- set termguicolors to enable highlight groups
vim.opt.termguicolors = true
-- empty setup using defaults
require("nvim-tree").setup()
require("which-key").register({
t = { "<cmd>NvimTreeFindFileToggle<cr>", "nvim tree" },
}, { prefix = "<leader>t", silent = true })

View File

@ -1,18 +1,4 @@
local orgmode = require("orgmode") require("orgmode").setup({
-- Load custom treesitter grammar for org filetype
orgmode.setup_ts_grammar()
-- Treesitter configuration
require("nvim-treesitter.configs").setup({
-- If TS highlights are not enabled at all, or disabled via `disable` prop,
-- highlighting will fallback to default Vim syntax highlighting
highlight = {
enable = true,
-- Required for spellcheck, some LaTex highlights and
-- code block highlights that do not have ts grammar
additional_vim_regex_highlighting = { "org" },
},
})
orgmode.setup({
org_agenda_files = { "~/Notes/org" }, org_agenda_files = { "~/Notes/org" },
org_default_notes_file = "~/Notes/org/refile.org", org_default_notes_file = "~/Notes/org/refile.org",
}) })

View File

@ -1,9 +1,22 @@
require("which-key").register({ require("which-key").register({
f = { f = {
name = "find", f = { "<cmd>Telescope find_files<cr>", "Find files" },
f = { "<cmd>Telescope find_files<cr>", "find file" }, b = { "<cmd>Telescope buffers<cr>", "Find buffers" },
l = { "<cmd>Telescope current_buffer_fuzzy_find<cr>", "find line" }, r = { "<cmd>Telescope oldfiles<cr>", "Find recent files" },
g = { "<cmd>Telescope live_grep<cr>", "live grep" }, },
b = { "<cmd>Telescope buffers<cr>", "find buffer" }, s = {
l = { "<cmd>Telescope current_buffer_fuzzy_find<cr>", "Search lines" },
g = { "<cmd>Telescope live_grep<cr>", "Live grep" },
c = { "<cmd>Telescope command_history<cr>", "Command history" },
C = { "<cmd>Telescope commands<cr>", "Commands" },
d = { "<cmd>Telescope diagnostics<cr>", "Diagnostics" },
h = { "<cmd>Telescope help_tags<cr>", "Help tags" },
k = { "<cmd>Telescope keymaps<cr>", "Keymaps" },
s = { "<cmd>Telescope lsp_document_symbols<cr>", "Symbols (Document)" },
S = { "<cmd>Telescope lsp_workspace_symbols<cr>", "Symbols (Workspace)" },
},
g = {
c = { "<cmd>Telescope git_commits<cr>", "Commits" },
s = { "<cmd>Telescope git_status<cr>", "Status" },
}, },
}, { prefix = "<leader>" }) }, { prefix = "<leader>" })

View File

@ -1,7 +1,4 @@
require("telescope").load_extension("zoxide") require("telescope").load_extension("zoxide")
require("which-key").register({ require("which-key").register({
f = { z = { "<cmd>Telescope zoxide list<cr>", "Find location (Zoxide)" },
name = "find", }, { prefix = "<leader>f" })
z = { "<cmd>Telescope zoxide list<cr>", "find location" },
},
}, { prefix = "<leader>" })

View File

@ -1 +1 @@
require("todo-comments").setup({}) require("todo-comments").setup()

View File

@ -0,0 +1,38 @@
require("trouble").setup()
require("which-key").register({
x = { "<cmd>TroubleToggle document_diagnostics<cr>", "Document Diagnostics (Trouble)" },
X = { "<cmd>TroubleToggle workspace_diagnostics<cr>", "Workspace Diagnostics (Troule)" },
l = { "<cmd>TroubleToggle loclist<cr>", "Location List (Trouble)" },
q = { "<cmd>TroubleToggle quickfix<cr>", "Quickfix List (Trouble)" },
t = { "<cmd>TodoTrouble<cr>", "Todo (Trouble)" },
T = { "<cmd>TodoTrouble keywords=TODO,FIX,FIXME<cr>", "Todo/Fix/Fixme (Trouble)" },
}, { prefix = "<leader>x" })
require("which-key").register({
t = { "<cmd>TodoTelescope<cr>", "Todo" },
}, { prefix = "<leader>s" })
require("which-key").register({
["["] = {
q = {
function()
if require("trouble").is_open() then
require("trouble").previous({ skip_groups = true, jump = true })
else
vim.cmd.cprev()
end
end,
"Previous trouble/quickfix item",
},
},
["]"] = {
q = {
function()
if require("trouble").is_open() then
require("trouble").next({ skip_groups = true, jump = true })
else
vim.cmd.cnext()
end
end,
"Next trouble/quickfix item",
},
},
})

View File

@ -0,0 +1,3 @@
require("twilight").setup({
context = 20,
})

View File

@ -0,0 +1,2 @@
vim.g.startuptime_tries = 10
vim.g.startuptime_exe_path = "vim"

View File

@ -0,0 +1,4 @@
require("zen-mode").setup()
require("which-key").register({
z = { "<cmd>ZenMode<cr>", "Zen mode" },
}, { prefix = "<leader>t" })

View File

@ -9,7 +9,7 @@ let
cfg = config.my.programs.python; cfg = config.my.programs.python;
pythonVersions = map (version: "3${toString version}") (range 8 11); pythonVersions = map (version: "3${toString version}") (range 8 11);
enabledVersions = filterAttrs (name: value: value.enable) cfg.versions; enabledVersions = filterAttrs (_: value: value.enable) cfg.versions;
pythonPackages = version: attrNames pkgs."python${version}Packages"; pythonPackages = version: attrNames pkgs."python${version}Packages";

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,50 +0,0 @@
{ config
, lib
, pkgs
, ...
}:
with lib;
let
cfg = config.my.programs.xmonad;
in
{
options.my.programs.xmonad.enable = mkEnableOption "xmonad";
config = lib.mkIf cfg.enable {
services = {
xserver = {
enable = true;
layout = "de";
displayManager = {
defaultSession = "none+xmonad";
autoLogin = {
enable = true;
user = "moritz";
};
lightdm.enable = true;
};
windowManager.xmonad.enable = true;
};
};
home-manager.users.moritz =
let
xmonadPackages = haskellPackages: [
haskellPackages.xmonad-contrib
haskellPackages.xmonad-extras
haskellPackages.xmonad
haskellPackages.xmobar
];
in
{
xsession.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
config = ./xmonad.hs;
# extraPackages = xmonadPackages;
};
programs.xmobar.enable = true;
};
};
}

View File

@ -1,39 +0,0 @@
import XMonad
( Choose,
Default (def),
Full,
KeyMask,
Mirror,
Tall,
X,
XConfig (modMask, terminal),
mod4Mask,
spawn,
xmonad,
)
import XMonad.Hooks.EwmhDesktops (ewmh)
import XMonad.Util.EZConfig (additionalKeysP)
myModMask :: KeyMask
myModMask = mod4Mask
myTerminal :: String
myTerminal = "kitty"
myKeys :: [(String, X ())]
myKeys =
[ ("M-d", spawn "rofi -show combi"),
("M-e", spawn "emacsclient -c -a emacs"),
("M-f", spawn "firefox")
]
myConfig :: (XConfig (Choose Tall (Choose (Mirror Tall) Full)))
myConfig =
def
{ modMask = myModMask,
terminal = myTerminal
}
`additionalKeysP` myKeys
main :: IO ()
main = xmonad $ ewmh $ ewmhFullscreen myConfig

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,7 +1,6 @@
{ config { config
, lib , lib
, pkgs , pkgs
, inputs
, ... , ...
}: }:
@ -31,12 +30,6 @@ in
readlink -f $(which $1) readlink -f $(which $1)
} }
''; '';
plugins = [
{
name = "forgit";
src = inputs.forgit-git;
}
];
}; };
}; };
}; };

View File

@ -11,10 +11,10 @@
# tmpfs = /tmp is mounted in ram. Doing so makes temp file management speedy # tmpfs = /tmp is mounted in ram. Doing so makes temp file management speedy
# on ssd systems, and volatile! Because it's wiped on reboot. # on ssd systems, and volatile! Because it's wiped on reboot.
boot.tmpOnTmpfs = lib.mkDefault true; boot.tmp.useTmpfs = lib.mkDefault true;
# If not using tmpfs, which is naturally purged on reboot, we must clean it # If not using tmpfs, which is naturally purged on reboot, we must clean it
# /tmp ourselves. /tmp should be volatile storage! # /tmp ourselves. /tmp should be volatile storage!
boot.cleanTmpDir = lib.mkDefault (!config.boot.tmpOnTmpfs); boot.tmp.cleanOnBoot = lib.mkDefault (!config.boot.tmpOnTmpfs);
# Fix a security hole in place for backwards compatibility. See desc in # Fix a security hole in place for backwards compatibility. See desc in
# nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix # nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix

View File

@ -1,8 +1,4 @@
{ config {
, lib
, pkgs
, ...
}: {
imports = [ imports = [
./dunst.nix ./dunst.nix
./kdeconnect.nix ./kdeconnect.nix
@ -10,7 +6,7 @@
./openconnect.nix ./openconnect.nix
./picom.nix ./picom.nix
./printing.nix ./printing.nix
./redshift.nix ./gammastep.nix
./wireguard.nix ./wireguard.nix
]; ];
} }

View File

@ -0,0 +1,17 @@
{ config, lib, ... }:
with lib;
let
cfg = config.my.services.gammastep;
in
{
options.my.services.gammastep.enable = mkEnableOption "gammastep";
config = lib.mkIf cfg.enable {
home-manager.users.moritz.services.gammastep = {
enable = true;
latitude = 52.3;
longitude = 12.4;
};
};
}

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,17 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.my.services.redshift;
in
{
options.my.services.redshift.enable = mkEnableOption "redshift";
config = lib.mkIf cfg.enable {
services.redshift.enable = true;
location = {
latitude = 52.3;
longitude = 12.4;
};
};
}

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,8 +1,3 @@
{ config
, lib
, pkgs
, ...
}:
{ {
imports = [ imports = [
./podman.nix ./podman.nix

View File

@ -1,6 +1,5 @@
{ config { config
, lib , lib
, pkgs
, ... , ...
}: }:

View File

@ -1,6 +1,6 @@
{ lib, inputs }: { inputs, ... }:
final: prev: { _: prev: {
master = import inputs.master { master = import inputs.master {
inherit (prev) system; inherit (prev) system;
config.allowUnfree = true; config.allowUnfree = true;

View File

@ -1,5 +1,5 @@
{ lib, inputs }: { lib, ... }:
final: prev: { _: _: {
inherit lib; inherit lib;
} }

View File

@ -1,10 +1,9 @@
{ inputs, lib }: { inputs, ... }:
final: prev: _: prev:
{ {
agenix = inputs.agenix.packages.${prev.system}.default; agenix = inputs.agenix.packages.${prev.system}.default;
attic = inputs.attic.packages.${prev.system}.default; attic = inputs.attic.packages.${prev.system}.default;
hyprpaper = inputs.hyprpaper.packages.${prev.system}.default; hyprpaper = inputs.hyprpaper.packages.${prev.system}.default;
neovim-nightly = inputs.neovim.packages.${prev.system}.default;
nil = inputs.nil.packages.${prev.system}.default; nil = inputs.nil.packages.${prev.system}.default;
} }

View File

@ -1,6 +1,6 @@
{ inputs, lib }: { inputs, lib }:
final: prev: _: prev:
with lib.my; with lib.my;
{ {
vimPlugins = prev.vimPlugins // { vimPlugins = prev.vimPlugins // {
@ -16,26 +16,37 @@ with lib.my;
src = inputs.smartcolumn-nvim; src = inputs.smartcolumn-nvim;
}; };
copilot-lua = prev.vimPlugins.copilot-lua.overrideAttrs (old: { copilot-lua = prev.vimPlugins.copilot-lua.overrideAttrs (_: {
version = mkVersionInput inputs.copilot-lua; version = mkVersionInput inputs.copilot-lua;
src = inputs.copilot-lua; src = inputs.copilot-lua;
}); });
lspsaga-nvim-original = prev.vimPlugins.lspsaga-nvim-original.overrideAttrs (old: { lspsaga-nvim-original = prev.vimPlugins.lspsaga-nvim-original.overrideAttrs (_: {
version = mkVersionInput inputs.lspsaga-nvim; version = mkVersionInput inputs.lspsaga-nvim;
src = inputs.lspsaga-nvim; src = inputs.lspsaga-nvim;
}); });
advanced-git-search-nvim = prev.vimUtils.buildVimPluginFrom2Nix {
pname = "advanced-git-search-nvim";
version = mkVersionInput inputs.advanced-git-search-nvim;
src = inputs.advanced-git-search-nvim;
};
cmp-async-path = prev.vimPlugins.cmp-path.overrideAttrs (old: { cmp-async-path = prev.vimPlugins.cmp-path.overrideAttrs (old: {
pname = "cmp-async-path"; pname = "cmp-async-path";
version = mkVersionInput inputs.cmp-async-path; version = mkVersionInput inputs.cmp-async-path;
src = inputs.cmp-async-path; src = inputs.cmp-async-path;
}); });
comment-box-nvim = prev.vimUtils.buildVimPluginFrom2Nix {
pname = "comment-box-nvim";
version = mkVersionInput inputs.comment-box-nvim;
src = inputs.comment-box-nvim;
};
gitignore-nvim = prev.vimUtils.buildVimPluginFrom2Nix {
pname = "gitignore-nvim";
version = mkVersionInput inputs.gitignore-nvim;
src = inputs.gitignore-nvim;
};
bufferline-nvim = prev.vimPlugins.bufferline-nvim.overrideAttrs (_: {
version = mkVersionInput inputs.bufferline-nvim;
src = inputs.bufferline-nvim;
});
}; };
} }

View File

@ -1,4 +1,4 @@
{ lib, inputs }: _:
final: prev: { final: prev: {
neovide-hyprland = final.symlinkJoin { neovide-hyprland = final.symlinkJoin {