Compare commits

..

23 Commits

Author SHA1 Message Date
0d151652da Updated dotfiles 2026-01-14 14:24:24 +00:00
6c74c6aac0 Flake bump 2026-01-14 09:40:56 +00:00
f610ea778d Added convenience aliases to justfile 2026-01-14 09:40:21 +00:00
a2306cccd4 Attempted to fix nushell nvim config 2026-01-13 14:02:00 +00:00
717a6ee2f4 Changed default justfile command 2026-01-13 13:31:26 +00:00
7c8d91d0bf Flake bump 2026-01-13 13:28:26 +00:00
7074d8f426 Improved justfile 2026-01-13 13:28:15 +00:00
0c22cb09ff Tweaked shell integrations 2026-01-13 12:55:27 +00:00
8126c81e97 Tweaked nushell config to allow my dotfiles to co-exist with HM settings 2026-01-13 12:32:27 +00:00
4b56d75dd6 Moved uv from python install to nixpkgs 2026-01-12 17:02:21 +00:00
375e0882fe Fixed mistake in nvim config file filter 2026-01-12 11:54:08 +00:00
5db7b3c3ea Dotfiles update 2026-01-12 11:53:55 +00:00
9fdf746aff Flake bump 2026-01-12 11:44:17 +00:00
92e51c4ec0 Flake bump 2026-01-08 15:14:09 +00:00
4b6c081bdd Changed greeter from gdk to regreet 2026-01-08 15:13:55 +00:00
0c7a0e0414 Enabled guix 2026-01-06 09:53:36 +00:00
c3ba099953 nvim bump 2025-12-22 17:30:38 +00:00
94f550cc9d Version bump 2025-12-22 17:19:48 +00:00
1c71c860c6 Version bumps 2025-12-22 17:14:17 +00:00
6f8e075aac Submodule pulls 2025-12-22 16:14:52 +00:00
59b814dcbd Fixed path filters for neovim config 2025-12-22 15:55:03 +00:00
0a994a3013 Updated neovim config and added filters to remove devtools 2025-12-22 15:31:46 +00:00
8ecc67c56e Flake bump 2025-12-19 12:19:56 +00:00
15 changed files with 347 additions and 138 deletions

42
flake.lock generated
View File

