2024-03-26 20:47:54 -07:00
|
|
|
{ config, lib, pkgs, inputs, ... }:
|
2023-08-05 21:03:24 -07:00
|
|
|
|
2024-03-26 20:47:54 -07:00
|
|
|
let
|
|
|
|
artPkgs = lib.attrVals [
|
|
|
|
#"armorpaint"
|
|
|
|
"blender"
|
|
|
|
"gimp"
|
|
|
|
"inkscape"
|
|
|
|
"krita"
|
|
|
|
#"prusa-slicer"
|
|
|
|
] pkgs;
|
|
|
|
handheldPkgs = lib.attrVals [
|
|
|
|
"chatty"
|
|
|
|
"gnome-text-editor"
|
|
|
|
"megapixels"
|
|
|
|
] pkgs;
|
|
|
|
pcPkgs = lib.attrVals [
|
|
|
|
"brightnessctl"
|
2024-07-30 07:25:55 -07:00
|
|
|
"clipman"
|
2024-11-03 04:23:54 -08:00
|
|
|
"cyrus-sasl-xoauth2"
|
|
|
|
"dracula-theme"
|
2024-03-26 20:47:54 -07:00
|
|
|
"easyeffects"
|
|
|
|
"gamescope"
|
|
|
|
"libnotify"
|
2024-11-03 04:23:54 -08:00
|
|
|
"mutt-wizard"
|
|
|
|
"powertop"
|
|
|
|
"wl-clipboard"
|
2024-01-20 17:53:24 -08:00
|
|
|
# temporary home manager things
|
2024-11-03 04:23:54 -08:00
|
|
|
"eww"
|
|
|
|
"ifuse"
|
2024-07-13 00:52:09 -07:00
|
|
|
"img2pdf"
|
2024-03-26 20:47:54 -07:00
|
|
|
"inotify-tools"
|
|
|
|
"jq"
|
|
|
|
"libimobiledevice"
|
2024-11-03 04:23:54 -08:00
|
|
|
"socat"
|
|
|
|
"typst"
|
|
|
|
] pkgs ++ [ pkgs.wineWowPackages.stableFull ];
|
2024-03-26 20:47:54 -07:00
|
|
|
serverPkgs = lib.attrVals [
|
|
|
|
#"package"
|
|
|
|
] pkgs;
|
2024-11-03 04:23:54 -08:00
|
|
|
|
|
|
|
spaceman-nvim = pkgs.vimUtils.buildVimPlugin {
|
|
|
|
name = "spaceman-nvim";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "FireIsGood";
|
|
|
|
repo = "spaceman.nvim";
|
|
|
|
rev = "7910d202073bcc5f567481426f771b3737451dd9";
|
|
|
|
hash = "sha256-VvKce2uiFzv0TjoJfEX461p9tY9aE237Xr1q/Lw3Utw=";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-03-26 20:47:54 -07:00
|
|
|
in
|
|
|
|
{
|
|
|
|
options = {
|
|
|
|
stitchyconf = {
|
|
|
|
form = lib.mkOption {
|
|
|
|
default = "pc";
|
|
|
|
description = "Add moar packages I don't need";
|
|
|
|
type = lib.types.enum [ "pc" "handheld" "server" ];
|
|
|
|
};
|
|
|
|
artPkgs.enable = lib.mkEnableOption "Standard Linux Creative Suite";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
config = {
|
|
|
|
environment.systemPackages = (lib.attrVals [
|
2024-11-27 02:46:06 -08:00
|
|
|
"black"
|
2024-03-26 20:47:54 -07:00
|
|
|
"btop"
|
2024-12-05 01:57:31 -08:00
|
|
|
"clang-tools"
|
2024-03-26 20:47:54 -07:00
|
|
|
"eza"
|
|
|
|
"fd"
|
2024-11-27 02:46:06 -08:00
|
|
|
"fzf"
|
2024-03-26 20:47:54 -07:00
|
|
|
"git"
|
|
|
|
"glib"
|
|
|
|
"gnumake"
|
|
|
|
"gnupg"
|
2024-11-27 02:46:06 -08:00
|
|
|
"mypy"
|
2024-11-03 04:23:54 -08:00
|
|
|
"neofetch"
|
2024-05-03 02:39:40 -07:00
|
|
|
"p7zip"
|
2024-03-26 20:47:54 -07:00
|
|
|
"pinentry"
|
2024-11-03 04:23:54 -08:00
|
|
|
"typst-lsp"
|
2024-07-30 07:25:55 -07:00
|
|
|
"unzip"
|
2024-11-03 04:23:54 -08:00
|
|
|
"vhdl-ls"
|
2024-12-17 03:01:21 -08:00
|
|
|
"vtsls"
|
2024-03-26 20:47:54 -07:00
|
|
|
"wget"
|
2024-11-03 04:23:54 -08:00
|
|
|
"zip"
|
2024-03-26 20:47:54 -07:00
|
|
|
"zoxide"
|
|
|
|
] pkgs)
|
|
|
|
++ (lib.optionals config.stitchyconf.artPkgs.enable artPkgs)
|
|
|
|
++ (lib.optionals (config.stitchyconf.form == "pc") pcPkgs)
|
|
|
|
++ (lib.optionals (config.stitchyconf.form == "handheld") handheldPkgs)
|
2024-12-10 05:32:56 -08:00
|
|
|
++ (lib.optionals (config.stitchyconf.form == "server") serverPkgs)
|
|
|
|
++ [ pkgs.nodePackages.prettier ];
|
2023-08-05 21:03:24 -07:00
|
|
|
|
2024-03-26 20:47:54 -07:00
|
|
|
# To-do figure out how to section these off
|
|
|
|
programs = {
|
|
|
|
neovim = {
|
|
|
|
enable = true;
|
|
|
|
viAlias = true;
|
|
|
|
vimAlias = true;
|
|
|
|
defaultEditor = true;
|
|
|
|
configure = {
|
|
|
|
customRC = builtins.readFile ../config/nvim/init.vim;
|
|
|
|
packages.myVimPackage = with pkgs.vimPlugins; {
|
|
|
|
start = [
|
2024-11-27 02:46:06 -08:00
|
|
|
conform-nvim
|
2024-11-03 04:23:54 -08:00
|
|
|
bufferline-nvim
|
2024-03-26 20:47:54 -07:00
|
|
|
cmp-nvim-lsp
|
|
|
|
cmp_luasnip
|
2024-11-03 04:23:54 -08:00
|
|
|
gitsigns-nvim
|
|
|
|
indent-blankline-nvim
|
|
|
|
lazy-nvim
|
|
|
|
luasnip
|
2024-11-07 16:07:26 -08:00
|
|
|
mini-nvim
|
2024-11-03 04:23:54 -08:00
|
|
|
neo-tree-nvim
|
|
|
|
nvim-cmp
|
|
|
|
nvim-lspconfig
|
2024-12-09 02:10:05 -08:00
|
|
|
(nvim-treesitter.withPlugins (
|
|
|
|
plugins: with plugins; [
|
2024-12-17 03:01:21 -08:00
|
|
|
glsl
|
|
|
|
javascript
|
2024-12-09 02:10:05 -08:00
|
|
|
markdown
|
|
|
|
]
|
|
|
|
))
|
2024-12-09 05:09:29 -08:00
|
|
|
nvim-web-devicons
|
2024-12-09 02:10:41 -08:00
|
|
|
render-markdown-nvim
|
2024-11-03 04:23:54 -08:00
|
|
|
spaceman-nvim
|
|
|
|
telescope-nvim
|
2024-12-08 01:51:19 -08:00
|
|
|
telescope-undo-nvim
|
2024-11-07 16:07:26 -08:00
|
|
|
toggleterm-nvim
|
2024-03-26 20:47:54 -07:00
|
|
|
tokyonight-nvim
|
|
|
|
typst-vim
|
2024-11-03 04:23:54 -08:00
|
|
|
vim-lsp-cxx-highlight
|
|
|
|
which-key-nvim
|
2024-03-26 20:47:54 -07:00
|
|
|
];
|
|
|
|
};
|
2024-03-15 15:22:20 -07:00
|
|
|
};
|
2024-03-26 20:47:54 -07:00
|
|
|
};
|
|
|
|
nix-ld.enable = true;
|
|
|
|
virt-manager.enable = true;
|
|
|
|
zsh.enable = true;
|
|
|
|
};
|
2024-03-15 15:22:20 -07:00
|
|
|
|
2024-03-26 20:47:54 -07:00
|
|
|
nixpkgs.overlays = [
|
|
|
|
(final: prev: {
|
|
|
|
# Because Luck Smith hasn't released in 2 years
|
|
|
|
mutt-wizard = prev.mutt-wizard.overrideAttrs (old: {
|
|
|
|
src = prev.fetchFromGitHub {
|
|
|
|
owner = "LukeSmithxyz";
|
|
|
|
repo = "mutt-wizard";
|
|
|
|
rev = "a8863a750a360bad6759f5f2c4df5d2001b31e18";
|
|
|
|
hash = "sha256-8zPkzQ1Tt9t8G+uCKybBm4yMqfF2y4L7nmuaWWz9t6s=";
|
|
|
|
};
|
|
|
|
});
|
|
|
|
})
|
|
|
|
];
|
2023-08-05 21:03:24 -07:00
|
|
|
|
2024-03-26 20:47:54 -07:00
|
|
|
fonts.packages = lib.attrVals [
|
|
|
|
"noto-fonts"
|
|
|
|
"noto-fonts-emoji"
|
|
|
|
"liberation_ttf"
|
|
|
|
"ipafont"
|
2024-12-15 17:29:58 -08:00
|
|
|
] pkgs ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
|
2024-07-30 07:25:55 -07:00
|
|
|
|
|
|
|
fonts.fontconfig.defaultFonts = {
|
|
|
|
monospace = [
|
|
|
|
"Noto Sans Mono"
|
|
|
|
"IPAGothic"
|
|
|
|
];
|
|
|
|
sansSerif = [
|
|
|
|
"Noto Sans"
|
|
|
|
"IPAPGothic"
|
|
|
|
];
|
|
|
|
serif = [
|
|
|
|
"Noto Serif"
|
|
|
|
"IPAPMincho"
|
|
|
|
];
|
|
|
|
};
|
2024-03-26 20:47:54 -07:00
|
|
|
};
|
2023-08-05 21:03:24 -07:00
|
|
|
}
|