Fresh start to clean history after subtree experiments

This commit is contained in:
2025-01-22 12:46:17 +00:00
commit b2b1672997
31 changed files with 1685 additions and 0 deletions

27
home-manager/core.nix Normal file
View File

@@ -0,0 +1,27 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
imports = [
./core/dotfiles.nix
./core/user.nix
./core/packages.nix
./core/programs.nix
inputs.hyprcursor-phinger.homeManagerModules.hyprcursor-phinger
];
nix = {
package = pkgs.nix;
settings.experimental-features = ["nix-command" "flakes"];
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "23.11";
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
}

View File

@@ -0,0 +1,85 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: let
monaspaceFont = pkgs.callPackage ../../modules/monaspice_font.nix {};
in {
home.file = {
".bashrc" = lib.mkIf (!config.programs.bash.enable) {
source = ./dotfiles/dot_bashrc;
};
"monaspice" = {
source = "${monaspaceFont}/share/fonts/";
target = ".local/share/fonts/";
recursive = true;
};
"nushell" = {
source = ./dotfiles/dot_config/nushell;
target = ".config/nushell";
recursive = true;
};
"nvim" = {
source = ./dotfiles/dot_config/nvim;
target = ".config/nvim";
recursive = 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;
};
};
xdg.configFile = {
"bat".source = ./dotfiles/dot_config/bat;
"fastfetch".source = ./dotfiles/dot_config/fastfetch;
"helix".source = ./dotfiles/dot_config/helix;
"hypr" = {
source = ./dotfiles/dot_config/hypr;
recursive = true;
# Here, we use OnChange, because we don't want the config to be mutable but we do want it to
# manage modifiable state at runtime
onChange = ''
rm -f ${config.xdg.configHome}/hypr/inputs.conf
cp ${config.xdg.configHome}/hypr/HomeManagerInit_inputs.conf ${config.xdg.configHome}/hypr/inputs.conf
chmod u+w ${config.xdg.configHome}/hypr/inputs.conf
'';
};
"just".source = ./dotfiles/dot_config/just;
"kitty".source = ./dotfiles/dot_config/kitty;
"ghostty".source = ./dotfiles/dot_config/ghostty;
"micro".source = ./dotfiles/dot_config/micro;
"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;
"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;
"yazi".source = ./dotfiles/dot_config/yazi;
"stylua.toml".source = ./dotfiles/dot_config/stylua.toml;
"electron-flags.conf".source = ./dotfiles/dot_config/electron-flags.conf;
"Kvantum".source = ./dotfiles/dot_config/Kvantum;
};
}

View File

@@ -0,0 +1,30 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: let
monaspaceFont = pkgs.callPackage ../../modules/monaspice_font.nix {};
in {
home.packages =
(with pkgs; [
alejandra
git-extras
git-credential-manager
meld
unzip
])
++ (with unstablePkgs; [
devenv
lazygit
kitty-img
kitty-themes
nixd
])
++ [
monaspaceFont
];
}

View File

@@ -0,0 +1,14 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
programs = {
home-manager.enable = true;
git.enable = true;
};
}

View File

@@ -0,0 +1,14 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
home = {
username = "cianh";
homeDirectory = "/home/cianh";
};
}

View File

@@ -0,0 +1,16 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
imports = [
./core.nix
./homeserver/packages.nix
./homeserver/programs.nix
./homeserver/containers.nix
];
}

View File

@@ -0,0 +1,58 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
services.podman = {
enable = true;
enableTypeChecks = true;
autoUpdate.enable = true;
containers = {
grafana = {
image = "docker.io/grafana/grafana:latest";
autoUpdate = "registry";
ports = ["3000:3000"];
};
plex = {
image = "docker.io/plexinc/pms-docker:latest";
autoUpdate = "registry";
ports = [
"32400:32400/tcp"
"3005:3005/tcp"
"8324:8324/tcp"
"32469:32469/tcp"
"1900:1900/udp"
"32410:32410/udp"
"32412:32412/udp"
"32413:32413/udp"
"32414:32414/udp"
];
environment = {
TZ = "Europe/Dublin";
ADVERTISE_IP = "http://192.168.0.253:32400/";
VERSION = "docker";
};
volumes = [
"/home/cianh/TV_Archive/data:/data"
"/home/cianh/TV_Archive/config:/config"
"/home/cianh/TV_Archive/transcode:/transcode"
];
};
jellyfin = {
image = "docker.io/jellyfin/jellyfin:latest";
autoUpdate = "registry";
ports = ["8096:8096/tcp"];
volumes = [
"/home/cianh/TV_Archive/data:/media:Z"
"/home/cianh/TV_Archive/jf_config:/config:Z"
"/home/cianh/TV_Archive/jf_cache:/cache:Z"
];
userNS = "keep-id";
};
};
};
}

