mirror of
https://github.com/Cian-H/My_NixOS_Config.git
synced 2026-01-15 09:01:56 +00:00
Compare commits
23 Commits
dfa280fffd
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d151652da | |||
| 6c74c6aac0 | |||
| f610ea778d | |||
| a2306cccd4 | |||
| 717a6ee2f4 | |||
| 7c8d91d0bf | |||
| 7074d8f426 | |||
| 0c22cb09ff | |||
| 8126c81e97 | |||
| 4b56d75dd6 | |||
| 375e0882fe | |||
| 5db7b3c3ea | |||
| 9fdf746aff | |||
| 92e51c4ec0 | |||
| 4b6c081bdd | |||
| 0c7a0e0414 | |||
| c3ba099953 | |||
| 94f550cc9d | |||
| 1c71c860c6 | |||
| 6f8e075aac | |||
| 59b814dcbd | |||
| 0a994a3013 | |||
| 8ecc67c56e |
42
flake.lock
generated
42
flake.lock
generated
@@ -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": {
|
||||
|
||||
85
flake.nix
85
flake.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
|
||||
|
||||
Submodule home-manager/core/dotfiles updated: 0095124356...1e57ac53ce
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,5 +10,6 @@
|
||||
home = {
|
||||
username = "cianh";
|
||||
homeDirectory = "/home/cianh";
|
||||
shell.enableNushellIntegration = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -12,6 +12,10 @@
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
waybar = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
82
justfile
82
justfile
@@ -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
|
||||
|
||||
@@ -141,5 +141,5 @@
|
||||
};
|
||||
|
||||
# Set user config settings
|
||||
users.defaultUserShell = pkgs.nushell;
|
||||
users.defaultUserShell = unstablePkgs.nushell;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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} \
|
||||
"
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -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];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user