nixos-config/home/home.nix
2024-11-06 14:33:49 -05:00

533 lines
12 KiB
Nix

{ nix-flatpak, lib, pkgs, inputs, pkgs-stable, ... }:
{
nixpkgs.config.allowUnfree = true;
home = {
packages = with pkgs; [
just
yt-dlp
erdtree
age
figlet
ffmpeg-full
rlwrap
pinentry
gcr
gnutar
unzip
zip
stdenv
htop
dconf
dconf2nix
gnupg
gcc
gnutls
gettext
xorg.libX11
freetype.dev
gnumake
flex
bison
mesa
neofetch
nitch
ripgrep-all
silver-searcher
xclip
maestral
maestral-gui
nix-index
godot_4
sane-airscan
xsane
dbus
gst_all_1.gstreamer
alsa-oss
powertop
usbutils
pciutils
util-linux
coreutils
binutils
libgcc
cmake
raylib
raygui
SDL2.dev
protonplus
ispell
aspell
aspellDicts.en
aspellDicts.en-computers
texlive.combined.scheme-full
appimage-run
transmission_4-gtk
lsof
ruby
janet
jpm
python311
python311Packages.pip
python311Packages.mido
python311Packages.simpleeval
python311Packages.parsedatetime
python311Packages.pytz
python311Packages.pint
python311Packages.babel
python311Packages.requests
ruff
renderdoc
sbcl
sbclPackages.cffi
# sbclPackages.claw
# sbclPackages.claw-utils
sbclPackages.cffi-object
sbclPackages.cffi-object_dot_ops
# sbclPackages.cl-opengl
# sbclPackages.cl-renderdoc
ccl
racket
editorconfig-core-c
clang-tools
cljfmt
libxml2
gdtoolkit_4
zulu
nixfmt-rfc-style
wl-clipboard
maim
php
rustup
shfmt
shellcheck
html-tidy
libsecret
waylandpp.dev
wayland-utils
libffi.dev
nodejs_18
platformio-core
icloudpd
libheif
libheif.out
openal
pkg-config
ftgl
gperf
numbat
libGLU
glpng
libGL
# fontconfig
# freetype
nix-ld
# node packages
nodePackages.typescript-language-server
nodePackages.vscode-langservers-extracted
nodePackages.prettier
nodePackages.javascript-typescript-langserver
nodePackages.stylelint
nodePackages.svelte-language-server
nodePackages.typescript
nodePackages.js-beautify
nixd
# bottles-unwrapped
fishPlugins.foreign-env
fishPlugins.z
fishPlugins.fzf
fishPlugins.bass
fishPlugins.autopair
via
bitwarden-cli
bitwarden-desktop
# rbw
tailscale
font-manager
ulauncher
clipman
gnomeExtensions.just-perfection
gnomeExtensions.dash-to-dock
gnomeExtensions.solaar-extension
gnomeExtensions.paperwm
gnomeExtensions.media-controls
gnomeExtensions.looking-glass-button
gnome-software
gnome-tweaks
gnome-photos
xdg-desktop-portal-gnome
xdg-desktop-portal-gtk
soundconverter
gtop
wmctrl
sushi
colloid-gtk-theme
colloid-icon-theme
whitesur-gtk-theme
whitesur-cursors
whitesur-icon-theme
bibata-cursors
icloudpd
squirreldisk
papers
newsflash
planify
# fuzzel
borgbackup
wineWowPackages.stagingFull
wineWowPackages.fonts
winetricks
spice
spice-gtk
spice-protocol
virt-viewer
virt-manager
solaar
logitech-udev-rules
#syncthingtray
impression
zoom-us
nyxt
ungoogled-chromium
obsidian
vlc
polychromatic
discord
slack
signal-desktop
libreoffice
plexamp
carla
wireplumber
audacity
supercollider-with-plugins
bitwig-studio
pkgs-stable.blender
davinci-resolve-studio
steam
zotero_7
pkgs-stable.handbrake
renoise
yabridge
yabridgectl
ansel
krita
rawtherapee
inkscape
gimp
epson-escpr
pkgs-stable.kicad #install stable kicad because unstable breaks on python12 dependency
openscad-unstable
openscad-lsp
picard
evolutionWithPlugins
mpv
plugdata
pavucontrol
qpwgraph
coppwr
alsa-utils
alsa-tools
clapper
ardour
parinfer-rust-emacs
dockfmt
# Audio plugins (LV2, VST2, VST3, LADSPA)
eq10q
lsp-plugins
geonkick
bespokesynth
pkgs-stable.helm
surge
odin2
calf
chow-kick
chow-phaser
chow-centaur
chow-tape-model
easyeffects
vcv-rack
cardinal
roomeqwizard
# Fonts
fira-code
fira
cooper-hewitt
ibm-plex
jetbrains-mono
iosevka
# bitmap
spleen
fira-code-symbols
powerline-fonts
nerdfonts
];
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" ];
sessionVariables = {
EDITOR = "emacsclient -r";
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 = "***REMOVED***";
BW_CLIENTSECRET = "***REMOVED***";
};
stateVersion = "24.05";
};
fonts.fontconfig.enable = true;
programs = {
home-manager.enable = true;
direnv = {
enable = true;
nix-direnv.enable = true;
};
fish = {
enable = true;
shellAliases = {
"ls" = "eza";
".j" = "just -g";
};
};
starship = {
enable = true;
enableFishIntegration = true;
};
mu.enable = true;
mbsync.enable = true;
msmtp.enable = true;
emacs = {
enable = true;
package = pkgs.emacs;
extraPackages = epkgs: [
epkgs.mu4e
epkgs.vterm
epkgs.sly
epkgs.sly-quicklisp
epkgs.geiser-racket
epkgs.editorconfig
epkgs.shfmt
epkgs.nixpkgs-fmt
epkgs.nixfmt
epkgs.parinfer-rust-mode
];
};
ripgrep = {
enable = true;
};
thefuck = {
enable = true;
enableFishIntegration = true;
};
wezterm = {
enable = true;
};
bat = {
enable = true;
};
borgmatic = {
enable = true;
backups = {
eddie = {
location = {
patterns = [
"R /home/emenel"
"- home/emenel/.cache"
"- home/emenel/.nix*"
"- home/emenel/.steam*"
"- home/emenel/Dropbox"
"- home/emenel/Sync"
"- home/emenel/.dropbox*"
"- home/emenel/.BitwigStudio"
];
repositories = [
{
"path" = "ssh://oyi3ydnz@oyi3ydnz.repo.borgbase.com/./repo";
"label" = "eddie on borgbase";
}
];
};
retention = {
keepDaily = 3;
keepHourly = 3;
keepMonthly = 2;
};
};
};
};
eza = {
enable = true;
enableFishIntegration = true;
};
fd = {
enable = true;
};
fzf = {
enable = true;
enableFishIntegration = true;
};
git = {
enable = true;
lfs.enable = true;
};
htop.enable = true;
nnn = {
enable = true;
};
pandoc.enable = true;
password-store.enable = true;
#waybar.enable = true;
lazygit.enable = true;
jq.enable = true;
firefox.enable = true;
rbw.enable = true;
};
home.sessionVariables.NIXOS_OZONE_WL = "1";
dconf.settings = {
"org/gnome/desktop/background" = {
picture-options = "none";
primary-color = "#222222";
};
"org/gnome/shell/keybindings" = {
shift-overview-up = ["disabled"];
shift-overview-down = ["disabled"];
switch-to-application-1 = ["disabled"];
switch-to-application-2 = ["disabled"];
switch-to-application-3 = ["disabled"];
switch-to-application-4 = ["disabled"];
switch-to-application-5 = ["disabled"];
switch-to-application-6 = ["disabled"];
switch-to-application-7 = ["disabled"];
switch-to-application-8 = ["disabled"];
switch-to-application-9 = ["disabled"];
switch-to-application-10 = ["disabled"];
};
"org/gnome/desktop/wm/keybindings" = {
switch-to-workspace-up = ["disabled"];
switch-to-workspace-down = ["disabled"];
move-to-workspace-up = ["disabled"];
move-to-workspace-down = ["disabled"];
};
};
nixpkgs.config.packageOverrides = pkgs: {
renoise = pkgs.renoise.override {
releasePath = ../binary-installers/rns_344_linux_x86_64.tar.gz;
};
raylib = pkgs.raylib.overrideDerivation (previous: {
name = "raylib-head";
src = pkgs.fetchFromGitHub {
owner = "raysan5";
repo = "raylib";
hash = "sha256-PHYdAEhittShd1UhASdhmq0nGHEEVZEUGcjCUUJZl9g=";
rev = "c9c830cb971d7aa744fe3c7444b768ccd5176c4c";
};
patches = [""];
});
};
services = {
flatpak.enable = true;
syncthing = {
enable = true;
#tray.enable = true;
};
borgmatic = {
enable = true;
};
gpg-agent = {
enable = true;
enableFishIntegration = true;
};
};
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.packages = [
"com.github.tchx84.Flatseal"
"com.github.johnfactotum.QuickLookup"
"com.heroicgameslauncher.hgl"
"io.github.dgsasha.Remembrance"
"nl.hjdskes.gcolor3"
];
systemd.user.enable = true;
systemd.user.sessionVariables = {
GSK_RENDERER = "ngl";
MOZ_ENABLE_WAYLAND = 1;
};
systemd.user.services.ulauncher = {
Unit = {
Description = "Start Ulauncher";
PartOf=["grapical-session.target"];
};
# Install = {
# WantedBy = [ "graphical-session.target" ];
# };
Service = {
ExecStart = ''${pkgs.ulauncher}/bin/ulauncher --hide-window'';
};
};
home.file.".npmrc".source = ../dotfiles/dot_npmrc;
xdg.configFile."kmonad".source = ../dotfiles/dot_config/kmonad;
xdg.configFile."just/justfile".source = ../dotfiles/dot_config/just/justfile;
xdg.configFile."starship.toml".source = ../dotfiles/dot_config/starship.toml;
xdg.configFile."wezterm".source = ../dotfiles/dot_config/wezterm;
xdg.configFile."git".source = ../dotfiles/dot_config/git;
xdg.configFile."rbw".source = ../dotfiles/dot_config/rbw;
home.file.".sbclrc".source = ../dotfiles/dot_sbclrc;
home.file.".signature".source = ../dotfiles/dot_signature;
home.file.".config/fish/functions" = {
source = ../dotfiles/dot_config/fish/functions;
recursive = true;
};
home.file.".config/fish/completions" = {
source = ../dotfiles/dot_config/fish/completions;
recursive = true;
};
xdg.configFile."emacs".enable = false;
home.file.".msmtprc".source = ../dotfiles/dot_msmtprc;
home.file.".mbsyncrc".source = ../dotfiles/dot_mbsyncrc;
home.file.".local/bin" = {
source = ../dotfiles/dot_local/bin;
recursive = true;
};
home.file.".local/share/flf".source = ../dotfiles/dot_local/share/flf;
}