major refactor and reorg

This commit is contained in:
Matt Nish-Lapidus 2025-02-04 10:21:52 -05:00
parent fd3cedfa93
commit 3c69cf9c74
86 changed files with 811 additions and 984 deletions

Binary file not shown.

Binary file not shown.

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -88,53 +88,21 @@
};
};
outputs = {nixpkgs, home-manager, sops-nix, musnix, self, ... } @ inputs:
let
inherit (self) outputs;
# Supported systems for your flake packages, shell, etc.
systems = [
"x86_64-linux"
];
# This is a function that generates an attribute by calling a function you
# pass to it, with each system as an argument
forAllSystems = nixpkgs.lib.genAttrs systems;
in {
packages = forAllSystems (system: import ./packages nixpkgs.legacyPackages.${system});
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
overlays = import ./overlays {inherit inputs;};
outputs = {nixpkgs, home-manager, self, ... } @ inputs: {
nixosConfigurations = {
eddie = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit inputs outputs;
inherit self inputs;
};
modules = [
sops-nix.nixosModules.sops
inputs.sops-nix.nixosModules.sops
inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.kmonad.nixosModules.default
musnix.nixosModules.musnix
./system/eddie/configuration.nix
];
};
};
homeConfigurations = {
"emenel" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
extraSpecialArgs = {
inherit inputs outputs;
};
modules = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.stylix.homeManagerModules.stylix
sops-nix.homeManagerModules.sops
./home/home.nix
inputs.musnix.nixosModules.musnix
home-manager.nixosModules.home-manager
./hosts/eddie
./homes/emenel/default.nix
];
};
};

View file

