nix: refactor modules pass 2

This commit is contained in:
Primrose 2025-04-01 21:40:43 +02:00
parent ec7246e524
commit 1716faf2cd
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
19 changed files with 11 additions and 11 deletions

View file

@ -32,7 +32,7 @@ in {
../nixosModules/common/system-nixconf.nix
../nixosModules/common/unfree-predicate.nix
./vanadium
./vanadium/nixos
(sources.agenix + "/modules/age.nix")
((import sources.url-eater).nixosModules.default)
@ -86,7 +86,7 @@ in {
(sources.agenix + "/modules/age-home.nix")
((import sources.wired-notify).homeManagerModules.default)
../homeModules/named/vanadium
./vanadium/home
];
};
})

View file

@ -0,0 +1,127 @@
{
pkgs,
lib,
nixosConfig ? {},
config,
...
}: let
inherit (pkgs) myPkgs;
in {
imports = [
./firefox.nix
./gui.nix
./xmobar.nix
# Language server packages, etc
./dev.nix
];
home.file = {
".xscreensaver".source = "${./xscreensaver/.xscreensaver}";
".wallpaper".source = "${pkgs.wallpapers.estradiol}/main.svg";
};
home.packages = [
pkgs.zip
pkgs.unzip
pkgs.gnutar
pkgs.p7zip
pkgs.bc
pkgs.dig
myPkgs.hutils
pkgs.miniserve
pkgs.agenix
# pdf utilities
pkgs.poppler_utils # pdfseparate, pdfunite
myPkgs.easyscan
# productivity / media
pkgs.evolution
pkgs.libreoffice
pkgs.iamb
pkgs.calibre
pkgs.rawtherapee
pkgs.digikam
pkgs.gimp
pkgs.vlc
pkgs.nautilus
pkgs.sushi # space bar previewer
pkgs.blender
pkgs.inkscape
# wm utilities
myPkgs.xbrightness
pkgs.dmenu
pkgs.xclip
pkgs.playerctl # talk to playerctld
pkgs.hacksaw
pkgs.shotgun
pkgs.xscreensaver # talk to xscreensaver
pkgs.xcolor
pkgs.boomer
# audio utilities
pkgs.helvum
pkgs.pavucontrol
# fun
myPkgs.prop-solveur
myPkgs.hbf
pkgs.lucky-commit
];
age.secrets = {
sshconfig = {
file = "${../../../secrets/sshconfig.age}";
path = "/home/leana/.ssh/config";
};
ltex_dict = {
file = "${../../../secrets/ltex_dict.age}";
path = "/home/leana/.config/ltex_dict";
};
};
programs = {
kitty.enable = true;
password-store.enable = true;
feh.enable = true;
sioyek.enable = true;
cmus.enable = true;
ranger.enable = true;
xmobar.enable = true;
# ROCm support is needed for AMD GPU
# https://github.com/aristocratos/btop?tab=readme-ov-file#gpu-compatibility
btop.package = pkgs.btop-rocm;
neovim.defaultEditor = true;
};
services.wired.enable = true;
services.playerctld.enable = true;
# Disable the blueman pop up persistently
# https://github.com/blueman-project/blueman/issues/1556#issuecomment-882857426
dconf.settings."org/blueman/general" = let
isBlueman = p: lib.hasInfix "blueman" (lib.getName p);
in
lib.mkIf
(builtins.any isBlueman (nixosConfig.environment.systemPackages or [])
|| builtins.any isBlueman config.home.packages)
{
plugin-list = ["!ConnectionNotifier"];
};
services.battery-notify = {
enable = true;
device_full = "/sys/class/power_supply/BAT1/charge_full";
device_now = "/sys/class/power_supply/BAT1/charge_now";
};
xdg.mimeApps = {
enable = true;
associations.added."x-scheme-handler/mailto" = ["org.gnome.Evolution.desktop"];
defaultApplications."x-scheme-handler/mailto" = ["org.gnome.Evolution.desktop"];
};
}

View file

@ -0,0 +1,46 @@
{
pkgs,
lib,
config,
...
}: {
home.packages = [
# preview markdown
pkgs.python3Packages.grip
pkgs.gh
];
programs.neovim.extraPackages = [
# fish
pkgs.fish-lsp
# spellchecking
pkgs.myPkgs.ltex-ls-plus
];
programs.git = {
signing.signByDefault = true;
maintenance = {
enable = true;
repositories =
lib.map (path: "${config.home.homeDirectory}/${path}")
[
"r/nixos/nixpkgs"
];
};
};
programs.vscode = {
enable = true;
extensions = [
pkgs.vscode-extensions.redhat.java
pkgs.vscode-extensions.vscjava.vscode-java-pack
];
};
programs.go = {
enable = true;
goPath = ".go";
};
}

