Files
My_NixOS_Config/home-manager/core/dotfiles.nix
T

139 lines
4.5 KiB
Nix

{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: let
noctaliaPlugins = [
"keybind-cheatsheet"
"privacy-indicator"
"screen-toolkit"
];
makeNoctaliaEntries = plugin: let
pluginSource = ./dotfiles/dot_config/noctalia/plugins-repo + "/${plugin}";
in {
name = "noctalia-plugin-${plugin}";
value = {
source = pluginSource;
target = ".config/noctalia/plugins/${plugin}";
recursive = true;
};
};
noctaliaPluginFiles = builtins.listToAttrs (map makeNoctaliaEntries noctaliaPlugins);
in {
home.file =
{
".bashrc".source = ./dotfiles/dot_bashrc;
".zshrc".source = ./dotfiles/dot_zshrc;
"nushell" = {
source = ./dotfiles/dot_config/nushell;
target = ".config/nushell/my_config";
recursive = true;
};
"fish" = {
source = ./dotfiles/dot_config/fish;
target = ".config/fish";
recursive = true;
};
"nvim" = {
source = lib.cleanSourceWith {
src = ./dotfiles/dot_config/nvim;
filter = name: type: let
baseName = baseNameOf name;
in
! (
(lib.hasPrefix "*/nvim/*" name)
|| (lib.hasPrefix "." baseName)
|| (lib.hasPrefix "devenv" baseName)
|| (lib.hasSuffix ".toml" baseName)
|| (lib.hasSuffix ".yml" baseName)
);
};
target = ".config/nvim";
recursive = true;
};
"noctalia" = {
source = lib.cleanSourceWith {
src = ./dotfiles/dot_config/noctalia;
filter = name: type: let
baseName = baseNameOf name;
in
! (
(lib.hasInfix "/plugins/" name)
|| (lib.hasInfix "/plugins-repo/" name)
# || (lib.hasInfix "/plugins-settings/" name)
);
};
target = ".config/noctalia";
recursive = true;
};
"noctalia-cli" = {
source = ./dotfiles/dot_local/bin/executable_noctalia-cli;
target = ".local/bin/noctalia-cli";
executable = true;
};
"pypoetry" = {
source = ./dotfiles/dot_config/pypoetry;
target = ".config/pypoetry";
recursive = true;
};
"Thunar" = {
source = ./dotfiles/dot_config/Thunar;
target = ".config/Thunar";
};
"rye" = {
source = ./dotfiles/dot_config/.rye;
target = ".config/.rye";
recursive = true;
};
}
// noctaliaPluginFiles;
# Move across noctalia plugin settings as a writable overlay
home.activation.overlayNoctaliaSettings = lib.hm.dag.entryAfter ["writeBoundary"] ''
mkdir -p "$HOME/.config/noctalia/plugins"
cp -rL --no-preserve=mode "$HOME/.config/noctalia/plugins-settings/"* "$HOME/.config/noctalia/plugins/"
'';
xdg.configFile = {
"bat".source = ./dotfiles/dot_config/bat;
"path.env".source = ./dotfiles/dot_config/path.env;
"fastfetch".source = ./dotfiles/dot_config/fastfetch;
"helix".source = ./dotfiles/dot_config/helix;
"home-manager".source = ./dotfiles/dot_config/home-manager;
"hypr".source = ./dotfiles/dot_config/hypr;
"just".source = ./dotfiles/dot_config/just;
"kitty".source = ./dotfiles/dot_config/kitty;
"ghostty".source = ./dotfiles/dot_config/ghostty;
"micro".source = ./dotfiles/dot_config/micro;
"niri".source = ./dotfiles/dot_config/niri;
"nushell/lsp.nu".text = ''
source ~/.config/nushell/my_config/lsp.nu
'';
"neovide".source = ./dotfiles/dot_config/neovide;
"glow".source = ./dotfiles/dot_config/glow;
"glamour".source = ./dotfiles/dot_config/glamour;
"starship.toml".source = ./dotfiles/dot_config/starship.toml;
"elephant/websearch.toml".source = ./dotfiles/dot_config/elephant/websearch.toml;
"walker".source = ./dotfiles/dot_config/walker;
"waybar".source = ./dotfiles/dot_config/waybar;
# "euporie".source = ./dotfiles/dot_config/euporie;
"bottom".source = ./dotfiles/dot_config/bottom;
"swaync".source = ./dotfiles/dot_config/swaync;
"zellij".source = ./dotfiles/dot_config/zellij;
"git".source = ./dotfiles/dot_config/git;
"lazygit".source = ./dotfiles/dot_config/lazygit;
"wezterm".source = ./dotfiles/dot_config/wezterm;
"alacritty".source = ./dotfiles/dot_config/alacritty;
"hg".source = ./dotfiles/dot_config/hg;
"stylua.toml".source = ./dotfiles/dot_config/stylua.toml;
"electron-flags.conf".source = ./dotfiles/dot_config/electron-flags.conf;
"foot".source = ./dotfiles/dot_config/foot;
};
}