@@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1765384171,
"narHash": "sha256-FuFtkJrW1Z7u+3lhzPRau69E0CNjADku1mLQQflUORo=",
"lastModified": 1767910483,
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "44777152652bc9eacf8876976fa72cc77ca8b9d8",
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
"type": "github"
},
"original": {
@@ -29,11 +29,11 @@
]
},
"locked": {
"lastModified": 1762964643,
"narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
"lastModified": 1767104570,
"narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "827f2a23373a774a8805f84ca5344654c31f354b",
"rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf",
"type": "github"
},
"original": {
@@ -78,11 +78,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1765186076,
"narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=",
"lastModified": 1768127708,
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8",
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
"type": "github"
},
"original": {
@@ -94,11 +94,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1765311797,
"narHash": "sha256-mSD5Ob7a+T2RNjvPvOA1dkJHGVrNVl8ZOrAwBjKBDQo=",
"lastModified": 1768242861,
"narHash": "sha256-F4IIxa5xDHjtrmMcayM8lHctUq1oGltfBQu2+oqDWP4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "09eb77e94fa25202af8f3e81ddc7353d9970ac1b",
"rev": "1327e798cb055f96f92685df444e9a2c326ab5ed",
"type": "github"
},
"original": {
@@ -110,11 +110,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1764947035,
"narHash": "sha256-EYHSjVM4Ox4lvCXUMiKKs2vETUSL5mx+J2FfutM7T9w=",
"lastModified": 1768032153,
"narHash": "sha256-6kD1MdY9fsE6FgSwdnx29hdH2UcBKs3/+JJleMShuJg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a672be65651c80d3f592a89b3945466584a22069",
"rev": "3146c6aa9995e7351a398e17470e15305e6e18ff",
"type": "github"
},
"original": {
@@ -139,11 +139,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1765553226,
"narHash": "sha256-Ii16Nq5jL2wURXpV3D3tOM3vPpbKh18roHLkyZCHK4Q=",
"lastModified": 1768271704,
"narHash": "sha256-jJqlW8A3OZ5tYbXphF7U8P8g/3Cn8PPwPa4YlJ/9agg=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "496a6f625f63b780ce849891868f2fad22fd49c6",
"rev": "691b8b6713855d0fe463993867291c158472fc6f",
"type": "github"
},
"original": {
@@ -160,11 +160,11 @@
]
},
"locked": {
"lastModified": 1765578056,
"narHash": "sha256-sE/iRR3LxCWZYOyIxC25Y7O7vUg/uCQZxePWiFr2JY0=",
"lastModified": 1768329214,
"narHash": "sha256-ASI9j+Fgj7TzB4mj+IBIBrV5mH9P/D/vjKLyVDZWZOw=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "a2495cfc0e8e0b1d7d6cece49d88b6dbe1ef997d",
"rev": "2357b84ef617772c012397a7e8b4542bd5e4bab8",
"type": "github"
},
"original": {

View File

@@ -28,19 +28,53 @@
...
} @ inputs: let
inherit (self) outputs;
worklaptopTheme = pkgs: {
theme = {
name = "Tokyonight-Dark";
package = pkgs.tokyonight-gtk-theme;
};
iconTheme = {
name = "Tokyonight-Light";
package = pkgs.tokyonight-gtk-theme;
};
cursorTheme = {
name = "phinger-cursors-dark";
package = pkgs.phinger-cursors;
};
fonts = {
serif = "NotoSerifNerdFont";
sansSerif = "NotoSansNerdFont";
monospace = "MonaspiceArNerdFontMono";
};
wallpaperSource = "/home/cianh/Pictures/Wallpapers/City_1_Upscaled.png";
wallpaper = "/var/lib/AccountsService/wallpaper/cianh";
avatarSource = "/home/cianh/Pictures/face.png";
avatar = "/var/lib/AccountsService/icons/cianh";
};
in {
# NixOS configuration entrypoint
# Available through 'nixos-rebuild --flake .#your-hostname'
nixosConfigurations = {
worklaptop = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs;
unstablePkgs = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux;
worklaptop = let
pkgs = import nixpkgs {
system = "x86_64-linux";
config = {
allowUnfree = true;
cudaSupport = true;
allowUnfreePredicate = _: true;
};
};
in
nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs;
unstablePkgs = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux;
theme = worklaptopTheme pkgs;
};
modules = [
./nixos/worklaptop.nix
];
};
modules = [
./nixos/worklaptop.nix
];
};
homeserver = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs;
@@ -80,33 +114,36 @@
./home-manager/core.nix
];
};
"cianh@worklaptop" = home-manager.lib.homeManagerConfiguration {
"cianh@worklaptop" = let
pkgs = import nixpkgs {
# Home-manager requires 'pkgs' instance
system = "x86_64-linux";
config = {
allowUnfree = true;
cudaSupport = true;
# Workaround for https://github.com/nix-community/home-manager/issues/2942
allowUnfreePredicate = _: true;
};
};
extraSpecialArgs = {
inherit inputs outputs;
unstablePkgs = import nixpkgs-unstable {
# We also need to do the same for unstable
system = "x86_64-linux";
cudaSupport = true;
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
in
home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs outputs;
unstablePkgs = import nixpkgs-unstable {
system = "x86_64-linux";
cudaSupport = true;
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
};
theme = worklaptopTheme pkgs;
};
modules = [
./home-manager/worklaptop.nix
];
};
modules = [
./home-manager/worklaptop.nix
];
};
"cianh@homeserver" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
# Home-manager requires 'pkgs' instance

View File

@@ -13,11 +13,23 @@
};
"nushell" = {
source = ./dotfiles/dot_config/nushell;
target = ".config/nushell";
target = ".config/nushell/my_config";
recursive = true;
};
"nvim" = {
source = ./dotfiles/dot_config/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;
};
@@ -57,12 +69,15 @@
"kitty".source = ./dotfiles/dot_config/kitty;
"ghostty".source = ./dotfiles/dot_config/ghostty;
"micro".source = ./dotfiles/dot_config/micro;
"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;
"waybar".source = ./dotfiles/dot_config/waybar;
"euporie".source = ./dotfiles/dot_config/euporie;
# "euporie".source = ./dotfiles/dot_config/euporie;
"bottom".source = ./dotfiles/dot_config/bottom;
"swaync".source = ./dotfiles/dot_config/swaync;
"zellij".source = ./dotfiles/dot_config/zellij;