View File

@@ -0,0 +1,29 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
home.packages =
(with pkgs; [
(python3.withPackages (
python-pkgs: [
python-pkgs.pip
python-pkgs.pkginfo
python-pkgs.python-lsp-server
python-pkgs.setuptools
]
))
lua54Packages.lua
luajitPackages.luarocks
nodejs-slim
stylua
])
++ (with unstablePkgs; [
podman-tui
vimPlugins.mason-lspconfig-nvim
]);
}

View File

@@ -0,0 +1,13 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
programs = {
bash.enable = true;
};
}

View File

@@ -0,0 +1,18 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
imports = [
./core.nix
./worklaptop/packages.nix
./worklaptop/services.nix
./worklaptop/programs.nix
./worklaptop/defaultapps.nix
./worklaptop/theming.nix
];
}

View File

@@ -0,0 +1,19 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
xdg.mimeApps.defaultApplications = {
"inode/directory" = "thunar.desktop";
"application/zip" = "xarchiver.desktop";
"text/html" = "zen.desktop";
"x-scheme-handler/http" = "zen.desktop";
"x-scheme-handler/https" = "zen.desktop";
"x-scheme-handler/about" = "zen.desktop";
"x-scheme-handler/unknown" = "zen.desktop";
};
}

View File

@@ -0,0 +1,86 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
home.packages =
(with pkgs; [
bitwarden
blueman
distrobox
ferdium
gimp-with-plugins
github-desktop
helix
hyperfine
imagemagick
inkscape-with-extensions
krita
lynx
neovide
nwg-look
obs-studio
pandoc
pavucontrol
podman-desktop
podman-tui
qimgv
slack
smile
spotify
vial
warpinator
zathura
zettlr
# theming
gtk-engine-murrine
gtk_engines
phinger-cursors
tokyonight-gtk-theme
# Python packages
(python3.withPackages (
python-pkgs: [
python-pkgs.pip
python-pkgs.pkginfo
python-pkgs.python-lsp-server
python-pkgs.setuptools
]
))
# Backend dev tools
go
lua54Packages.lua
luajitPackages.luarocks
mypy
php83
poetry
poetryPlugins.poetry-plugin-up
poetryPlugins.poetry-plugin-export
poetryPlugins.poetry-audit-plugin
pre-commit
rustup
steam-run
stylua
tree-sitter
xarchiver
# Language Server Protocols
elixir-ls
fortls
nodePackages_latest.bash-language-server
lua-language-server
taplo
yaml-language-server
])
++ (with unstablePkgs; [
vimPlugins.mason-lspconfig-nvim
obsidian
zed-editor
zotero
])
++ [
inputs.zen-browser.packages.x86_64-linux.default
];
}

View File

@@ -0,0 +1,13 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
programs = {
hyprcursor-phinger.enable = true;
};
}

View File

@@ -0,0 +1,11 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
services.swaync.enable = true;
}

View File

@@ -0,0 +1,50 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
# GTK theming
gtk = {
enable = true;
iconTheme = {
name = "Tokyonight-Light";
package = pkgs.tokyonight-gtk-theme;
};
theme = {
name = "Tokyonight-Dark";
package = pkgs.tokyonight-gtk-theme;
};
cursorTheme = {
name = "phinger-cursors-dark";
package = pkgs.phinger-cursors;
};
gtk2.extraConfig = ''
gtk-theme-name="Tokyonight-Dark"
gtk-icon-theme-name="Tokyonight-Light"
gtk-cursor-theme-name="phinger-cursors-dark"
'';
gtk3.extraConfig = {
Settings = ''
gtk-application-prefer-dark-theme=1
'';
};
gtk4.extraConfig = {
Settings = ''
gtk-application-prefer-dark-theme=1
'';
};
};
# dconf theming settings
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
gtk-theme = "Tokyonight-Dark";
icon-theme = "Tokyonight-Light";
cursor-theme = "phinger-cursors-dark";
};
};
}