phase 2: move home-manager/ → home/{profiles,progs,util,wallpaper}

This commit is contained in:
primary
2026-04-18 00:48:08 -04:00
parent 30d8cf4c99
commit d13cec76ba
27 changed files with 0 additions and 0 deletions

29
home/profiles/desktop.nix Normal file
View File

@@ -0,0 +1,29 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
# niri wayland compositor
./progs/niri.nix
# lockscreen
./progs/swaylock.nix
# notification daemon
./progs/dunst.nix
# noctalia desktop shell
./progs/noctalia.nix
];
home.packages = with pkgs; [
wdisplays
blueman
# used by /etc/nixos logic to launch niri
config.programs.niri.package
];
}

230
home/profiles/gui.nix Normal file
View File

@@ -0,0 +1,230 @@
{
pkgs,
lib,
inputs,
config,
...
}:
{
imports = [
./no-gui.nix
# ./progs/ghostty.nix
./progs/alacritty.nix
./progs/emacs.nix
# ./progs/trezor.nix # - broken
./progs/flatpak.nix
./progs/zen
];
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"apple_cursor"
"grayjay"
];
home.packages =
with pkgs;
lib.concatLists [
# libreoffice
[
libreoffice
hunspell # spellcheck
hunspellDicts.en_US # spellcheck dictionary
]
# browsers
[
tor-browser
grayjay
]
# music library management
[
picard
puddletag
lrcget
]
# image editing
[
darktable
rawtherapee
hugin
gimp3
pinta
]
[
#calculator
gnome-calculator
# audio editing
audacity
#fonts
noto-fonts
noto-fonts-color-emoji
liberation_ttf
#for ebook reading
foliate
#audio mixer (pavucontrol but for pipewire)
pwvucontrol
# minecraft launcher
prismlauncher
mpv
mumble
system76-keyboard-configurator
#jellyfin
finamp # music player
delfin # jellyfin client
signal-desktop
# accounting
# gnucash
# image tools
inkscape
nomacs
# partitioning utilities
gparted
gnome-disk-utility
# small nicities
wl-clipboard # wl-copy & wl-paste
libnotify # notifications library
xdg-utils # xdg utils
wireshark
nautilus
nufraw-thumbnailer
gdk-pixbuf
enblend-enfuse
# simple screen recording on wayland
wl-screenrec
# wayland-compatible color picker
hyprpicker
blender
ghidra-bin
# for mod organizer 2
zenity
p7zip
# password manager
keepassxc
freecad-wayland
localsend
# openstreetmap
josm
# in unstable ATM, gotta wait for it to hit stable
# video-trimmer
]
# all the fonts
(builtins.filter lib.isDerivation (builtins.attrValues nerd-fonts))
];
# programs.zed-editor = {
# enable = true;
# userSettings = {
# ui_font_size = 16;
# buffer_font_size = 16;
# theme = {
# mode = "system";
# light = "Gruvbox Dark Hard";
# dark = "One Dark";
# };
# };
# extensions = [
# "nix"
# "sql"
# "CSV"
# "assembly"
# ];
# };
# make chromium-based stuff use wayland
home.file.".config/chromium-flags.conf".text = "--ozone-platform-hint=auto";
# dark mode
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
home.sessionVariables = {
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath [
pkgs.stdenv.cc.cc
]}";
};
# allow extra fonts to be detected by fontconfig
fonts.fontconfig.enable = true;
# gtk application theming
gtk = {
enable = true;
# make gtk3 applications look like libadwaita applications!
theme = {
package = pkgs.adw-gtk3;
name = "adw-gtk3-dark";
};
# gtk4 apps use libadwaita natively, no theme package needed
gtk4.theme = null;
iconTheme = {
package = pkgs.adwaita-icon-theme;
name = "Adwaita";
};
};
# qt application theming - BROKEN and on fire
# qt = {
# enable = true;
# platformTheme = {
# name = "adwaita";
# package = [
# pkgs.adwaita-qt
# pkgs.adwaita-qt6
# ];
# };
# style = {
# name = "adwaita-dark";
# package = pkgs.adwaita-qt;
# };
# };
# macOS cursor!
home.pointerCursor = {
gtk.enable = true;
package = pkgs.apple-cursor;
name = "macOS";
size = 24;
};
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
}