View File

@@ -12,6 +12,33 @@
];
programs = {
home-manager.enable = true;
nushell = let
pkgStream = unstablePkgs;
in {
enable = true;
package = pkgStream.nushell;
plugins = with pkgStream.nushellPlugins; [
formats
gstat
polars
query
];
extraConfig = ''
source ~/.config/nushell/my_config/config.nu
'';
extraEnv = ''
source ~/.config/nushell/my_config/env.nu
'';
};
git.enable = true;
zoxide = {
enable = true;
enableNushellIntegration = true;
};
lazygit = {
enable = true;
package = unstablePkgs.lazygit;
enableNushellIntegration = true;
};
};
}

View File

@@ -10,5 +10,6 @@
home = {
username = "cianh";
homeDirectory = "/home/cianh";
shell.enableNushellIntegration = true;
};
}

View File

@@ -22,7 +22,6 @@
python-pkgs: [
python-pkgs.pkginfo
python-pkgs.setuptools
python-pkgs.uv
]
);
in {
@@ -53,6 +52,7 @@ in {
python
pkgs.smile
pkgs.sshs
unstablePkgs.uv
pkgs.vial
vivaldi-wayland
pkgs.vivaldi-ffmpeg-codecs

View File

@@ -12,6 +12,10 @@
enable = true;
enableNushellIntegration = true;
};
direnv = {
enable = true;
enableNushellIntegration = true;
};
waybar = {
enable = true;
systemd.enable = true;

View File

@@ -5,22 +5,23 @@
config,
pkgs,
unstablePkgs,
theme,
...
}: {
# GTK theming
gtk = {
enable = true;
iconTheme = {
name = "Tokyonight-Light";
package = pkgs.tokyonight-gtk-theme;
name = theme.iconTheme.name;
package = theme.iconTheme.package;
};
theme = {
name = "Tokyonight-Dark";
package = pkgs.tokyonight-gtk-theme;
name = theme.theme.name;
package = theme.theme.package;
};
cursorTheme = {
name = "phinger-cursors-dark";
package = pkgs.phinger-cursors;
name = theme.cursorTheme.name;
package = theme.cursorTheme.package;
};
gtk2.extraConfig = ''
gtk-theme-name="Tokyonight-Dark"
@@ -42,9 +43,9 @@
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
gtk-theme = "Tokyonight-Dark";
icon-theme = "Tokyonight-Light";
cursor-theme = "phinger-cursors-dark";
gtk-theme = theme.theme.name;
icon-theme = theme.iconTheme.name;
cursor-theme = theme.cursorTheme.name;
};
};
}

View File

@@ -1,11 +1,29 @@
default:
@just --list
set shell := ["bash", "-c"]
prebuild:
git := "true"
flake := "true"
flatpak := "true"
default:
@just --choose
_git-sync:
git pull --recurse
git submodule update --remote --recursive
_flake-update:
nix flake update
prebuild:
@if [ "{{git}}" == "true" ]; then \
echo ">> Syncing Git..."; \
just _git-sync; \
fi
@if [ "{{flake}}" == "true" ]; then \
echo ">> Updating Flake..."; \
just _flake-update; \
fi
_update-root:
if `/usr/bin/env grep -Rq "nixos" /etc/*-release`; then \
sudo nixos-rebuild switch --flake .?submodules=1#$HOSTNAME; \
@@ -24,8 +42,62 @@ _update-home:
update-home: prebuild _update-home
update: prebuild _update-root _update-home
quick-update-root:
just git=false flake=false update-root
cleanup:
quick-update-home:
just git=false flake=false update-home
quick-update:
just git=false flake=false update
nogit-update-root:
just git=false update-root
nogit-update-home:
just git=false update-home
nogit-update:
just git=false update
noflake-update-root:
just flake=false update-root
noflake-update-home:
just flake=false update-home
noflake-update:
just flake=false update
update-flatpaks:
@if [ "{{flatpak}}" == "true" ] && command -v flatpak &> /dev/null; then \
echo ">> Updating Flatpaks..."; \
flatpak update -y; \
flatpak uninstall --unused -y; \
else \
echo ">> Flatpak not found or disabled. Skipping."; \
fi
history:
@echo ">> System Generations:"
@nix-env -p /nix/var/nix/profiles/system --list-generations | tail -n 5
@echo "\n>> Home Manager Generations:"
@home-manager generations | head -n 5
repl:
nix repl --file flake.nix
update: prebuild _update-root _update-home update-flatpaks
cleanup days="":
@if [ -n "{{days}}" ]; then \
echo ">> Deleting system generations older than {{days}}..."; \
sudo nix-collect-garbage --delete-older-than {{days}}; \
fi
@echo ">> Cleaning Nix Store..."
nix-store --gc
nix-store --optimise
@if command -v flatpak &> /dev/null; then \
echo ">> Cleaning unused Flatpaks..."; \
flatpak uninstall --unused -y; \
fi