@ -1,800 +0,0 @@
{ config, lib, pkgs, inputs, outputs, ... }:
{
nixpkgs = {
overlays = [
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
outputs.overlays.emacs-overlay
];
config = {
allowUnfree = true;
};
};
home = {
packages = with pkgs; [
inputs.affinity-nix.packages.x86_64-linux.photo
inputs.affinity-nix.packages.x86_64-linux.publisher
inputs.affinity-nix.packages.x86_64-linux.designer
inputs.shikane.packages.x86_64-linux.default
guix
unstable.thonny
inputs.isd.packages.x86_64-linux.default
wayback
just
yt-dlp
erdtree
age
figlet
ffmpeg-full
rlwrap
pinentry
gcr
gnutar
libnotify
unzip
zip
stdenv
tldr
delta
htop
dconf
dconf2nix
readline
gnupg
imagemagick
gnutls
gettext
xorg.libX11
xorg.libxcb
freetype
gnumake
flex
bison
mesa
neofetch
nvd
nitch
ripgrep-all
silver-searcher
maestral
maestral-gui
nix-index
fstl
godot_4
sane-airscan
xsane
dbus
gst_all_1.gstreamer
alsa-oss
powertop
unstable.hypridle
age
sops
nix-du
usbutils
pciutils
util-linux
coreutils
binutils
protonplus
ispell
(aspellWithDicts (dicts: with dicts; [ en en-computers en-science es fr ]))
texlive.combined.scheme-full
appimage-run
libappimage
transmission_4-gtk
lsof
guile
python311
python311Packages.pip
python311Packages.mido
python311Packages.simpleeval
python311Packages.parsedatetime
python311Packages.pytz
python311Packages.pint
python311Packages.babel
python311Packages.requests
python311Packages.distutils-extra
python311Packages.distlib
ruff
(sbcl.withPackages (ps: with ps; [
cffi
arrow-macros
alexandria
serapeum
]))
kdlfmt
kdotool
ccl
racket
gdu
poppler_utils
editorconfig-core-c
cljfmt
libxml2
gdtoolkit_4
openssl.out
nixfmt-rfc-style
wl-clipboard
unstable.clipse
maim
php
rustup
shfmt
html-tidy
libsecret
samba4Full
shellcheck
wayland-utils
libffi.dev
nodejs_18
platformio-core
icloudpd
libheif.out
openal
pkg-config
ftgl
gperf
numbat
glpng
nurl
freecad
procs
rpi-imager
caligula
prusa-slicer
# global 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
nixdoc
nix-init
git-annex
fishPlugins.foreign-env
fishPlugins.z
fishPlugins.fzf-fish
fishPlugins.bass
fishPlugins.autopair
fishPlugins.forgit
fishPlugins.colored-man-pages
imgcat
via
vial
bitwarden-cli
bitwarden-desktop
tailscale
trayscale
font-manager
scribus
pdfarranger
tdf
pdfchain
pdftk
ghostscript
zathura
gpu-viewer
mesa-demos
gnomeExtensions.just-perfection
gnomeExtensions.dash-to-dock
gnomeExtensions.paperwm
gnomeExtensions.custom-hot-corners-extended
gnomeExtensions.media-controls
gnomeExtensions.looking-glass-button
gnomeExtensions.auto-power-profile
gnomeExtensions.appindicator
gnome-software
gnome-tweaks
gnome-photos
gnome-keyring
ulauncher
wl-mirror
unstable.nwg-look
soundconverter
gtop
wmctrl
colloid-gtk-theme
colloid-icon-theme
whitesur-gtk-theme
whitesur-cursors
whitesur-icon-theme
bibata-cursors
adwaita-qt
icloudpd
squirreldisk
papers
newsflash
planify
borgbackup
vorta
stirling-pdf
trash-cli
ripdrag
wineWowPackages.stagingFull
winetricks
(yabridge.override {
wine = wineWowPackages.stagingFull;
})
(yabridgectl.override {
wine = wineWowPackages.stagingFull;
})
chayang
sway-launcher-desktop
unstable.swayosd
spice
spice-gtk
spice-protocol
virt-viewer
virt-manager
bfg-repo-cleaner
thunderbird-latest
emojify
smile
gnomeExtensions.smile-complementary-extension
impression
zoom-us
nyxt
unstable.ungoogled-chromium
obsidian
vlc
unstable.polychromatic
discord
slack
signal-desktop
eyedropper
calcurse
onlyoffice-desktopeditors
libreoffice
hyphenDicts.en_US
unstable.plexamp
rmpc
resources
carla
switcheroo
tenacity
supercollider-with-plugins
bitwig-studio-beta
blender
davinci-resolve-studio
steam
unstable.processing
zotero
jre
tesseract
handbrake
renoise
krita
darling
darling-dmg
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
unstable.playerctl
mioctl
oculante
unstable.door-knocker
inputs.hyprpicker.packages.x86_64-linux.default
farge
unstable.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
easyeffects
vcv-rack
cardinal
roomeqwizard
guitarix
# paulxstretch
vital
helio-workstation
stochas
tal-bassline
tal-j8
tal-u-no-lx
amplocker
chair-snare
chair-cymb
tus-vavra
tus-nodal-red
tus-xenia
tus-ostirus
tus-osirus
# Fonts
fira-code
fira
cooper-hewitt
ibm-plex
jetbrains-mono
iosevka
spleen
fira-code-symbols
powerline-fonts
nerdfonts
noto-fonts-color-emoji
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
];
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 = "Bibtata-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;
defaultSymlinkPath = "/run/user/1000/secrets";
defaultSecretsMountPoint = "/run/user/1000/secrets.d";
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;
};
mpv = {
enable = true;
package = (pkgs.unstable.mpv-unwrapped.wrapper {
scripts = with pkgs.unstable.mpvScripts; [
thumbfast
modernz
];
mpv = pkgs.unstable.mpv-unwrapped.override {
waylandSupport = true;
ffmpeg = pkgs.ffmpeg-full;
};
});
config = {
osc = "no";
profile = "high-quality";
ytdl-format = "bestvideo+bestaudio";
cache-default = 4000000;
};
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
yazi = {
enable = true;
enableFishIntegration = true;
package = inputs.yazi.packages.x86_64-linux.default;
};
fish = {
enable = true;
shellAliases = {
"ls" = "eza";
".j" = "just -g";
"em" = "emacsclient -n -r";
"mkdir" = "mkdir -pv";
};
interactiveShellInit = ''
bind --erase \ct
'';
plugins = [
{
name = "upto";
src = pkgs.fetchFromGitHub {
owner = "Markcial";
repo = "upto";
rev = "2d1f35453fb55747d50da8c1cb1809840f99a646";
sha256 = "sha256-Lv2XtP2x9dkIkUUjMBWVpAs/l55Ztu7gIjKYH6ZzK4s=";
};
}
];
};
zoxide = {
enable = true;
};
starship = {
enable = true;
};
mu.enable = true;
mbsync.enable = true;
msmtp.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
]
));
};
ripgrep = {
enable = true;
};
thefuck = {
enable = true;
};
wezterm = {
enable = true;
package = inputs.wezterm.packages.${pkgs.system}.default;
};
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"
"- home/emenel/.local/share/bitwig"
];
repositories = [
{
"path" = "ssh://oyi3ydnz@oyi3ydnz.repo.borgbase.com/./repo";
"label" = "eddie on borgbase";
}
];
};
retention = {
keepDaily = 3;
keepHourly = 3;
keepMonthly = 2;
};
};
};
};
eza = {
enable = true;
};
fd = {
enable = true;
};
fzf = {
enable = true;
enableFishIntegration = false;
};
broot = {
enable = true;
};
git = {
enable = true;
lfs.enable = true;
};
htop.enable = true;
nnn = {
enable = true;
};
pandoc.enable = true;
password-store.enable = true;
wlogout = {
enable = true;
};
hyprlock = {
enable = true;
};
waybar = {
enable = true;
package = pkgs.unstable.waybar;
# systemd = {
# enable = true;
# # target = "graphical-session.target";
# };
};
eww = {
enable = true;
configDir = ../dotfiles/dot_config/eww;
};
lazygit.enable = true;
jq.enable = true;
firefox.enable = true;
rbw = {
enable = true;
package = pkgs.rbw-latest;
};
};
dconf.settings = {
"org/gnome/desktop/background" = {
picture-options = "none";
primary-color = "#000000";
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
"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;
};
};
services = {
playerctld = {
enable = true;
package = pkgs.unstable.playerctl;
};
mako = {
enable = true;
};
flatpak.enable = true;
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"];
};
};
};
# stylix = {
# enable = true;
# base16Scheme = "${pkgs.base16-schemes}/share/themes/oxocarbon-dark.yaml";
# image = ./akira.png;
# cursor = {
# package = pkgs.bibata-cursors;
# name = "Bibtata-Modern-Classic";
# size = 24;
# };
# };
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"
"nl.hjdskes.gcolor3"
"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."mako".source = ../dotfiles/dot_config/mako;
xdg.configFile."hypr".source = ../dotfiles/dot_config/hypr;
xdg.configFile."halloy/config.toml".source = ../dotfiles/dot_config/halloy/config.toml;
xdg.configFile."waybar".source = ../dotfiles/dot_config/waybar;
xdg.configFile."just/justfile".source = ../dotfiles/dot_config/just/justfile;
xdg.configFile."starship.toml".source = ../dotfiles/dot_config/starship.toml;
xdg.configFile."ghostty".source = ../dotfiles/dot_config/ghostty;
xdg.configFile."wezterm".source = ../dotfiles/dot_config/wezterm;
xdg.configFile."git".source = ../dotfiles/dot_config/git;
xdg.configFile."rbw".source = ../dotfiles/dot_config/rbw;
xdg.configFile."niri/config.kdl".source = ../dotfiles/dot_config/niri/config.kdl;
xdg.configFile."shikane".source = ../dotfiles/dot_config/shikane;
home.file.".ssh/config".source = ../dotfiles/dot_ssh/config;
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;
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."yazi" = {
source = ../dotfiles/dot_config/yazi;
recursive = true;
};
xdg.configFile."emacs".enable = false;
home.file.".msmtprc".source = ../dotfiles/dot_msmtprc;
home.file.".mbsyncrc".source = ../dotfiles/dot_mbsyncrc;
xdg.configFile."isyncrc".enable = false;
home.file.".local/bin" = {
source = ../dotfiles/dot_local/bin;
recursive = true;
};
home.file.".local/share/flf".source = ../dotfiles/dot_local/share/flf;
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;
};
}