View file

@ -0,0 +1,79 @@
{
pkgs,
config,
...
}: let
inherit (pkgs) nur;
in {
programs.firefox = {
enable = true;
policies.SearchEngines = {
Default = "searxng";
Add = [
{
Name = "searxng";
URLTemplate = "https://sxng.confusedcompiler.org/search?q={searchTerms}";
}
];
};
profiles = {
default = {
extensions = let
addons = nur.repos.rycee.firefox-addons;
in [
addons.languagetool
addons.sponsorblock
addons.return-youtube-dislikes
addons.shinigami-eyes
# flaky, find a better source to be fetched
# addons.bypass-paywalls-clean
];
};
junk = {
id = 1;
inherit
(config.programs.firefox.profiles.default)
settings
userChrome
;
extensions = let
addons = nur.repos.rycee.firefox-addons;
in [addons.multi-account-containers];
containers = {
raisin = {
color = "purple";
icon = "fruit";
id = 1;
};
pomme = {
color = "red";
icon = "fruit";
id = 2;
};
};
};
# Isolate it because it's proprietary
tampermonkey = {
id = 2;
inherit
(config.programs.firefox.profiles.default)
settings
userChrome
;
extensions = let
addons = nur.repos.rycee.firefox-addons;
in [addons.tampermonkey];
};
};
};
}

View file

@ -0,0 +1,46 @@
{
pkgs,
lib,
nixosConfig,
...
}: {
home.pointerCursor = {
x11.enable = true;
gtk.enable = true;
inherit
(nixosConfig.services.xserver.displayManager.lightdm.greeters.gtk.cursorTheme)
name
package
size
;
};
xresources.properties = {
"Xft.dpi" = 150;
};
i18n.inputMethod.enabled = "fcitx5";
# Fonts
fonts.fontconfig = {
enable = true;
defaultFonts = lib.mapAttrsRecursive (_: v: v ++ ["Last Resort"]) {
sansSerif = ["Ubuntu" "Noto Sans CJK TC"];
serif = ["Noto Serif CJK TC"];
monospace = ["Iosevka"];
emoji = ["Noto Color Emoji"];
};
};
home.packages = [
pkgs.noto-fonts
pkgs.noto-fonts-lgc-plus
pkgs.noto-fonts-cjk-sans
pkgs.noto-fonts-cjk-serif
pkgs.noto-fonts-color-emoji
pkgs.noto-fonts-emoji-blob-bin
pkgs.ubuntu-classic
pkgs.iosevka
pkgs.last-resort
];
}

View file

@ -0,0 +1,26 @@
{
programs.xmobar.extraConfig = ''
Config { overrideRedirect = False
, font = "Iosevka 13"
, bgColor = "#000000"
, fgColor = "#FFFFFF"
, position = BottomH 30
, commands = [ Run Date "%a %d %H:%M:%S" "date" 10
, Run Battery
[ "-t", "<acstatus>:<left>%"
, "--"
, "-O", "󰂄"
, "-i", "󱟦"
, "-o", "󰁾"
, "-h", "green"
, "-m", "yell"
, "-l", "red"
] 10
, Run XMonadLog
]
, sepChar = "%"
, alignSep = "}{"
, template = " %XMonadLog% }{ %battery% | %date% "
}
'';
}

View file