View File

@@ -141,5 +141,5 @@
};
# Set user config settings
users.defaultUserShell = pkgs.nushell;
users.defaultUserShell = unstablePkgs.nushell;
}

View File

@@ -9,7 +9,7 @@
environment.systemPackages = [
pkgs.cargo
pkgs.flatpak
pkgs.gdm
pkgs.greetd
pkgs.grim
pkgs.grub2_efi
pkgs.nix-ld
@@ -20,6 +20,7 @@
pkgs.qmk
pkgs.qmk-udev-rules
pkgs.qmk_hid
pkgs.regreet
pkgs.seahorse
pkgs.wayland
pkgs.wayland-utils

View File

@@ -4,66 +4,101 @@
config,
pkgs,
unstablePkgs,
theme,
...
}: {
}: let
username = "cianh";
in {
# Activate DEs
programs.uwsm.enable = true;
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
programs = {
uwsm.enable = true;
regreet = {
enable = true;
theme = {
name = theme.theme.name;
package = theme.theme.package;
};
cursorTheme = {
name = theme.cursorTheme.name;
package = theme.cursorTheme.package;
};
iconTheme.name = "Adwaita";
# iconTheme = {
# name = theme.iconTheme.name;
# package = theme.iconTheme.package;
# };
font = {
name = "Noto Sans";
size = 16;
package = pkgs.noto-fonts;
};
settings = {
GTK.application_prefer_dark_theme = true;
appearance.greeting_msg = "Hello ${username}, welcome back to '${config.networking.hostName}'!";
background.path = theme.wallpaper;
};
};
hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
};
# Enable my preferred DE utilities
thunar = {
enable = true;
plugins = [
pkgs.xfce.thunar-volman
pkgs.xfce.thunar-archive-plugin
pkgs.xfce.thunar-media-tags-plugin
];
};
xfconf.enable = true;
# Disable automatically activated programs i dont want
foot.enable = false;
# Lets also activate some handy devenv tools
direnv = {
enable = true;
nix-direnv.enable = true;
};
nix-ld = {
enable = true;
libraries = [
pkgs.acl
pkgs.alsa-lib
pkgs.at-spi2-core
pkgs.attr
pkgs.bzip2
pkgs.curl
pkgs.dbus
pkgs.eget
pkgs.expat
pkgs.glib
pkgs.libsodium
pkgs.libssh
pkgs.libxml2
pkgs.nspr
pkgs.nss
pkgs.openssl
pkgs.pango
pkgs.stdenv.cc
pkgs.systemd
pkgs.util-linux
pkgs.vulkan-loader
pkgs.xz
pkgs.zlib
pkgs.zstd
];
};
seahorse.enable = true; # enable the graphical frontend
gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-gnome3;
enableSSHSupport = true;
};
virt-manager.enable = true;
};
# Enable my preferred DE utilities
programs.thunar.enable = true;
programs.thunar.plugins = [
pkgs.xfce.thunar-volman
pkgs.xfce.thunar-archive-plugin
pkgs.xfce.thunar-media-tags-plugin
];
programs.xfconf.enable = true;
# Disable automatically activated programs i dont want
programs.foot.enable = false;
# Lets also activate some handy devenv tools
programs.direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
programs.nix-ld = {
enable = true;
libraries = [
pkgs.acl
pkgs.alsa-lib
pkgs.at-spi2-core
pkgs.attr
pkgs.bzip2
pkgs.curl
pkgs.dbus
pkgs.eget
pkgs.expat
pkgs.glib
pkgs.libsodium
pkgs.libssh
pkgs.libxml2
pkgs.nspr
pkgs.nss
pkgs.openssl
pkgs.pango
pkgs.stdenv.cc
pkgs.systemd
pkgs.util-linux
pkgs.vulkan-loader
pkgs.xz
pkgs.zlib
pkgs.zstd
];
};
programs.seahorse.enable = true; # enable the graphical frontend
programs.gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-gnome3;
enableSSHSupport = true;
};
programs.virt-manager.enable = true;
}