262
home/profiles/no-gui.nix Normal file
View File

@@ -0,0 +1,262 @@
{
pkgs,
inputs,
lib,
homeDirectory,
config,
username,
stateVersion,
...
}:
let
rust_pkgs = with pkgs; [
(rust-bin.nightly.latest.default.override ({
extensions = [
"rust-src"
"rust-analyzer"
"clippy"
"rustfmt"
"rust-std"
"cargo"
];
# thumbv7m-none-eabi target for stm32
targets = [
"thumbv7m-none-eabi"
"wasm32-unknown-unknown"
];
}))
cargo-expand
cargo-edit # cargo upgrade and stuff
cargo-pgo
rust-script
bolt_19
libllvm # llvm-profdata
cargo-show-asm
cargo-flamegraph
];
lsps = with pkgs; [
# java
jdt-language-server
# HTML/CSS/JSON/ESLint language servers
vscode-langservers-extracted
nil # nix lsp
yaml-language-server # yaml lsp
marksman # markdown lsp
typescript-language-server # typescript lsp
cmake-language-server # cmake lsp
typescript
];
java_tools = with pkgs; [
# java development
google-java-format # formatter
jdk # java
# java assembler # BUG! broken
# jasmin
];
common_tools = with pkgs; [
# hex viewer
hexyl
# find typos in code
typos
# replacements for common posix tools
eza # ls replacement
bat # pretty `cat` clone
delta # viewer for `git` and `diff` output
dust # pretty `du` version
duf # better `df` clone
gping # `ping`... but with a graph!!
tldr # `man` but more straight-forward and simpler
ripgrep # grep, but written in rust, respects .gitignore, and very very fast, command is `rg`
fd # alternative to `find`
# status tools
htop
bottom
# other tools
unzip
wget
killall
file
b3sum
# "A hexadecimal, binary, and ASCII dump utility with color support"
tinyxxd
# networking tool
lsof
# view SMART status of drives
smartmontools
# adds `sensors` command
lm_sensors
# lspci
pciutils
# convert between various units
units
jq
# DNS things
dig
bun
];
in
{
imports = [
./progs/fish.nix
./progs/helix.nix
./progs/pi.nix
(
{ ... }:
{
nixpkgs.overlays = [
inputs.rust-overlay.overlays.default
];
}
)
];
home.stateVersion = stateVersion;
home.packages =
with pkgs;
lib.concatLists [
[
# python formatter
ruff
# for website generation
hugo
go
# for benchmaking stuff
hyperfine
pfetch-rs
waypipe
sshfs
# nix formatter
nixfmt-tree
# serial viewer
minicom
# "~~matt's~~ my trace route"
mtr
ffmpeg-full
# microcontroller tooling
probe-rs-tools
(python313.withPackages (
ps: with ps; [
mypy # type checking
types-requests # add types for requests methods
python-lsp-server # lsp
python-lsp-ruff # ruff integration
pyserial
numpy
matplotlib
notebook
pandas
]
))
binwalk
# clang-format and clang-tidy
clang-tools
clang
gdb
git-crypt
imagemagick
nixpkgs-review
nmap
# terminal image viewer
timg
tcpdump
borgbackup
# used to deploy nix system to server
# (and in the future, desktop)
deploy-rs
# power stuff
powerstat
yt-dlp
]
rust_pkgs
lsps
java_tools
common_tools
];
# https://github.com/flamegraph-rs/flamegraph
home.file.".cargo/config.toml".text = ''
[target.${lib.strings.removeSuffix "-linux" pkgs.stdenv.hostPlatform.system}-unknown-linux-gnu]
linker = "${lib.getExe pkgs.clang}"
rustflags = ["-Clink-arg=-Wl,--no-rosegment"]
'';
# git (self explanatory)
programs.git = {
enable = true;
package = pkgs.git;
lfs.enable = true;
ignores = [ ".sisyphus" ];
settings = {
init = {
# master -> main
defaultBranch = "main";
};
push.autoSetupRemote = true;
user = {
name = "Simon Gardling";
email = "titaniumtown@proton.me";
};
};
# gpg signing keys
signing = {
key = "9AB28AC10ECE533D";
signByDefault = true;
};
};
# better way to view diffs
programs.delta = {
enable = true;
enableGitIntegration = true;
};
}