phase 2: move home-manager/ → home/{profiles,progs,util,wallpaper}
This commit is contained in:
29
home/profiles/desktop.nix
Normal file
29
home/profiles/desktop.nix
Normal 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
230
home/profiles/gui.nix
Normal 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
262
home/profiles/no-gui.nix
Normal 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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user