Compare commits

..

43 Commits

Author SHA1 Message Date
954652802d Update dotfiles 2026-01-16 11:58:37 +00:00
3cbadd49ef Added missing icon themes 2026-01-16 11:57:39 +00:00
7add6b42cb Added video player to worklaptop config 2026-01-16 11:48:35 +00:00
fc6dc5fcc4 Fixed hyprland startup warning issue 2026-01-15 11:26:29 +00:00
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
dfa280fffd Partial fix of metrics container 2025-12-16 14:47:58 +00:00
338337b880 Enabled goaccess for metrics and removed grafana/prometheus 2025-12-15 23:37:15 +00:00
c24b894ccc dotfiles updates 2025-12-13 02:30:59 +00:00
e591a1edcb Version bumps 2025-12-13 02:08:43 +00:00
4c58524477 Added go and nodejs for lsp management 2025-12-11 13:20:58 +00:00
fe046cdb52 Reverted python change on homeserver and added python to worklaptop 2025-12-11 13:10:19 +00:00
77ad9d9147 Flake bump 2025-12-11 10:48:14 +00:00
8ab6f627f0 Updated python config 2025-12-11 10:48:09 +00:00
6929b99a34 Updated server config 2025-12-02 16:34:54 +00:00
5883819835 Added gitea 2025-12-01 01:17:24 +00:00
e701ecbb8f Fix for renamed components 2025-12-01 01:08:47 +00:00
59900b7c16 Flake bump 2025-12-01 00:22:34 +00:00
f63bef7167 NixOS version bump. 2025-12-01 00:13:35 +00:00
9fd4c93179 Flake bump 2025-11-11 10:44:19 +00:00
19a133aba3 Fixed portals 2025-11-11 10:43:53 +00:00
45954a68a5 Updated portals 2025-11-11 09:40:01 +00:00
25 changed files with 420 additions and 215 deletions

58
flake.lock generated
View File