791
homes/emenel/default.nix Normal file
View file

@ -0,0 +1,791 @@
{ config, lib, pkgs, inputs, outputs, ... }:
{
home-manager.backupFileExtension = "backup";
home-manager.extraSpecialArgs = { inherit inputs variables; };
home-manager.users.emenel = {
home = {
packages = with pkgs; [
inputs.affinity-nix.packages.x86_64-linux.photo
inputs.affinity-nix.packages.x86_64-linux.publisher
inputs.affinity-nix.packages.x86_64-linux.designer
inputs.shikane.packages.x86_64-linux.default
guix
unstable.thonny
inputs.isd.packages.x86_64-linux.default
wayback
just
yt-dlp
erdtree
age
figlet
ffmpeg-full
rlwrap
pinentry
gcr
gnutar
libnotify
unzip
zip
stdenv
tldr
delta
htop
dconf
dconf2nix
readline
gnupg
imagemagick
gnutls
gettext
xorg.libX11
xorg.libxcb
freetype
gnumake
flex
bison
mesa
neofetch
nvd
nitch
ripgrep-all
silver-searcher
maestral
maestral-gui
nix-index
fstl
godot_4
sane-airscan
xsane
dbus
gst_all_1.gstreamer
alsa-oss
powertop
unstable.hypridle
age
sops
nix-du
usbutils
pciutils
util-linux
coreutils
binutils
protonplus
ispell
(aspellWithDicts (dicts: with dicts; [ en en-computers en-science es fr ]))
texlive.combined.scheme-full
appimage-run
libappimage
transmission_4-gtk
lsof
guile
python311
python311Packages.pip
python311Packages.mido
python311Packages.simpleeval
python311Packages.parsedatetime
python311Packages.pytz
python311Packages.pint
python311Packages.babel
python311Packages.requests
python311Packages.distutils-extra
python311Packages.distlib
ruff
(sbcl.withPackages (ps: with ps; [
cffi
arrow-macros
alexandria
serapeum
]))
kdlfmt
kdotool
ccl
racket
gdu
poppler_utils
editorconfig-core-c
cljfmt
libxml2
gdtoolkit_4
openssl.out
nixfmt-rfc-style
wl-clipboard
unstable.clipse
maim
php
rustup
shfmt
html-tidy
libsecret
samba4Full
shellcheck
wayland-utils
libffi.dev
nodejs_18
platformio-core
icloudpd
libheif.out
openal
pkg-config
ftgl
gperf
numbat
glpng
nurl
freecad
procs
rpi-imager
caligula
prusa-slicer
# global 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
nixdoc
nix-init
git-annex
fishPlugins.foreign-env
fishPlugins.z
fishPlugins.fzf-fish
fishPlugins.bass
fishPlugins.autopair
fishPlugins.forgit
fishPlugins.colored-man-pages
imgcat
via
vial
bitwarden-cli
bitwarden-desktop
tailscale
trayscale
font-manager
scribus
pdfarranger
tdf
pdfchain
pdftk
ghostscript
zathura
gpu-viewer
mesa-demos
gnomeExtensions.just-perfection
gnomeExtensions.dash-to-dock
gnomeExtensions.paperwm
gnomeExtensions.custom-hot-corners-extended
gnomeExtensions.media-controls
gnomeExtensions.looking-glass-button
gnomeExtensions.auto-power-profile
gnomeExtensions.appindicator
gnome-software
gnome-tweaks
gnome-photos
gnome-keyring
ulauncher
wl-mirror
unstable.nwg-look
soundconverter
gtop
wmctrl
colloid-gtk-theme
colloid-icon-theme
whitesur-gtk-theme
whitesur-cursors
whitesur-icon-theme
bibata-cursors
adwaita-qt
icloudpd
squirreldisk
papers
newsflash
planify
borgbackup
vorta
stirling-pdf
trash-cli
ripdrag
wineWowPackages.stagingFull
winetricks
(yabridge.override {
wine = wineWowPackages.stagingFull;
})
(yabridgectl.override {
wine = wineWowPackages.stagingFull;
})
chayang
sway-launcher-desktop
unstable.swayosd
spice
spice-gtk
spice-protocol
virt-viewer
virt-manager
bfg-repo-cleaner
thunderbird-latest
emojify
smile
gnomeExtensions.smile-complementary-extension
impression
zoom-us
nyxt
unstable.ungoogled-chromium
obsidian
vlc
unstable.polychromatic
discord
slack
signal-desktop
eyedropper
calcurse
onlyoffice-desktopeditors
libreoffice
hyphenDicts.en_US
unstable.plexamp
rmpc
resources
carla
switcheroo
tenacity
supercollider-with-plugins
bitwig-studio-beta
blender
davinci-resolve-studio
steam
unstable.processing
zotero
jre
tesseract
handbrake
renoise
krita
darling
darling-dmg
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
unstable.playerctl
mioctl
oculante
unstable.door-knocker
inputs.hyprpicker.packages.x86_64-linux.default
farge
unstable.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
easyeffects
vcv-rack
cardinal
roomeqwizard
guitarix
# paulxstretch
vital
helio-workstation
stochas
tal-bassline
tal-j8
tal-u-no-lx
amplocker
chair-snare
chair-cymb
tus-vavra
tus-nodal-red
tus-xenia
tus-ostirus
tus-osirus
# Fonts
fira-code
fira
cooper-hewitt
ibm-plex
jetbrains-mono
iosevka
spleen
fira-code-symbols
powerline-fonts
nerdfonts
noto-fonts-color-emoji
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
];
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 = "Bibtata-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;
defaultSymlinkPath = "/run/user/1000/secrets";
defaultSecretsMountPoint = "/run/user/1000/secrets.d";
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;
mpv = {
enable = true;
package = (pkgs.unstable.mpv-unwrapped.wrapper {
scripts = with pkgs.unstable.mpvScripts; [
thumbfast
modernz
];
mpv = pkgs.unstable.mpv-unwrapped.override {
waylandSupport = true;
ffmpeg = pkgs.ffmpeg-full;
};
});
config = {
osc = "no";
profile = "high-quality";
ytdl-format = "bestvideo+bestaudio";
cache-default = 4000000;
};
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
yazi = {
enable = true;
enableFishIntegration = true;
package = inputs.yazi.packages.x86_64-linux.default;
};
fish = {
enable = true;
shellAliases = {
"ls" = "eza";
".j" = "just -g";
"em" = "emacsclient -n -r";
"mkdir" = "mkdir -pv";
};
interactiveShellInit = ''
bind --erase \ct
'';
plugins = [
{
name = "upto";
src = pkgs.fetchFromGitHub {
owner = "Markcial";
repo = "upto";
rev = "2d1f35453fb55747d50da8c1cb1809840f99a646";
sha256 = "sha256-Lv2XtP2x9dkIkUUjMBWVpAs/l55Ztu7gIjKYH6ZzK4s=";
};
}
];
};
zoxide = {
enable = true;
};
starship = {
enable = true;
};
mu.enable = true;
mbsync.enable = true;
msmtp.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
]
));
};
ripgrep = {
enable = true;
};
thefuck = {
enable = true;
};
wezterm = {
enable = true;
package = inputs.wezterm.packages.${pkgs.system}.default;
};
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"
"- home/emenel/.local/share/bitwig"
];
repositories = [
{
"path" = "ssh://oyi3ydnz@oyi3ydnz.repo.borgbase.com/./repo";
"label" = "eddie on borgbase";
}
];
};
retention = {
keepDaily = 3;
keepHourly = 3;
keepMonthly = 2;
};
};
};
};
eza = {
enable = true;
};
fd = {
enable = true;
};
fzf = {
enable = true;
enableFishIntegration = false;
};
broot = {
enable = true;
};
git = {
enable = true;
lfs.enable = true;
};
htop.enable = true;
nnn = {
enable = true;
};
pandoc.enable = true;
password-store.enable = true;
wlogout = {
enable = true;
};
hyprlock = {
enable = true;
};
waybar = {
enable = true;
package = pkgs.unstable.waybar;
# systemd = {
# enable = true;
# # target = "graphical-session.target";
# };
};
eww = {
enable = true;
configDir = ../dotfiles/dot_config/eww;
};
lazygit.enable = true;
jq.enable = true;
firefox.enable = true;
rbw = {
enable = true;
package = pkgs.rbw-latest;
};
};
dconf.settings = {
"org/gnome/desktop/background" = {
picture-options = "none";
primary-color = "#000000";
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
"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;
};
};
services = {
playerctld = {
enable = true;
package = pkgs.unstable.playerctl;
};
mako = {
enable = true;
};
flatpak.enable = true;
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"];
};
};
};
# stylix = {
# enable = true;
# base16Scheme = "${pkgs.base16-schemes}/share/themes/oxocarbon-dark.yaml";
# image = ./akira.png;
# cursor = {
# package = pkgs.bibata-cursors;
# name = "Bibtata-Modern-Classic";
# size = 24;
# };
# };
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"
"nl.hjdskes.gcolor3"
"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."mako".source = ../dotfiles/dot_config/mako;
xdg.configFile."hypr".source = ../dotfiles/dot_config/hypr;
xdg.configFile."halloy/config.toml".source = ../dotfiles/dot_config/halloy/config.toml;
xdg.configFile."waybar".source = ../dotfiles/dot_config/waybar;
xdg.configFile."just/justfile".source = ../dotfiles/dot_config/just/justfile;
xdg.configFile."starship.toml".source = ../dotfiles/dot_config/starship.toml;
xdg.configFile."ghostty".source = ../dotfiles/dot_config/ghostty;
xdg.configFile."wezterm".source = ../dotfiles/dot_config/wezterm;
xdg.configFile."git".source = ../dotfiles/dot_config/git;
xdg.configFile."rbw".source = ../dotfiles/dot_config/rbw;
xdg.configFile."niri/config.kdl".source = ../dotfiles/dot_config/niri/config.kdl;
xdg.configFile."shikane".source = ../dotfiles/dot_config/shikane;
home.file.".ssh/config".source = ../dotfiles/dot_ssh/config;
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;
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."yazi" = {
source = ../dotfiles/dot_config/yazi;
recursive = true;
};
xdg.configFile."emacs".enable = false;
home.file.".msmtprc".source = ../dotfiles/dot_msmtprc;
home.file.".mbsyncrc".source = ../dotfiles/dot_mbsyncrc;
xdg.configFile."isyncrc".enable = false;
home.file.".local/bin" = {
source = ../dotfiles/dot_local/bin;
recursive = true;
};
home.file.".local/share/flf".source = ../dotfiles/dot_local/share/flf;
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;
};
};
}

