diff --git a/desktop/default.nix b/desktop/default.nix index daaf4c1..60f102c 100644 --- a/desktop/default.nix +++ b/desktop/default.nix @@ -1,5 +1,10 @@ { ... }: { - imports = [ ./x11.nix ./wayland.nix ./gtk.nix ./gnome.nix ]; + imports = [ + ./x11.nix + ./wayland.nix + ./gtk.nix + ./gnome.nix + ]; } diff --git a/desktop/gnome.nix b/desktop/gnome.nix index 4baed3b..e40db5c 100644 --- a/desktop/gnome.nix +++ b/desktop/gnome.nix @@ -1,8 +1,10 @@ { pkgs, ... }: { - environment.systemPackages = with pkgs; - with gnomeExtensions; [ + environment.systemPackages = + with pkgs; + with gnomeExtensions; + [ gnome.dconf-editor gnome.gnome-tweaks gnome.zenity diff --git a/flake.nix b/flake.nix index b721147..955e676 100644 --- a/flake.nix +++ b/flake.nix @@ -77,9 +77,18 @@ rec { }; }; - outputs = { self, nixpkgs, nixpkgs-unstable, ... }@inputs: + outputs = + { + self, + nixpkgs, + nixpkgs-unstable, + ... + }@inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { - systems = [ "x86_64-linux" "aarch64-linux" ]; + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; imports = [ ./pkgs/flake-module.nix ./lib/flake-module.nix @@ -102,27 +111,33 @@ rec { mullvad-browser = import ./home/modules/firefox/mullvad-browser.nix; }; }; - perSystem = { system, config, pkgs, ... }: { - _module.args.pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; - }; + perSystem = + { + system, + config, + pkgs, + ... + }: + { + _module.args.pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; + }; - devShells.default = - pkgs.mkShell { inherit (config.checks.pre-commit) shellHook; }; + devShells.default = pkgs.mkShell { inherit (config.checks.pre-commit) shellHook; }; - checks = { - pre-commit = inputs.pre-commit-hooks.lib.${system}.run { - src = ./.; - hooks = { - nixfmt.enable = true; - nixfmt.package = pkgs.nixfmt-classic; - shellcheck.enable = true; + checks = { + pre-commit = inputs.pre-commit-hooks.lib.${system}.run { + src = ./.; + hooks = { + nixfmt.enable = true; + nixfmt.package = pkgs.nixfmt-rfc-style; + shellcheck.enable = true; + }; }; }; - }; - formatter = pkgs.nixfmt-classic; - }; + formatter = pkgs.nixfmt-rfc-style; + }; }; } diff --git a/hardware/base.nix b/hardware/base.nix index e790d69..e668bcd 100644 --- a/hardware/base.nix +++ b/hardware/base.nix @@ -1,7 +1,11 @@ { lib, pkgs, ... }: { - imports = [ ./firmware.nix ./solokeys.nix ./zsa.nix ]; + imports = [ + ./firmware.nix + ./solokeys.nix + ./zsa.nix + ]; boot.supportedFilesystems = lib.mkDefault [ "btrfs" ]; boot.kernelPackages = lib.mkOverride 800 pkgs.linuxPackages_latest; diff --git a/hardware/bluetooth.nix b/hardware/bluetooth.nix index c2d0802..7f73c66 100644 --- a/hardware/bluetooth.nix +++ b/hardware/bluetooth.nix @@ -1,8 +1,15 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { hardware.bluetooth.enable = true; hardware.bluetooth.settings = { - General = { Enable = "Source,Sink,Media,Socket"; }; + General = { + Enable = "Source,Sink,Media,Socket"; + }; }; } diff --git a/hardware/home-pc.nix b/hardware/home-pc.nix index 648f52d..d8aab7a 100644 --- a/hardware/home-pc.nix +++ b/hardware/home-pc.nix @@ -1,11 +1,23 @@ # 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, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { - boot.initrd.availableKernelModules = - [ "nvme" "ahci" "xhci_pci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.availableKernelModules = [ + "nvme" + "ahci" + "xhci_pci" + "usb_storage" + "usbhid" + "sd_mod" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; @@ -13,22 +25,33 @@ fileSystems."/" = { device = "/dev/disk/by-uuid/5830e9b3-260b-451c-bfee-2028c64c6199"; fsType = "btrfs"; - options = [ "subvol=@" "compress-force=zstd:1" "noatime" ]; + options = [ + "subvol=@" + "compress-force=zstd:1" + "noatime" + ]; }; - boot.initrd.luks.devices."enc".device = - "/dev/disk/by-uuid/1dd848b6-cd7f-4959-8500-a03ffdaeae66"; + boot.initrd.luks.devices."enc".device = "/dev/disk/by-uuid/1dd848b6-cd7f-4959-8500-a03ffdaeae66"; fileSystems."/home" = { device = "/dev/disk/by-uuid/5830e9b3-260b-451c-bfee-2028c64c6199"; fsType = "btrfs"; - options = [ "subvol=@home" "compress-force=zstd:1" "noatime" ]; + options = [ + "subvol=@home" + "compress-force=zstd:1" + "noatime" + ]; }; fileSystems."/.snapshots" = { device = "/dev/disk/by-uuid/5830e9b3-260b-451c-bfee-2028c64c6199"; fsType = "btrfs"; - options = [ "subvol=@snapshots" "compress-force=zstd:1" "noatime" ]; + options = [ + "subvol=@snapshots" + "compress-force=zstd:1" + "noatime" + ]; }; fileSystems."/boot" = { @@ -36,6 +59,5 @@ fsType = "vfat"; }; - hardware.cpu.amd.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hardware/lattepanda.nix b/hardware/lattepanda.nix index 3bad9f6..b9a230b 100644 --- a/hardware/lattepanda.nix +++ b/hardware/lattepanda.nix @@ -19,22 +19,33 @@ fileSystems."/" = { device = "/dev/disk/by-uuid/70f03d67-e248-42f6-a204-c02e4f180531"; fsType = "btrfs"; - options = [ "subvol=@" "compress-force=zstd:1" "noatime" ]; + options = [ + "subvol=@" + "compress-force=zstd:1" + "noatime" + ]; }; - boot.initrd.luks.devices."enc".device = - "/dev/disk/by-uuid/d3b12d0e-7e8e-4130-9a8f-680abcdc9682"; + boot.initrd.luks.devices."enc".device = "/dev/disk/by-uuid/d3b12d0e-7e8e-4130-9a8f-680abcdc9682"; fileSystems."/home" = { device = "/dev/disk/by-uuid/70f03d67-e248-42f6-a204-c02e4f180531"; fsType = "btrfs"; - options = [ "subvol=@home" "compress-force=zstd:1" "noatime" ]; + options = [ + "subvol=@home" + "compress-force=zstd:1" + "noatime" + ]; }; fileSystems."/.snapshots" = { device = "/dev/disk/by-uuid/70f03d67-e248-42f6-a204-c02e4f180531"; fsType = "btrfs"; - options = [ "subvol=@snapshots" "compress-force=zstd:1" "noatime" ]; + options = [ + "subvol=@snapshots" + "compress-force=zstd:1" + "noatime" + ]; }; fileSystems."/boot" = { @@ -51,6 +62,5 @@ # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; - hardware.cpu.intel.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hardware/pilot1.nix b/hardware/pilot1.nix index 4dcee40..aaa9e84 100644 --- a/hardware/pilot1.nix +++ b/hardware/pilot1.nix @@ -1,8 +1,19 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { - boot.initrd.availableKernelModules = - [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "usbhid" + "usb_storage" + "sd_mod" + "rtsx_pci_sdmmc" + ]; boot.initrd.kernelModules = [ "dm-snapshot" ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; @@ -17,11 +28,9 @@ fsType = "vfat"; }; - swapDevices = - [{ device = "/dev/disk/by-uuid/397a1a92-596f-421b-99e1-c9b2cb821309"; }]; + swapDevices = [ { device = "/dev/disk/by-uuid/397a1a92-596f-421b-99e1-c9b2cb821309"; } ]; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; - hardware.cpu.intel.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/home/ausweisapp.nix b/home/ausweisapp.nix index acfcded..abc9aee 100644 --- a/home/ausweisapp.nix +++ b/home/ausweisapp.nix @@ -1,5 +1,6 @@ { config, pkgs, ... }: -with pkgs; { +with pkgs; +{ home.packages = [ AusweisApp2 ]; } diff --git a/home/browsers/default.nix b/home/browsers/default.nix index 2a6c8e2..0f09528 100644 --- a/home/browsers/default.nix +++ b/home/browsers/default.nix @@ -1,7 +1,11 @@ { pkgs, ... }: { - imports = [ ./mullvad-browser.nix ./tor-browser.nix ./firefox.nix ]; + imports = [ + ./mullvad-browser.nix + ./tor-browser.nix + ./firefox.nix + ]; home.packages = with pkgs; [ chromium ]; diff --git a/home/browsers/firefox.nix b/home/browsers/firefox.nix index 584c55f..2b1dd05 100644 --- a/home/browsers/firefox.nix +++ b/home/browsers/firefox.nix @@ -1,11 +1,16 @@ -{ inputs, config, pkgs, lib, ... }: +{ + inputs, + config, + pkgs, + lib, + ... +}: with lib; let firefox-addons = inputs.firefox-addons.packages.${pkgs.system}; - inherit (import ../modules/firefox/common.nix { inherit config lib pkgs; }) - mkConfig; + inherit (import ../modules/firefox/common.nix { inherit config lib pkgs; }) mkConfig; arkenfoxConfig = builtins.readFile "${inputs.arkenfox-userjs}/user.js"; @@ -52,7 +57,8 @@ let libredirect zotero-connector ]; -in { +in +{ programs.firefox = { enable = true; profiles = { @@ -64,45 +70,59 @@ in { work = { id = 1; extraConfig = sharedExtraConfig; - extensions = commonExtensions - ++ (with firefox-addons; [ bitwarden react-devtools reduxdevtools ]); + extensions = + commonExtensions + ++ (with firefox-addons; [ + bitwarden + react-devtools + reduxdevtools + ]); }; }; }; - home.packages = let - makeFirefoxProfileBin = args@{ profile, ... }: - let - name = "firefox-${profile}"; - scriptBin = pkgs.writeScriptBin name '' - firefox -P "${profile}" --name="${name}" $@ + home.packages = + let + makeFirefoxProfileBin = + args@{ profile, ... }: + let + name = "firefox-${profile}"; + scriptBin = pkgs.writeScriptBin name '' + firefox -P "${profile}" --name="${name}" $@ + ''; + desktopFile = pkgs.makeDesktopItem ( + (removeAttrs args [ "profile" ]) + // { + inherit name; + exec = "${scriptBin}/bin/${name} %U"; + extraConfig.StartupWMClass = name; + genericName = "Web Browser"; + mimeTypes = [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + ]; + categories = [ + "Network" + "WebBrowser" + ]; + } + ); + in + pkgs.runCommand name { } '' + mkdir -p $out/{bin,share} + cp -r ${scriptBin}/bin/${name} $out/bin/${name} + cp -r ${desktopFile}/share/applications $out/share/applications ''; - desktopFile = pkgs.makeDesktopItem ((removeAttrs args [ "profile" ]) - // { - inherit name; - exec = "${scriptBin}/bin/${name} %U"; - extraConfig.StartupWMClass = name; - genericName = "Web Browser"; - mimeTypes = [ - "text/html" - "text/xml" - "application/xhtml+xml" - "application/vnd.mozilla.xul+xml" - "x-scheme-handler/http" - "x-scheme-handler/https" - ]; - categories = [ "Network" "WebBrowser" ]; - }); - in pkgs.runCommand name { } '' - mkdir -p $out/{bin,share} - cp -r ${scriptBin}/bin/${name} $out/bin/${name} - cp -r ${desktopFile}/share/applications $out/share/applications - ''; - in [ - (makeFirefoxProfileBin { - profile = "work"; - desktopName = "Firefox (Work)"; - icon = "firefox"; - }) - ]; + in + [ + (makeFirefoxProfileBin { + profile = "work"; + desktopName = "Firefox (Work)"; + icon = "firefox"; + }) + ]; } diff --git a/home/browsers/mullvad-browser.nix b/home/browsers/mullvad-browser.nix index 6b1a415..e0fbcc8 100644 --- a/home/browsers/mullvad-browser.nix +++ b/home/browsers/mullvad-browser.nix @@ -1,4 +1,9 @@ -{ inputs, pkgs, lib, ... }: +{ + inputs, + pkgs, + lib, + ... +}: let firefox-addons = inputs.firefox-addons.packages.${pkgs.system}; @@ -42,7 +47,8 @@ let libredirect zotero-connector ]; -in { +in +{ imports = [ ../modules/firefox/mullvad-browser.nix ]; programs.mullvad-browser = { @@ -57,8 +63,13 @@ in { work = { id = 1; settings = commonSettings; - extensions = commonExtensions - ++ (with firefox-addons; [ bitwarden react-devtools reduxdevtools ]); + extensions = + commonExtensions + ++ (with firefox-addons; [ + bitwarden + react-devtools + reduxdevtools + ]); }; }; }; diff --git a/home/desktop/default.nix b/home/desktop/default.nix index 5f39c6b..b5d0adb 100644 --- a/home/desktop/default.nix +++ b/home/desktop/default.nix @@ -1,5 +1,9 @@ { ... }: { - imports = [ ./gtk.nix ./gnome.nix ./mimeapps.nix ]; + imports = [ + ./gtk.nix + ./gnome.nix + ./mimeapps.nix + ]; } diff --git a/home/desktop/gnome.nix b/home/desktop/gnome.nix index 18b95b0..93bfefb 100644 --- a/home/desktop/gnome.nix +++ b/home/desktop/gnome.nix @@ -5,7 +5,8 @@ let down = "j"; up = "k"; right = "l"; -in { +in +{ dconf.settings = with lib.hm.gvariant; { "org/gnome/shell" = { disable-user-extensions = false; @@ -30,15 +31,31 @@ in { show-title = false; active-hint = false; }; - "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; - "org/gnome/desktop/sound" = { theme-name = "freedesktop"; }; + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + "org/gnome/desktop/sound" = { + theme-name = "freedesktop"; + }; "org/gnome/desktop/input-sources" = { - sources = map mkTuple [ [ "xkb" "gb" ] [ "ibus" "mozc-jp" ] ]; + sources = map mkTuple [ + [ + "xkb" + "gb" + ] + [ + "ibus" + "mozc-jp" + ] + ]; xkb-options = [ "compose:ralt" ]; }; "org/gnome/desktop/app-folders" = { - folder-children = [ "Office" "Utilities" ]; + folder-children = [ + "Office" + "Utilities" + ]; }; "org/gnome/desktop/app-folders/folders/Office" = { name = "Office"; @@ -48,11 +65,17 @@ in { "org/gnome/desktop/app-folders/folders/Utilities" = { name = "Utilities"; translate = true; - categories = [ "Utility" "X-GNOME-Utilities" "System" ]; + categories = [ + "Utility" + "X-GNOME-Utilities" + "System" + ]; }; # key bindings for pop-shell - "org/gnome/mutter/wayland/keybindings" = { restore-shortcuts = [ ]; }; + "org/gnome/mutter/wayland/keybindings" = { + restore-shortcuts = [ ]; + }; "org/gnome/shell/keybindings" = { open-application-menu = [ ]; toggle-message-tray = [ "v" ]; @@ -67,16 +90,25 @@ in { toggle-fullscreen = [ "f" ]; toggle-on-all-workspaces = [ "p" ]; - switch-to-workspace-left = - [ "Left" "${left}" ]; - switch-to-workspace-right = - [ "Right" "${right}" ]; + switch-to-workspace-left = [ + "Left" + "${left}" + ]; + switch-to-workspace-right = [ + "Right" + "${right}" + ]; switch-to-workspace-down = [ ]; switch-to-workspace-up = [ ]; - move-to-workspace-left = [ "Left" "${left}" ]; - move-to-workspace-right = - [ "Right" "${right}" ]; + move-to-workspace-left = [ + "Left" + "${left}" + ]; + move-to-workspace-right = [ + "Right" + "${right}" + ]; move-to-workspace-down = [ ]; move-to-workspace-up = [ ]; @@ -91,7 +123,10 @@ in { }; "org/gnome/settings-daemon/plugins/color" = { night-light-enabled = true; - night-light-last-coordinates = mkTuple [ 53.2593 10.4 ]; + night-light-last-coordinates = mkTuple [ + 53.2593 + 10.4 + ]; night-light-temperature = mkUint32 3700; }; "org/gnome/settings-daemon/plugins/media-keys" = { diff --git a/home/desktop/mimeapps.nix b/home/desktop/mimeapps.nix index cb1de9d..901b0f1 100644 --- a/home/desktop/mimeapps.nix +++ b/home/desktop/mimeapps.nix @@ -15,7 +15,10 @@ let image = [ "org.gnome.Loupe.desktop" ]; audio = [ "io.github.celluloid_player.Celluloid.desktop" ]; video = [ "io.github.celluloid_player.Celluloid.desktop" ]; - directory = [ "nautilus.desktop" "org.gnome.Nautilus.desktop" ]; + directory = [ + "nautilus.desktop" + "org.gnome.Nautilus.desktop" + ]; mail = [ "re.sonny.Junction.desktop" ] ++ browsers; calendar = [ "re.sonny.Junction.desktop" ] ++ browsers; browser = [ "re.sonny.Junction.desktop" ] ++ browsers; @@ -60,7 +63,10 @@ let ]; directory = [ "inode/directory" ]; mail = [ "x-scheme-handler/mailto" ]; - calendar = [ "text/calendar" "x-scheme-handler/webcal" ]; + calendar = [ + "text/calendar" + "x-scheme-handler/webcal" + ]; browser = [ "text/html" "x-scheme-handler/about" @@ -86,26 +92,30 @@ let signal = [ "signal-desktop.desktop" ]; }; - associations = with lists; - listToAttrs (flatten (mapAttrsToList - (key: map (type: attrsets.nameValuePair type defaultApps."${key}")) - mimeMap)); + associations = + with lists; + listToAttrs ( + flatten (mapAttrsToList (key: map (type: attrsets.nameValuePair type defaultApps."${key}")) mimeMap) + ); - noCalibre = let - mimeTypes = [ - "application/pdf" - "application/vnd.oasis.opendocument.text" - "application/vnd.openxmlformats-officedocument.wordprocessingml.document" - "text/html" - "text/x-markdown" - ]; - desktopFiles = [ - "calibre-ebook-edit.desktop" - "calibre-ebook-viewer.desktop" - "calibre-gui.desktop" - ]; - in lib.zipAttrs (map (d: lib.genAttrs mimeTypes (_: d)) desktopFiles); -in { + noCalibre = + let + mimeTypes = [ + "application/pdf" + "application/vnd.oasis.opendocument.text" + "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + "text/html" + "text/x-markdown" + ]; + desktopFiles = [ + "calibre-ebook-edit.desktop" + "calibre-ebook-viewer.desktop" + "calibre-gui.desktop" + ]; + in + lib.zipAttrs (map (d: lib.genAttrs mimeTypes (_: d)) desktopFiles); +in +{ xdg.configFile."mimeapps.list".force = true; xdg.mimeApps.enable = true; xdg.mimeApps.associations.added = associations; diff --git a/home/editors/default.nix b/home/editors/default.nix index a7561e5..0f07d03 100644 --- a/home/editors/default.nix +++ b/home/editors/default.nix @@ -1,9 +1,17 @@ { config, pkgs, ... }: { - imports = [ ./lsp.nix ./dap.nix ./helix ./neovim ]; + imports = [ + ./lsp.nix + ./dap.nix + ./helix + ./neovim + ]; - home.packages = with pkgs; [ fzf ripgrep ]; + home.packages = with pkgs; [ + fzf + ripgrep + ]; home.sessionVariables.EDITOR = "hx"; diff --git a/home/editors/helix/default.nix b/home/editors/helix/default.nix index 7d6e28e..f5cac7e 100644 --- a/home/editors/helix/default.nix +++ b/home/editors/helix/default.nix @@ -3,7 +3,10 @@ let prettier = parser: { command = "prettier"; - args = [ "--parser" parser ]; + args = [ + "--parser" + parser + ]; }; typescriptLanguageServers = [ { @@ -12,7 +15,8 @@ let } "vscode-eslint-language-server" ]; -in { +in +{ # HINT for direnv to work needs to be started from project folder programs.helix = { enable = true; @@ -52,7 +56,10 @@ in { name = "nix"; # `nix fmt` does not support stdin formatter.command = "nixfmt"; - language-servers = [ "nixd" "statix" ]; + language-servers = [ + "nixd" + "statix" + ]; auto-format = true; } { @@ -63,7 +70,10 @@ in { { name = "protobuf"; formatter.command = "buf format -w"; - language-servers = [ "bufls" "buf-lint" ]; + language-servers = [ + "bufls" + "buf-lint" + ]; } { name = "graphql"; @@ -103,7 +113,11 @@ in { name = "bash"; formatter = { command = "shfmt"; - args = [ "-i" "2" "-" ]; + args = [ + "-i" + "2" + "-" + ]; }; auto-format = true; } @@ -125,23 +139,31 @@ in { command = "efm-langserver"; config = { languages = { - nix = [{ - # https://github.com/creativenull/efmls-configs-nvim/blob/ddc7c542aaad21da594edba233c15ae3fad01ea0/lua/efmls-configs/linters/statix.lua - lintCommand = "statix check --stdin --format=errfmt"; - lintStdIn = true; - lintIgnoreExitCode = true; - lintFormats = [ ">%l:%c:%t:%n:%m" ]; - rootMarkers = [ "flake.nix" "shell.nix" "default.nix" ]; - }]; + nix = [ + { + # https://github.com/creativenull/efmls-configs-nvim/blob/ddc7c542aaad21da594edba233c15ae3fad01ea0/lua/efmls-configs/linters/statix.lua + lintCommand = "statix check --stdin --format=errfmt"; + lintStdIn = true; + lintIgnoreExitCode = true; + lintFormats = [ ">%l:%c:%t:%n:%m" ]; + rootMarkers = [ + "flake.nix" + "shell.nix" + "default.nix" + ]; + } + ]; }; }; }; buf-lint = { command = "efm-langserver"; - config.languages.protobuf = [{ - lintCommand = "buf lint --path"; - rootMarkers = [ "buf.yaml" ]; - }]; + config.languages.protobuf = [ + { + lintCommand = "buf lint --path"; + rootMarkers = [ "buf.yaml" ]; + } + ]; }; nixd.command = "nixd"; # does not support formatting @@ -177,7 +199,10 @@ in { config = { runtime = { version = "LuaJIT"; - path = [ "?.lua" "?/init.lua" ]; + path = [ + "?.lua" + "?/init.lua" + ]; }; }; }; @@ -216,7 +241,9 @@ in { "H" = "goto_line_start"; "L" = "goto_line_end"; }; - insert = { "C-space" = "completion"; }; + insert = { + "C-space" = "completion"; + }; }; }; }; diff --git a/home/editors/neovim/default.nix b/home/editors/neovim/default.nix index ba3e16d..1e01285 100644 --- a/home/editors/neovim/default.nix +++ b/home/editors/neovim/default.nix @@ -6,8 +6,12 @@ let ${lua} EOF ''; -in { - home.packages = with pkgs; [ neovide graphviz ]; +in +{ + home.packages = with pkgs; [ + neovide + graphviz + ]; programs.neovim = { enable = true; @@ -65,26 +69,29 @@ in { neorg ]; - extraConfig = with builtins; - vimLua (lib.foldl (r: f: r + "\n" + readFile f) "" [ - ./init.lua - ./alpha.lua - ./auto-session.lua - ./lualine.lua - ./which-key.lua - ./gitsigns.lua - ./test.lua - ./completion.lua - ./diagnostic.lua - ./lsp/extensions.lua - ./lsp/lsp.lua - ./lsp/mappings.lua - ./dap/dap.lua - ./dap/mappings.lua - ./treesitter.lua - ./telescope.lua - ./neorg.lua - ]); + extraConfig = + with builtins; + vimLua ( + lib.foldl (r: f: r + "\n" + readFile f) "" [ + ./init.lua + ./alpha.lua + ./auto-session.lua + ./lualine.lua + ./which-key.lua + ./gitsigns.lua + ./test.lua + ./completion.lua + ./diagnostic.lua + ./lsp/extensions.lua + ./lsp/lsp.lua + ./lsp/mappings.lua + ./dap/dap.lua + ./dap/mappings.lua + ./treesitter.lua + ./telescope.lua + ./neorg.lua + ] + ); withNodeJs = false; withPython3 = false; }; diff --git a/home/element.nix b/home/element.nix index 0f5c3dd..36a0383 100644 --- a/home/element.nix +++ b/home/element.nix @@ -13,11 +13,11 @@ let >"$out/share/applications/element-desktop.desktop" ''; }; -in { +in +{ home.packages = [ element-desktop ]; xdg.configFile."autostart/element-desktop.desktop".text = - builtins.replaceStrings [ "Exec=element-desktop" ] - [ "Exec=element-desktop --hidden" ] (builtins.readFile - "${element-desktop}/share/applications/element-desktop.desktop"); + builtins.replaceStrings [ "Exec=element-desktop" ] [ "Exec=element-desktop --hidden" ] + (builtins.readFile "${element-desktop}/share/applications/element-desktop.desktop"); } diff --git a/home/felschr-server.nix b/home/felschr-server.nix index 9e7faf3..2787392 100644 --- a/home/felschr-server.nix +++ b/home/felschr-server.nix @@ -1,9 +1,22 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: { - imports = [ ./shell ./editors/lsp.nix ./editors/helix ./git.nix ]; + imports = [ + ./shell + ./editors/lsp.nix + ./editors/helix + ./git.nix + ]; - home.packages = with pkgs; [ fh ncurses ]; + home.packages = with pkgs; [ + fh + ncurses + ]; programs.gpg.enable = true; services.gpg-agent = { diff --git a/home/felschr-work.nix b/home/felschr-work.nix index c569f5f..989d6c5 100644 --- a/home/felschr-work.nix +++ b/home/felschr-work.nix @@ -1,6 +1,12 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: -with pkgs; { +with pkgs; +{ imports = [ ./shell ./tailscale.nix @@ -31,7 +37,9 @@ with pkgs; { programs.ssh.enable = true; - programs.git = { defaultProfile = "work"; }; + programs.git = { + defaultProfile = "work"; + }; xdg.configFile."nixpkgs/config.nix".text = '' { diff --git a/home/felschr.nix b/home/felschr.nix index c35aa96..e1a126c 100644 --- a/home/felschr.nix +++ b/home/felschr.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { imports = [ diff --git a/home/gaming/default.nix b/home/gaming/default.nix index f1f3170..23e0ff5 100644 --- a/home/gaming/default.nix +++ b/home/gaming/default.nix @@ -1,7 +1,13 @@ { pkgs, ... }: { - imports = [ ./steam.nix ./lutris.nix ]; + imports = [ + ./steam.nix + ./lutris.nix + ]; - home.packages = with pkgs; [ gamescope mangohud ]; + home.packages = with pkgs; [ + gamescope + mangohud + ]; } diff --git a/home/gaming/lutris.nix b/home/gaming/lutris.nix index f5b58ef..925d8b9 100644 --- a/home/gaming/lutris.nix +++ b/home/gaming/lutris.nix @@ -1,6 +1,15 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: { # TODO move into heroic.nix or rename lutris.nix - home.packages = with pkgs; [ unstable.wineWowPackages.stable lutris heroic ]; + home.packages = with pkgs; [ + unstable.wineWowPackages.stable + lutris + heroic + ]; } diff --git a/home/gaming/steam.nix b/home/gaming/steam.nix index 1d86f53..1497e0e 100644 --- a/home/gaming/steam.nix +++ b/home/gaming/steam.nix @@ -2,15 +2,17 @@ { home.file = { - proton-ge = let version = "GE-Proton7-54"; - in { - recursive = true; - source = builtins.fetchTarball { - url = - "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${version}/${version}.tar.gz"; - sha256 = "1iy14s1d48wxnnmw45jh5w2yadkrvwip8k91xljwg066aprb00vi"; + proton-ge = + let + version = "GE-Proton7-54"; + in + { + recursive = true; + source = builtins.fetchTarball { + url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${version}/${version}.tar.gz"; + sha256 = "1iy14s1d48wxnnmw45jh5w2yadkrvwip8k91xljwg066aprb00vi"; + }; + target = ".local/share/Steam/compatibilitytools.d/Proton-${version}/"; }; - target = ".local/share/Steam/compatibilitytools.d/Proton-${version}/"; - }; }; } diff --git a/home/git.nix b/home/git.nix index daec016..0a86f50 100644 --- a/home/git.nix +++ b/home/git.nix @@ -10,7 +10,10 @@ email = "dev@felschr.com"; # use sign subkey's fingerprint: gpg2 -K --with-subkey-fingerprint signingKey = "7E08 6842 0934 AA1D 6821 1F2A 671E 39E6 744C 807D"; - dirs = [ "~/dev/private/" "/etc/nixos" ]; + dirs = [ + "~/dev/private/" + "/etc/nixos" + ]; }; work = { name = "Felix Schröter"; @@ -22,10 +25,16 @@ }; ignores = [ ".direnv" ]; - signing = { signByDefault = true; }; + signing = { + signByDefault = true; + }; extraConfig = { - init = { defaultBranch = "main"; }; - pull = { rebase = true; }; + init = { + defaultBranch = "main"; + }; + pull = { + rebase = true; + }; rebase = { autoStash = true; autoSquash = true; @@ -35,14 +44,12 @@ }; aliases = { # usage: git mr (git mr origin 1010) - mr = - "!sh -c 'git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' -"; + mr = "!sh -c 'git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' -"; # usage: git pr (git pr origin 1010) pr = "!sh -c 'git fetch $1 pull/$2/head:pr/$2 && git checkout pr/$2' -"; # delete branches locally that have already been merged # usage: git clean-branches (branch to check against, defaults to main) - clean-branches = '' - !sh -c 'git branch --merged "''${1:-main}" | egrep -v "(^\*|master|main|staging|production)" | xargs git branch -d' -''; + clean-branches = ''!sh -c 'git branch --merged "''${1:-main}" | egrep -v "(^\*|master|main|staging|production)" | xargs git branch -d' -''; }; }; } diff --git a/home/modules/firefox/common.nix b/home/modules/firefox/common.nix index 5370567..8fda3fe 100644 --- a/home/modules/firefox/common.nix +++ b/home/modules/firefox/common.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with lib; @@ -9,24 +14,29 @@ let # by future Firefox versions. extensionPath = "extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"; - userPrefValue = pref: - builtins.toJSON (if isBool pref || isInt pref || isString pref then - pref - else - builtins.toJSON pref); + userPrefValue = + pref: + builtins.toJSON (if isBool pref || isInt pref || isString pref then pref else builtins.toJSON pref); - mkConfig = prefs: - concatStrings (mapAttrsToList (name: value: '' - user_pref("${name}", ${userPrefValue value}); - '') prefs); + mkConfig = + prefs: + concatStrings ( + mapAttrsToList (name: value: '' + user_pref("${name}", ${userPrefValue value}); + '') prefs + ); - mkUserJs = prefs: extraPrefs: bookmarks: + mkUserJs = + prefs: extraPrefs: bookmarks: let - prefs' = lib.optionalAttrs ([ ] != bookmarks) { - "browser.bookmarks.file" = toString (firefoxBookmarksFile bookmarks); - "browser.places.importBookmarksHTML" = true; - } // prefs; - in '' + prefs' = + lib.optionalAttrs ([ ] != bookmarks) { + "browser.bookmarks.file" = toString (firefoxBookmarksFile bookmarks); + "browser.places.importBookmarksHTML" = true; + } + // prefs; + in + '' // Generated by Home Manager. ${mkConfig prefs'} @@ -34,19 +44,16 @@ let ${extraPrefs} ''; - firefoxBookmarksFile = bookmarks: + firefoxBookmarksFile = + bookmarks: let - indent = level: - lib.concatStringsSep "" (map (lib.const " ") (lib.range 1 level)); + indent = level: lib.concatStringsSep "" (map (lib.const " ") (lib.range 1 level)); - bookmarkToHTML = indentLevel: bookmark: - '' - ${indent indentLevel}
${escapeXML bookmark.name}''; + bookmarkToHTML = + indentLevel: bookmark: + ''${indent indentLevel}
${escapeXML bookmark.name}''; directoryToHTML = indentLevel: directory: '' ${indent indentLevel}
${ @@ -59,18 +66,16 @@ let ${allItemsToHTML (indentLevel + 1) directory.bookmarks} ${indent indentLevel}

''; - itemToHTMLOrRecurse = indentLevel: item: - if item ? "url" then - bookmarkToHTML indentLevel item - else - directoryToHTML indentLevel item; + itemToHTMLOrRecurse = + indentLevel: item: + if item ? "url" then bookmarkToHTML indentLevel item else directoryToHTML indentLevel item; - allItemsToHTML = indentLevel: bookmarks: - lib.concatStringsSep "\n" - (map (itemToHTMLOrRecurse indentLevel) bookmarks); + allItemsToHTML = + indentLevel: bookmarks: lib.concatStringsSep "\n" (map (itemToHTMLOrRecurse indentLevel) bookmarks); bookmarkEntries = allItemsToHTML 1 bookmarks; - in pkgs.writeText "firefox-bookmarks.html" '' + in + pkgs.writeText "firefox-bookmarks.html" ''