@@ -7,16 +7,16 @@
]
},
"locked": {
"lastModified": 1758463745,
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"lastModified": 1767910483,
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"ref": "release-25.11",
"repo": "home-manager",
"type": "github"
}
@@ -29,11 +29,11 @@
]
},
"locked": {
"lastModified": 1762351818,
"narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=",
"lastModified": 1767104570,
"narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea",
"rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf",
"type": "github"
},
"original": {
@@ -47,11 +47,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1733645462,
"narHash": "sha256-6ktkUyK1CAuAXRZLNcAvR7o9lduC/EX98wZaapi4Q5M=",
"lastModified": 1763845612,
"narHash": "sha256-78zH5GrYa35bEkzeVnl8uXFbZ/zsiSHayjxZlNt+Xe8=",
"owner": "jappie3",
"repo": "hyprcursor-phinger",
"rev": "2e244e3398a3f9bbece6d21d56c2353cd773a8e6",
"rev": "1207a845501a28e0e00d4a8e935ee0c9cab30650",
"type": "github"
},
"original": {
@@ -62,11 +62,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1728492678,
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
"lastModified": 1762977756,
"narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
"rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
"type": "github"
},
"original": {
@@ -78,11 +78,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1762363567,
"narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
"lastModified": 1768127708,
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
"type": "github"
},
"original": {
@@ -94,27 +94,27 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1762233356,
"narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=",
"lastModified": 1768242861,
"narHash": "sha256-F4IIxa5xDHjtrmMcayM8lHctUq1oGltfBQu2+oqDWP4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8",
"rev": "1327e798cb055f96f92685df444e9a2c326ab5ed",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1760596604,
"narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=",
"lastModified": 1768032153,
"narHash": "sha256-6kD1MdY9fsE6FgSwdnx29hdH2UcBKs3/+JJleMShuJg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43",
"rev": "3146c6aa9995e7351a398e17470e15305e6e18ff",
"type": "github"
},
"original": {
@@ -139,11 +139,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1760998189,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"lastModified": 1768271704,
"narHash": "sha256-jJqlW8A3OZ5tYbXphF7U8P8g/3Cn8PPwPa4YlJ/9agg=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"rev": "691b8b6713855d0fe463993867291c158472fc6f",
"type": "github"
},
"original": {
@@ -160,11 +160,11 @@
]
},
"locked": {
"lastModified": 1762497066,
"narHash": "sha256-pS45age8ZlpDk52kJLjPwoGNJE/XB0LZbyIFte2vtok=",
"lastModified": 1768329214,
"narHash": "sha256-ASI9j+Fgj7TzB4mj+IBIBrV5mH9P/D/vjKLyVDZWZOw=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "e774c6421714a7a54ed4dfb65d1c936b8728d589",
"rev": "2357b84ef617772c012397a7e8b4542bd5e4bab8",
"type": "github"
},
"original": {

View File

@@ -3,11 +3,11 @@
inputs = {
# Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
# Nixpkgs-unstable
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Home manager
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.url = "github:nix-community/home-manager/release-25.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# Add sops for secret management
sops-nix.url = "github:Mic92/sops-nix";
@@ -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

@@ -21,7 +21,7 @@
imports = [
./containers/media.nix
./containers/monitoring.nix
./containers/metrics.nix
./containers/caddy.nix
./containers/work_tools.nix
./containers/nextcloud.nix

View File

@@ -21,9 +21,11 @@
volumes = [
"/home/cianh/caddy/config:/etc/caddy"
"/home/cianh/caddy/data:/data:Z"
"/home/cianh/caddy/logs:/var/log/caddy"
"/home/cianh/caddy/placeholder_site:/var/www/site:Z"
"/home/cianh/blog:/var/www/blog:Z"
"/home/cianh/Nextcloud:/var/www/nextcloud:Z"
"/home/cianh/goaccess/site:/var/www/goaccess:Z"
];
};
};

View File

@@ -13,20 +13,17 @@
};
containers = {
gitea = {
image = "docker.gitea.com/gitea:latest-rootless";
image = "docker.gitea.com/gitea:latest";
autoUpdate = "registry";
network = [
"gitea-net"
"proxy-net"
];
ports = [
"3000:3000"
"2222:2222"
];
environment = {
TZ = "Europe/Dublin";
};
volumes = [
"/home/cianh/gitea/data:/var/lib/gitea"
"/home/cianh/gitea/config:/etc/gitea"
"/etc/timezone:/etc/timezone:ro"
"/home/cianh/gitea:/data"
"/etc/localtime:/etc/localtime:ro"
];
};

View File

@@ -11,7 +11,9 @@
jellyfin = {
image = "docker.io/jellyfin/jellyfin:latest";
autoUpdate = "registry";
ports = ["8096:8096/tcp"];
network = [
"proxy-net"
];
volumes = [
"/home/cianh/TV_Archive/data:/media:Z"
"/home/cianh/TV_Archive/jf_config:/config:Z"

View File

@@ -0,0 +1,29 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
services.podman = {
networks = {
metrics-net = {};
};
containers = {
goaccess = {
image = "docker.io/allinurl/goaccess:latest";
exec = "--output=/var/www/goaccess/index.html --log-file=/var/log/caddy/access.log --log-format=CADDY --tz=Europe/Dublin --anonymize-ip --real-time-html --ws-url=wss://metrics.example.com/ws --origin=https://metrics.bulba.space --port=7890";
autoUpdate = "registry";
network = [
"proxy-net"
];
volumes = [
"/home/cianh/caddy/logs:/var/log/caddy"
"/home/cianh/goaccess/site:/var/www/goaccess"
];
};
};
};
}

View File

@@ -1,38 +0,0 @@
{
inputs,
outputs,
lib,
config,
pkgs,
unstablePkgs,
...
}: {
services.podman = {
networks = {
grafana-net = {};
};
containers = {
grafana = {
image = "docker.io/grafana/grafana:latest";
autoUpdate = "registry";
network = ["grafana-net"];
ports = ["3000:3000"];
user = "1000:1000";
volumes = [
"/home/cianh/grafana:/var/lib/grafana:Z"
];
};
prometheus = {
image = "docker.io/prom/prometheus:latest";
autoUpdate = "registry";
network = [
"grafana-net"
"proxy-net"
];
volumes = [
"/home/cianh/prometheus/:/etc/prometheus/"
];
};
};
};
}

View File

@@ -19,9 +19,6 @@
"nextcloud-net"
"proxy-net"
];
ports = [
"9000:9000"
];
environment = {
NEXTCLOUD_URL = "nextcloud.bulba.space";
TRUSTED_DOMAINS = "nextcloud.bulba.space";

View File

@@ -34,7 +34,6 @@
volumes = [
"/home/cianh/vikunja/files:/app/vikunja/files"
];
ports = ["3456:3456"];
extraConfig = {
Unit = {
After = "podman-vikunja-db.service";

View File

@@ -10,7 +10,6 @@
home.packages = [
(pkgs.python3.withPackages (
python-pkgs: [
python-pkgs.pip
python-pkgs.pkginfo
python-pkgs.python-lsp-server
python-pkgs.setuptools

View File

@@ -18,12 +18,20 @@
--add-flags "--ozone-platform=wayland --enable-features=UseOzonePlatform --ozone-platform-hint=auto"
'';
};
python = pkgs.python314.withPackages (
python-pkgs: [
python-pkgs.pkginfo
python-pkgs.setuptools
]
);
in {
home.packages = [
pkgs.bitwarden
pkgs.bitwarden-desktop
pkgs.blueman
pkgs.clapper
pkgs.distrobox
pkgs.feh
pkgs.go
pkgs.has
pkgs.hyperfine
pkgs.imagemagick
@@ -32,6 +40,7 @@ in {
pkgs.minikube
unstablePkgs.mission-center
pkgs.neovide
pkgs.nodejs_24
pkgs.nwg-look
unstablePkgs.obsidian
pkgs.onlyoffice-desktopeditors
@@ -41,8 +50,10 @@ in {
unstablePkgs.podman-desktop
unstablePkgs.podman-tui
pkgs.popsicle
python
pkgs.smile
pkgs.sshs
unstablePkgs.uv
pkgs.vial
vivaldi-wayland
pkgs.vivaldi-ffmpeg-codecs
@@ -54,8 +65,10 @@ in {
unstablePkgs.zotero
inputs.zen-browser.packages.x86_64-linux.default
# theming
pkgs.adwaita-icon-theme
pkgs.gtk-engine-murrine
pkgs.gtk_engines
pkgs.hicolor-icon-theme
pkgs.phinger-cursors
pkgs.tokyonight-gtk-theme
# Backend dev tools

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

@@ -12,7 +12,7 @@
pkgs.bitwarden-cli
pkgs.bottom
pkgs.delta
pkgs.du-dust
pkgs.dust
pkgs.duf
pkgs.fastfetch
pkgs.fd

View File

@@ -37,8 +37,8 @@
pkgs.libvdpau-va-gl
pkgs.mesa
pkgs.nvidia-vaapi-driver
pkgs.vaapiIntel
pkgs.vaapiVdpau
pkgs.intel-vaapi-driver
pkgs.libva-vdpau-driver
];
};
nvidia = {
@@ -131,11 +131,7 @@
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-xapp
];
extraPortals = [unstablePkgs.xdg-desktop-portal-xapp];
};
system = {
@@ -145,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,12 +20,10 @@
pkgs.qmk
pkgs.qmk-udev-rules
pkgs.qmk_hid
pkgs.regreet
pkgs.seahorse
pkgs.wayland
pkgs.wayland-utils
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-wlr
pkgs.xdg-desktop-portal-xapp
pkgs.xfce.thunar
pkgs.xfce.tumbler
pkgs.xh
@@ -40,6 +38,5 @@
unstablePkgs.swaynotificationcenter
unstablePkgs.waybar
unstablePkgs.wofi
unstablePkgs.xdg-desktop-portal-hyprland
];
}

View File

@@ -4,66 +4,105 @@
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;
waylandCompositors.hyprland.binPath = lib.mkForce "/run/current-system/sw/bin/start-hyprland";
};
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;
};
iio-hyprland.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,15 +4,17 @@
config,
pkgs,
unstablePkgs,
theme,
...
}: {
services = {
displayManager.defaultSession = "hyprland-uwsm";
desktopManager.gnome.enable = false;
displayManager.gdm.enable = false;
greetd.enable = true;
xserver = {
videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc.
enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = false;
xkb = {
layout = "ie";
variant = "";
@@ -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];
};
};
@@ -34,7 +35,7 @@
pkgs.nerd-font-patcher
pkgs.noto-fonts
pkgs.noto-fonts-color-emoji
pkgs.vistafonts
pkgs.vista-fonts
pkgs.winePackages.fonts
];
};