View File

@@ -4,12 +4,14 @@
config,
pkgs,
unstablePkgs,
theme,
...
}: {
services = {
displayManager.defaultSession = "hyprland-uwsm";
desktopManager.gnome.enable = false;
displayManager.gdm.enable = true;
displayManager.gdm.enable = false;
greetd.enable = true;
xserver = {
videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc.
enable = true;
@@ -32,6 +34,9 @@
# Enable flatpaks
flatpak.enable = true;
# Add guix, as it is a common tool for reproducibility in comp sci
guix.enable = true;
# Enable the OpenSSH daemon and other remote tools.
openssh.enable = true;
@@ -41,21 +46,31 @@
# Add custom services
systemd.services = {
setup-user-icon = {
description = "Set user profile icon";
wantedBy = ["multi-user.target"];
greetd = {
after = ["setup-user-vars.service"];
requires = ["setup-user-vars.service"];
};
setup-user-vars = {
description = "Set user profile vars";
wantedBy = [
"multi-user.target"
"graphical-session.target"
];
after = ["home.mount"];
serviceConfig = {
Type = "oneshot";
ExecStart = ''
${pkgs.bash}/bin/bash -c " \
mkdir -p /var/lib/AccountsService/{icons,users} && \
cp /home/cianh/Pictures/face.png /var/lib/AccountsService/icons/cianh && \
echo '[User]\nSession=\nIcon=/var/lib/AccountsService/icons/cianh\nSystemAccount=false' > /var/lib/AccountsService/users/cianh && \
mkdir -p /var/lib/AccountsService/{icons,users,wallpaper} && \
cp ${theme.avatarSource} ${theme.avatar} && \
echo '[User]\nSession=\nIcon=${theme.avatar}\nSystemAccount=false' > /var/lib/AccountsService/users/cianh && \
chown root:root /var/lib/AccountsService/users/cianh && \
chmod 0600 /var/lib/AccountsService/users/cianh && \
chown root:root /var/lib/AccountsService/icons/cianh && \
chmod 0444 /var/lib/AccountsService/icons/cianh \
chown root:root ${theme.avatar} && \
chmod 0444 ${theme.avatar} && \
cp ${theme.wallpaperSource} ${theme.wallpaper} && \
chown root:root ${theme.wallpaper} && \
chmod 0444 ${theme.wallpaper} \
"
'';
};

View File

@@ -3,10 +3,11 @@
lib,
pkgs,
modulesPath,
theme,
...
}: {
# GTK theming
environment.sessionVariables.GTK_THEME = "Tokyonight-Dark";
environment.sessionVariables.GTK_THEME = theme.theme.name;
# Delegate QT theming to kvantum
environment.sessionVariables.QT_STYLE_OVERRIDE = "kvantum";
@@ -18,9 +19,9 @@
fontconfig = {
defaultFonts = {
serif = ["NotoSerifNerdFont"];
sansSerif = ["NotoSansNerdFont"];
monospace = ["MonaspiceArNerdFontMono"];
serif = [theme.fonts.serif];
sansSerif = [theme.fonts.sansSerif];
monospace = [theme.fonts.monospace];
};
};