0
homes/media/default.nix Normal file
View file

View file

@ -5,45 +5,31 @@
{ config, pkgs, lib, inputs, musnix, outputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./razer-speaker-fix.nix
../niri
];
# imports =
# [ # Include the results of the hardware scan.
# ./hardware-configuration.nix
# ./razer-speaker-fix.nix
# ];
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
};
};
nix = let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in {
nix = {
settings = {
# Enable flakes and new 'nix' command
experimental-features = "nix-command flakes";
experimental-features = [ "nix-command" "flakes" ];
substituters = [ "https://nix-community.cachix.org" ];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
# Workaround for https://github.com/NixOS/nix/issues/9574
nix-path = config.nix.nixPath;
};
# Opinionated: make flake registry and nix path match flake inputs
registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs;
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
};
# List packages installed in system profile. To search, run:
environment.systemPackages = with pkgs; [
wget
libGL
@ -90,7 +76,7 @@
documentation = {
dev.enable = true;
man.generateCaches = false;
man.generateCaches = true;
};
hardware = {
@ -553,10 +539,6 @@
];
};
#do not change
system.stateVersion = "24.05";

View file

@ -1,105 +0,0 @@
diff --git a/kernel-open/nvidia-drm/nvidia-drm-drv.c b/kernel-open/nvidia-drm/nvidia-drm-drv.c
index 8cb94219..27b3cbd9 100644
--- a/kernel-open/nvidia-drm/nvidia-drm-drv.c
+++ b/kernel-open/nvidia-drm/nvidia-drm-drv.c
@@ -100,6 +100,11 @@
#include <drm/drm_atomic_helper.h>
#endif
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+#include <drm/drm_client.h>
+#endif
+
static int nv_drm_revoke_modeset_permission(struct drm_device *dev,
struct drm_file *filep,
NvU32 dpyId);
@@ -147,7 +152,7 @@
#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE)
-#if defined(NV_DRM_OUTPUT_POLL_CHANGED_PRESENT)
+
static void nv_drm_output_poll_changed(struct drm_device *dev)
{
struct drm_connector *connector = NULL;
@@ -191,7 +196,7 @@
nv_drm_connector_list_iter_end(&conn_iter);
#endif
}
-#endif /* NV_DRM_OUTPUT_POLL_CHANGED_PRESENT */
+
static struct drm_framebuffer *nv_drm_framebuffer_create(
struct drm_device *dev,
@@ -229,9 +234,7 @@
.atomic_check = nv_drm_atomic_check,
.atomic_commit = nv_drm_atomic_commit,
- #if defined(NV_DRM_OUTPUT_POLL_CHANGED_PRESENT)
- .output_poll_changed = nv_drm_output_poll_changed,
- #endif
+
};
static void nv_drm_event_callback(const struct NvKmsKapiEvent *event)
@@ -1711,6 +1714,10 @@
.read = drm_read,
.llseek = noop_llseek,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+ // Rel. commit. "fs: move FMODE_UNSIGNED_OFFSET to fop_flags" (Christian Brauner, 9 Aug 2024)
+ .fop_flags = FOP_UNSIGNED_OFFSET,
+#endif
};
static const struct drm_ioctl_desc nv_drm_ioctls[] = {
@@ -1939,6 +1946,20 @@
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+static int hotplug_helper_client_hotplug(struct drm_client_dev *client)
+{
+ nv_drm_output_poll_changed(client->dev);
+ return 0;
+}
+
+static const struct drm_client_funcs nv_hotplug_helper_client_funcs = {
+ .owner = THIS_MODULE,
+ .hotplug = hotplug_helper_client_hotplug,
+};
+#endif
+
+
/*
* Helper function for allocate/register DRM device for given NVIDIA GPU ID.
@@ -2029,8 +2050,27 @@
nv_dev->next = dev_list;
dev_list = nv_dev;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+ /* Register a DRM client for receiving hotplug events */
+ struct drm_client_dev *client = kzalloc(sizeof(*client), GFP_KERNEL);
+ if (client == NULL || drm_client_init(dev, client,
+ "nv-hotplug-helper", &nv_hotplug_helper_client_funcs)) {
+ printk(KERN_WARNING "Failed to initialize the nv-hotplug-helper DRM client.");
+ goto failed_drm_client_init;
+ }
+
+ drm_client_register(client);
+ pr_info("Registered the nv-hotplug-helper DRM client.");
+#endif
+
return; /* Success */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)
+failed_drm_client_init:
+
+ kfree(client);
+#endif
+
failed_drm_register:
nv_drm_dev_free(dev);