Merge pull request 'init-vanadium' (#2) from init-vanadium into mistress

Reviewed-on: https://codeberg.org/leana8959/.files/pulls/2
This commit is contained in:
Léana 2025-01-06 19:16:59 +00:00
commit 8aeb16615a
37 changed files with 1478 additions and 60 deletions

View file

@ -0,0 +1,45 @@
{ pkgs, lib, ... }:
{
services.autoupdate = {
# TODO: enable backup
enable = false;
settings = {
"dotfiles" = {
path = "/home/leana/.dotfiles";
updateCommand = ''
nix flake update nixpkgs
nix flake update home-manager
nix flake update nur
nix flake update flake-parts
nix flake update pre-commit-hooks
nix flake update deploy-rs
nix build ".?ref=$(git rev-parse @^)#nixosConfigurations.carbon.config.system.build.toplevel" --out-link last
nix build ".#nixosConfigurations.carbon.config.system.build.toplevel"
'';
commitMessageCommand = ''
${lib.getExe pkgs.nvd} diff last result
unlink last
'';
};
"nixiode" = {
path = "/home/leana/r/leana/nixiode";
updateCommand = ''
nix flake update nixpkgs
nix flake update home-manager
nix flake update blog
nix flake update cv
nix build ".?ref=$(git rev-parse @^)#nixosConfigurations.forgejo.config.system.build.toplevel" --out-link last
nix build ".#nixosConfigurations.forgejo.config.system.build.toplevel"
'';
commitMessageCommand = ''
${lib.getExe pkgs.nvd} diff last result
unlink last
'';
};
};
};
}

View file

@ -0,0 +1,72 @@
{ pkgs, ... }:
let
inherit (pkgs) myPkgs;
in
{
imports = [
./firefox.nix
./gui.nix
./autoupdate.nix
# system-wide language servers, build tools, compilers
./dev.nix
];
home.packages = [
pkgs.zip
pkgs.unzip
pkgs.gnutar
pkgs.p7zip
pkgs.bc
# pdf utilities
pkgs.poppler_utils # pdfseparate, pdfunite
myPkgs.easyscan
pkgs.ranger
pkgs.discord
pkgs.fractal
pkgs.teams-for-linux
pkgs.evolution
pkgs.rawtherapee
pkgs.vlc
pkgs.calibre
myPkgs.prop-solveur
myPkgs.hbf
pkgs.lucky-commit
];
programs = {
kitty.enable = true;
password-store.enable = true;
feh.enable = true;
sioyek.enable = true;
cmus.enable = true;
};
i18n.inputMethod.enabled = "fcitx5";
services.battery-notify = {
enable = true;
device_full = "/sys/class/power_supply/BAT1/energy_full";
device_now = "/sys/class/power_supply/BAT1/energy_now";
};
xdg.mimeApps = {
enable = true;
associations.added = {
"x-scheme-handler/mailto" = [ "org.gnome.Evolution.desktop" ];
"x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ];
};
defaultApplications = {
"x-scheme-handler/mailto" = [ "org.gnome.Evolution.desktop" ];
"x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ];
};
};
}

View file

@ -0,0 +1,109 @@
{ pkgs, config, ... }:
let
inherit (pkgs) myPkgs;
in
{
home.packages = [
pkgs.gnumake
pkgs.cmake
pkgs.iconv
pkgs.sqlite
# pkgs.jetbrains.idea-community
# # keyboard
# pkgs.clang-tools
# pkgs.qmk
# pkgs.wally-cli
# golang
pkgs.go
pkgs.golangci-lint
pkgs.gofumpt
# typescript
pkgs.typescript
pkgs.nodejs_20
pkgs.vscode-langservers-extracted # HTML/CSS/JSON/ESLint
pkgs.nodePackages."@angular/cli" # module WE
# rust
pkgs.cargo
pkgs.rustc
pkgs.rustfmt
# java
pkgs.maven
# scala
(pkgs.sbt.override { jre = config.programs.java.package; })
(pkgs.scala.override { jre = config.programs.java.package; })
(pkgs.metals.override { jre = config.programs.java.package; })
(pkgs.ammonite.override { jre = config.programs.java.package; })
# isabelle
pkgs.isabelle # module ACF
# preview markdown
pkgs.python3Packages.grip
# typst
myPkgs.typst-mutilate
# xmonad development/configuartion
pkgs.cabal-install
(pkgs.haskellPackages.ghcWithPackages (self: [
self.xmonad-contrib
self.xmonad-extras
]))
pkgs.haskell-language-server
];
programs.neovim.extraPackages = [
# fish
pkgs.fish-lsp
# golang
pkgs.gopls
pkgs.golangci-lint-langserver
# typescript
pkgs.nodePackages.typescript-language-server
# rust
pkgs.rust-analyzer
# java
pkgs.jdt-language-server
];
programs.git.signing.signByDefault = true;
programs.vscode = {
enable = true;
extensions = [
(pkgs.vscode-extensions.redhat.java.overrideAttrs { jdk = config.programs.java.package; })
pkgs.vscode-extensions.vscjava.vscode-java-pack
];
};
programs.go = {
enable = true;
goPath = ".go";
};
programs.java = {
enable = true;
package = pkgs.jdk17.override { enableJavaFX = true; };
};
programs.git.maintenance = {
enable = true;
repositories = [
"/home/leana/r/leana8959/nixpkgs"
];
};
}

View file

@ -0,0 +1,44 @@
{ pkgs, ... }:
let
inherit (pkgs) nur;
in
{
programs.firefox = {
enable = true;
policies.SearchEngines = {
Default = "searxng";
Add = [
{
Name = "searxng";
URLTemplate = "https://searxng.earth2077.fr/search?q={searchTerms}";
}
];
};
profiles.leana = {
settings = {
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"layout.css.devPixelsPerPx" = 1.2;
"browser.tabs.loadInBackground" = true;
"browser.ctrlTab.sortByRecentlyUsed" = false;
};
extensions =
let
addons = nur.repos.rycee.firefox-addons;
in
[
addons.sponsorblock
# flaky, find a better source to be fetched
# addons.bypass-paywalls-clean
];
};
};
}

View file

@ -0,0 +1,59 @@
{ pkgs, ... }:
let
inherit (pkgs) myPkgs;
in
{
home.pointerCursor = {
x11.enable = true;
gtk.enable = true;
name = "volantes_cursors";
package = pkgs.volantes-cursors;
size = 64;
};
home.file = {
".xscreensaver".source = ./xscreensaver/.xscreensaver;
".wallpaper".source = "${pkgs.wallpapers.nix-logo-lambda}/main.svg";
};
# https://wiki.archlinux.org/title/java#Gray_window,_applications_not_resizing_with_WM,_menus_immediately_closing
# fix all java things that don't scale with XMonad
home.sessionVariables = {
_JAVA_AWT_WM_NONREPARENTING = 1;
};
home.packages = [
# Fonts
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
myPkgs.altiosevka-nerd-font-mono
myPkgs.altiosevka
pkgs.jetbrains-mono
# wm utilities
pkgs.alsa-utils # used to fetch volume in xmobar
myPkgs.xbrightness
pkgs.wired
pkgs.dmenu
pkgs.xclip
pkgs.playerctl
pkgs.hacksaw
pkgs.shotgun
# talk to xscreensaver
pkgs.xscreensaver
pkgs.xcolor
# audio utilities
pkgs.helvum
pkgs.pavucontrol
pkgs.easyeffects
];
services.wired.enable = true;
}

View file

@ -0,0 +1,43 @@
{
programs.xmobar.extraConfig = ''
Config { overrideRedirect = False
, font = "Iosevka 11"
, additionalFonts = [ "Noto Color Emoji 9"
]
, bgColor = "#000000"
, fgColor = "#FFFFFF"
, position = Bottom
, commands = [ Run Kbd
[ ("myDvorakFrench", "🇫🇷")
, ("myDvorak", "🇺🇸")
, ("us", "🇹🇼")
]
, Run ThermalZone 2 ["-t", "󰔏 <temp>°C"] 30
, Run Alsa "default" "Master"
[ "-t", "<status> <volume>%"
, "--"
, "-O", "󰕾"
, "-o", "󰖁"
]
, Run Memory [ "-t", "󰍛 <usedratio>%" ] 30
, 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% }{ %kbd% | %alsa:default:Master% | %thermal2% | %memory% | %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:10:00
cycle: 0:10: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: False
dpmsQuickOff: False
dpmsStandby: 2:00:00
dpmsSuspend: 2:00:00
dpmsOff: 4:00: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