@ -0,0 +1,299 @@
# XScreenSaver Preferences File
# Written by xscreensaver-settings 6.08 for leana on Tue Jul 23 23:44:33 2024.
# https://www.jwz.org/xscreensaver/
timeout: 0:07:00
cycle: 0:07:00
lock: True
lockTimeout: 0:00:00
passwdTimeout: 0:00:30
visualID: default
installColormap: True
verbose: False
splash: True
splashDuration: 0:00:05
demoCommand: xscreensaver-settings
nice: 10
fade: False
unfade: False
fadeSeconds: 0:00:03
ignoreUninstalledPrograms:False
dpmsEnabled: True
dpmsQuickOff: False
dpmsStandby: 0:10:00
dpmsSuspend: 0:10:00
dpmsOff: 0:15:00
grabDesktopImages: True
grabVideoFrames: False
chooseRandomImages: False
imageDirectory:
mode: one
selected: 204
textMode: url
textLiteral: XScreenSaver
textFile:
textProgram: fortune
textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss
dialogTheme: default
settingsGeom: 15,32 216,222
programs: \
maze --root \n\
GL: superquadrics --root \n\
attraction --root \n\
blitspin --root \n\
greynetic --root \n\
helix --root \n\
hopalong --root \n\
imsmap --root \n\
- noseguy --root \n\
- pyro --root \n\
qix --root \n\
- rocks --root \n\
rorschach --root \n\
decayscreen --root \n\
flame --root \n\
halo --root \n\
slidescreen --root \n\
pedal --root \n\
bouboule --root \n\
- braid --root \n\
coral --root \n\
deco --root \n\
drift --root \n\
- fadeplot --root \n\
galaxy --root \n\
goop --root \n\
grav --root \n\
ifs --root \n\
GL: jigsaw --root \n\
julia --root \n\
- kaleidescope --root \n\
GL: moebius --root \n\
moire --root \n\
GL: morph3d --root \n\
mountain --root \n\
munch --root \n\
penrose --root \n\
GL: pipes --root \n\
rdbomb --root \n\
GL: rubik --root \n\
- sierpinski --root \n\
slip --root \n\
GL: sproingies --root \n\
starfish --root \n\
strange --root \n\
swirl --root \n\
triangle --root \n\
xjack --root \n\
xlyap --root \n\
GL: atlantis --root \n\
bsod --root \n\
GL: bubble3d --root \n\
GL: cage --root \n\
- crystal --root \n\
cynosure --root \n\
discrete --root \n\
distort --root \n\
epicycle --root \n\
flow --root \n\
GL: glplanet --root \n\
interference --root \n\
kumppa --root \n\
GL: lament --root \n\
moire2 --root \n\
GL: sonar --root \n\
GL: stairs --root \n\
truchet --root \n\
- vidwhacker --root \n\
- webcollage --root \n\
blaster --root \n\
bumps --root \n\
ccurve --root \n\
compass --root \n\
deluxe --root \n\
- demon --root \n\
GL: extrusion --root \n\
- loop --root \n\
penetrate --root \n\
petri --root \n\
phosphor --root \n\
GL: pulsar --root \n\
ripples --root \n\
shadebobs --root \n\
GL: sierpinski3d --root \n\
spotlight --root \n\
squiral --root \n\
wander --root \n\
xflame --root \n\
xmatrix --root \n\
GL: gflux --root \n\
- nerverot --root \n\
xrayswarm --root \n\
xspirograph --root \n\
GL: circuit --root \n\
GL: dangerball --root \n\
- GL: dnalogo --root \n\
GL: engine --root \n\
GL: flipscreen3d --root \n\
GL: gltext --root \n\
GL: menger --root \n\
GL: molecule --root \n\
rotzoomer --root \n\
scooter --root \n\
speedmine --root \n\
GL: starwars --root \n\
GL: stonerview --root \n\
vermiculate --root \n\
whirlwindwarp --root \n\
zoom --root \n\
anemone --root \n\
apollonian --root \n\
GL: boxed --root \n\
GL: cubenetic --root \n\
GL: endgame --root \n\
euler2d --root \n\
fluidballs --root \n\
GL: flurry --root \n\
- GL: glblur --root \n\
GL: glsnake --root \n\
halftone --root \n\
GL: juggler3d --root \n\
GL: lavalite --root \n\
- polyominoes --root \n\
GL: queens --root \n\
- GL: sballs --root \n\
GL: spheremonics --root \n\
twang --root \n\
- GL: antspotlight --root \n\
apple2 --root \n\
GL: atunnel --root \n\
barcode --root \n\
GL: blinkbox --root \n\
GL: blocktube --root \n\
GL: bouncingcow --root \n\
cloudlife --root \n\
GL: cubestorm --root \n\
eruption --root \n\
GL: flipflop --root \n\
GL: flyingtoasters --root \n\
fontglide --root \n\
GL: gleidescope --root \n\
GL: glknots --root \n\
GL: glmatrix --root \n\
- GL: glslideshow --root \n\
GL: hypertorus --root \n\
- GL: jigglypuff --root \n\
metaballs --root \n\
GL: mirrorblob --root \n\
piecewise --root \n\
GL: polytopes --root \n\
pong --root \n\
popsquares --root \n\
GL: surfaces --root \n\
xanalogtv --root \n\
abstractile --root \n\
anemotaxis --root \n\
- GL: antinspect --root \n\
fireworkx --root \n\
fuzzyflakes --root \n\
interaggregate --root \n\
intermomentary --root \n\
memscroller --root \n\
GL: noof --root \n\
pacman --root \n\
GL: pinion --root \n\
GL: polyhedra --root \n\
- GL: providence --root \n\
substrate --root \n\
wormhole --root \n\
- GL: antmaze --root \n\
GL: boing --root \n\
boxfit --root \n\
GL: carousel --root \n\
celtic --root \n\
GL: crackberg --root \n\
GL: cube21 --root \n\
fiberlamp --root \n\
GL: fliptext --root \n\
GL: glhanoi --root \n\
GL: tangram --root \n\
GL: timetunnel --root \n\
GL: glschool --root \n\
GL: topblock --root \n\
GL: cubicgrid --root \n\
cwaves --root \n\
GL: gears --root \n\
GL: glcells --root \n\
GL: lockward --root \n\
m6502 --root \n\
GL: moebiusgears --root \n\
GL: voronoi --root \n\
GL: hypnowheel --root \n\
GL: klein --root \n\
- lcdscrub --root \n\
GL: photopile --root \n\
GL: skytentacles --root \n\
GL: rubikblocks --root \n\
GL: companioncube --root \n\
GL: hilbert --root \n\
GL: tronbit --root \n\
GL: geodesic --root \n\
hexadrop --root \n\
GL: kaleidocycle --root \n\
GL: quasicrystal --root \n\
GL: unknownpleasures --root --no-ortho \n\
binaryring --root \n\
GL: cityflow --root \n\
GL: geodesicgears --root \n\
GL: projectiveplane --root \n\
GL: romanboy --root \n\
tessellimage --root \n\
GL: winduprobot --root \n\
GL: splitflap --root \n\
GL: cubestack --root \n\
GL: cubetwist --root \n\
GL: discoball --root \n\
GL: dymaxionmap --root \n\
GL: energystream --root \n\
GL: hexstrut --root \n\
GL: hydrostat --root \n\
GL: raverhoop --root \n\
GL: splodesic --root \n\
GL: unicrud --root \n\
GL: esper --root \n\
GL: vigilance --root \n\
GL: crumbler --root \n\
filmleader --root \n\
glitchpeg --root \n\
GL: handsy --root \n\
GL: maze3d --root \n\
GL: peepers --root \n\
GL: razzledazzle --root \n\
vfeedback --root \n\
GL: deepstars --root \n\
GL: gravitywell --root \n\
GL: beats --root \n\
GL: covid19 --root \n\
GL: etruscanvenus --root \n\
GL: gibson --root \n\
GL: headroom --root \n\
GL: sphereeversion --root \n\
binaryhorizon --root \n\
marbling --root \n\
GL: chompytower --root \n\
GL: hextrail --root \n\
GL: mapscroller --root \n\
GL: nakagin --root \n\
GL: squirtorus --root \n\
GL: cubocteversion --root \n\
droste --root \n\
GL: papercube --root \n\
GL: skulloop --root \n\
pointerHysteresis: 10
authWarningSlack: 20

