nixos-config/homes/emenel/default.nix
2025-02-07 18:15:39 -05:00

478 lines
10 KiB
Nix

{ nix-config, config, lib, pkgs, inputs, ... }:
{
nixpkgs = {
config = {
allowUnfree = true;
};
overlays = builtins.attrValues nix-config.overlays
++ [
inputs.emacs-overlay.overlays.default
inputs.audio.overlays.default
inputs.niri.overlays.niri
inputs.nix-rice.overlays.default
];
};
imports = with nix-config.homeModules; [
mako
mpv
yazi
hyprlock
hypridle
shell-conf # shell, shell utils, cli tools, libs, tui's
email
gnome
niri
# shikane
];
home = {
packages = lib.mkMerge [
[
inputs.affinity-nix.packages.x86_64-linux.photo
inputs.affinity-nix.packages.x86_64-linux.publisher
inputs.affinity-nix.packages.x86_64-linux.designer
]
(with nix-config.packages.x86_64-linux; [
mioctl
tal.bassline
tal.j8
tal.u-no-lx
chair-audio.snare
chair-audio.cymb
the-usual-suspects.vavra
the-usual-suspects.nodal-red
the-usual-suspects.xenia
the-usual-suspects.ostirus
the-usual-suspects.osirus
paulxstretch
])
(with pkgs; [
guix
thonny
bitwig-studio5-latest
wayback
dconf
xorg.libX11
xorg.libxcb
freetype
neofetch
nvd
ripgrep-all
silver-searcher
maestral
maestral-gui
fstl
godot_4
sane-airscan
xsane
dbus
gst_all_1.gstreamer
alsa-oss
powertop
age
sops
protonplus
ispell
(aspellWithDicts (dicts: with dicts; [ en en-computers en-science es fr ]))
texlive.combined.scheme-full
appimage-run
libappimage
transmission_4-gtk
guile
python3
ruff
(sbcl.withPackages (ps: with ps; [
cffi
arrow-macros
alexandria
serapeum
]))
kdotool
ccl
racket
gdu
poppler_utils
cljfmt
libxml2
gdtoolkit_4
nixfmt-rfc-style
wl-clipboard
clipse
maim
php
rustup
shfmt
html-tidy
wayland-utils
libheif.out
openal
freecad
procs
rpi-imager
caligula
flatpak
prusa-slicer
via
vial
bitwarden-cli
bitwarden-desktop
tailscale
trayscale
font-manager
scribus
pdfarranger
tdf
pdfchain
pdftk
zathura
gpu-viewer
wl-mirror
soundconverter
wmctrl
colloid-icon-theme
whitesur-gtk-theme
whitesur-cursors
whitesur-icon-theme
bibata-cursors
adwaita-qt
icloudpd
squirreldisk
papers
newsflash
borgbackup
stirling-pdf
trash-cli
ripdrag
wineWowPackages.stagingFull
winetricks
(yabridge.override {
wine = wineWowPackages.stagingFull;
})
(yabridgectl.override {
wine = wineWowPackages.stagingFull;
})
sway-launcher-desktop
swayosd
spice
spice-gtk
spice-protocol
virt-viewer
virt-manager
thunderbird-latest
emojify
smile
impression
zoom-us
nyxt
ungoogled-chromium
obsidian
vlc
polychromatic
discord
slack
signal-desktop
eyedropper
onlyoffice-desktopeditors
libreoffice
hyphenDicts.en_US
plex-mpv-shim
plexamp
carla
switcheroo
tenacity
supercollider-with-plugins
blender
davinci-resolve-studio
steam
processing
zotero
jre
tesseract
handbrake
renoise
krita
rawtherapee
inkscape
gimp
epsonscan2
kicad
turbocase
openscad-unstable
openscad-lsp
picard
evolutionWithPlugins
plugdata
pavucontrol
qpwgraph
helvum
coppwr
alsa-utils
alsa-tools
clapper
ardour
dockfmt
impala
fractal
oculante
farge
halloy
paleta
tree-sitter
(tree-sitter.withPlugins (_: tree-sitter.allGrammars))
# Audio plugins (LV2, VST2, VST3, LADSPA)
eq10q
geonkick
bespokesynth
helm
surge
odin2
calf
chow-kick
chow-phaser
chow-centaur
chow-tape-model
chow-multitool
easyeffects
vcv-rack
cardinal
roomeqwizard
guitarix
vital
helio-workstation
stochas
])
];
username = "emenel";
homeDirectory = "/home/emenel";
sessionPath = [ "/home/emenel/.config/emacs/bin" "/home/emenel/.npm-packages/bin" "/home/emenel/Applications" "/home/emenel/.local/bin" "/home/emenel/.local/share" "/home/emenel/.nix-profile/lib"];
sessionVariables = {
WINEFSYNC = 1;
PKG_CONFIG_PATH = "/home/emenel/.nix-profile/lib/pkgconfig:/home/emenel/.nix-profile/lib64/pkgconfig:/home/emenal/.nix-profile/share/pkgconfig";
GI_TYPELIB_PATH = "/run/current-system/sw/lib/girepository-1.0";
BW_CLIENTID = "$(cat ${config.sops.defaultSymlinkPath}/bw_client_id)";
BW_CLIENTSECRET = "$(cat ${config.sops.defaultSymlinkPath}/bw_api_key)";
NIXOS_OZONE_WL = "1";
GSK_RENDERER = "ngl";
MOZ_ENABLE_WAYLAND = 1;
};
pointerCursor = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 24;
gtk.enable = true;
x11.enable = true;
};
stateVersion = "24.05";
};
gtk.cursorTheme = {
name = "Bibata-Modern-Classic";
package = pkgs.bibata-cursors;
};
fonts = {
fontconfig = {
enable = true;
};
};
sops = {
age.keyFile = "/home/emenel/.config/sops/age/keys.txt"; # must have no password!
defaultSopsFile = ./secrets.yaml;
secrets = {
bw_client_id = {
path = "${config.sops.defaultSymlinkPath}/bw_client_id";
};
bw_api_key = {
path = "${config.sops.defaultSymlinkPath}/bw_api_key";
};
ssh_key = {
path = "${config.sops.defaultSymlinkPath}/ssh_key";
};
borg_url = {
path = "${config.sops.defaultSymlinkPath}/borg_url";
};
};
};
programs = {
home-manager.enable = true;
emacs = {
enable = true;
package = ((pkgs.emacsPackagesFor pkgs.emacs29-pgtk).emacsWithPackages (
epkgs: [
epkgs.vterm
epkgs.all-the-icons
epkgs.mu4e
epkgs.sly
epkgs.sly-quicklisp
epkgs.geiser-racket
epkgs.editorconfig
epkgs.shfmt
epkgs.nixpkgs-fmt
epkgs.nixfmt
epkgs.parinfer-rust-mode
epkgs.manualPackages.tree-sitter-langs
epkgs.manualPackages.treesit-grammars.with-all-grammars
epkgs.pretty-sha-path
epkgs.pdf-tools
]
));
};
pandoc.enable = true;
password-store.enable = true;
firefox.enable = true;
};
nixpkgs.config.packageOverrides = pkgs: {
renoise = pkgs.renoise.override {
releasePath = ../../assets/binary-installers/rns_344_linux_x86_64.tar.gz;
};
};
services = {
playerctld = {
enable = true;
package = pkgs.playerctl;
};
syncthing = {
enable = true;
# tray.enable = true;
};
borgmatic = {
enable = true;
};
gpg-agent = {
enable = true;
};
emacs = {
enable = true;
defaultEditor = true;
package = ((pkgs.emacsPackagesFor pkgs.emacs29-pgtk).emacsWithPackages (
epkgs: [
epkgs.vterm
epkgs.mu4e
epkgs.sly
epkgs.sly-quicklisp
epkgs.geiser-racket
epkgs.editorconfig
epkgs.shfmt
epkgs.nixpkgs-fmt
epkgs.nixfmt
epkgs.parinfer-rust-mode
epkgs.manualPackages.tree-sitter-langs
epkgs.manualPackages.treesit-grammars.with-all-grammars
epkgs.pretty-sha-path
epkgs.pdf-tools
]
));
socketActivation.enable = true;
client = {
enable = true;
arguments = ["-n" "-r"];
};
};
};
xdg.systemDirs.data = [
"/home/emenel/.local/share/applications/wine/Programs"
"/home/emenel/.local/share/applications"
"/var/lib/flatpak/exports/share"
"/home/emenel/.local/share/flatpak/exports/share"
"/home/emenel/.nix-profile/share/applications"
];
services.flatpak = {
enable = true;
packages = [
"com.github.tchx84.Flatseal"
"dev.qwery.AddWater"
];
};
systemd.user = {
enable = true;
startServices = "sd-switch"; # auto reload services when home is rebuilt
sessionVariables = {
GSK_RENDERER = "ngl";
MOZ_ENABLE_WAYLAND = 1;
};
};
# moving files!
xdg.configFile."halloy/config.toml".source = ./dotfiles/dot_config/halloy/config.toml;
xdg.configFile."waybar".source = ./dotfiles/dot_config/waybar;
home.file.".npmrc".source = ./dotfiles/dot_npmrc;
home.file.".vst3/yabridge/yabridge.toml".source = ./dotfiles/dot_vst3/yabridge.toml;
home.file.".sbclrc".source = ./dotfiles/dot_sbclrc;
home.file.".signature".source = ./dotfiles/dot_signature;
xdg.configFile."emacs".enable = false;
home.file.".local/bin" = {
source = ./dotfiles/dot_local/bin;
recursive = true;
};
home.file.".local/share/The Usual Suspects/Vavra" = {
recursive = true;
source = ../../packages/the-usual-suspects/vavra;
};
home.file.".local/share/The Usual Suspects/Xenia" = {
recursive = true;
source = ../../packages/the-usual-suspects/xenia;
};
home.file.".local/share/The Usual Suspects/Osirus" = {
recursive = true;
source = ../../packages/the-usual-suspects/osirus;
};
home.file.".local/share/The Usual Suspects/OsTIrus" = {
recursive = true;
source = ../../packages/the-usual-suspects/ostirus;
};
home.file.".local/share/The Usual Suspects/NodalRed2x" = {
recursive = true;
source = ../../packages/the-usual-suspects/nodal-red;
};
}