mirror of
https://github.com/Cian-H/My_NixOS_Config.git
synced 2025-12-22 23:11:57 +00:00
Fresh start to clean history after subtree experiments
This commit is contained in:
27
home-manager/core.nix
Normal file
27
home-manager/core.nix
Normal 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";
|
||||
}
|
||||
1
home-manager/core/dotfiles
Submodule
1
home-manager/core/dotfiles
Submodule
Submodule home-manager/core/dotfiles added at ea6fde9eb1
85
home-manager/core/dotfiles.nix
Normal file
85
home-manager/core/dotfiles.nix
Normal 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;
|
||||
};
|
||||
}
|
||||
30
home-manager/core/packages.nix
Normal file
30
home-manager/core/packages.nix
Normal 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
|
||||
];
|
||||
}
|
||||
14
home-manager/core/programs.nix
Normal file
14
home-manager/core/programs.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
unstablePkgs,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
git.enable = true;
|
||||
};
|
||||
}
|
||||
14
home-manager/core/user.nix
Normal file
14
home-manager/core/user.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
unstablePkgs,
|
||||
...
|
||||
}: {
|
||||
home = {
|
||||
username = "cianh";
|
||||
homeDirectory = "/home/cianh";
|
||||
};
|
||||
}
|
||||
16
home-manager/homeserver.nix
Normal file
16
home-manager/homeserver.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
unstablePkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./core.nix
|
||||
./homeserver/packages.nix
|
||||
./homeserver/programs.nix
|
||||
./homeserver/containers.nix
|
||||
];
|
||||
}
|
||||
58
home-manager/homeserver/containers.nix
Normal file
58
home-manager/homeserver/containers.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
29
home-manager/homeserver/packages.nix
Normal file
29
home-manager/homeserver/packages.nix
Normal 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
|
||||
]);
|
||||
}
|
||||
13
home-manager/homeserver/programs.nix
Normal file
13
home-manager/homeserver/programs.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
unstablePkgs,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
bash.enable = true;
|
||||
};
|
||||
}
|
||||
18
home-manager/worklaptop.nix
Normal file
18
home-manager/worklaptop.nix
Normal 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
|
||||
];
|
||||
}
|
||||
19
home-manager/worklaptop/defaultapps.nix
Normal file
19
home-manager/worklaptop/defaultapps.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
86
home-manager/worklaptop/packages.nix
Normal file
86
home-manager/worklaptop/packages.nix
Normal 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
|
||||
];
|
||||
}
|
||||
13
home-manager/worklaptop/programs.nix
Normal file
13
home-manager/worklaptop/programs.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
unstablePkgs,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
hyprcursor-phinger.enable = true;
|
||||
};
|
||||
}
|
||||
11
home-manager/worklaptop/services.nix
Normal file
11
home-manager/worklaptop/services.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
unstablePkgs,
|
||||
...
|
||||
}: {
|
||||
services.swaync.enable = true;
|
||||
}
|
||||
50
home-manager/worklaptop/theming.nix
Normal file
50
home-manager/worklaptop/theming.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user