diff --git a/configs/fedora/home.nix b/configs/fedora/home.nix index 6789347..4298e5c 100644 --- a/configs/fedora/home.nix +++ b/configs/fedora/home.nix @@ -1,8 +1,15 @@ -{ pkgs, config, lib, inputs, ... }: +{ + pkgs, + config, + lib, + inputs, + ... +}: let nixGL = import ./../../home-manager/utils/nixGLWrap.nix { inherit pkgs config; }; -in { +in +{ imports = [ ./../../home-manager/modules/machine.nix ]; machine = { diff --git a/configs/thilo-laptop/hardware-configuration.nix b/configs/thilo-laptop/hardware-configuration.nix index 33e37e6..d9441df 100644 --- a/configs/thilo-laptop/hardware-configuration.nix +++ b/configs/thilo-laptop/hardware-configuration.nix @@ -1,11 +1,21 @@ -{ config, lib, modulesPath, ... }: +{ + config, + lib, + modulesPath, + ... +}: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; boot = { initrd = { - availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; + availableKernelModules = [ + "nvme" + "xhci_pci" + "usb_storage" + "sd_mod" + ]; kernelModules = [ ]; }; kernelModules = [ "kvm-amd" ]; @@ -17,8 +27,7 @@ fsType = "ext4"; }; - boot.initrd.luks.devices."luks-6f077715-c436-4254-acb2-66d8be0a0c55".device = - "/dev/disk/by-uuid/6f077715-c436-4254-acb2-66d8be0a0c55"; + boot.initrd.luks.devices."luks-6f077715-c436-4254-acb2-66d8be0a0c55".device = "/dev/disk/by-uuid/6f077715-c436-4254-acb2-66d8be0a0c55"; fileSystems."/boot" = { device = "/dev/disk/by-uuid/877C-C918"; @@ -36,6 +45,5 @@ # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/configs/thilo-laptop/home.nix b/configs/thilo-laptop/home.nix index a5918fa..35d3481 100644 --- a/configs/thilo-laptop/home.nix +++ b/configs/thilo-laptop/home.nix @@ -4,7 +4,9 @@ home-manager = { useGlobalPkgs = true; useUserPackages = true; - extraSpecialArgs = { inherit inputs; }; + extraSpecialArgs = { + inherit inputs; + }; users.thilo = { imports = [ ./../../home-manager/modules/machine.nix ]; @@ -16,7 +18,9 @@ isGraphical = true; }; - home.sessionVariables = { LD_LIBRARY_PATH = "${pkgs.libGL}/lib"; }; + home.sessionVariables = { + LD_LIBRARY_PATH = "${pkgs.libGL}/lib"; + }; }; }; } diff --git a/configs/thilo-laptop/nixos.nix b/configs/thilo-laptop/nixos.nix index 154f7f0..763cd2a 100644 --- a/configs/thilo-laptop/nixos.nix +++ b/configs/thilo-laptop/nixos.nix @@ -1,7 +1,8 @@ { pkgs, ... }: { - imports = [ # Include the results of the hardware scan. + imports = [ + # Include the results of the hardware scan. ./hardware-configuration.nix ./../../nixos/common.nix ./../../nixos/builders.nix @@ -15,14 +16,19 @@ boot.plymouth.enable = true; # Setup keyfile - boot.initrd.secrets = { "/crypto_keyfile.bin" = null; }; + boot.initrd.secrets = { + "/crypto_keyfile.bin" = null; + }; networking.hostName = "thilo-laptop"; # Define your hostname. # Configure console keymap console.keyMap = "de"; - environment.gnome.excludePackages = with pkgs; [ tracker tracker-miners ]; + environment.gnome.excludePackages = with pkgs; [ + tracker + tracker-miners + ]; hardware.bluetooth.enable = true; @@ -66,18 +72,16 @@ ]; }; - environment.systemPackages = with pkgs; [ brlaser brgenml1lpr ]; - - nixpkgs.config.permittedInsecurePackages = [ - "nix-2.16.2" + environment.systemPackages = with pkgs; [ + brlaser + brgenml1lpr ]; + nixpkgs.config.permittedInsecurePackages = [ "nix-2.16.2" ]; xdg.portal = { enable = true; - extraPortals = [ - pkgs.kdePackages.xdg-desktop-portal-kde - ]; + extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ]; }; system.stateVersion = "23.05"; diff --git a/configs/thilo-pc/hardware-configuration.nix b/configs/thilo-pc/hardware-configuration.nix index e7fd89b..f4e12a5 100644 --- a/configs/thilo-pc/hardware-configuration.nix +++ b/configs/thilo-pc/hardware-configuration.nix @@ -1,15 +1,27 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, modulesPath, ... }: +{ + config, + lib, + modulesPath, + ... +}: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; boot = { initrd = { - availableKernelModules = - [ "nvme" "xhci_pci" "ahci" "usbhid" "uas" "usb_storage" "sd_mod" ]; + availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usbhid" + "uas" + "usb_storage" + "sd_mod" + ]; kernelModules = [ ]; }; kernelModules = [ "kvm-amd" ]; @@ -44,6 +56,5 @@ # networking.interfaces.enp8s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/configs/thilo-pc/home.nix b/configs/thilo-pc/home.nix index d1a0de9..e9ca8fe 100644 --- a/configs/thilo-pc/home.nix +++ b/configs/thilo-pc/home.nix @@ -4,7 +4,9 @@ home-manager = { useGlobalPkgs = true; useUserPackages = true; - extraSpecialArgs = { inherit inputs; }; + extraSpecialArgs = { + inherit inputs; + }; users.thilo = { imports = [ ./../../home-manager/modules/machine.nix ]; @@ -16,13 +18,17 @@ isGraphical = true; }; -/* xsession.pointerCursor = { - name = "Bibata-Modern-Classic"; - package = pkgs.bibata-cursors; - size = 128; - }; */ + /* + xsession.pointerCursor = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + size = 128; + }; + */ - home.sessionVariables = { LD_LIBRARY_PATH = "${pkgs.libGL}/lib"; }; + home.sessionVariables = { + LD_LIBRARY_PATH = "${pkgs.libGL}/lib"; + }; home.packages = with pkgs; [ libsForQt5.discover ]; }; diff --git a/configs/thilo-pc/nixos.nix b/configs/thilo-pc/nixos.nix index 2c340ac..fccf719 100644 --- a/configs/thilo-pc/nixos.nix +++ b/configs/thilo-pc/nixos.nix @@ -58,7 +58,10 @@ programs.nix-ld.enable = true; hardware.opengl = { - extraPackages = with pkgs; [ vaapiVdpau libvdpau-va-gl ]; + extraPackages = with pkgs; [ + vaapiVdpau + libvdpau-va-gl + ]; }; hardware.bluetooth.enable = true; @@ -86,9 +89,7 @@ ]; }; - nixpkgs.config.permittedInsecurePackages = [ - "nix-2.16.2" - ]; + nixpkgs.config.permittedInsecurePackages = [ "nix-2.16.2" ]; system.stateVersion = "23.05"; } diff --git a/flake.nix b/flake.nix index 7d3742d..db9460b 100644 --- a/flake.nix +++ b/flake.nix @@ -2,8 +2,12 @@ description = "Nixos config"; inputs = { - nixpkgs = { url = "github:NixOS/nixpkgs/nixos-unstable"; }; - nixpkgs-update = { url = "github:ryantm/nixpkgs-update"; }; + nixpkgs = { + url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + nixpkgs-update = { + url = "github:ryantm/nixpkgs-update"; + }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -31,21 +35,28 @@ }; nixConfig = { - substituters = [ - "https://cache.nixos.org" - "https://nix-community.cachix.org" - "https://nixpkgs-update.cachix.org" - "https://devenv.cachix.org" - ]; - trusted-public-keys = [ - "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "nixpkgs-update.cachix.org-1:6y6Z2JdoL3APdu6/+Iy8eZX2ajf09e4EE9SnxSML1W8=" - "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" - ]; + substituters = [ + "https://cache.nixos.org" + "https://nix-community.cachix.org" + "https://nixpkgs-update.cachix.org" + "https://devenv.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "nixpkgs-update.cachix.org-1:6y6Z2JdoL3APdu6/+Iy8eZX2ajf09e4EE9SnxSML1W8=" + "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" + ]; }; - outputs = { nixpkgs, home-manager, nixgl, w17, ... }@inputs: + outputs = + { + nixpkgs, + home-manager, + nixgl, + w17, + ... + }@inputs: let system = "x86_64-linux"; pkgs = import nixpkgs { @@ -53,7 +64,8 @@ overlays = [ nixgl.overlay ]; allowUnfree = true; }; - in { + in + { nixosConfigurations.thilo-pc = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ @@ -61,7 +73,9 @@ ./configs/thilo-pc/nixos.nix ./configs/thilo-pc/home.nix ]; - specialArgs = { inherit inputs; }; + specialArgs = { + inherit inputs; + }; }; nixosConfigurations.thilo-laptop = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; @@ -70,28 +84,33 @@ ./configs/thilo-laptop/nixos.nix ./configs/thilo-laptop/home.nix ]; - specialArgs = { inherit inputs; }; + specialArgs = { + inherit inputs; + }; }; - homeConfigurations."thilo@thilo-pc" = - home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = [ - inputs.nix-index-database.hmModules.nix-index - ./configs/fedora/home.nix - ]; - extraSpecialArgs = { inherit inputs nixgl; }; + homeConfigurations."thilo@thilo-pc" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ + inputs.nix-index-database.hmModules.nix-index + ./configs/fedora/home.nix + ]; + extraSpecialArgs = { + inherit inputs nixgl; }; - homeConfigurations."thilo@thilo-laptop" = - home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = [ ./configs/fedora/home.nix ]; - extraSpecialArgs = { inherit inputs nixgl; }; + }; + homeConfigurations."thilo@thilo-laptop" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ ./configs/fedora/home.nix ]; + extraSpecialArgs = { + inherit inputs nixgl; }; - homeConfigurations."thilo@thilo-pc-win" = - home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = [ ./configs/wsl/home.nix ]; - extraSpecialArgs = { inherit inputs nixgl; }; + }; + homeConfigurations."thilo@thilo-pc-win" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ ./configs/wsl/home.nix ]; + extraSpecialArgs = { + inherit inputs nixgl; }; + }; }; } diff --git a/home-manager/modules/machine.nix b/home-manager/modules/machine.nix index e6507a3..70c15ab 100644 --- a/home-manager/modules/machine.nix +++ b/home-manager/modules/machine.nix @@ -1,5 +1,11 @@ -{ lib, pkgs, config, ... }: -with lib; { +{ + lib, + pkgs, + config, + ... +}: +with lib; +{ imports = [ ./../programs/atuin.nix ./../programs/alacritty.nix @@ -80,8 +86,7 @@ with lib; { ''; ".ssh/config_source" = { source = ./../dotfiles/ssh-config; - onChange = - "cat ~/.ssh/config_source > ~/.ssh/config && chmod 600 ~/.ssh/config"; + onChange = "cat ~/.ssh/config_source > ~/.ssh/config && chmod 600 ~/.ssh/config"; }; ".gitignore".source = ./../dotfiles/.gitignore; ".config/pipewire/pipewire.conf.d/99-noise-suppression.conf".text = '' @@ -131,4 +136,3 @@ with lib; { }; }; } - diff --git a/home-manager/modules/packages.nix b/home-manager/modules/packages.nix index fe19cfa..8f8f248 100644 --- a/home-manager/modules/packages.nix +++ b/home-manager/modules/packages.nix @@ -1,10 +1,15 @@ -{ config, pkgs, lib, inputs, ... }: +{ + config, + pkgs, + lib, + inputs, + ... +}: with lib; let nixGL = import ./../../home-manager/utils/nixGLWrap.nix { inherit pkgs config; }; - electronFlags = - "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime --disable-gpu-shader-disk-cache -n"; + electronFlags = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime --disable-gpu-shader-disk-cache -n"; in { config = { @@ -16,14 +21,15 @@ in }) ]; - home.packages = with pkgs; + home.packages = + with pkgs; [ pkgs.nixVersions.latest # because remotely invoked updates are fun ;) up htop rustc cargo - nixfmt + nixfmt-rfc-style nodejs bun deno @@ -40,12 +46,11 @@ in hub httpie manix - (pkgs.writeShellScriptBin "ssh-fix-permissions" - (builtins.readFile ./../scripts/ssh-fix-permissions.sh)) - (pkgs.writeShellScriptBin "yt-dlp-audio" - (builtins.readFile ./../scripts/yt-dlp-audio.sh)) - (pkgs.writeShellScriptBin "nix-shell-init" - (builtins.readFile ./../scripts/nix-shell-init.sh)) + (pkgs.writeShellScriptBin "ssh-fix-permissions" ( + builtins.readFile ./../scripts/ssh-fix-permissions.sh + )) + (pkgs.writeShellScriptBin "yt-dlp-audio" (builtins.readFile ./../scripts/yt-dlp-audio.sh)) + (pkgs.writeShellScriptBin "nix-shell-init" (builtins.readFile ./../scripts/nix-shell-init.sh)) (pkgs.writeShellScriptBin "http-server" '' ${pkgs.caddy}/bin/caddy file-server --listen :2345 '') @@ -72,84 +77,94 @@ in inputs.w17.packages.x86_64-linux.default aichat (pkgs.nerdfonts.override { - fonts = [ "JetBrainsMono" "FiraCode" "FiraMono" ]; + fonts = [ + "JetBrainsMono" + "FiraCode" + "FiraMono" + ]; }) nix-output-monitor nodePackages.pnpm npm-check-updates - ] ++ ( - if ( - !config.machine.isGeneric - ) then [ - toolbox - distrobox - ] else + ] + ++ ( + if (!config.machine.isGeneric) then + [ + toolbox + distrobox + ] + else [ ] - ) ++ ( - if ( - config.machine.isGraphical - ) then [ - (nixGL insomnia) - (nixGL comma) - ] else + ) + ++ ( + if (config.machine.isGraphical) then + [ + (nixGL insomnia) + (nixGL comma) + ] + else [ ] - ) ++ ( - if ( - config.machine.isGraphical && !config.machine.isGeneric - ) then [ - corefonts - vistafonts - jetbrains.webstorm - jetbrains.phpstorm - jetbrains.rust-rover - jetbrains.goland - element-desktop - ludusavi - dbeaver - onlyoffice-bin - spotify - vesktop - (lutris.override { - extraLibraries = _: [ gnome3.adwaita-icon-theme ]; - extraPkgs = _: [ - wineWowPackages.full - winetricks - gnome3.adwaita-icon-theme - ]; - }) - bottles - protontricks - heroic - (vscode.override { commandLineArgs = electronFlags; }) - quickemu - quickgui - trilium-desktop - anki - # inputs.muse-sounds-manager.packages.x86_64-linux.muse-sounds-manager - jetbrains-toolbox - mumble - prusa-slicer - trayscale - gnome.gnome-disk-utility - inkscape - musescore - obsidian - syncthingtray - reaper - yabridge - inputs.suyu.packages.x86_64-linux.suyu - inputs.nix-alien.packages.x86_64-linux.nix-alien - kdePackages.kdenlive - audacity - ] else + ) + ++ ( + if (config.machine.isGraphical && !config.machine.isGeneric) then + [ + jetbrains.webstorm + jetbrains.phpstorm + jetbrains.rust-rover + jetbrains.goland + element-desktop + ludusavi + dbeaver + onlyoffice-bin + spotify + vesktop + (lutris.override { + extraLibraries = _: [ gnome3.adwaita-icon-theme ]; + extraPkgs = _: [ + wineWowPackages.full + winetricks + gnome3.adwaita-icon-theme + ]; + }) + bottles + protontricks + heroic + (vscode.override { commandLineArgs = electronFlags; }) + quickemu + quickgui + trilium-desktop + anki + # inputs.muse-sounds-manager.packages.x86_64-linux.muse-sounds-manager + jetbrains-toolbox + mumble + prusa-slicer + trayscale + gnome.gnome-disk-utility + inkscape + musescore + obsidian + syncthingtray + reaper + yabridge + inputs.suyu.packages.x86_64-linux.suyu + inputs.nix-alien.packages.x86_64-linux.nix-alien + kdePackages.kdenlive + audacity + ] + else [ ] - ) ++ (if config.machine.isGnome then [ - gnomeExtensions.blur-my-shell - gnomeExtensions.dash-to-panel - gnomeExtensions.user-themes - gnomeExtensions.vitals - gnomeExtensions.custom-accent-colors - ] else - [ ]); + ) + ++ ( + if config.machine.isGnome then + [ + gnomeExtensions.blur-my-shell + gnomeExtensions.dash-to-panel + gnomeExtensions.user-themes + gnomeExtensions.vitals + gnomeExtensions.custom-accent-colors + ] + else + [ ] + ); }; } diff --git a/home-manager/pkgs/docker-craft-cms-dev-env.nix b/home-manager/pkgs/docker-craft-cms-dev-env.nix index 8a847f5..2726c5b 100644 --- a/home-manager/pkgs/docker-craft-cms-dev-env.nix +++ b/home-manager/pkgs/docker-craft-cms-dev-env.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchFromGitHub }: +{ + lib, + stdenv, + fetchFromGitHub, +}: stdenv.mkDerivation rec { pname = "docker-craft-cms-dev-env"; @@ -17,8 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - description = - "Docker image for local development of sites based on Craft CMS"; + description = "Docker image for local development of sites based on Craft CMS"; homepage = "https://github.com/codemonauts/docker-craft-cms-dev-env"; license = licenses.mit; maintainers = with maintainers; [ ]; diff --git a/home-manager/pkgs/extract.nix b/home-manager/pkgs/extract.nix index 90b170b..5124313 100644 --- a/home-manager/pkgs/extract.nix +++ b/home-manager/pkgs/extract.nix @@ -1,24 +1,24 @@ { pkgs }: -/* SOURCE: https://ostechnix.com/a-bash-function-to-extract-file-archives-of-various-types/ */ +# SOURCE: https://ostechnix.com/a-bash-function-to-extract-file-archives-of-various-types/ pkgs.writeShellScriptBin "extract" '' -if [ -f $1 ] ; then - case $1 in - *.tar.bz2) ${pkgs.gnutar}/bin/tar xjf $1 ;; - *.tar.gz) ${pkgs.gnutar}/bin/tar $1 ;; - *.bz2) ${pkgs.bzip2}/bin/bunzip2 $1 ;; - *.rar) ${pkgs.rar}/bin/rar x $1 ;; - *.gz) ${pkgs.gzip}/bin/gunzip $1 ;; - *.tar) ${pkgs.gnutar}/bin/tar xf $1 ;; - *.tbz2) ${pkgs.gnutar}/bin/tar xjf $1 ;; - *.tgz) ${pkgs.gnutar}/bin/tar xzf $1 ;; - *.zip) ${pkgs.unzip}/bin/unzip $1 ;; - *.Z) ${pkgs.gzip}/bin/uncompress $1 ;; - *.7z) ${pkgs._7zz}/bin/7z x $1 ;; - *) echo "'$1' cannot be extracted via extract()" ;; - esac -else - echo "'$1' is not a valid file" -fi -'' \ No newline at end of file + if [ -f $1 ] ; then + case $1 in + *.tar.bz2) ${pkgs.gnutar}/bin/tar xjf $1 ;; + *.tar.gz) ${pkgs.gnutar}/bin/tar $1 ;; + *.bz2) ${pkgs.bzip2}/bin/bunzip2 $1 ;; + *.rar) ${pkgs.rar}/bin/rar x $1 ;; + *.gz) ${pkgs.gzip}/bin/gunzip $1 ;; + *.tar) ${pkgs.gnutar}/bin/tar xf $1 ;; + *.tbz2) ${pkgs.gnutar}/bin/tar xjf $1 ;; + *.tgz) ${pkgs.gnutar}/bin/tar xzf $1 ;; + *.zip) ${pkgs.unzip}/bin/unzip $1 ;; + *.Z) ${pkgs.gzip}/bin/uncompress $1 ;; + *.7z) ${pkgs._7zz}/bin/7z x $1 ;; + *) echo "'$1' cannot be extracted via extract()" ;; + esac + else + echo "'$1' is not a valid file" + fi +'' diff --git a/home-manager/pkgs/spx-gc.nix b/home-manager/pkgs/spx-gc.nix index 0ac131d..b1eb9fa 100644 --- a/home-manager/pkgs/spx-gc.nix +++ b/home-manager/pkgs/spx-gc.nix @@ -1,4 +1,8 @@ -{ lib, buildNpmPackage, fetchFromGitHub }: +{ + lib, + buildNpmPackage, + fetchFromGitHub, +}: buildNpmPackage rec { pname = "spx-gc"; @@ -21,8 +25,7 @@ buildNpmPackage rec { ''; meta = with lib; { - description = - "SPX is a graphics control client for live video productions and live streams using CasparCG, OBS, vMix, or similar software"; + description = "SPX is a graphics control client for live video productions and live streams using CasparCG, OBS, vMix, or similar software"; homepage = "https://github.com/TuomoKu/SPX-GC#npminstall"; license = licenses.mit; maintainers = with maintainers; [ ]; diff --git a/home-manager/programs/alacritty.nix b/home-manager/programs/alacritty.nix index 64d4fcf..01e5308 100644 --- a/home-manager/programs/alacritty.nix +++ b/home-manager/programs/alacritty.nix @@ -1,8 +1,14 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let nixGL = import ./../../home-manager/utils/nixGLWrap.nix { inherit pkgs config; }; -in { +in +{ programs.alacritty = { enable = if config.machine.isGraphical then true else false; package = (nixGL pkgs.alacritty); diff --git a/home-manager/programs/atuin.nix b/home-manager/programs/atuin.nix index a97ccc4..5d4b476 100644 --- a/home-manager/programs/atuin.nix +++ b/home-manager/programs/atuin.nix @@ -1,3 +1,5 @@ { - programs.atuin = { enable = true; }; + programs.atuin = { + enable = true; + }; } diff --git a/home-manager/programs/bat.nix b/home-manager/programs/bat.nix index 7a2881c..4cb0b03 100644 --- a/home-manager/programs/bat.nix +++ b/home-manager/programs/bat.nix @@ -1 +1,5 @@ -{ programs.bat = { enable = true; }; } +{ + programs.bat = { + enable = true; + }; +} diff --git a/home-manager/programs/beets.nix b/home-manager/programs/beets.nix index a0717b8..83de934 100644 --- a/home-manager/programs/beets.nix +++ b/home-manager/programs/beets.nix @@ -12,7 +12,9 @@ duplicate_action = "ask"; default_action = "apply"; }; - badfiles = { check_on_import = "yes"; }; + badfiles = { + check_on_import = "yes"; + }; match = { max_rec = { track_length = "strong"; diff --git a/home-manager/programs/chromium.nix b/home-manager/programs/chromium.nix index 5a8f6d8..426b71d 100644 --- a/home-manager/programs/chromium.nix +++ b/home-manager/programs/chromium.nix @@ -20,7 +20,10 @@ let "kbfnbcaeplbcioakkpcpgfkobkghlhen" # Grammarly ]; isEnabled = if (config.machine.isGraphical && !config.machine.isGeneric) then true else false; - dictionaries = with pkgs.hunspellDictsChromium; [ en_US de_DE ]; + dictionaries = with pkgs.hunspellDictsChromium; [ + en_US + de_DE + ]; commandLineArgs = [ "--enable-wayland-ime" "--ignore-gpu-blocklist" @@ -30,7 +33,8 @@ let "--enable-features=WaylandWindowDecorations,VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL,WebRTCPipeWireCapturer" ]; extensions = map (eid: { id = eid; }) chromium_extension; -in { +in +{ programs.chromium = { inherit dictionaries commandLineArgs extensions; enable = isEnabled; diff --git a/home-manager/programs/command-not-found.nix b/home-manager/programs/command-not-found.nix index c668aef..96d79d9 100644 --- a/home-manager/programs/command-not-found.nix +++ b/home-manager/programs/command-not-found.nix @@ -1 +1,5 @@ -{ programs.command-not-found = { enable = false; }; } +{ + programs.command-not-found = { + enable = false; + }; +} diff --git a/home-manager/programs/git.nix b/home-manager/programs/git.nix index db4decc..02907c6 100644 --- a/home-manager/programs/git.nix +++ b/home-manager/programs/git.nix @@ -15,18 +15,28 @@ ui = true; pager = true; }; - log = { date = "short"; }; - rerere = { enabled = "1"; }; + log = { + date = "short"; + }; + rerere = { + enabled = "1"; + }; core = { whitespace = "fix,-indent-with-non-tab,trailing-space,cr-at-eol"; excludesfile = "~/.gitignore"; autocrlf = "input"; }; - apply = { whitespace = "nowarn"; }; - branch = { autosetuprebase = "always"; }; + apply = { + whitespace = "nowarn"; + }; + branch = { + autosetuprebase = "always"; + }; }; }; - programs.git-credential-oauth = { enable = true; }; + programs.git-credential-oauth = { + enable = true; + }; programs.gh.enable = true; programs.gh-dash.enable = true; programs.lazygit.enable = true; diff --git a/home-manager/programs/go.nix b/home-manager/programs/go.nix index 91d9225..bb3323f 100644 --- a/home-manager/programs/go.nix +++ b/home-manager/programs/go.nix @@ -1 +1,5 @@ -{ programs.go = { enable = true; }; } +{ + programs.go = { + enable = true; + }; +} diff --git a/home-manager/programs/hstr.nix b/home-manager/programs/hstr.nix index 08b4ba7..c31b036 100644 --- a/home-manager/programs/hstr.nix +++ b/home-manager/programs/hstr.nix @@ -1 +1,5 @@ -{ programs.hstr = { enable = true; }; } +{ + programs.hstr = { + enable = true; + }; +} diff --git a/home-manager/programs/mpv.nix b/home-manager/programs/mpv.nix index c286a52..df771eb 100644 --- a/home-manager/programs/mpv.nix +++ b/home-manager/programs/mpv.nix @@ -3,6 +3,10 @@ { programs.mpv = { enable = if (config.machine.isGraphical && !config.machine.isGeneric) then true else false; - scripts = with pkgs.mpvScripts; [ autoload mpris sponsorblock ]; + scripts = with pkgs.mpvScripts; [ + autoload + mpris + sponsorblock + ]; }; } diff --git a/home-manager/programs/neovim.nix b/home-manager/programs/neovim.nix index 5d322e6..c3df955 100644 --- a/home-manager/programs/neovim.nix +++ b/home-manager/programs/neovim.nix @@ -7,7 +7,9 @@ viAlias = true; vimAlias = true; vimdiffAlias = true; - coc = { enable = true; }; + coc = { + enable = true; + }; extraConfig = '' set title set ignorecase diff --git a/home-manager/programs/starship.nix b/home-manager/programs/starship.nix index d7e4461..0f66a99 100644 --- a/home-manager/programs/starship.nix +++ b/home-manager/programs/starship.nix @@ -3,8 +3,12 @@ enable = true; settings = { add_newline = false; - character = { success_symbol = "[❯](bold white)"; }; - package = { disabled = true; }; + character = { + success_symbol = "[❯](bold white)"; + }; + package = { + disabled = true; + }; }; }; } diff --git a/home-manager/programs/syncthing.nix b/home-manager/programs/syncthing.nix index 66ea77d..2ab81c9 100644 --- a/home-manager/programs/syncthing.nix +++ b/home-manager/programs/syncthing.nix @@ -1 +1,5 @@ -{ services.syncthing = { enable = true; }; } +{ + services.syncthing = { + enable = true; + }; +} diff --git a/home-manager/programs/thefuck.nix b/home-manager/programs/thefuck.nix index b68d76e..78cb070 100644 --- a/home-manager/programs/thefuck.nix +++ b/home-manager/programs/thefuck.nix @@ -1,3 +1,5 @@ { - programs.thefuck = { enable = false; }; + programs.thefuck = { + enable = false; + }; } diff --git a/home-manager/programs/topgrade.nix b/home-manager/programs/topgrade.nix index 03d1fd1..a57b6f5 100644 --- a/home-manager/programs/topgrade.nix +++ b/home-manager/programs/topgrade.nix @@ -1,11 +1,13 @@ -{ config, pkgs, ... }: +{ config, pkgs, ... }: let - configPath = if config.machine.isGeneric then - "${config.home.homeDirectory}/.config/home-manager" - else - "${config.home.homeDirectory}/.nixos-config"; -in { + configPath = + if config.machine.isGeneric then + "${config.home.homeDirectory}/.config/home-manager" + else + "${config.home.homeDirectory}/.nixos-config"; +in +{ programs.topgrade = { enable = true; settings = { @@ -16,13 +18,18 @@ in { pre_sudo = false; cleanup = true; skip_notify = true; - disable = [ "bun" "tldr" "flutter" ]; + disable = [ + "bun" + "tldr" + "flutter" + ]; }; git.repos = [ configPath ]; - firmware = { upgrade = true; }; + firmware = { + upgrade = true; + }; pre_commands = { - flakeUpgrade = - "cd ${configPath} && ${pkgs.nixVersions.latest}/bin/nix flake update --commit-lock-file --verbose --repair"; + flakeUpgrade = "cd ${configPath} && ${pkgs.nixVersions.latest}/bin/nix flake update --commit-lock-file --verbose --repair"; }; }; }; diff --git a/home-manager/programs/yt-dlp.nix b/home-manager/programs/yt-dlp.nix index d995c24..c51e9a0 100644 --- a/home-manager/programs/yt-dlp.nix +++ b/home-manager/programs/yt-dlp.nix @@ -1,2 +1,5 @@ -{ programs.yt-dlp = { enable = true; }; } - +{ + programs.yt-dlp = { + enable = true; + }; +} diff --git a/home-manager/utils/nixGLWrap.nix b/home-manager/utils/nixGLWrap.nix index ae3f199..e068d3d 100644 --- a/home-manager/utils/nixGLWrap.nix +++ b/home-manager/utils/nixGLWrap.nix @@ -1,12 +1,9 @@ # Call once on import to load global context -{ - pkgs, - config, -}: +{ pkgs, config }: # Wrap a single package pkg: -if config.nixGLPrefix == "" -then pkg +if config.nixGLPrefix == "" then + pkg else # Wrap the package's binaries with nixGL, while preserving the rest of # the outputs and derivation attributes. @@ -17,12 +14,14 @@ else ${ # Heavily inspired by https://stackoverflow.com/a/68523368/6259505 - pkgs.lib.concatStringsSep "\n" (map (outputName: '' - echo "Copying output ${outputName}" - set -x - cp -rs --no-preserve=mode "${pkg.${outputName}}" "''$${outputName}" - set +x - '') (old.outputs or ["out"])) + pkgs.lib.concatStringsSep "\n" ( + map (outputName: '' + echo "Copying output ${outputName}" + set -x + cp -rs --no-preserve=mode "${pkg.${outputName}}" "''$${outputName}" + set +x + '') (old.outputs or [ "out" ]) + ) } rm -rf $out/bin/* @@ -34,4 +33,4 @@ else done shopt -u nullglob # Revert nullglob back to its normal default state ''; - })) \ No newline at end of file + })) diff --git a/home-manager/wrappers/fedora.nix b/home-manager/wrappers/fedora.nix index d5a92f2..a047317 100644 --- a/home-manager/wrappers/fedora.nix +++ b/home-manager/wrappers/fedora.nix @@ -24,7 +24,8 @@ let chrome-stable-wrapper = pkgs.writeShellScriptBin "google-chrome-stable" '' exec /usr/bin/google-chrome-stable ${chromeArgs} "$@" ''; -in { +in +{ home.packages = with pkgs; [ code-wrapper chrome-wrapper diff --git a/nix.nix b/nix.nix index 108f0ad..6b37e46 100644 --- a/nix.nix +++ b/nix.nix @@ -8,7 +8,10 @@ sandbox = relaxed ''; settings = { - trusted-users = [ "root" "thilo" ]; + trusted-users = [ + "root" + "thilo" + ]; substituters = [ "https://cache.nixos.org" "https://nix-community.cachix.org" diff --git a/nixos/builders.nix b/nixos/builders.nix index b714ceb..0183f23 100644 --- a/nixos/builders.nix +++ b/nixos/builders.nix @@ -8,71 +8,76 @@ nix = { distributedBuilds = true; - buildMachines = [ { - hostName = "build1.darmstadt.ccc.de"; - protocol = "ssh"; - sshUser = "avocadoom"; - sshKey = "/home/thilo/.ssh/id_darmstadt-ccc-de"; - systems = [ - "i686-linux" - "x86_64-linux" - ]; - maxJobs = 4; - speedFactor = 6; - supportedFeatures = [ - "big-parallel" - "kvm" - "nixos-test" - ]; - } { - hostName = "build2.darmstadt.ccc.de"; - protocol = "ssh"; - sshUser = "avocadoom"; - sshKey = "/home/thilo/.ssh/id_darmstadt-ccc-de"; - systems = [ - "i686-linux" - "x86_64-linux" - ]; - maxJobs = 4; - speedFactor = 6; - supportedFeatures = [ - "big-parallel" - "kvm" - "nixos-test" - ]; - } { - hostName = "build3.darmstadt.ccc.de"; - protocol = "ssh"; - sshUser = "avocadoom"; - sshKey = "/home/thilo/.ssh/id_darmstadt-ccc-de"; - systems = [ - "i686-linux" - "x86_64-linux" - ]; - maxJobs = 4; - speedFactor = 6; - supportedFeatures = [ - "big-parallel" - "kvm" - "nixos-test" - ]; - } { - hostName = "build4.darmstadt.ccc.de"; - protocol = "ssh"; - sshUser = "avocadoom"; - sshKey = "/home/thilo/.ssh/id_darmstadt-ccc-de"; - systems = [ - "i686-linux" - "x86_64-linux" - ]; - # this node has half the cpu of the others - maxJobs = 2; - speedFactor = 6; - supportedFeatures = [ - "big-parallel" - "kvm" - "nixos-test" - ]; - } ]; + buildMachines = [ + { + hostName = "build1.darmstadt.ccc.de"; + protocol = "ssh"; + sshUser = "avocadoom"; + sshKey = "/home/thilo/.ssh/id_darmstadt-ccc-de"; + systems = [ + "i686-linux" + "x86_64-linux" + ]; + maxJobs = 4; + speedFactor = 6; + supportedFeatures = [ + "big-parallel" + "kvm" + "nixos-test" + ]; + } + { + hostName = "build2.darmstadt.ccc.de"; + protocol = "ssh"; + sshUser = "avocadoom"; + sshKey = "/home/thilo/.ssh/id_darmstadt-ccc-de"; + systems = [ + "i686-linux" + "x86_64-linux" + ]; + maxJobs = 4; + speedFactor = 6; + supportedFeatures = [ + "big-parallel" + "kvm" + "nixos-test" + ]; + } + { + hostName = "build3.darmstadt.ccc.de"; + protocol = "ssh"; + sshUser = "avocadoom"; + sshKey = "/home/thilo/.ssh/id_darmstadt-ccc-de"; + systems = [ + "i686-linux" + "x86_64-linux" + ]; + maxJobs = 4; + speedFactor = 6; + supportedFeatures = [ + "big-parallel" + "kvm" + "nixos-test" + ]; + } + { + hostName = "build4.darmstadt.ccc.de"; + protocol = "ssh"; + sshUser = "avocadoom"; + sshKey = "/home/thilo/.ssh/id_darmstadt-ccc-de"; + systems = [ + "i686-linux" + "x86_64-linux" + ]; + # this node has half the cpu of the others + maxJobs = 2; + speedFactor = 6; + supportedFeatures = [ + "big-parallel" + "kvm" + "nixos-test" + ]; + } + ]; }; } diff --git a/nixos/common.nix b/nixos/common.nix index 444a4a9..5d516f3 100644 --- a/nixos/common.nix +++ b/nixos/common.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, inputs, ... }: +{ + config, + pkgs, + lib, + inputs, + ... +}: { imports = [ ./../nix.nix ]; @@ -10,13 +16,15 @@ # This will additionally add your inputs to the system's legacy channels # Making legacy nix commands consistent as well, awesome! - nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") - config.nix.registry; + nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; }; nixpkgs = { config = { - permittedInsecurePackages = [ "electron-24.8.6" "electron-25.9.0" ]; + permittedInsecurePackages = [ + "electron-24.8.6" + "electron-25.9.0" + ]; allowUnfree = true; }; }; @@ -78,7 +86,12 @@ }; }; - environment.systemPackages = with pkgs; [ git zsh kitty steamtinkerlaunch ]; + environment.systemPackages = with pkgs; [ + git + zsh + kitty + steamtinkerlaunch + ]; networking.networkmanager.enable = true; @@ -91,7 +104,9 @@ pulse.enable = true; jack.enable = true; }; - tailscale = { enable = true; }; + tailscale = { + enable = true; + }; flatpak.enable = true; avahi = { enable = true;