clean <host>/default.nix (part 3)

This commit is contained in:
Emile Clark-Boman 2025-08-01 13:17:12 +10:00
parent 20bdc7b50c
commit e4bfdad61b
2 changed files with 105 additions and 85 deletions

View file

@ -22,6 +22,11 @@ in {
../modules/chameleonultragui.nix
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nixpkgs.config.allowUnfreePredicate = let
whitelist = map lib.getName [
pkgs.obsidian
@ -125,12 +130,10 @@ in {
};
security.rtkit.enable = true; # I *think* this is for pipewire
# allow wheel group to use passwordless sudo
# ------- USERS -------
users = {
# using fish as the login shell tends
# to go very poorly because it isn't
# POSIX compliant, so we'll just use
# simple Bash then :)
# Using fish as the login shell tends to go very poorly because it isn't
# POSIX compliant, so we default the login shell to Bash instead :)
defaultUserShell = pkgs.bash;
users = {
@ -138,7 +141,7 @@ in {
me = {
isNormalUser = true;
extraGroups = ["wheel" "netdev" "docker"];
shell = pkgs.bash; #pkgs.fish
shell = pkgs.bash;
packages = let
# TODO: can I just do this: https://nix.dev/manual/nix/2.18/command-ref/new-cli/nix3-flake#url-like-syntax
# instead to use colmena's flake.nix by specifying a rev hash in the flake input?
@ -165,8 +168,6 @@ in {
friends = {
isNormalUser = true;
shell = pkgs.fish;
packages = with pkgs; [
];
};
};
};
@ -179,7 +180,7 @@ in {
];
};
# set environment variables
# ---- ENVIRONMENT VARIABLES ----
environment.sessionVariables = {
# folder names with capitalisation look awful!
XDG_DOWNLOAD_DIR = "$HOME/downloads";
@ -194,10 +195,10 @@ in {
swww
helvum
easyeffects
pavucontrol
ani-cli
bluetui
wl-clipboard # clipboard for wayland
pavucontrol
qbittorrent # torrenting
signal-desktop
@ -206,10 +207,14 @@ in {
pkgs.libsForQt5.qt5.qtgraphicaleffects
# Shell
bash
zsh
fish
shellcheck
# Fish Plugins
grc # colorise command outputs
# Make
gnumake
# C Family
gcc
clang
@ -228,9 +233,6 @@ in {
# Sage
sageWithDoc # SageMath + HTML Documentation
# DEBUG: using neofetch temporarily to see if my system upgrades properly
neofetch
openvpn
inetutils
@ -263,12 +265,12 @@ in {
# Pretty necessary
git
git-filter-repo
nix-prefetch-git
brightnessctl
acpi
# upower
vim
powertop
gnumake
imagemagick
# "Standard" Unix Commands
@ -279,7 +281,11 @@ in {
unrar-free
man-pages
man-pages-posix
# Cryptography
gnupg
openssl
libargon2
# Games
mindustry
@ -294,6 +300,7 @@ in {
xwayland.enable = true;
};
zsh.enable = true;
fish.enable = true;
nix-ld.enable = true;
@ -322,6 +329,9 @@ in {
thunar-media-tags-plugin # change metadata for media files
];
};
# mozilla's email client
thunderbird.enable = true;
};
# ----- FONTS -----
@ -357,26 +367,8 @@ in {
};
};
# Enable the new CLI commands and the flakes as experimental features
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
virtualisation.docker.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Enable OpenGL
hardware = {
graphics.enable = true;

View file

@ -7,7 +7,7 @@
}: let
home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz";
sha256 = "1kk5qzfb87mkgy6vzm7x8z8akxr3k8k7839yjdy48z034pvidhsr";
sha256 = "026rvynmzmpigax9f8gy9z67lsl6dhzv2p6s8wz4w06v3gjvspm1";
};
in {
imports = [
@ -21,6 +21,11 @@ in {
../modules/chameleonultragui.nix
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nixpkgs.config.allowUnfreePredicate = let
whitelist = map lib.getName [
pkgs.obsidian
@ -48,7 +53,8 @@ in {
enable = true;
theme = "whitesur"; # stylish, vimix, or whitesur
footer = true;
customResolution = "1920x1080";
# TODO: switch my cables to switch default grub display
customResolution = "3840x2160";
};
};
@ -121,21 +127,19 @@ in {
};
security.rtkit.enable = true; # I *think* this is for pipewire
# allow wheel group to use passwordless sudo
# ------- USERS -------
security.sudo.wheelNeedsPassword = false;
users = {
# using fish as the login shell tends
# to go very poorly because it isn't
# POSIX compliant, so we'll just use
# simple Bash then :)
# Using fish as the login shell tends to go very poorly because it isn't
# POSIX compliant, so we default the login shell to Bash instead :)
defaultUserShell = pkgs.bash;
users = {
# just me fr (personal account)
me = {
isNormalUser = true;
extraGroups = ["wheel" "docker"];
shell = pkgs.bash; #pkgs.fish
extraGroups = ["wheel" "netdev" "docker"];
shell = pkgs.bash;
packages = let
# TODO: can I just do this: https://nix.dev/manual/nix/2.18/command-ref/new-cli/nix3-flake#url-like-syntax
# instead to use colmena's flake.nix by specifying a rev hash in the flake input?
@ -164,9 +168,7 @@ in {
ae = {
isNormalUser = true;
extraGroups = ["wheel"];
shell = pkgs.bash; #pkgs.fish
packages = with pkgs; [
];
shell = pkgs.bash;
};
};
};
@ -178,7 +180,7 @@ in {
];
};
# set environment variables
# ---- ENVIRONMENT VARIABLES ----
environment.sessionVariables = {
# folder names with capitalisation look awful!
XDG_DOWNLOAD_DIR = "$HOME/downloads";
@ -198,60 +200,97 @@ in {
bluetui
wl-clipboard # clipboard for wayland
hyprpicker
qbittorrent
signal-desktop
#(callPackage ../sddm-theme-corners.nix {}).sddm-theme-corners
(callPackage ../sddm-theme-corners.nix {}).sddm-theme-corners
# dependencies for my sddm theme:
pkgs.libsForQt5.qt5.qtgraphicaleffects
python311 # I use 3.11 since it's in a pretty stable state now
poetry # python dependency management and packaging
nixd # lsp for nix
neofetch # TODO: remove (installed to debug something)
# fish plugins
# Shell
bash
zsh
fish
shellcheck
grc # colorise command outputs
# Make
gnumake
# C Family
gcc
clang
# Rust
cargo
rustc
# Nim
nim
# Go
go
# Python
python312 # I use 3.12 since it's in a pretty stable state now
python314 # also 3.14 for latest features
poetry
# Sage
sageWithDoc # SageMath + HTML Documentation
openvpn
inetutils
# security tools
rustscan
nmap
dig
gobuster
nth
zap
httpie
curlie
zoxide
doggo
tldr
viddy
# btop
eza
yazi
lazygit
ripgrep
viddy # modern `watch` command
thefuck
tesseract # for my work with Agribit
# TODO: remove this and host my nix flake on github instead
#wishlist
# TODO: once upgraded past Nix-24.07 this line won't be necessary (I think)
# helix will support nixd by default
# SOURCE: https://github.com/nix-community/nixd/blob/main/nixd/docs/editor-setup.md#Helix
# nixd # lsp for nix # DEBUG
# Pretty necessary
git
git-filter-repo
nix-prefetch-git
brightnessctl
acpi
vim
nix-prefetch-git
gcc
gnumake
powertop
imagemagick
# Unix Commands
# "Standard" Unix Commands
file
wget
tree
unzip
# Man Pages
unrar-free
man-pages
man-pages-posix
# Cryptography
gnupg
openssl
libargon2
# Games
mindustry-wayland
dwarf-fortress
nethack
prismlauncher # minecraft
];
# DEBUG: configuring xdg portal here instead?
@ -270,7 +309,6 @@ in {
# ];
#};
# Enable the use of certain programs
programs = {
hyprland = {
enable = true;
@ -281,6 +319,8 @@ in {
zsh.enable = true;
fish.enable = true;
nix-ld.enable = true;
neovim = {
enable = true;
defaultEditor = true;
@ -360,29 +400,17 @@ in {
};
};
# Enable the new CLI commands and the flakes as experimental features
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
virtualisation.docker.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
#programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
#};
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Enable OpenGL
hardware = {
graphics.enable = true;
# opengl = {
# enable = true;
# driSupport = true;
# driSupport32Bit = true;
# }
bluetooth = {
enable = true;
powerOnBoot = true;