View file

@ -45,19 +45,19 @@
nix.gc.automatic = true;
age.secrets = {
wpa_password.file = "${../../secrets/wpa_password.age}";
wpa_password.file = "${../../../secrets/wpa_password.age}";
restic_backblaze_pwd.file = "${../../secrets/restic_backblaze_pwd.age}";
restic_backblaze_repo.file = "${../../secrets/restic_backblaze_repo.age}";
restic_backblaze_env.file = "${../../secrets/restic_backblaze_env.age}";
restic_backblaze_pwd.file = "${../../../secrets/restic_backblaze_pwd.age}";
restic_backblaze_repo.file = "${../../../secrets/restic_backblaze_repo.age}";
restic_backblaze_env.file = "${../../../secrets/restic_backblaze_env.age}";
four_pwd.file = "${../../secrets/four_pwd.age}";
restic_four_pwd.file = "${../../secrets/restic_four_pwd.age}";
four_pwd.file = "${../../../secrets/four_pwd.age}";
restic_four_pwd.file = "${../../../secrets/restic_four_pwd.age}";
sgbk_pwd.file = "${../../secrets/sgbk_pwd.age}";
restic_sgbk_pwd.file = "${../../secrets/restic_sgbk_pwd.age}";
sgbk_pwd.file = "${../../../secrets/sgbk_pwd.age}";
restic_sgbk_pwd.file = "${../../../secrets/restic_sgbk_pwd.age}";
two_pwd.file = "${../../secrets/two_pwd.age}";
two_pwd.file = "${../../../secrets/two_pwd.age}";
};
services.fwupd.enable = true;