From e91cca9aeb8e280c65a28f3a408c3bd6a3b574cd Mon Sep 17 00:00:00 2001 From: Matt Nish-Lapidus Date: Tue, 4 Feb 2025 13:13:24 -0500 Subject: [PATCH] major refactor and reorg --- flake.lock | 72 +- flake.nix | 86 +- homes/emenel/default.nix | 904 +++++++++--------- hosts/eddie/configuration.nix | 34 +- modules/system/niri.nix | 5 + modules/system/niri/default.nix | 8 - overlays/default.nix | 63 -- overlays/wineWow.nix | 8 + ...o-beta.nix => bitwig-studio-unwrapped.nix} | 0 packages/chair-audio/cymb.nix | 2 +- packages/chair-audio/snare.nix | 2 +- packages/default.nix | 21 - {overlays/wine => patches}/wine-6006.patch | 0 13 files changed, 614 insertions(+), 591 deletions(-) create mode 100644 modules/system/niri.nix delete mode 100644 modules/system/niri/default.nix delete mode 100644 overlays/default.nix create mode 100644 overlays/wineWow.nix rename packages/bitwig-beta/{bitwig-studio-beta.nix => bitwig-studio-unwrapped.nix} (100%) delete mode 100644 packages/default.nix rename {overlays/wine => patches}/wine-6006.patch (100%) diff --git a/flake.lock b/flake.lock index f90bb50..95dcbd6 100644 --- a/flake.lock +++ b/flake.lock @@ -129,6 +129,25 @@ "type": "gitlab" } }, + "emacs-overlay": { + "inputs": { + "nixpkgs": "nixpkgs_2", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1738686104, + "narHash": "sha256-PfG/bm33axdRPsi3nMB5ioOvq1xdJpdw+iptZVJVmE4=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "52f13caa3c3570bc59582578593b8fafd40f8aaa", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "type": "github" + } + }, "fenix": { "inputs": { "nixpkgs": [ @@ -489,16 +508,15 @@ ] }, "locked": { - "lastModified": 1736373539, - "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", + "lastModified": 1738667255, + "narHash": "sha256-sMMQb9NydZqQ/MvvtPp+Ny0W9P0Jk0moU7SrTBlO5Vo=", "owner": "nix-community", "repo": "home-manager", - "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", + "rev": "7abcf59a365430b36f84eaa452a466b11e469e33", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.11", "repo": "home-manager", "type": "github" } @@ -950,7 +968,7 @@ "inputs": { "flake-compat": "flake-compat_3", "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1725758175, @@ -1042,23 +1060,39 @@ "type": "github" } }, - "nixpkgs-unstable": { + "nixpkgs-stable": { "locked": { - "lastModified": 1738546358, - "narHash": "sha256-nLivjIygCiqLp5QcL7l56Tca/elVqM9FG1hGd9ZSsrg=", - "owner": "nixos", + "lastModified": 1738574474, + "narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "c6e957d81b96751a3d5967a0fd73694f303cc914", + "rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", + "owner": "NixOS", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { + "locked": { + "lastModified": 1738546358, + "narHash": "sha256-nLivjIygCiqLp5QcL7l56Tca/elVqM9FG1hGd9ZSsrg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c6e957d81b96751a3d5967a0fd73694f303cc914", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1725103162, "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", @@ -1074,18 +1108,18 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { - "lastModified": 1738574474, - "narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=", + "lastModified": 1738546358, + "narHash": "sha256-nLivjIygCiqLp5QcL7l56Tca/elVqM9FG1hGd9ZSsrg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c", + "rev": "c6e957d81b96751a3d5967a0fd73694f303cc914", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-24.11", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -1184,6 +1218,7 @@ "root": { "inputs": { "affinity-nix": "affinity-nix", + "emacs-overlay": "emacs-overlay", "home-manager": "home-manager", "hypridle": "hypridle", "hyprlock": "hyprlock", @@ -1194,8 +1229,7 @@ "niri": "niri", "nix-flatpak": "nix-flatpak", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_3", - "nixpkgs-unstable": "nixpkgs-unstable", + "nixpkgs": "nixpkgs_4", "paperwm": "paperwm", "shikane": "shikane", "sops-nix": "sops-nix", diff --git a/flake.nix b/flake.nix index 7a3b738..a34c80a 100644 --- a/flake.nix +++ b/flake.nix @@ -3,11 +3,10 @@ inputs = { nixos-hardware.url = "github:NixOS/nixos-hardware"; - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { - url = "github:nix-community/home-manager/release-24.11"; + url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -32,6 +31,8 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + emacs-overlay.url = "github:nix-community/emacs-overlay"; + kmonad = { url = "github:kmonad/kmonad?dir=nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -88,23 +89,70 @@ }; }; - outputs = {nixpkgs, home-manager, self, ... } @ inputs: { - nixosConfigurations = { - eddie = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { - inherit self inputs; + outputs = {nixpkgs, home-manager, self, ... } @ inputs: + let + inherit (nixpkgs.lib) nixosSystem genAttrs replaceStrings; + inherit (nixpkgs.lib.filesystem) packagesFromDirectoryRecursive listFilesRecursive; + + forAllSystems = + function: + genAttrs [ + "x86_64-linux" + ] (system: function nixpkgs.legacyPackages.${system}); + + nameOf = path: replaceStrings [ ".nix" ] [ "" ] (baseNameOf (toString path)); + + in + { + packages = forAllSystems ( + pkgs: + packagesFromDirectoryRecursive { + inherit (pkgs) callPackage; + + directory = ./packages; + } + ); + + nixosModules = genAttrs (map nameOf (listFilesRecursive ./modules/system)) ( + name: import ./modules/system/${name}.nix + ); + + homeModules = genAttrs (map nameOf (listFilesRecursive ./modules/home)) (name: import ./modules/home/${name}.nix); + + overlays = genAttrs (map nameOf (listFilesRecursive ./overlays)) ( + name: import ./overlays/${name}.nix + ); + + nixosConfigurations = { + eddie = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit inputs; + nix-config = self; + }; + modules = [ + inputs.kmonad.nixosModules.default + inputs.musnix.nixosModules.musnix + ./hosts/eddie/configuration.nix + ]; + }; + }; + + homeConfigurations = { + "emenel" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance + extraSpecialArgs = { + inherit inputs; + nix-config = self; + }; + + modules = [ + inputs.nix-flatpak.homeManagerModules.nix-flatpak + inputs.stylix.homeManagerModules.stylix + inputs.sops-nix.homeManagerModules.sops + ./homes/emenel/default.nix + ]; }; - modules = [ - inputs.sops-nix.nixosModules.sops - inputs.nix-flatpak.nixosModules.nix-flatpak - inputs.kmonad.nixosModules.default - inputs.musnix.nixosModules.musnix - home-manager.nixosModules.home-manager - ./hosts/eddie - ./homes/emenel/default.nix - ]; }; }; - }; } diff --git a/homes/emenel/default.nix b/homes/emenel/default.nix index c6edb52..70b3d28 100644 --- a/homes/emenel/default.nix +++ b/homes/emenel/default.nix @@ -1,20 +1,44 @@ -{ config, lib, pkgs, inputs, outputs, ... }: +{ nix-config, config, lib, pkgs, inputs, ... }: { + nixpkgs = { + config = { + allowUnfree = true; + }; + overlays = builtins.attrValues nix-config.overlays + ++ [ inputs.emacs-overlay.overlays.default ]; + }; - home-manager.backupFileExtension = "backup"; - home-manager.extraSpecialArgs = { inherit inputs variables; }; - - home-manager.users.emenel = { - - home = { - packages = with pkgs; [ + 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 inputs.shikane.packages.x86_64-linux.default - guix - unstable.thonny inputs.isd.packages.x86_64-linux.default + inputs.hyprpicker.packages.x86_64-linux.default + ] + + (with nix-config.packages.x86_64-linux; [ + bitwig-beta + mioctl + tal.bassline + tal.j8 + tal.u-no-lx + amplocker + 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 + ]) + + (with pkgs; [ + guix + thonny + wayback just yt-dlp @@ -63,7 +87,7 @@ gst_all_1.gstreamer alsa-oss powertop - unstable.hypridle + hypridle age sops @@ -116,7 +140,7 @@ openssl.out nixfmt-rfc-style wl-clipboard - unstable.clipse + clipse maim php rustup @@ -200,11 +224,11 @@ gnome-keyring ulauncher wl-mirror - unstable.nwg-look + nwg-look soundconverter - gtop + # gtop wmctrl - colloid-gtk-theme + # colloid-gtk-theme colloid-icon-theme whitesur-gtk-theme whitesur-cursors @@ -234,7 +258,7 @@ chayang sway-launcher-desktop - unstable.swayosd + swayosd spice spice-gtk spice-protocol @@ -248,10 +272,10 @@ impression zoom-us nyxt - unstable.ungoogled-chromium + ungoogled-chromium obsidian vlc - unstable.polychromatic + polychromatic discord slack signal-desktop @@ -260,18 +284,17 @@ onlyoffice-desktopeditors libreoffice hyphenDicts.en_US - unstable.plexamp + plexamp rmpc resources carla switcheroo tenacity supercollider-with-plugins - bitwig-studio-beta blender davinci-resolve-studio steam - unstable.processing + processing zotero jre tesseract @@ -301,13 +324,11 @@ ardour dockfmt impala - unstable.playerctl - mioctl + playerctl oculante - unstable.door-knocker - inputs.hyprpicker.packages.x86_64-linux.default + door-knocker farge - unstable.halloy + halloy paleta tree-sitter (tree-sitter.withPlugins (_: tree-sitter.allGrammars)) @@ -334,18 +355,6 @@ 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 @@ -356,436 +365,439 @@ 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"; + 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"]; + 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"; + 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; }; - gtk.cursorTheme = { - name = "Bibata-Modern-Classic"; + pointerCursor = { package = pkgs.bibata-cursors; + name = "Bibtata-Modern-Classic"; + size = 24; + gtk.enable = true; + x11.enable = true; }; - fonts.fontconfig = { + stateVersion = "24.05"; + }; + + gtk.cursorTheme = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + }; + + fonts = { + fontconfig = { enable = true; }; + # packages = [ + # pkgs.nerdfonts.jetbrains-mono + # ]; + }; - sops = { - age.keyFile = "/home/emenel/.config/sops/age/keys.txt"; # must have no password! + 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"; + 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; - 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; - }; + secrets = { + bw_client_id = { + path = "${config.sops.defaultSymlinkPath}/bw_client_id"; }; - direnv = { - enable = true; - nix-direnv.enable = true; + bw_api_key = { + path = "${config.sops.defaultSymlinkPath}/bw_api_key"; }; - yazi = { - enable = true; - enableFishIntegration = true; - package = inputs.yazi.packages.x86_64-linux.default; + ssh_key = { + path = "${config.sops.defaultSymlinkPath}/ssh_key"; }; - 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="; - }; - } - ]; + borg_url = { + path = "${config.sops.defaultSymlinkPath}/borg_url"; }; - 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; }; }; + + programs = { + home-manager.enable = true; + mpv = { + enable = true; + package = (pkgs.mpv-unwrapped.wrapper { + scripts = with pkgs.mpvScripts; [ + thumbfast + modernz + ]; + + mpv = pkgs.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.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 = nix-config.packages.x86_64-linux.rbw.rbw; + }; + }; + + 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 = ../../assets/binary-installers/rns_344_linux_x86_64.tar.gz; + }; + }; + + services = { + playerctld = { + enable = true; + package = pkgs.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; + }; } diff --git a/hosts/eddie/configuration.nix b/hosts/eddie/configuration.nix index 34239c3..b46dc47 100644 --- a/hosts/eddie/configuration.nix +++ b/hosts/eddie/configuration.nix @@ -2,23 +2,31 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, lib, inputs, musnix, outputs, ... }: +{ nix-config, config, pkgs, lib, inputs, ... }: { - # imports = - # [ # Include the results of the hardware scan. - # ./hardware-configuration.nix - # ./razer-speaker-fix.nix - # ]; + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ./razer-speaker-fix.nix + ]; nixpkgs = { config = { allowUnfree = true; }; + overlays = builtins.attrValues nix-config.overlays + ++ [ inputs.emacs-overlay.overlays.default + inputs.niri.overlays.default + ]; }; + # environment.etc."nix/inputs/nixpkgs".source = "${nixpkgs}"; + nix = { + # registry.nixpkgs.flake = nixpkgs; + channel.enable = false; settings = { experimental-features = [ "nix-command" "flakes" ]; substituters = [ "https://nix-community.cachix.org" ]; @@ -63,7 +71,7 @@ systemd-boot.configurationLimit = 8; efi.canTouchEfiVariables = true; }; - kernelPackages = pkgs.unstable.linuxPackages_latest; + kernelPackages = pkgs.linuxPackages_latest; initrd.systemd.enable = true; initrd.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "snd-virmidi" ]; kernelParams = [ "nvidia_drm.fbdev=1" "nvidia_drm.modeset=1" ]; @@ -224,7 +232,7 @@ # wireless = { # iwd = { # enable = true; - # package = pkgs.unstable.iwd; + # package = pkgs.iwd; # settings = { # IPv6 = { # enabled = true; @@ -275,7 +283,7 @@ extraArgs = "--keep-since 4d --keep 3"; }; flake = "/home/emenel/source/nixos-config"; - package = pkgs.unstable.nh; + package = pkgs.nh; }; programs.dconf.enable = true; @@ -311,7 +319,7 @@ }; # Enable sound with pipewire. - hardware.pulseaudio.enable = false; + services.pulseaudio.enable = false; services.pipewire = { enable = true; @@ -435,12 +443,12 @@ keyboards = { sinc = { device = "/dev/input/by-id/usb-Keebio_Sinc_Rev._4-event-kbd"; - config = builtins.readFile ../../dotfiles/dot_config/kmonad/sinc.kbd; + config = builtins.readFile ../../homes/emenel/dotfiles/dot_config/kmonad/sinc.kbd; }; razer = { extraGroups = [ "openrazer" ]; device = "/dev/input/by-id/usb-Razer_Razer_Blade-if01-event-kbd"; - config = builtins.readFile ../../dotfiles/dot_config/kmonad/razer.kbd; + config = builtins.readFile ../../homes/emenel/dotfiles/dot_config/kmonad/razer.kbd; }; }; }; @@ -515,7 +523,7 @@ services.power-profiles-daemon = { enable = true; - package = pkgs.unstable.power-profiles-daemon; + package = pkgs.power-profiles-daemon; }; # enable the OpenSSH daemon. diff --git a/modules/system/niri.nix b/modules/system/niri.nix new file mode 100644 index 0000000..43ff794 --- /dev/null +++ b/modules/system/niri.nix @@ -0,0 +1,5 @@ +{ + programs.niri = { + enable = true; + }; +} diff --git a/modules/system/niri/default.nix b/modules/system/niri/default.nix deleted file mode 100644 index 6df3ef1..0000000 --- a/modules/system/niri/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ inputs, config, lib, pkgs, ... }: - -{ - programs.niri = { - enable = true; - package = inputs.niri.packages.x86_64-linux.niri; - }; -} diff --git a/overlays/default.nix b/overlays/default.nix deleted file mode 100644 index 5ed2ee2..0000000 --- a/overlays/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -# This file defines overlays -{inputs, ...}: { - # This one brings our custom packages from the 'pkgs' directory - additions = final: _prev: import ../packages final.pkgs; - - modifications = final: prev: { - - networkmanager = prev.pkgs.unstable.networkmanager; - - ulauncher = prev.ulauncher.overrideAttrs (old: { - propagatedBuildInputs = with prev.python3Packages; - old.propagatedBuildInputs - ++ [ - thefuzz - tornado - ]; - }); - - gnome47Extensions.paperwm = inputs.paperwm.packages.x86_64-linux.default; - - wineWowPackages.stagingFull = prev.wineWowPackages.stagingFull.overrideAttrs (old: { - patches = old.patches ++ [ ./wine-6006.patch ]; - waylandSupport = true; - fontconfigSupport = true; - vulkanSupport = true; - }); - - raylib = prev.raylib.overrideDerivation (previous: { - src = prev.fetchFromGitHub { - owner = "raysan5"; - repo = "raylib"; - hash = "sha256-PHYdAEhittShd1UhASdhmq0nGHEEVZEUGcjCUUJZl9g="; - rev = "c9c830cb971d7aa744fe3c7444b768ccd5176c4c"; - }; - patches = [""]; - }); - - openrazer-daemon = prev.openrazer-daemon.overrideDerivation (previous: { - # name = "openrazer-daemon"; - src = prev.fetchFromGitHub { - owner = "openrazer"; - version = "latest"; - repo = "openrazer"; - hash = "sha256-GqmFpVNuPRNM95pJsihsk/d3s61t4Lw+qaukKip9BAM="; - rev = "5e677b178be7da08fb72d7cd0791bf68a129fcc5"; - }; - }); - }; - - emacs-overlay = (import (builtins.fetchTarball { - url = "https://github.com/nix-community/emacs-overlay/archive/master.tar.gz"; - sha256 = "0jlddbg2x6g6gi9aimd6ycxl86ndxd9lg3mz0xmyq174qmqij218"; - })); - - # When applied, the unstable nixpkgs set (declared in the flake inputs) will - # be accessible through 'pkgs.unstable' - unstable-packages = final: _prev: { - unstable = import inputs.nixpkgs-unstable { - system = final.system; - config.allowUnfree = true; - }; - }; -} diff --git a/overlays/wineWow.nix b/overlays/wineWow.nix new file mode 100644 index 0000000..b491859 --- /dev/null +++ b/overlays/wineWow.nix @@ -0,0 +1,8 @@ +final: prev: { + wineWowPackages.stagingFull = prev.wineWowPackages.stagingFull.overrideAttrs (old: { + patches = old.patches ++ [ ../patches/wine-6006.patch ]; + waylandSupport = true; + fontconfigSupport = true; + vulkanSupport = true; + }); +} diff --git a/packages/bitwig-beta/bitwig-studio-beta.nix b/packages/bitwig-beta/bitwig-studio-unwrapped.nix similarity index 100% rename from packages/bitwig-beta/bitwig-studio-beta.nix rename to packages/bitwig-beta/bitwig-studio-unwrapped.nix diff --git a/packages/chair-audio/cymb.nix b/packages/chair-audio/cymb.nix index 47b59be..e1b88cb 100644 --- a/packages/chair-audio/cymb.nix +++ b/packages/chair-audio/cymb.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "Excite Cymbal Pro"; version = "latest"; - src = ../../binary-installers/excite_cymbal_pro-v1.0.1.zip; + src = ../../assets/binary-installers/excite_cymbal_pro-v1.0.1.zip; nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; buildInputs = with pkgs; [ freetype diff --git a/packages/chair-audio/snare.nix b/packages/chair-audio/snare.nix index 534f9ef..4fce9dd 100644 --- a/packages/chair-audio/snare.nix +++ b/packages/chair-audio/snare.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "Excite Snare Pro"; version = "latest"; - src = ../../binary-installers/excite_snare_drum_PRO_1.1.10.zip; + src = ../../assets/binary-installers/excite_snare_drum_PRO_1.1.10.zip; nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; buildInputs = with pkgs; [ freetype diff --git a/packages/default.nix b/packages/default.nix deleted file mode 100644 index 861d7aa..0000000 --- a/packages/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -# Custom packages, that can be defined similarly to ones from nixpkgs -# You can build them using 'nix build .#example' -pkgs: { - tal-bassline = pkgs.callPackage ./tal/bassline.nix {}; - tal-j8 = pkgs.callPackage ./tal/j8.nix {}; - tal-u-no-lx = pkgs.callPackage ./tal/u-no-lx.nix {}; - amplocker = pkgs.callPackage ./amplocker/package.nix {}; - chair-snare = pkgs.callPackage ./chair-audio/snare.nix {}; - chair-cymb = pkgs.callPackage ./chair-audio/cymb.nix {}; - tus-vavra = pkgs.callPackage ./the-usual-suspects/vavra/vavra.nix {}; - tus-nodal-red = pkgs.callPackage ./the-usual-suspects/nodal-red/nodal-red.nix {}; - tus-xenia = pkgs.callPackage ./the-usual-suspects/xenia/xenia.nix {}; - tus-ostirus = pkgs.callPackage ./the-usual-suspects/ostirus/ostirus.nix {}; - tus-osirus = pkgs.callPackage ./the-usual-suspects/osirus/osirus.nix {}; - paulxstretch = pkgs.callPackage ./paulxstretch/paulxstretch.nix {}; - mioctl = pkgs.callPackage ./mioctl/mioctl.nix {}; - - bitwig-studio-beta = pkgs.callPackage ./bitwig-beta/bitwig-studio-beta.nix {}; - - rbw-latest = pkgs.callPackage ./rbw/rbw.nix {}; -} diff --git a/overlays/wine/wine-6006.patch b/patches/wine-6006.patch similarity index 100% rename from overlays/wine/wine-6006.patch rename to patches/wine-6006.patch