From b4c3dfec42cb01f9979fbb97bb714fb83dff2bf3 Mon Sep 17 00:00:00 2001 From: ulic-youthlic Date: Sun, 9 Nov 2025 06:25:03 +0800 Subject: [PATCH] feat: Change nix formatter to alejandra --- .nvim.lua | 1 + .zed/settings.json | 12 + flake.nix | 77 +- flake/deploy.nix | 61 +- flake/home.nix | 94 +- flake/nixos.nix | 38 +- flake/overlays.nix | 21 +- flake/perSystem.nix | 144 +- flake/templates.nix | 3 +- home/alice/configurations/Cape/default.nix | 3 +- home/alice/modules/default.nix | 2 +- home/david/configurations/Akun/default.nix | 47 +- home/david/configurations/Akun/niri.nix | 55 +- .../configurations/Tytonidae/default.nix | 63 +- home/david/configurations/Tytonidae/niri.nix | 26 +- home/david/modules/default.nix | 3 +- home/david/modules/emails.nix | 6 +- .../modules/programs/alacritty/default.nix | 16 +- home/david/modules/programs/chromium.nix | 6 +- home/david/modules/programs/espanso.nix | 8 +- home/david/modules/programs/firefox.nix | 28 +- home/david/modules/programs/foot/default.nix | 6 +- home/david/modules/programs/fuzzel.nix | 6 +- home/david/modules/programs/ghostty.nix | 63 +- home/david/modules/programs/helix.nix | 6 +- home/david/modules/programs/kanshi.nix | 6 +- home/david/modules/programs/mpv.nix | 6 +- home/david/modules/programs/niri/config.nix | 1284 +++++++++-------- home/david/modules/programs/niri/default.nix | 43 +- home/david/modules/programs/nvchad.nix | 6 +- home/david/modules/programs/openssh.nix | 8 +- .../modules/programs/spacemacs/default.nix | 13 +- home/david/modules/programs/swaylock.nix | 6 +- home/david/modules/programs/swaync.nix | 8 +- home/david/modules/programs/thunderbird.nix | 6 +- home/david/modules/programs/waybar.nix | 10 +- home/david/modules/programs/waypaper.nix | 8 +- home/david/modules/programs/wluma.nix | 35 +- home/david/modules/programs/zed.nix | 8 +- home/david/modules/wallpaper.nix | 6 +- home/extra/default.nix | 3 +- home/extra/nix.nix | 3 +- home/modules/default.nix | 3 +- home/modules/programs/atuin.nix | 6 +- home/modules/programs/awscli.nix | 8 +- home/modules/programs/bash.nix | 6 +- home/modules/programs/direnv/default.nix | 10 +- home/modules/programs/eza.nix | 6 +- home/modules/programs/fish.nix | 12 +- home/modules/programs/fzf.nix | 6 +- home/modules/programs/git.nix | 10 +- home/modules/programs/gpg/default.nix | 10 +- home/modules/programs/helix/default.nix | 387 +++-- home/modules/programs/ion.nix | 6 +- home/modules/programs/jujutsu.nix | 6 +- home/modules/programs/kvm.nix | 10 +- home/modules/programs/rustypaste-cli.nix | 12 +- home/modules/programs/sops.nix | 13 +- home/modules/programs/spotifyd.nix | 10 +- home/modules/programs/starship/default.nix | 13 +- home/modules/programs/yazi.nix | 11 +- home/modules/programs/zoxide.nix | 6 +- home/modules/xdg-dirs.nix | 6 +- lib/default.nix | 49 +- nixos/configurations/Akun/default.nix | 7 +- nixos/configurations/Akun/disk-config.nix | 2 +- nixos/configurations/Akun/gui.nix | 3 +- .../Akun/hardware-configuration.nix | 9 +- nixos/configurations/Akun/networking.nix | 3 +- nixos/configurations/Akun/stylix.nix | 3 +- nixos/configurations/Akun/users/default.nix | 3 +- nixos/configurations/Cape/default.nix | 14 +- nixos/configurations/Cape/disko-config.nix | 2 +- nixos/configurations/Cape/forgejo.nix | 5 +- .../Cape/hardware-configuration.nix | 9 +- nixos/configurations/Cape/miniflux.nix | 3 +- nixos/configurations/Cape/networking.nix | 3 +- nixos/configurations/Cape/radicle.nix | 5 +- nixos/configurations/Cape/stylix.nix | 3 +- nixos/configurations/Cape/users/default.nix | 3 +- nixos/configurations/Tytonidae/default.nix | 5 +- .../configurations/Tytonidae/disk-config.nix | 3 +- nixos/configurations/Tytonidae/gui.nix | 3 +- .../Tytonidae/hardware-configuration.nix | 9 +- nixos/configurations/Tytonidae/hardware.nix | 65 +- nixos/configurations/Tytonidae/networking.nix | 3 +- .../Tytonidae/specialisation/cosmic.nix | 3 +- .../Tytonidae/specialisation/kde.nix | 3 +- .../Tytonidae/specialisation/niri-hybrid.nix | 5 +- nixos/configurations/Tytonidae/stylix.nix | 3 +- .../Tytonidae/users/default.nix | 3 +- nixos/modules/containers/default.nix | 6 +- nixos/modules/containers/forgejo.nix | 106 +- nixos/modules/containers/miniflux.nix | 92 +- nixos/modules/default.nix | 6 +- nixos/modules/deploy/default.nix | 6 +- nixos/modules/documentation.nix | 141 +- nixos/modules/gui/cosmic.nix | 6 +- nixos/modules/gui/default.nix | 6 +- nixos/modules/gui/kde.nix | 6 +- nixos/modules/gui/niri.nix | 12 +- nixos/modules/hardware.nix | 6 +- nixos/modules/home.nix | 19 +- nixos/modules/i18n.nix | 6 +- nixos/modules/nix.nix | 55 +- nixos/modules/programs/asusd.nix | 6 +- nixos/modules/programs/bash.nix | 6 +- .../caddy/OuterWildsTextAdventure.nix | 6 +- nixos/modules/programs/caddy/default.nix | 8 +- nixos/modules/programs/caddy/garage.nix | 6 +- .../programs/caddy/radicle-explorer.nix | 6 +- nixos/modules/programs/dae/default.nix | 196 ++- nixos/modules/programs/emacs.nix | 20 +- nixos/modules/programs/forgejo.nix | 22 +- nixos/modules/programs/garage.nix | 6 +- nixos/modules/programs/guix.nix | 15 +- nixos/modules/programs/juicity/default.nix | 20 +- nixos/modules/programs/juicity/template.nix | 34 +- nixos/modules/programs/kanata/default.nix | 8 +- nixos/modules/programs/matrix-tuwunel.nix | 8 +- nixos/modules/programs/mautrix-telegram.nix | 10 +- nixos/modules/programs/miniflux.nix | 6 +- nixos/modules/programs/minio.nix | 6 +- nixos/modules/programs/nh.nix | 3 +- nixos/modules/programs/nix-ld.nix | 6 +- nixos/modules/programs/obs.nix | 6 +- nixos/modules/programs/open-webui.nix | 22 +- nixos/modules/programs/openssh.nix | 8 +- nixos/modules/programs/owncast.nix | 6 +- nixos/modules/programs/postgresql.nix | 8 +- nixos/modules/programs/radicle.nix | 12 +- nixos/modules/programs/rustypaste/default.nix | 6 +- .../modules/programs/rustypaste/template.nix | 18 +- nixos/modules/programs/steam.nix | 6 +- nixos/modules/programs/supergfxd.nix | 6 +- nixos/modules/programs/tailscale.nix | 6 +- nixos/modules/programs/transfer-sh.nix | 6 +- nixos/modules/programs/transmission.nix | 32 +- nixos/modules/programs/wshowkeys.nix | 6 +- nixos/modules/sops.nix | 5 +- nixos/modules/top-level/default.nix | 3 +- nixos/modules/top-level/gui.nix | 16 +- nixos/modules/virtualisation/kvm.nix | 10 +- nixos/modules/virtualisation/waydroid.nix | 8 +- .../additions/OuterWildsTextAdventure.nix | 7 +- overlays/additions/TrackersListCollection.nix | 7 +- overlays/additions/default.nix | 40 +- overlays/additions/doom-emacs.nix | 7 +- overlays/additions/editor-runtime.nix | 7 +- overlays/additions/nixvim.nix | 7 +- overlays/additions/osu-lazer-bin.nix | 7 +- overlays/additions/pkgsNoCuda.nix | 7 +- overlays/additions/rime-all.nix | 7 +- overlays/additions/rime-yuhaostar.nix | 7 +- overlays/additions/wallpapers.nix | 7 +- overlays/modifications/QQ.nix | 7 +- overlays/modifications/cliphist.nix | 7 +- overlays/modifications/default.nix | 48 +- overlays/modifications/helix.nix | 7 +- overlays/modifications/nautilus.nix | 5 +- overlays/modifications/neovim-nightly.nix | 7 +- overlays/modifications/niri.nix | 2 +- overlays/modifications/nur.nix | 2 +- overlays/modifications/radicle-explorer.nix | 7 +- overlays/modifications/spotifyd.nix | 7 +- overlays/modifications/spotifyx.nix | 7 +- overlays/modifications/vim.nix | 7 +- overlays/modifications/wshowkeys.nix | 7 +- overlays/modifications/zulip.nix | 5 +- pkgs/OuterWildsTextAdventure.nix | 35 +- pkgs/QQ.nix | 2 +- pkgs/TrackersListCollection.nix | 5 +- pkgs/cliphist'.nix | 65 +- pkgs/doom-emacs/package.nix | 59 +- pkgs/fonts/noto-sans-cjk.nix | 21 +- pkgs/fonts/noto-serif-cjk.nix | 21 +- pkgs/helix/package.nix | 31 +- pkgs/helix/runtime.nix | 28 +- pkgs/nixvim/autocmds.nix | 2 +- pkgs/nixvim/coding/blink-cmp.nix | 7 +- pkgs/nixvim/coding/lazydev.nix | 5 +- pkgs/nixvim/coding/mini-ai.nix | 3 +- pkgs/nixvim/coding/mini-pairs.nix | 3 +- pkgs/nixvim/coding/ts-comments.nix | 3 +- pkgs/nixvim/editor.nix | 3 +- pkgs/nixvim/editor/gitsigns.nix | 3 +- pkgs/nixvim/editor/trouble.nix | 3 +- pkgs/nixvim/editor/which-key.nix | 3 +- pkgs/nixvim/formatting.nix | 153 +- pkgs/nixvim/keymaps.nix | 2 +- pkgs/nixvim/lang/c.nix | 3 +- pkgs/nixvim/lang/cxx.nix | 3 +- pkgs/nixvim/lang/idris2.nix | 5 +- pkgs/nixvim/lang/json.nix | 3 +- pkgs/nixvim/lang/lua.nix | 3 +- pkgs/nixvim/lang/markdown.nix | 3 +- pkgs/nixvim/lang/nix.nix | 3 +- pkgs/nixvim/lang/python.nix | 3 +- pkgs/nixvim/lang/rust.nix | 3 +- pkgs/nixvim/lang/toml.nix | 3 +- pkgs/nixvim/lang/yaml.nix | 3 +- pkgs/nixvim/linting.nix | 2 +- pkgs/nixvim/lsp.nix | 3 +- pkgs/nixvim/module.nix | 32 +- pkgs/nixvim/neovide.nix | 3 +- pkgs/nixvim/options.nix | 5 +- pkgs/nixvim/package.nix | 3 +- pkgs/nixvim/treesitter.nix | 3 +- pkgs/nixvim/ui/bufferline.nix | 3 +- pkgs/nixvim/ui/colorschemes.nix | 3 +- pkgs/nixvim/ui/lualine.nix | 5 +- pkgs/nixvim/util/lazy-load.nix | 3 +- pkgs/nixvim/util/snacks.nix | 3 +- pkgs/nixvim/util/vim-startuptime.nix | 3 +- pkgs/nixvimPlugins/vim-startuptime.nix | 13 +- pkgs/radicle-explorer'.nix | 8 +- pkgs/rime-yuhaostar/package.nix | 51 +- pkgs/spotifyd'.nix | 40 +- pkgs/spotifyx.nix | 53 +- pkgs/vim'/package.nix | 7 +- pkgs/wallpapers.nix | 16 +- pkgs/wshowkeys-mao.nix | 17 +- templates/cxx/flake.nix | 19 +- templates/python/flake.nix | 19 +- templates/rust/flake.nix | 88 +- templates/rust/nix/cargo-artifacts.nix | 23 +- templates/rust/nix/lib.nix | 6 +- templates/rust/nix/package.nix | 25 +- treefmt.nix | 126 +- 229 files changed, 2528 insertions(+), 2884 deletions(-) create mode 100644 .nvim.lua create mode 100644 .zed/settings.json diff --git a/.nvim.lua b/.nvim.lua new file mode 100644 index 0000000..898df58 --- /dev/null +++ b/.nvim.lua @@ -0,0 +1 @@ +require("conform").formatters_by_ft.nix = { "alejandra" } diff --git a/.zed/settings.json b/.zed/settings.json new file mode 100644 index 0000000..ff63d82 --- /dev/null +++ b/.zed/settings.json @@ -0,0 +1,12 @@ +{ + "languages": { + "Nix": { + "formatter": { + "external": { + "command": "alejandra", + "arguments": ["-"] + } + } + } + } +} diff --git a/flake.nix b/flake.nix index 7ca5cae..803014f 100644 --- a/flake.nix +++ b/flake.nix @@ -1,52 +1,49 @@ { description = "A simple NixOS flakes"; - outputs = - { - flake-parts, - flake-utils, - home-manager, - treefmt-nix, - nixpkgs, - ... - }@inputs: - let - nixpkgs-lib = nixpkgs.lib; - lib = nixpkgs-lib.extend (import ./lib); - in + outputs = { + flake-parts, + flake-utils, + home-manager, + treefmt-nix, + nixpkgs, + ... + } @ inputs: let + nixpkgs-lib = nixpkgs.lib; + lib = nixpkgs-lib.extend (import ./lib); + in flake-parts.lib.mkFlake - { - inherit inputs; - specialArgs = { - inherit lib; - rootPath = ./.; - }; - } - ( - { lib, ... }: - { - systems = flake-utils.lib.defaultSystems; - imports = [ + { + inherit inputs; + specialArgs = { + inherit lib; + rootPath = ./.; + }; + } + ( + {lib, ...}: { + systems = flake-utils.lib.defaultSystems; + imports = + [ home-manager.flakeModules.home-manager treefmt-nix.flakeModule ] ++ lib.youthlic.loadImports ./flake; - flake = { - inherit lib; - nix.settings = { - # substituters shared in home-manager and nixos configuration - substituters = - let - cachix = x: "https://${x}.cachix.org"; - in - lib.flatten [ - (cachix "nix-community") - "https://cache.nixos.org" - ]; - }; + flake = { + inherit lib; + nix.settings = { + # substituters shared in home-manager and nixos configuration + substituters = let + cachix = x: "https://${x}.cachix.org"; + in + lib.flatten [ + (cachix "nix-community") + "https://cache.nixos.org" + ]; }; - } - ); + }; + } + ); inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; diff --git a/flake/deploy.nix b/flake/deploy.nix index cc91f14..9da8ea9 100644 --- a/flake/deploy.nix +++ b/flake/deploy.nix @@ -4,32 +4,28 @@ flake-parts-lib, self, ... -}: -let +}: let inherit (self) outputs; inherit (inputs) deploy-rs; - mkDeployNode = - { - hostName, - unixName ? "deploy", - system ? "x86_64-linux", - sshName ? hostName, - }: - { - "${hostName}" = { - hostname = "${sshName}"; - sshUser = "${unixName}"; - interactiveSudo = true; - profiles = { - system = { - user = "root"; - path = deploy-rs.lib."${system}".activate.nixos outputs.nixosConfigurations."${hostName}"; - }; + mkDeployNode = { + hostName, + unixName ? "deploy", + system ? "x86_64-linux", + sshName ? hostName, + }: { + "${hostName}" = { + hostname = "${sshName}"; + sshUser = "${unixName}"; + interactiveSudo = true; + profiles = { + system = { + user = "root"; + path = deploy-rs.lib."${system}".activate.nixos outputs.nixosConfigurations."${hostName}"; }; }; }; -in -{ + }; +in { options = { flake = flake-parts-lib.mkSubmoduleOptions { deploy = lib.mkOption { @@ -38,21 +34,20 @@ in }; }; config = { - flake.deploy.nodes = - with lib; + flake.deploy.nodes = with lib; pipe - [ - "Cape" - "Akun" - ] - [ - (map ( - hostName: + [ + "Cape" + "Akun" + ] + [ + (map ( + hostName: mkDeployNode { inherit hostName; } - )) - (foldr (a: b: a // b) { }) - ]; + )) + (foldr (a: b: a // b) {}) + ]; }; } diff --git a/flake/home.nix b/flake/home.nix index 88e403b..e467315 100644 --- a/flake/home.nix +++ b/flake/home.nix @@ -4,44 +4,42 @@ self, rootPath, ... -}: -let +}: let inherit (self) outputs; homeModules = ( with lib; - pipe (rootPath + "/home") [ - builtins.readDir - (filterAttrs (_key: value: value == "directory")) - (filterAttrs ( - key: _value: - !builtins.elem key [ - "modules" - "extra" - ] - )) - builtins.attrNames - (flip genAttrs (name: import (rootPath + "/home/${name}/modules"))) - ] + pipe (rootPath + "/home") [ + builtins.readDir + (filterAttrs (_key: value: value == "directory")) + (filterAttrs ( + key: _value: + !builtins.elem key [ + "modules" + "extra" + ] + )) + builtins.attrNames + (flip genAttrs (name: import (rootPath + "/home/${name}/modules"))) + ] ) // { default = import "${toString rootPath}/home/modules"; extra = import "${toString rootPath}/home/extra"; }; - makeHomeConfiguration = - { - hostName, - unixName ? "david", - system ? "x86_64-linux", - nixpkgs ? inputs.nixpkgs, - home-manager ? inputs.home-manager, - }: - { - "${unixName}@${hostName}" = home-manager.lib.homeManagerConfiguration { - pkgs = import nixpkgs { - localSystem = { inherit system; }; - }; - modules = [ + makeHomeConfiguration = { + hostName, + unixName ? "david", + system ? "x86_64-linux", + nixpkgs ? inputs.nixpkgs, + home-manager ? inputs.home-manager, + }: { + "${unixName}@${hostName}" = home-manager.lib.homeManagerConfiguration { + pkgs = import nixpkgs { + localSystem = {inherit system;}; + }; + modules = + [ (rootPath + "/home/${unixName}/configurations/${hostName}") ] ++ (with homeModules; [ @@ -53,32 +51,30 @@ let ] ++ [ { - lib = { inherit (lib) youthlic; }; + lib = {inherit (lib) youthlic;}; } ]; - extraSpecialArgs = { - inherit - inputs - outputs - unixName - hostName - system - rootPath - ; - }; + extraSpecialArgs = { + inherit + inputs + outputs + unixName + hostName + system + rootPath + ; }; }; -in -{ + }; +in { flake = { - homeConfigurations = - with lib; - foldr (a: b: a // b) { } ( + homeConfigurations = with lib; + foldr (a: b: a // b) {} ( pipe - [ - # Hostname - ] - [ (map (hostName: makeHomeConfiguration { inherit hostName; })) ] + [ + # Hostname + ] + [(map (hostName: makeHomeConfiguration {inherit hostName;}))] ); inherit homeModules; }; diff --git a/flake/nixos.nix b/flake/nixos.nix index 5dc4fc1..092191a 100644 --- a/flake/nixos.nix +++ b/flake/nixos.nix @@ -4,39 +4,35 @@ self, rootPath, ... -}: -let +}: let inherit (self) outputs; -in -{ +in { flake = { nixosModules = { default = import (rootPath + "/nixos/modules/top-level"); gui = import (rootPath + "/nixos/modules/top-level/gui.nix"); }; - nixosConfigurations = - let - makeNixosConfiguration = - hostName: - lib.nixosSystem { - modules = [ (rootPath + "/nixos/configurations/${hostName}") ]; - specialArgs = { - inherit - inputs - outputs - rootPath - lib - ; - }; + nixosConfigurations = let + makeNixosConfiguration = hostName: + lib.nixosSystem { + modules = [(rootPath + "/nixos/configurations/${hostName}")]; + specialArgs = { + inherit + inputs + outputs + rootPath + lib + ; }; - in + }; + in with lib; - pipe + pipe [ "Tytonidae" "Cape" "Akun" ] - [ (flip genAttrs makeNixosConfiguration) ]; + [(flip genAttrs makeNixosConfiguration)]; }; } diff --git a/flake/overlays.nix b/flake/overlays.nix index 95d165b..6299af2 100644 --- a/flake/overlays.nix +++ b/flake/overlays.nix @@ -4,18 +4,15 @@ lib, rootPath, ... -}: -let +}: let inherit (self) outputs; - importWithArgs = lib.flip import { inherit inputs outputs; }; -in -{ - flake.overlays = - with lib; + importWithArgs = lib.flip import {inherit inputs outputs;}; +in { + flake.overlays = with lib; pipe - [ - "modifications" - "additions" - ] - [ (flip genAttrs (name: importWithArgs (rootPath + "/overlays/${name}"))) ]; + [ + "modifications" + "additions" + ] + [(flip genAttrs (name: importWithArgs (rootPath + "/overlays/${name}")))]; } diff --git a/flake/perSystem.nix b/flake/perSystem.nix index 5341411..c972461 100644 --- a/flake/perSystem.nix +++ b/flake/perSystem.nix @@ -2,93 +2,87 @@ inputs, rootPath, ... -}: -{ +}: { imports = [ (rootPath + "/treefmt.nix") ]; - perSystem = - { - pkgs, - system, - lib, - self', - inputs', - ... - }: - let - inherit (inputs) nixpkgs; - in - { - _module.args.pkgs = import nixpkgs { - localSystem = { inherit system; }; - config = { - allowUnfree = true; - }; - overlays = [ (_final: _prev: { inherit lib; }) ]; + perSystem = { + pkgs, + system, + lib, + self', + inputs', + ... + }: let + inherit (inputs) nixpkgs; + in { + _module.args.pkgs = import nixpkgs { + localSystem = {inherit system;}; + config = { + allowUnfree = true; }; - devShells.default = pkgs.mkShell { - name = "nixos-shell"; - packages = with pkgs; [ - nixd - nil - typos - typos-lsp - just - nvfetcher - nixfmt-rfc-style + overlays = [(_final: _prev: {inherit lib;})]; + }; + devShells.default = pkgs.mkShell { + name = "nixos-shell"; + packages = with pkgs; [ + nixd + nil + typos + typos-lsp + just + nvfetcher + alejandra - lua-language-server - ]; - }; - legacyPackages = - let - inputsScope = lib.makeScope pkgs.newScope (self: { - inherit inputs rootPath; - srcs = self.callPackage (rootPath + "/_sources/generated.nix") { }; - inherit (inputs'.nixvim.legacyPackages) makeNixvim makeNixvimWithModule; - neovim_git = inputs'.neovim-nightly.packages.default; - }); - in - inputsScope.overrideScope ( - final: _prev: + lua-language-server + ]; + }; + legacyPackages = let + inputsScope = lib.makeScope pkgs.newScope (self: { + inherit inputs rootPath; + srcs = self.callPackage (rootPath + "/_sources/generated.nix") {}; + inherit (inputs'.nixvim.legacyPackages) makeNixvim makeNixvimWithModule; + neovim_git = inputs'.neovim-nightly.packages.default; + }); + in + inputsScope.overrideScope ( + final: _prev: lib.packagesFromDirectoryRecursive { inherit (final) callPackage; directory = rootPath + "/pkgs"; } - ); - packages = - let - flattenPkgs = - path: value: - if lib.isDerivation value then - { - ${lib.concatStringsSep ":" path} = value; - } - else if lib.isAttrs value then - lib.concatMapAttrs (name: flattenPkgs (path ++ [ name ])) value - else - { }; - in - flattenPkgs [ ] ( - lib.removeAttrs self'.legacyPackages [ - "inputs" + ); + packages = let + flattenPkgs = path: value: + if lib.isDerivation value + then { + ${lib.concatStringsSep ":" path} = value; + } + else if lib.isAttrs value + then lib.concatMapAttrs (name: flattenPkgs (path ++ [name])) value + else {}; + in + flattenPkgs [] ( + lib.removeAttrs self'.legacyPackages [ + "inputs" - "srcs" + "srcs" - "rootPath" + "rootPath" - "makeNixvim" - "makeNixvimWithModule" + "makeNixvim" + "makeNixvimWithModule" - "newScope" - "overrideScope" - "packages" - "callPackage" - ] - ); - checks = lib.concatMapAttrs (name: value: { + "newScope" + "overrideScope" + "packages" + "callPackage" + ] + ); + checks = + lib.concatMapAttrs (name: value: { "package-${name}" = value; - }) self'.packages; - }; + }) + self'.packages; + }; } diff --git a/flake/templates.nix b/flake/templates.nix index 0530097..22b75a4 100644 --- a/flake/templates.nix +++ b/flake/templates.nix @@ -3,8 +3,7 @@ lib, rootPath, ... -}: -{ +}: { options = { flake = flake-parts-lib.mkSubmoduleOptions { templates = lib.mkOption { diff --git a/home/alice/configurations/Cape/default.nix b/home/alice/configurations/Cape/default.nix index 2ee2fb9..6e02a33 100644 --- a/home/alice/configurations/Cape/default.nix +++ b/home/alice/configurations/Cape/default.nix @@ -2,8 +2,7 @@ pkgs, unixName, ... -}: -{ +}: { youthlic = { xdg-dirs.enable = true; programs = { diff --git a/home/alice/modules/default.nix b/home/alice/modules/default.nix index c915eb0..6462967 100644 --- a/home/alice/modules/default.nix +++ b/home/alice/modules/default.nix @@ -1 +1 @@ -{ ... }: { } +{...}: {} diff --git a/home/david/configurations/Akun/default.nix b/home/david/configurations/Akun/default.nix index 30c6a55..f0079e4 100644 --- a/home/david/configurations/Akun/default.nix +++ b/home/david/configurations/Akun/default.nix @@ -4,35 +4,32 @@ unixName, config, ... -}: -{ +}: { imports = lib.youthlic.loadImports ./.; youthlic = { xdg-dirs.enable = true; - programs = - let - email = config.accounts.email.accounts.ulic-youthlic; - inherit (email) address name; - signKey = email.gpg.key; - in - { - gpg.enable = true; - git = { - inherit name signKey; - email = address; - encrypt-credential = true; - }; - fish.enable = true; - bash.enable = true; - jujutsu = { - enable = true; - inherit name signKey; - email = address; - }; - starship.enable = true; - sops.enable = true; - atuin.enable = true; + programs = let + email = config.accounts.email.accounts.ulic-youthlic; + inherit (email) address name; + signKey = email.gpg.key; + in { + gpg.enable = true; + git = { + inherit name signKey; + email = address; + encrypt-credential = true; }; + fish.enable = true; + bash.enable = true; + jujutsu = { + enable = true; + inherit name signKey; + email = address; + }; + starship.enable = true; + sops.enable = true; + atuin.enable = true; + }; }; david = { diff --git a/home/david/configurations/Akun/niri.nix b/home/david/configurations/Akun/niri.nix index ae40cea..fe7227c 100644 --- a/home/david/configurations/Akun/niri.nix +++ b/home/david/configurations/Akun/niri.nix @@ -2,17 +2,13 @@ config, inputs, ... -}: -let +}: let inherit (inputs.niri-flake.lib.kdl) node leaf flag; -in -{ +in { david.programs.niri = { - waybar.settings = - let - cfg = config.david.programs.niri.waybar; - in - [ (cfg.template // (cfg.helper.mkBacklight "intel_backlight") // { output = "eDP-1"; }) ]; + waybar.settings = let + cfg = config.david.programs.niri.waybar; + in [(cfg.template // (cfg.helper.mkBacklight "intel_backlight") // {output = "eDP-1";})]; wluma.extraSettings = { output = { backlight = [ @@ -24,26 +20,25 @@ in ]; }; }; - extraConfig = - let - output = node "output"; - in - [ - (output - [ "eDP-1" ] - [ - (leaf "mode" [ "1920x1200@60.018" ]) - (leaf "scale" [ 1.0 ]) - (flag "focus-at-startup") - (leaf "position" [ - { - x = 0; - y = 0; - } - ]) - (leaf "transform" [ "normal" ]) - ] - ) - ]; + extraConfig = let + output = node "output"; + in [ + ( + output + ["eDP-1"] + [ + (leaf "mode" ["1920x1200@60.018"]) + (leaf "scale" [1.0]) + (flag "focus-at-startup") + (leaf "position" [ + { + x = 0; + y = 0; + } + ]) + (leaf "transform" ["normal"]) + ] + ) + ]; }; } diff --git a/home/david/configurations/Tytonidae/default.nix b/home/david/configurations/Tytonidae/default.nix index e7de391..e892e1e 100644 --- a/home/david/configurations/Tytonidae/default.nix +++ b/home/david/configurations/Tytonidae/default.nix @@ -4,43 +4,40 @@ config, unixName, ... -}: -{ +}: { imports = lib.youthlic.loadImports ./.; youthlic = { xdg-dirs.enable = true; - programs = - let - email = config.accounts.email.accounts.ulic-youthlic; - inherit (email) name address; - signKey = email.gpg.key; - in - { - rustypaste-cli.enable = true; - gpg.enable = true; - jujutsu = { - enable = true; - inherit name signKey; - email = address; - }; - git = { - inherit name signKey; - email = address; - encrypt-credential = true; - }; - fish.enable = true; - bash.enable = true; - starship.enable = true; - sops.enable = true; - kvm.enable = true; - atuin.enable = true; - ion.enable = true; - spotifyd.enable = true; - awscli = { - enable = true; - url = "http://localhost:8491"; - }; + programs = let + email = config.accounts.email.accounts.ulic-youthlic; + inherit (email) name address; + signKey = email.gpg.key; + in { + rustypaste-cli.enable = true; + gpg.enable = true; + jujutsu = { + enable = true; + inherit name signKey; + email = address; }; + git = { + inherit name signKey; + email = address; + encrypt-credential = true; + }; + fish.enable = true; + bash.enable = true; + starship.enable = true; + sops.enable = true; + kvm.enable = true; + atuin.enable = true; + ion.enable = true; + spotifyd.enable = true; + awscli = { + enable = true; + url = "http://localhost:8491"; + }; + }; }; david = { diff --git a/home/david/configurations/Tytonidae/niri.nix b/home/david/configurations/Tytonidae/niri.nix index 7abe752..1a76367 100644 --- a/home/david/configurations/Tytonidae/niri.nix +++ b/home/david/configurations/Tytonidae/niri.nix @@ -1,17 +1,17 @@ -{ config, lib, ... }: -let - cfg = config.david.programs.niri; -in { + config, + lib, + ... +}: let + cfg = config.david.programs.niri; +in { david.programs.niri = lib.mkIf cfg.enable { - waybar.settings = - let - cfg = config.david.programs.niri.waybar; - in - [ - (cfg.template // (cfg.helper.mkBacklight "ddcci13") // { output = "DP-1"; }) - (cfg.template // (cfg.helper.mkBacklight "nvidia_0") // { output = "eDP-2"; }) - ]; + waybar.settings = let + cfg = config.david.programs.niri.waybar; + in [ + (cfg.template // (cfg.helper.mkBacklight "ddcci13") // {output = "DP-1";}) + (cfg.template // (cfg.helper.mkBacklight "nvidia_0") // {output = "eDP-2";}) + ]; wluma.extraSettings = { output = { backlight = [ @@ -34,6 +34,6 @@ in } ]; }; - extraConfig = [ ]; + extraConfig = []; }; } diff --git a/home/david/modules/default.nix b/home/david/modules/default.nix index 774935e..903eb35 100644 --- a/home/david/modules/default.nix +++ b/home/david/modules/default.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { imports = lib.youthlic.loadImports ./.; config = { youthlic.programs = { diff --git a/home/david/modules/emails.nix b/home/david/modules/emails.nix index f3727a1..7c0ef73 100644 --- a/home/david/modules/emails.nix +++ b/home/david/modules/emails.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.david.accounts.email; -in -{ +in { options = { david.accounts.email = { enable = lib.mkEnableOption "emails"; diff --git a/home/david/modules/programs/alacritty/default.nix b/home/david/modules/programs/alacritty/default.nix index 37df2d4..dcefe22 100644 --- a/home/david/modules/programs/alacritty/default.nix +++ b/home/david/modules/programs/alacritty/default.nix @@ -3,11 +3,9 @@ config, pkgs, ... -}: -let +}: let cfg = config.david.programs.alacritty; -in -{ +in { options = { david.programs.alacritty = { enable = lib.mkEnableOption "alacritty"; @@ -20,13 +18,13 @@ in settings = ( with lib; - pipe ./alacritty.toml [ - builtins.readFile - builtins.fromTOML - ] + pipe ./alacritty.toml [ + builtins.readFile + builtins.fromTOML + ] ) // { - colors = lib.mkForce { }; + colors = lib.mkForce {}; font.size = lib.mkForce 16; window.opacity = lib.mkForce 0.8; general.import = [ diff --git a/home/david/modules/programs/chromium.nix b/home/david/modules/programs/chromium.nix index 69da8f5..9d07e86 100644 --- a/home/david/modules/programs/chromium.nix +++ b/home/david/modules/programs/chromium.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.david.programs.chromium; -in -{ +in { options = { david.programs.chromium = { enable = lib.mkEnableOption "chromium"; diff --git a/home/david/modules/programs/espanso.nix b/home/david/modules/programs/espanso.nix index ceaa139..56d3d72 100644 --- a/home/david/modules/programs/espanso.nix +++ b/home/david/modules/programs/espanso.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.david.programs.espanso; -in -{ +in { options = { david.programs.espanso = { enable = lib.mkEnableOption "espanso"; @@ -18,7 +16,7 @@ in enable = true; package = pkgs.espanso-wayland; configs = { - default = { }; + default = {}; }; matches = { base = { diff --git a/home/david/modules/programs/firefox.nix b/home/david/modules/programs/firefox.nix index 4c98ff7..bb5c6d5 100644 --- a/home/david/modules/programs/firefox.nix +++ b/home/david/modules/programs/firefox.nix @@ -3,11 +3,9 @@ lib, config, ... -}: -let +}: let cfg = config.david.programs.firefox; -in -{ +in { options = { david.programs.firefox = { enable = lib.mkEnableOption "firefox"; @@ -89,7 +87,7 @@ in ]; } ]; - definedAliases = [ "@gp" ]; + definedAliases = ["@gp"]; }; "Nix Packages" = { urls = [ @@ -108,7 +106,7 @@ in } ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@np" ]; + definedAliases = ["@np"]; }; "Nix Options" = { urls = [ @@ -126,7 +124,7 @@ in ]; } ]; - definedAliases = [ "@no" ]; + definedAliases = ["@no"]; }; "Home Manager Options" = { urls = [ @@ -144,7 +142,7 @@ in ]; } ]; - definedAliases = [ "@hm" ]; + definedAliases = ["@hm"]; }; "Nix Flakes" = { urls = [ @@ -162,7 +160,7 @@ in ]; } ]; - definedAliases = [ "@nf" ]; + definedAliases = ["@nf"]; }; "NixOS Wiki" = { urls = [ @@ -176,7 +174,7 @@ in ]; } ]; - definedAliases = [ "@nw" ]; + definedAliases = ["@nw"]; }; "Rust Stdandard Lib" = { urls = [ @@ -190,7 +188,7 @@ in ]; } ]; - definedAliases = [ "@rs" ]; + definedAliases = ["@rs"]; }; "GitHub" = { urls = [ @@ -208,7 +206,7 @@ in ]; } ]; - definedAliases = [ "@gh" ]; + definedAliases = ["@gh"]; }; "Rust Reference" = { urls = [ @@ -222,7 +220,7 @@ in ]; } ]; - definedAliases = [ "@rr" ]; + definedAliases = ["@rr"]; }; "Rust Crates" = { urls = [ @@ -236,7 +234,7 @@ in ]; } ]; - definedAliases = [ "@rc" ]; + definedAliases = ["@rc"]; }; "C++ Reference" = { urls = [ @@ -254,7 +252,7 @@ in ]; } ]; - definedAliases = [ "@cr" ]; + definedAliases = ["@cr"]; }; "bing".metaData.hidden = true; "google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias diff --git a/home/david/modules/programs/foot/default.nix b/home/david/modules/programs/foot/default.nix index c7f6bd1..0772f33 100644 --- a/home/david/modules/programs/foot/default.nix +++ b/home/david/modules/programs/foot/default.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.david.programs.foot; -in -{ +in { options = { david.programs.foot = { enable = lib.mkEnableOption "foot"; diff --git a/home/david/modules/programs/fuzzel.nix b/home/david/modules/programs/fuzzel.nix index 39bb031..135c170 100644 --- a/home/david/modules/programs/fuzzel.nix +++ b/home/david/modules/programs/fuzzel.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.david.programs.fuzzel; -in -{ +in { options = { david.programs.fuzzel = { enable = lib.mkEnableOption "fuzzel"; diff --git a/home/david/modules/programs/ghostty.nix b/home/david/modules/programs/ghostty.nix index 1ac54ad..cbe230b 100644 --- a/home/david/modules/programs/ghostty.nix +++ b/home/david/modules/programs/ghostty.nix @@ -3,42 +3,39 @@ config, lib, ... -}: -{ +}: { options = { david.programs.ghostty = { enable = lib.mkEnableOption "ghostty"; }; }; - config = - let - cfg = config.david.programs.ghostty; - in - (lib.mkIf cfg.enable { - programs.ghostty = lib.mkMerge [ - { - enable = true; - package = pkgs.ghostty; - settings = { - # font-family = "Maple Mono NF CN"; - font-feature = [ - "calt" - "zero" - "cv03" - "ss08" - ]; - font-size = lib.mkForce 17; - theme = lib.mkForce "Atom One Dark"; - background-opacity = lib.mkForce 0.8; - confirm-close-surface = "false"; - }; - } - (lib.mkIf config.youthlic.programs.fish.enable { - enableFishIntegration = true; - }) - (lib.mkIf config.youthlic.programs.bash.enable { - enableBashIntegration = true; - }) - ]; - }); + config = let + cfg = config.david.programs.ghostty; + in (lib.mkIf cfg.enable { + programs.ghostty = lib.mkMerge [ + { + enable = true; + package = pkgs.ghostty; + settings = { + # font-family = "Maple Mono NF CN"; + font-feature = [ + "calt" + "zero" + "cv03" + "ss08" + ]; + font-size = lib.mkForce 17; + theme = lib.mkForce "Atom One Dark"; + background-opacity = lib.mkForce 0.8; + confirm-close-surface = "false"; + }; + } + (lib.mkIf config.youthlic.programs.fish.enable { + enableFishIntegration = true; + }) + (lib.mkIf config.youthlic.programs.bash.enable { + enableBashIntegration = true; + }) + ]; + }); } diff --git a/home/david/modules/programs/helix.nix b/home/david/modules/programs/helix.nix index 94af43e..d4ffb81 100644 --- a/home/david/modules/programs/helix.nix +++ b/home/david/modules/programs/helix.nix @@ -3,11 +3,9 @@ config, pkgs, ... -}: -let +}: let cfg = config.david.programs.helix; -in -{ +in { options = { david.programs.helix = { enable = lib.mkEnableOption "helix"; diff --git a/home/david/modules/programs/kanshi.nix b/home/david/modules/programs/kanshi.nix index 158f619..28d302b 100644 --- a/home/david/modules/programs/kanshi.nix +++ b/home/david/modules/programs/kanshi.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.david.programs.kanshi; -in -{ +in { options = { david.programs.kanshi = { enable = lib.mkEnableOption "kanshi"; diff --git a/home/david/modules/programs/mpv.nix b/home/david/modules/programs/mpv.nix index b0ff2b1..4fe19fa 100644 --- a/home/david/modules/programs/mpv.nix +++ b/home/david/modules/programs/mpv.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.david.programs.mpv; -in -{ +in { options = { david.programs.mpv = { enable = lib.mkEnableOption "mpv"; diff --git a/home/david/modules/programs/niri/config.nix b/home/david/modules/programs/niri/config.nix index 95d6730..a9d01b9 100644 --- a/home/david/modules/programs/niri/config.nix +++ b/home/david/modules/programs/niri/config.nix @@ -5,10 +5,10 @@ inputs, osConfig ? null, ... -}: -let +}: let inherit (lib) getExe getExe'; - inherit (inputs.niri-flake.lib.kdl) + inherit + (inputs.niri-flake.lib.kdl) # node with args, props and children # node:: \lambda name -> [argOrProp] -> [child] -> Output # arg: single value @@ -41,656 +41,668 @@ let cliphist-fuzzel-img = getExe' pkgs.cliphist "cliphist-fuzzel-img"; wl-clip-persist = getExe pkgs.wl-clip-persist; in -( - let - spawn = leaf "spawn"; - in - [ - (plain "binds" [ - (plain "Mod+V" [ - (spawn [ cliphist-fuzzel-img ]) - ]) - (plain "Mod+Shift+P" [ - (spawn [ - swaylock - "--screenshots" - "--clock" - "--indicator" - "--indicator-radius" - "100" - "--indicator-thickness" - "7" - "--effect-blur" - "7x5" - "--effect-vignette" - "0.5:0.5" - "--grace" - "2" - "--fade-in" - "0.5" + ( + let + spawn = leaf "spawn"; + in [ + (plain "binds" [ + (plain "Mod+V" [ + (spawn [cliphist-fuzzel-img]) ]) - ]) - (plain "Mod+Shift+Slash" [ - (flag "show-hotkey-overlay") - ]) - (plain "Mod+T" [ - (spawn [ - default-terminal + (plain "Mod+Shift+P" [ + (spawn [ + swaylock + "--screenshots" + "--clock" + "--indicator" + "--indicator-radius" + "100" + "--indicator-thickness" + "7" + "--effect-blur" + "7x5" + "--effect-vignette" + "0.5:0.5" + "--grace" + "2" + "--fade-in" + "0.5" + ]) ]) - ]) - (plain "Mod+Shift+T" [ - (flag "toggle-column-tabbed-display") - ]) - (plain "Mod+Space" [ - (spawn [ fuzzel ]) - ]) - (node "XF86AudioRaiseVolume" - [ { allow-when-locked = true; } ] - [ + (plain "Mod+Shift+Slash" [ + (flag "show-hotkey-overlay") + ]) + (plain "Mod+T" [ (spawn [ - wpctl - "set-volume" - "@DEFAULT_AUDIO_SINK@" - "0.1+" + default-terminal ]) - ] - ) - (node "XF86AudioLowerVolume" - [ { allow-when-locked = true; } ] - [ - (spawn [ - wpctl - "set-volume" - "@DEFAULT_AUDIO_SINK@" - "0.1-" - ]) - ] - ) - (node "XF86AudioMute" - [ { allow-when-locked = true; } ] - [ - (spawn [ - wpctl - "set-volume" - "@DEFAULT_AUDIO_SINK@" - "toggle" - ]) - ] - ) - (node "XF86AudioMicMute" - [ { allow-when-locked = true; } ] - [ - (spawn [ - wpctl - "set-volume" - "@DEFAULT_AUDIO_SOURCE@" - "toggle" - ]) - ] - ) - (plain "Mod+Q" [ - (flag "close-window") - ]) - (node "Mod+O" - [ { repeat = false; } ] - [ - (flag "toggle-overview") - ] - ) - (plain "Mod+Left" [ - (flag "focus-column-left") - ]) - (plain "Mod+Down" [ - (flag "focus-window-down") - ]) - (plain "Mod+Up" [ - (flag "focus-window-up") - ]) - (plain "Mod+Right" [ - (flag "focus-column-right") - ]) - (plain "Mod+H" [ - (flag "focus-column-or-monitor-left") - ]) - (plain "Mod+J" [ - (flag "focus-window-or-workspace-down") - ]) - (plain "Mod+K" [ - (flag "focus-window-or-workspace-up") - ]) - (plain "Mod+L" [ - (flag "focus-column-or-monitor-right") - ]) - (plain "Mod+Shift+Left" [ - (flag "move-column-left") - ]) - (plain "Mod+Shift+Down" [ - (flag "move-window-down") - ]) - (plain "Mod+Shift+Up" [ - (flag "move-window-up") - ]) - (plain "Mod+Shift+Right" [ - (flag "move-column-right") - ]) - (plain "Mod+Shift+H" [ - (flag "move-column-left-or-to-monitor-left") - ]) - (plain "Mod+Shift+J" [ - (flag "move-window-down-or-to-workspace-down") - ]) - (plain "Mod+Shift+K" [ - (flag "move-window-up-or-to-workspace-up") - ]) - (plain "Mod+Shift+L" [ - (flag "move-column-right-or-to-monitor-right") - ]) - (plain "Mod+Home" [ - (flag "focus-column-first") - ]) - (plain "Mod+End" [ - (flag "focus-column-last") - ]) - (plain "Mod+Ctrl+Home" [ - (flag "move-column-to-first") - ]) - (plain "Mod+Ctrl+End" [ - (flag "move-column-to-last") - ]) - (plain "Mod+Ctrl+Left" [ - (flag "focus-monitor-left") - ]) - (plain "Mod+Ctrl+Down" [ - (flag "focus-monitor-down") - ]) - (plain "Mod+Ctrl+Up" [ - (flag "focus-monitor-up") - ]) - (plain "Mod+Ctrl+Right" [ - (flag "focus-monitor-right") - ]) - (plain "Mod+Ctrl+H" [ - (flag "focus-monitor-left") - ]) - (plain "Mod+Ctrl+J" [ - (flag "focus-monitor-down") - ]) - (plain "Mod+Ctrl+K" [ - (flag "focus-monitor-up") - ]) - (plain "Mod+Ctrl+L" [ - (flag "focus-monitor-right") - ]) - (plain "Mod+Shift+Ctrl+Left" [ - (flag "move-column-to-monitor-left") - ]) - (plain "Mod+Shift+Ctrl+Down" [ - (flag "move-column-to-monitor-down") - ]) - (plain "Mod+Shift+Ctrl+Up" [ - (flag "move-column-to-monitor-up") - ]) - (plain "Mod+Shift+Ctrl+Right" [ - (flag "move-column-to-monitor-right") - ]) - (plain "Mod+Shift+Ctrl+H" [ - (flag "move-column-to-monitor-left") - ]) - (plain "Mod+Shift+Ctrl+J" [ - (flag "move-column-to-monitor-down") - ]) - (plain "Mod+Shift+Ctrl+K" [ - (flag "move-column-to-monitor-up") - ]) - (plain "Mod+Shift+Ctrl+L" [ - (flag "move-column-to-monitor-right") - ]) - (plain "Mod+Page_Down" [ - (flag "focus-workspace-down") - ]) - (plain "Mod+Page_Up" [ - (flag "focus-workspace-up") - ]) - (plain "Mod+U" [ - (flag "focus-workspace-down") - ]) - (plain "Mod+I" [ - (flag "focus-workspace-up") - ]) - (plain "Mod+Shift+Page_Down" [ - (flag "move-column-to-workspace-down") - ]) - (plain "Mod+Shift+Page_Up" [ - (flag "move-column-to-workspace-up") - ]) - (plain "Mod+Shift+U" [ - (flag "move-column-to-workspace-down") - ]) - (plain "Mod+Shift+I" [ - (flag "move-column-to-workspace-up") - ]) - (plain "Mod+Ctrl+Page_Down" [ - (flag "move-workspace-down") - ]) - (plain "Mod+Ctrl+Page_Up" [ - (flag "move-workspace-up") - ]) - (plain "Mod+Ctrl+U" [ - (flag "move-workspace-down") - ]) - (plain "Mod+Ctrl+I" [ - (flag "move-workspace-up") - ]) - (node "Mod+Shift+WheelScrollDown" - [ { cooldown-ms = 150; } ] - [ + ]) + (plain "Mod+Shift+T" [ + (flag "toggle-column-tabbed-display") + ]) + (plain "Mod+Space" [ + (spawn [fuzzel]) + ]) + ( + node "XF86AudioRaiseVolume" + [{allow-when-locked = true;}] + [ + (spawn [ + wpctl + "set-volume" + "@DEFAULT_AUDIO_SINK@" + "0.1+" + ]) + ] + ) + ( + node "XF86AudioLowerVolume" + [{allow-when-locked = true;}] + [ + (spawn [ + wpctl + "set-volume" + "@DEFAULT_AUDIO_SINK@" + "0.1-" + ]) + ] + ) + ( + node "XF86AudioMute" + [{allow-when-locked = true;}] + [ + (spawn [ + wpctl + "set-volume" + "@DEFAULT_AUDIO_SINK@" + "toggle" + ]) + ] + ) + ( + node "XF86AudioMicMute" + [{allow-when-locked = true;}] + [ + (spawn [ + wpctl + "set-volume" + "@DEFAULT_AUDIO_SOURCE@" + "toggle" + ]) + ] + ) + (plain "Mod+Q" [ + (flag "close-window") + ]) + ( + node "Mod+O" + [{repeat = false;}] + [ + (flag "toggle-overview") + ] + ) + (plain "Mod+Left" [ + (flag "focus-column-left") + ]) + (plain "Mod+Down" [ + (flag "focus-window-down") + ]) + (plain "Mod+Up" [ + (flag "focus-window-up") + ]) + (plain "Mod+Right" [ + (flag "focus-column-right") + ]) + (plain "Mod+H" [ + (flag "focus-column-or-monitor-left") + ]) + (plain "Mod+J" [ + (flag "focus-window-or-workspace-down") + ]) + (plain "Mod+K" [ + (flag "focus-window-or-workspace-up") + ]) + (plain "Mod+L" [ + (flag "focus-column-or-monitor-right") + ]) + (plain "Mod+Shift+Left" [ + (flag "move-column-left") + ]) + (plain "Mod+Shift+Down" [ + (flag "move-window-down") + ]) + (plain "Mod+Shift+Up" [ + (flag "move-window-up") + ]) + (plain "Mod+Shift+Right" [ + (flag "move-column-right") + ]) + (plain "Mod+Shift+H" [ + (flag "move-column-left-or-to-monitor-left") + ]) + (plain "Mod+Shift+J" [ + (flag "move-window-down-or-to-workspace-down") + ]) + (plain "Mod+Shift+K" [ + (flag "move-window-up-or-to-workspace-up") + ]) + (plain "Mod+Shift+L" [ + (flag "move-column-right-or-to-monitor-right") + ]) + (plain "Mod+Home" [ + (flag "focus-column-first") + ]) + (plain "Mod+End" [ + (flag "focus-column-last") + ]) + (plain "Mod+Ctrl+Home" [ + (flag "move-column-to-first") + ]) + (plain "Mod+Ctrl+End" [ + (flag "move-column-to-last") + ]) + (plain "Mod+Ctrl+Left" [ + (flag "focus-monitor-left") + ]) + (plain "Mod+Ctrl+Down" [ + (flag "focus-monitor-down") + ]) + (plain "Mod+Ctrl+Up" [ + (flag "focus-monitor-up") + ]) + (plain "Mod+Ctrl+Right" [ + (flag "focus-monitor-right") + ]) + (plain "Mod+Ctrl+H" [ + (flag "focus-monitor-left") + ]) + (plain "Mod+Ctrl+J" [ + (flag "focus-monitor-down") + ]) + (plain "Mod+Ctrl+K" [ + (flag "focus-monitor-up") + ]) + (plain "Mod+Ctrl+L" [ + (flag "focus-monitor-right") + ]) + (plain "Mod+Shift+Ctrl+Left" [ + (flag "move-column-to-monitor-left") + ]) + (plain "Mod+Shift+Ctrl+Down" [ + (flag "move-column-to-monitor-down") + ]) + (plain "Mod+Shift+Ctrl+Up" [ + (flag "move-column-to-monitor-up") + ]) + (plain "Mod+Shift+Ctrl+Right" [ + (flag "move-column-to-monitor-right") + ]) + (plain "Mod+Shift+Ctrl+H" [ + (flag "move-column-to-monitor-left") + ]) + (plain "Mod+Shift+Ctrl+J" [ + (flag "move-column-to-monitor-down") + ]) + (plain "Mod+Shift+Ctrl+K" [ + (flag "move-column-to-monitor-up") + ]) + (plain "Mod+Shift+Ctrl+L" [ + (flag "move-column-to-monitor-right") + ]) + (plain "Mod+Page_Down" [ (flag "focus-workspace-down") - ] - ) - (node "Mod+Shift+WheelScrollUp" - [ { cooldown-ms = 150; } ] - [ + ]) + (plain "Mod+Page_Up" [ (flag "focus-workspace-up") - ] - ) - (plain "Mod+WheelScrollDown" [ - (flag "focus-column-right") - ]) - (plain "Mod+WheelScrollUp" [ - (flag "focus-column-left") - ]) - (plain "Mod+1" [ - (leaf "focus-workspace" [ 1 ]) - ]) - (plain "Mod+2" [ - (leaf "focus-workspace" [ 2 ]) - ]) - (plain "Mod+3" [ - (leaf "focus-workspace" [ 3 ]) - ]) - (plain "Mod+4" [ - (leaf "focus-workspace" [ 4 ]) - ]) - (plain "Mod+5" [ - (leaf "focus-workspace" [ 5 ]) - ]) - (plain "Mod+6" [ - (leaf "focus-workspace" [ 6 ]) - ]) - (plain "Mod+7" [ - (leaf "focus-workspace" [ 7 ]) - ]) - (plain "Mod+8" [ - (leaf "focus-workspace" [ 8 ]) - ]) - (plain "Mod+9" [ - (leaf "focus-workspace" [ 9 ]) - ]) - (plain "Mod+Shift+1" [ - (leaf "move-column-to-workspace" [ 1 ]) - ]) - (plain "Mod+Shift+2" [ - (leaf "move-column-to-workspace" [ 2 ]) - ]) - (plain "Mod+Shift+3" [ - (leaf "move-column-to-workspace" [ 3 ]) - ]) - (plain "Mod+Shift+4" [ - (leaf "move-column-to-workspace" [ 4 ]) - ]) - (plain "Mod+Shift+5" [ - (leaf "move-column-to-workspace" [ 5 ]) - ]) - (plain "Mod+Shift+6" [ - (leaf "move-column-to-workspace" [ 6 ]) - ]) - (plain "Mod+Shift+7" [ - (leaf "move-column-to-workspace" [ 7 ]) - ]) - (plain "Mod+Shift+8" [ - (leaf "move-column-to-workspace" [ 8 ]) - ]) - (plain "Mod+Shift+9" [ - (leaf "move-column-to-workspace" [ 9 ]) - ]) - (plain "Mod+F" [ - (flag "toggle-window-floating") - ]) - (plain "Mod+Shift+F" [ - (flag "toggle-windowed-fullscreen") - ]) - (plain "Mod+Tab" [ - (flag "focus-window-previous") - ]) - (plain "Mod+Shift+Tab" [ - (flag "switch-focus-between-floating-and-tiling") - ]) - (plain "Mod+BracketLeft" [ - (flag "consume-or-expel-window-left") - ]) - (plain "Mod+BracketRight" [ - (flag "consume-or-expel-window-right") - ]) - (plain "Mod+Comma" [ - (flag "consume-window-into-column") - ]) - (plain "Mod+Period" [ - (flag "expel-window-from-column") - ]) - (node "Mod+R" - [ { repeat = false; } ] - [ - (flag "switch-preset-column-width") - ] - ) - (node "Mod+Shift+R" - [ { repeat = false; } ] - [ - (flag "switch-preset-window-height") - ] - ) - (plain "Mod+Ctrl+R" [ - (flag "reset-window-height") - ]) - (node "Mod+M" - [ { repeat = false; } ] - [ - (flag "maximize-column") - ] - ) - (node "Mod+Shift+M" - [ { repeat = false; } ] - [ - (flag "fullscreen-window") - ] - ) - (node "Mod+Ctrl+M" - [ { repeat = false; } ] - [ - (flag "maximize-window-to-edges") - ] - ) - (plain "Mod+Z" [ - (flag "center-column") - ]) - (node "Mod+Minus" - [ { repeat = false; } ] - [ - (leaf "set-column-width" [ "-10%" ]) - ] - ) - (node "Mod+Equal" - [ { repeat = false; } ] - [ - (leaf "set-column-width" [ "+10%" ]) - ] - ) - (node "Mod+Shift+Minus" - [ { repeat = false; } ] - [ - (leaf "set-window-height" [ "-10%" ]) - ] - ) - (node "Mod+Shift+Equal" - [ { repeat = false; } ] - [ - (leaf "set-window-height" [ "+10%" ]) - ] - ) - (plain "Print" [ - (flag "screenshot") - ]) - (plain "Ctrl+Print" [ - (flag "screenshot-screen") - ]) - (plain "Alt+Print" [ - (flag "screenshot-window") - ]) - (plain "Mod+Shift+Q" [ - (flag "quit") - ]) - (plain "Mod+E" [ - (flag "expand-column-to-available-width") - ]) - (plain "Mod+Shift+S" [ - (flag "toggle-keyboard-shortcuts-inhibit") - ]) - (plain "Mod+Shift+C" [ - (flag "set-dynamic-cast-window") - ]) - (plain "Mod+Shift+Ctrl+C" [ - (flag "clear-dynamic-cast-target") - ]) - ]) - ] # binds -) -++ ( - let - spawn-at-startup = leaf "spawn-at-startup"; - in - [ - (leaf "screenshot-path" [ "${config.xdg.userDirs.pictures}/screenshots/%Y-%m-%d_%H:%M:%S.png" ]) - (plain "hotkey-overlay" [ - (flag "skip-at-startup") - ]) - (flag "prefer-no-csd") - (spawn-at-startup [ waybar ]) - (spawn-at-startup [ swaync ]) - (spawn-at-startup [ - waypaper - "--restore" - ]) - (spawn-at-startup [ polkit-kde-agent ]) - (spawn-at-startup [ - wl-paste - "--watch" - cliphist - "store" - ]) - (spawn-at-startup [ - wl-clip-persist - "--clipboard" - "regular" - ]) - (spawn-at-startup [ - fcitx5 - "--replace" - ]) - (plain "input" [ - (plain "touchpad" [ - (leaf "click-method" [ "clickfinger" ]) - (flag "dwt") - (leaf "scroll-method" [ "two-finger" ]) - (leaf "tap-button-map" [ "left-right-middle" ]) - ]) - ]) - (plain "cursor" [ - (leaf "hide-after-inactive-ms" [ 3000 ]) - (flag "hide-when-typing") - ]) - (plain "layout" [ - (leaf "background-color" [ "transparent" ]) - (plain "border" [ - (flag "off") - (leaf "width" [ 4 ]) - (leaf "active-color" [ "#7fc8ff" ]) - (leaf "inactive-color" [ "#505050" ]) - ]) - (plain "focus-ring" [ - # (flag "off") - (leaf "width" [ 4 ]) - (leaf "active-color" [ "#7fc8ff" ]) - (leaf "active-gradient" [ - { - from = "#e00a54"; - to = "#b8de17"; - angle = 45; - } ]) - (leaf "inactive-color" [ "#505050" ]) - ]) - (plain "tab-indicator" [ - (flag "hide-when-single-tab") - ]) - (plain "preset-column-widths" [ - (leaf "proportion" [ (1. / 4.) ]) - (leaf "proportion" [ (1. / 3.) ]) - (leaf "proportion" [ (1. / 2.) ]) - (leaf "proportion" [ (2. / 3.) ]) - (leaf "proportion" [ (3. / 4.) ]) - (leaf "proportion" [ (4. / 4.) ]) - ]) - (flag "always-center-single-column") - (leaf "center-focused-column" [ "never" ]) - (leaf "default-column-display" [ "tabbed" ]) - (plain "default-column-width" [ - (leaf "proportion" [ (1. / 2.) ]) - ]) - (flag "empty-workspace-above-first") - (leaf "gaps" [ 16 ]) - ]) - (plain "animations" [ - (plain "window-close" [ - (leaf "spring" [ - { - damping-ratio = 1.0; - stiffness = 800; - epsilon = 0.0001; - } + (plain "Mod+U" [ + (flag "focus-workspace-down") + ]) + (plain "Mod+I" [ + (flag "focus-workspace-up") + ]) + (plain "Mod+Shift+Page_Down" [ + (flag "move-column-to-workspace-down") + ]) + (plain "Mod+Shift+Page_Up" [ + (flag "move-column-to-workspace-up") + ]) + (plain "Mod+Shift+U" [ + (flag "move-column-to-workspace-down") + ]) + (plain "Mod+Shift+I" [ + (flag "move-column-to-workspace-up") + ]) + (plain "Mod+Ctrl+Page_Down" [ + (flag "move-workspace-down") + ]) + (plain "Mod+Ctrl+Page_Up" [ + (flag "move-workspace-up") + ]) + (plain "Mod+Ctrl+U" [ + (flag "move-workspace-down") + ]) + (plain "Mod+Ctrl+I" [ + (flag "move-workspace-up") + ]) + ( + node "Mod+Shift+WheelScrollDown" + [{cooldown-ms = 150;}] + [ + (flag "focus-workspace-down") + ] + ) + ( + node "Mod+Shift+WheelScrollUp" + [{cooldown-ms = 150;}] + [ + (flag "focus-workspace-up") + ] + ) + (plain "Mod+WheelScrollDown" [ + (flag "focus-column-right") + ]) + (plain "Mod+WheelScrollUp" [ + (flag "focus-column-left") + ]) + (plain "Mod+1" [ + (leaf "focus-workspace" [1]) + ]) + (plain "Mod+2" [ + (leaf "focus-workspace" [2]) + ]) + (plain "Mod+3" [ + (leaf "focus-workspace" [3]) + ]) + (plain "Mod+4" [ + (leaf "focus-workspace" [4]) + ]) + (plain "Mod+5" [ + (leaf "focus-workspace" [5]) + ]) + (plain "Mod+6" [ + (leaf "focus-workspace" [6]) + ]) + (plain "Mod+7" [ + (leaf "focus-workspace" [7]) + ]) + (plain "Mod+8" [ + (leaf "focus-workspace" [8]) + ]) + (plain "Mod+9" [ + (leaf "focus-workspace" [9]) + ]) + (plain "Mod+Shift+1" [ + (leaf "move-column-to-workspace" [1]) + ]) + (plain "Mod+Shift+2" [ + (leaf "move-column-to-workspace" [2]) + ]) + (plain "Mod+Shift+3" [ + (leaf "move-column-to-workspace" [3]) + ]) + (plain "Mod+Shift+4" [ + (leaf "move-column-to-workspace" [4]) + ]) + (plain "Mod+Shift+5" [ + (leaf "move-column-to-workspace" [5]) + ]) + (plain "Mod+Shift+6" [ + (leaf "move-column-to-workspace" [6]) + ]) + (plain "Mod+Shift+7" [ + (leaf "move-column-to-workspace" [7]) + ]) + (plain "Mod+Shift+8" [ + (leaf "move-column-to-workspace" [8]) + ]) + (plain "Mod+Shift+9" [ + (leaf "move-column-to-workspace" [9]) + ]) + (plain "Mod+F" [ + (flag "toggle-window-floating") + ]) + (plain "Mod+Shift+F" [ + (flag "toggle-windowed-fullscreen") + ]) + (plain "Mod+Tab" [ + (flag "focus-window-previous") + ]) + (plain "Mod+Shift+Tab" [ + (flag "switch-focus-between-floating-and-tiling") + ]) + (plain "Mod+BracketLeft" [ + (flag "consume-or-expel-window-left") + ]) + (plain "Mod+BracketRight" [ + (flag "consume-or-expel-window-right") + ]) + (plain "Mod+Comma" [ + (flag "consume-window-into-column") + ]) + (plain "Mod+Period" [ + (flag "expel-window-from-column") + ]) + ( + node "Mod+R" + [{repeat = false;}] + [ + (flag "switch-preset-column-width") + ] + ) + ( + node "Mod+Shift+R" + [{repeat = false;}] + [ + (flag "switch-preset-window-height") + ] + ) + (plain "Mod+Ctrl+R" [ + (flag "reset-window-height") + ]) + ( + node "Mod+M" + [{repeat = false;}] + [ + (flag "maximize-column") + ] + ) + ( + node "Mod+Shift+M" + [{repeat = false;}] + [ + (flag "fullscreen-window") + ] + ) + ( + node "Mod+Ctrl+M" + [{repeat = false;}] + [ + (flag "maximize-window-to-edges") + ] + ) + (plain "Mod+Z" [ + (flag "center-column") + ]) + ( + node "Mod+Minus" + [{repeat = false;}] + [ + (leaf "set-column-width" ["-10%"]) + ] + ) + ( + node "Mod+Equal" + [{repeat = false;}] + [ + (leaf "set-column-width" ["+10%"]) + ] + ) + ( + node "Mod+Shift+Minus" + [{repeat = false;}] + [ + (leaf "set-window-height" ["-10%"]) + ] + ) + ( + node "Mod+Shift+Equal" + [{repeat = false;}] + [ + (leaf "set-window-height" ["+10%"]) + ] + ) + (plain "Print" [ + (flag "screenshot") + ]) + (plain "Ctrl+Print" [ + (flag "screenshot-screen") + ]) + (plain "Alt+Print" [ + (flag "screenshot-window") + ]) + (plain "Mod+Shift+Q" [ + (flag "quit") + ]) + (plain "Mod+E" [ + (flag "expand-column-to-available-width") + ]) + (plain "Mod+Shift+S" [ + (flag "toggle-keyboard-shortcuts-inhibit") + ]) + (plain "Mod+Shift+C" [ + (flag "set-dynamic-cast-window") + ]) + (plain "Mod+Shift+Ctrl+C" [ + (flag "clear-dynamic-cast-target") ]) ]) - ]) - (plain "overview" [ - (plain "workspace-shadow" [ - (flag "off") + ] # binds + ) + ++ ( + let + spawn-at-startup = leaf "spawn-at-startup"; + in [ + (leaf "screenshot-path" ["${config.xdg.userDirs.pictures}/screenshots/%Y-%m-%d_%H:%M:%S.png"]) + (plain "hotkey-overlay" [ + (flag "skip-at-startup") ]) - ]) - ] # others -) -++ ( - let - window-rule = plain "window-rule"; - match = leaf "match"; - in - [ - (window-rule [ - (leaf "draw-border-with-background" [ true ]) - (leaf "geometry-corner-radius" [ 0.0 ]) - (leaf "clip-to-geometry" [ true ]) - ]) - (window-rule [ - (match [ { app-id = "^org\\.keepassxc\\.KeePassXC$"; } ]) - (match [ { app-id = "^org\\.gnome\\.World\\.Secrets$"; } ]) - (leaf "block-out-from" [ "screen-capture" ]) - ]) - (window-rule [ - (match [ { is-active = true; } ]) - (leaf "opacity" [ 1.0 ]) - ]) - (window-rule [ - (match [ { is-active = false; } ]) - (leaf "opacity" [ 0.8 ]) - (leaf "draw-border-with-background" [ false ]) - ]) - (window-rule [ - (match [ { app-id = "^Alacritty$"; } ]) - (match [ { app-id = "^com\\.mitchellh\\.ghostty$"; } ]) - (match [ { app-id = "^neovide$"; } ]) - (leaf "draw-border-with-background" [ false ]) - ]) - (window-rule [ - (match [ { app-id = "^org\\.kde\\.polkit-kde-authentication-agent-1$"; } ]) - (leaf "open-floating" [ true ]) - ]) - (window-rule [ - (match [ { app-id = "^swayimg$"; } ]) - (leaf "draw-border-with-background" [ false ]) - (leaf "open-floating" [ true ]) - ]) - (window-rule [ - (match [ { is-window-cast-target = true; } ]) - (plain "focus-ring" [ - (leaf "active-color" [ "#f38ba8" ]) - (leaf "inactive-color" [ "#7d0d2d" ]) + (flag "prefer-no-csd") + (spawn-at-startup [waybar]) + (spawn-at-startup [swaync]) + (spawn-at-startup [ + waypaper + "--restore" ]) - (plain "border" [ - (leaf "active-color" [ "#f38ba8" ]) - (leaf "inactive-color" [ "#7d0d2d" ]) + (spawn-at-startup [polkit-kde-agent]) + (spawn-at-startup [ + wl-paste + "--watch" + cliphist + "store" ]) - (plain "tab-indicator" [ - (leaf "active-color" [ "#f38ba8" ]) - (leaf "inactive-color" [ "#7d0d2d" ]) + (spawn-at-startup [ + wl-clip-persist + "--clipboard" + "regular" ]) - (plain "shadow" [ - (flag "on") + (spawn-at-startup [ + fcitx5 + "--replace" ]) - ]) - (window-rule [ - (match [ - { - app-id = "^org\\.telegram\\.desktop$"; - title = "Media viewer"; - } + (plain "input" [ + (plain "touchpad" [ + (leaf "click-method" ["clickfinger"]) + (flag "dwt") + (leaf "scroll-method" ["two-finger"]) + (leaf "tap-button-map" ["left-right-middle"]) + ]) ]) - (match [ - { - app-id = "^QQ$"; - title = "图片查看器"; - } + (plain "cursor" [ + (leaf "hide-after-inactive-ms" [3000]) + (flag "hide-when-typing") ]) - (leaf "open-floating" [ true ]) - (leaf "open-fullscreen" [ false ]) - ]) - (window-rule [ - (match [ - { - app-id = "^wechat$"; - title = "^wechat$"; - } + (plain "layout" [ + (leaf "background-color" ["transparent"]) + (plain "border" [ + (flag "off") + (leaf "width" [4]) + (leaf "active-color" ["#7fc8ff"]) + (leaf "inactive-color" ["#505050"]) + ]) + (plain "focus-ring" [ + # (flag "off") + (leaf "width" [4]) + (leaf "active-color" ["#7fc8ff"]) + (leaf "active-gradient" [ + { + from = "#e00a54"; + to = "#b8de17"; + angle = 45; + } + ]) + (leaf "inactive-color" ["#505050"]) + ]) + (plain "tab-indicator" [ + (flag "hide-when-single-tab") + ]) + (plain "preset-column-widths" [ + (leaf "proportion" [(1. / 4.)]) + (leaf "proportion" [(1. / 3.)]) + (leaf "proportion" [(1. / 2.)]) + (leaf "proportion" [(2. / 3.)]) + (leaf "proportion" [(3. / 4.)]) + (leaf "proportion" [(4. / 4.)]) + ]) + (flag "always-center-single-column") + (leaf "center-focused-column" ["never"]) + (leaf "default-column-display" ["tabbed"]) + (plain "default-column-width" [ + (leaf "proportion" [(1. / 2.)]) + ]) + (flag "empty-workspace-above-first") + (leaf "gaps" [16]) ]) - (leaf "open-focused" [ false ]) - ]) - (window-rule [ - (match [ - { - app-id = "^steam$"; - title = "^notificationtoasts_\\d+_desktop$"; - } + (plain "animations" [ + (plain "window-close" [ + (leaf "spring" [ + { + damping-ratio = 1.0; + stiffness = 800; + epsilon = 0.0001; + } + ]) + ]) ]) - (leaf "open-floating" [ true ]) - (leaf "open-focused" [ false ]) - (leaf "default-floating-position" [ - { - x = 10; - y = 10; - "relative-to" = "bottom-right"; - } + (plain "overview" [ + (plain "workspace-shadow" [ + (flag "off") + ]) ]) - (leaf "clip-to-geometry" [ false ]) - ]) - ] # window-rule -) -++ ( - let - layer-rule = plain "layer-rule"; - match = leaf "match"; - in - [ - (layer-rule [ - (match [ { namespace = "^swaync-notification-window$"; } ]) - (match [ { namespace = "^swaync-control-center$"; } ]) - (leaf "block-out-from" [ "screen-capture" ]) - ]) - (layer-rule [ - (match [ { namespace = "^launcher$"; } ]) - (plain "shadow" [ - (flag "on") + ] # others + ) + ++ ( + let + window-rule = plain "window-rule"; + match = leaf "match"; + in [ + (window-rule [ + (leaf "draw-border-with-background" [true]) + (leaf "geometry-corner-radius" [0.0]) + (leaf "clip-to-geometry" [true]) ]) - (leaf "geometry-corner-radius" [ 10.0 ]) - ]) - (layer-rule [ - (match [ { namespace = "^mpvpaper$"; } ]) - (leaf "place-within-backdrop" [ true ]) - ]) - ] # layer-rule -) + (window-rule [ + (match [{app-id = "^org\\.keepassxc\\.KeePassXC$";}]) + (match [{app-id = "^org\\.gnome\\.World\\.Secrets$";}]) + (leaf "block-out-from" ["screen-capture"]) + ]) + (window-rule [ + (match [{is-active = true;}]) + (leaf "opacity" [1.0]) + ]) + (window-rule [ + (match [{is-active = false;}]) + (leaf "opacity" [0.8]) + (leaf "draw-border-with-background" [false]) + ]) + (window-rule [ + (match [{app-id = "^Alacritty$";}]) + (match [{app-id = "^com\\.mitchellh\\.ghostty$";}]) + (match [{app-id = "^neovide$";}]) + (leaf "draw-border-with-background" [false]) + ]) + (window-rule [ + (match [{app-id = "^org\\.kde\\.polkit-kde-authentication-agent-1$";}]) + (leaf "open-floating" [true]) + ]) + (window-rule [ + (match [{app-id = "^swayimg$";}]) + (leaf "draw-border-with-background" [false]) + (leaf "open-floating" [true]) + ]) + (window-rule [ + (match [{is-window-cast-target = true;}]) + (plain "focus-ring" [ + (leaf "active-color" ["#f38ba8"]) + (leaf "inactive-color" ["#7d0d2d"]) + ]) + (plain "border" [ + (leaf "active-color" ["#f38ba8"]) + (leaf "inactive-color" ["#7d0d2d"]) + ]) + (plain "tab-indicator" [ + (leaf "active-color" ["#f38ba8"]) + (leaf "inactive-color" ["#7d0d2d"]) + ]) + (plain "shadow" [ + (flag "on") + ]) + ]) + (window-rule [ + (match [ + { + app-id = "^org\\.telegram\\.desktop$"; + title = "Media viewer"; + } + ]) + (match [ + { + app-id = "^QQ$"; + title = "图片查看器"; + } + ]) + (leaf "open-floating" [true]) + (leaf "open-fullscreen" [false]) + ]) + (window-rule [ + (match [ + { + app-id = "^wechat$"; + title = "^wechat$"; + } + ]) + (leaf "open-focused" [false]) + ]) + (window-rule [ + (match [ + { + app-id = "^steam$"; + title = "^notificationtoasts_\\d+_desktop$"; + } + ]) + (leaf "open-floating" [true]) + (leaf "open-focused" [false]) + (leaf "default-floating-position" [ + { + x = 10; + y = 10; + "relative-to" = "bottom-right"; + } + ]) + (leaf "clip-to-geometry" [false]) + ]) + ] # window-rule + ) + ++ ( + let + layer-rule = plain "layer-rule"; + match = leaf "match"; + in [ + (layer-rule [ + (match [{namespace = "^swaync-notification-window$";}]) + (match [{namespace = "^swaync-control-center$";}]) + (leaf "block-out-from" ["screen-capture"]) + ]) + (layer-rule [ + (match [{namespace = "^launcher$";}]) + (plain "shadow" [ + (flag "on") + ]) + (leaf "geometry-corner-radius" [10.0]) + ]) + (layer-rule [ + (match [{namespace = "^mpvpaper$";}]) + (leaf "place-within-backdrop" [true]) + ]) + ] # layer-rule + ) diff --git a/home/david/modules/programs/niri/default.nix b/home/david/modules/programs/niri/default.nix index 42ce1a3..b77a236 100644 --- a/home/david/modules/programs/niri/default.nix +++ b/home/david/modules/programs/niri/default.nix @@ -6,17 +6,17 @@ osConfig ? null, options, ... -}@args: -let +} @ args: let cfg = config.david.programs.niri; niri = osConfig.programs.niri.package; -in -{ +in { options = { david.programs.niri = { - enable = (lib.mkEnableOption "niri") // { - default = osConfig.youthlic.gui.enabled == "niri"; - }; + enable = + (lib.mkEnableOption "niri") + // { + default = osConfig.youthlic.gui.enabled == "niri"; + }; extraConfig = lib.mkOption { type = inputs.niri-flake.lib.kdl.types.kdl-document; }; @@ -51,35 +51,34 @@ in swayimg seahorse ]) - ++ [ niri ]; + ++ [niri]; qt = { enable = true; }; xdg.portal = { - configPackages = [ niri ]; + configPackages = [niri]; enable = true; extraPortals = lib.mkIf ( !niri.cargoBuildNoDefaultFeatures || builtins.elem "xdp-gnome-screencast" niri.cargoBuildFeatures - ) [ pkgs.xdg-desktop-portal-gnome ]; + ) [pkgs.xdg-desktop-portal-gnome]; }; - xdg.configFile = - let - qtctConf = '' + xdg.configFile = let + qtctConf = + '' [Appearance] standard_dialogs=xdgdesktopportal '' + lib.optionalString (config.qt.style ? name) '' style=${config.qt.style.name} ''; - in - { - "qt5ct/qt5ct.conf" = lib.mkForce { - text = qtctConf; - }; - "qt6ct/qt6ct.conf" = lib.mkForce { - text = qtctConf; - }; + in { + "qt5ct/qt5ct.conf" = lib.mkForce { + text = qtctConf; }; + "qt6ct/qt6ct.conf" = lib.mkForce { + text = qtctConf; + }; + }; david.programs = { fuzzel.enable = true; waybar = { @@ -97,7 +96,7 @@ in }; programs.niri = { config = - (lib.toList (import ./config.nix (args // { inherit pkgs; }))) ++ (lib.toList cfg.extraConfig); + (lib.toList (import ./config.nix (args // {inherit pkgs;}))) ++ (lib.toList cfg.extraConfig); package = niri; }; }) diff --git a/home/david/modules/programs/nvchad.nix b/home/david/modules/programs/nvchad.nix index c219d3c..17175d4 100644 --- a/home/david/modules/programs/nvchad.nix +++ b/home/david/modules/programs/nvchad.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.david.programs.nvchad; -in -{ +in { options = { david.programs.nvchad = { enable = lib.mkEnableOption "nvchad"; diff --git a/home/david/modules/programs/openssh.nix b/home/david/modules/programs/openssh.nix index 7c3e7a8..3a7ebf8 100644 --- a/home/david/modules/programs/openssh.nix +++ b/home/david/modules/programs/openssh.nix @@ -3,11 +3,9 @@ config, lib, ... -}: -let +}: let cfg = config.david.programs.openssh; -in -{ +in { options = { david.programs.openssh = { enable = lib.mkEnableOption "openssh"; @@ -49,7 +47,7 @@ in }; }) (lib.mkIf (cfg.enable && config.youthlic.programs.sops.enable) { - programs.ssh.includes = [ config.sops.secrets.ssh-config.path ]; + programs.ssh.includes = [config.sops.secrets.ssh-config.path]; sops.secrets = { "ssh-private-key/tytonidae" = { mode = "0600"; diff --git a/home/david/modules/programs/spacemacs/default.nix b/home/david/modules/programs/spacemacs/default.nix index b3bdf46..c13e569 100644 --- a/home/david/modules/programs/spacemacs/default.nix +++ b/home/david/modules/programs/spacemacs/default.nix @@ -4,17 +4,15 @@ lib, inputs, ... -}: -let +}: let inherit (inputs) nixpkgs emacs-overlay spacemacs; inherit (pkgs) system; cfg = config.david.programs.spacemacs; pkgs' = import nixpkgs { - localSystem = { inherit system; }; - overlays = [ emacs-overlay.overlays.default ]; + localSystem = {inherit system;}; + overlays = [emacs-overlay.overlays.default]; }; -in -{ +in { options = { david.programs.spacemacs = { enable = lib.mkEnableOption "spacemacs"; @@ -30,8 +28,7 @@ in }; programs.emacs = { enable = true; - package = - with pkgs'; + package = with pkgs'; (emacsPackagesFor emacs-pgtk).emacsWithPackages (_epkgs: [ git gnutar diff --git a/home/david/modules/programs/swaylock.nix b/home/david/modules/programs/swaylock.nix index 5b60b0b..0b61590 100644 --- a/home/david/modules/programs/swaylock.nix +++ b/home/david/modules/programs/swaylock.nix @@ -3,11 +3,9 @@ config, lib, ... -}: -let +}: let cfg = config.david.programs.swaylock; -in -{ +in { options = { david.programs.swaylock = { enable = lib.mkEnableOption "swaylock"; diff --git a/home/david/modules/programs/swaync.nix b/home/david/modules/programs/swaync.nix index 509e369..6a8981b 100644 --- a/home/david/modules/programs/swaync.nix +++ b/home/david/modules/programs/swaync.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.david.programs.swaync; -in -{ +in { options = { david.programs.swaync = { enable = lib.mkEnableOption "swaync"; @@ -20,7 +18,7 @@ in }; }) (lib.mkIf (!cfg.systemd.enable) { - systemd.user.services.swaync = lib.mkForce { }; + systemd.user.services.swaync = lib.mkForce {}; }) ]; } diff --git a/home/david/modules/programs/thunderbird.nix b/home/david/modules/programs/thunderbird.nix index 0ddbe6a..8759182 100644 --- a/home/david/modules/programs/thunderbird.nix +++ b/home/david/modules/programs/thunderbird.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.david.programs.thunderbird; -in -{ +in { options = { david.programs.thunderbird = { enable = lib.mkEnableOption "thunderbird"; diff --git a/home/david/modules/programs/waybar.nix b/home/david/modules/programs/waybar.nix index 16f535f..83301f2 100644 --- a/home/david/modules/programs/waybar.nix +++ b/home/david/modules/programs/waybar.nix @@ -4,11 +4,9 @@ lib, options, ... -}: -let +}: let cfg = config.david.programs.waybar; -in -{ +in { options = { david.programs.waybar = { enable = lib.mkEnableOption "waybar"; @@ -25,7 +23,7 @@ in "niri/workspaces" "wlr/taskbar" ]; - modules-center = [ "clock" ]; + modules-center = ["clock"]; modules-right = [ "tray" "idle_inhibitor" @@ -39,7 +37,7 @@ in on-click = "activate"; }; - "niri/worksapces" = { }; + "niri/worksapces" = {}; "niri/taskbar" = { icon-size = 15; on-click = "activate"; diff --git a/home/david/modules/programs/waypaper.nix b/home/david/modules/programs/waypaper.nix index 916b50c..7167312 100644 --- a/home/david/modules/programs/waypaper.nix +++ b/home/david/modules/programs/waypaper.nix @@ -3,11 +3,9 @@ config, pkgs, ... -}: -let +}: let cfg = config.david.programs.waypaper; -in -{ +in { options = { david.programs.waypaper = { enable = lib.mkEnableOption "waypaper"; @@ -29,7 +27,7 @@ in OnCalendar = "*:0/10"; }; Install = { - WantedBy = [ "timers.target" ]; + WantedBy = ["timers.target"]; }; }; services."waypaper" = { diff --git a/home/david/modules/programs/wluma.nix b/home/david/modules/programs/wluma.nix index 6907dfc..ee6264e 100644 --- a/home/david/modules/programs/wluma.nix +++ b/home/david/modules/programs/wluma.nix @@ -3,11 +3,9 @@ config, options, ... -}: -let +}: let cfg = config.david.programs.wluma; -in -{ +in { options = { david.programs.wluma = { enable = lib.mkEnableOption "wluma"; @@ -35,22 +33,23 @@ in config = lib.mkIf cfg.enable { services.wluma = { enable = true; - settings = { - als = { - webcam = { - video = 0; - thresholds = { - "0" = "night"; - "15" = "dark"; - "30" = "dim"; - "45" = "normal"; - "60" = "bright"; - "75" = "outdoors"; + settings = + { + als = { + webcam = { + video = 0; + thresholds = { + "0" = "night"; + "15" = "dark"; + "30" = "dim"; + "45" = "normal"; + "60" = "bright"; + "75" = "outdoors"; + }; }; }; - }; - } - // cfg.extraSettings; + } + // cfg.extraSettings; systemd = { enable = true; }; diff --git a/home/david/modules/programs/zed.nix b/home/david/modules/programs/zed.nix index b0c5160..9b54c3b 100644 --- a/home/david/modules/programs/zed.nix +++ b/home/david/modules/programs/zed.nix @@ -3,11 +3,9 @@ config, lib, ... -}: -let +}: let cfg = config.david.programs.zed-editor; -in -{ +in { options = { david.programs.zed-editor = { enable = lib.mkEnableOption "zed-editor"; @@ -64,7 +62,7 @@ in ty = { binary = { path = lib.getExe pkgs.ty; - arguments = [ "server" ]; + arguments = ["server"]; }; }; }; diff --git a/home/david/modules/wallpaper.nix b/home/david/modules/wallpaper.nix index 8062bb2..c177011 100644 --- a/home/david/modules/wallpaper.nix +++ b/home/david/modules/wallpaper.nix @@ -3,11 +3,9 @@ config, pkgs, ... -}: -let +}: let cfg = config.david.wallpaper; -in -{ +in { options = { david.wallpaper = { enable = lib.mkEnableOption "wallpaper"; diff --git a/home/extra/default.nix b/home/extra/default.nix index 7311140..bfc3e75 100644 --- a/home/extra/default.nix +++ b/home/extra/default.nix @@ -2,8 +2,7 @@ lib, inputs, ... -}: -{ +}: { imports = (with inputs; [ niri-flake.homeModules.niri diff --git a/home/extra/nix.nix b/home/extra/nix.nix index c32b85b..0568a29 100644 --- a/home/extra/nix.nix +++ b/home/extra/nix.nix @@ -4,8 +4,7 @@ pkgs, inputs, ... -}: -{ +}: { config = { nixpkgs = { config = { diff --git a/home/modules/default.nix b/home/modules/default.nix index 0d851e0..5e02002 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -2,8 +2,7 @@ lib, inputs, ... -}: -{ +}: { imports = (with inputs; [ sops-nix.homeManagerModules.sops diff --git a/home/modules/programs/atuin.nix b/home/modules/programs/atuin.nix index a2343b8..8e84e5f 100644 --- a/home/modules/programs/atuin.nix +++ b/home/modules/programs/atuin.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.atuin; -in -{ +in { options = { youthlic.programs.atuin = { enable = lib.mkEnableOption "atuin"; diff --git a/home/modules/programs/awscli.nix b/home/modules/programs/awscli.nix index a482d23..9ec8bf4 100644 --- a/home/modules/programs/awscli.nix +++ b/home/modules/programs/awscli.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.awscli; -in -{ +in { options = { youthlic.programs.awscli = { enable = lib.mkEnableOption "awscli"; @@ -18,7 +16,7 @@ in }; }; config = lib.mkIf cfg.enable { - sops.secrets."awscli" = { }; + sops.secrets."awscli" = {}; programs.awscli = { enable = true; credentials = { diff --git a/home/modules/programs/bash.nix b/home/modules/programs/bash.nix index 64d9309..990a853 100644 --- a/home/modules/programs/bash.nix +++ b/home/modules/programs/bash.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.bash; -in -{ +in { options = { youthlic.programs.bash = { enable = lib.mkEnableOption "bash"; diff --git a/home/modules/programs/direnv/default.nix b/home/modules/programs/direnv/default.nix index 6571be7..b47a2aa 100644 --- a/home/modules/programs/direnv/default.nix +++ b/home/modules/programs/direnv/default.nix @@ -1,8 +1,10 @@ -{ config, lib, ... }: -let - cfg = config.youthlic.programs.direnv; -in { + config, + lib, + ... +}: let + cfg = config.youthlic.programs.direnv; +in { options = { youthlic.programs.direnv = { enable = lib.mkEnableOption "direnv"; diff --git a/home/modules/programs/eza.nix b/home/modules/programs/eza.nix index 6047a7a..03e2d34 100644 --- a/home/modules/programs/eza.nix +++ b/home/modules/programs/eza.nix @@ -2,14 +2,12 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.eza; fish-cfg = config.youthlic.programs.fish; bash-cfg = config.youthlic.programs.bash; ion-cfg = config.youthlic.programs.ion; -in -{ +in { options = { youthlic.programs.eza = { enable = lib.mkEnableOption "eza"; diff --git a/home/modules/programs/fish.nix b/home/modules/programs/fish.nix index d08ea3f..9a4a1db 100644 --- a/home/modules/programs/fish.nix +++ b/home/modules/programs/fish.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.fish; -in -{ +in { options = { youthlic.programs.fish = { enable = lib.mkEnableOption "fish"; @@ -25,7 +23,8 @@ in { name = with pkgs.fishPlugins.foreign-env; pname + "-" + version; src = pkgs.fishPlugins.foreign-env.overrideAttrs { - postInstall = # bash + postInstall = + # bash '' ln -s $out/share/fish/vendor_functions.d $out/functions ''; @@ -41,7 +40,8 @@ in body = ''''; }; }; - shellInitLast = # fish + shellInitLast = + # fish '' if test -e ~/.config/guix/current/bin/guix fish_add_path -pPm ~/.config/guix/current/bin diff --git a/home/modules/programs/fzf.nix b/home/modules/programs/fzf.nix index 54d2c1e..3d9c918 100644 --- a/home/modules/programs/fzf.nix +++ b/home/modules/programs/fzf.nix @@ -2,13 +2,11 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.fzf; fish-cfg = config.youthlic.programs.fish; bash-cfg = config.youthlic.programs.bash; -in -{ +in { options = { youthlic.programs.fzf = { enable = lib.mkEnableOption "fzf"; diff --git a/home/modules/programs/git.nix b/home/modules/programs/git.nix index d76600c..637e812 100644 --- a/home/modules/programs/git.nix +++ b/home/modules/programs/git.nix @@ -2,8 +2,7 @@ config, lib, ... -}: -{ +}: { options = { youthlic.programs.git = { email = lib.mkOption { @@ -31,10 +30,9 @@ encrypt-credential = lib.mkEnableOption "encrypt git credential"; }; }; - config = - let - cfg = config.youthlic.programs.git; - in + config = let + cfg = config.youthlic.programs.git; + in lib.mkMerge [ { programs = { diff --git a/home/modules/programs/gpg/default.nix b/home/modules/programs/gpg/default.nix index db6f327..6c46a05 100644 --- a/home/modules/programs/gpg/default.nix +++ b/home/modules/programs/gpg/default.nix @@ -4,17 +4,15 @@ lib, outputs, ... -}: -{ +}: { options = { youthlic.programs.gpg = { enable = lib.mkEnableOption "gpg"; }; }; - config = - let - cfg = config.youthlic.programs.gpg; - in + config = let + cfg = config.youthlic.programs.gpg; + in lib.mkIf cfg.enable { services.gpg-agent = lib.mkMerge [ { diff --git a/home/modules/programs/helix/default.nix b/home/modules/programs/helix/default.nix index 64bb758..15f82c5 100644 --- a/home/modules/programs/helix/default.nix +++ b/home/modules/programs/helix/default.nix @@ -3,26 +3,23 @@ pkgs, config, ... -}: -let +}: let cfg = config.youthlic.programs.helix; defaultLanguagesSettings = config.programs.helix.package.passthru.languages.language; -in -{ +in { options = { youthlic.programs.helix = { enable = lib.mkEnableOption "helix"; languageSettings = lib.mkOption { type = lib.types.attrsOf ( lib.types.submodule ( - { ... }: - { + {...}: { freeformType = lib.types.anything; options = { language-servers = lib.mkOption { type = lib.types.listOf (lib.types.either lib.types.str lib.types.anything); - default = [ "typos-lsp" ]; - example = [ "rust-analyzer" ]; + default = ["typos-lsp"]; + example = ["rust-analyzer"]; apply = lib.unique; }; }; @@ -30,17 +27,16 @@ in ) ); default = lib.pipe defaultLanguagesSettings [ - (map (lang: lib.nameValuePair lang.name (lib.removeAttrs lang [ "name" ]))) + (map (lang: lib.nameValuePair lang.name (lib.removeAttrs lang ["name"]))) lib.listToAttrs ]; - apply = lib.mapAttrsToList (name: value: { inherit name; } // value); + apply = lib.mapAttrsToList (name: value: {inherit name;} // value); }; extraPackages = lib.mkOption { type = lib.types.listOf lib.types.package; - default = [ ]; + default = []; example = ( - with pkgs; - [ + with pkgs; [ deno ] ); @@ -56,8 +52,7 @@ in enable = true; defaultEditor = true; extraPackages = cfg.extraPackages; - settings = - with lib; + settings = with lib; pipe ./config.toml [ builtins.readFile builtins.fromTOML @@ -86,200 +81,200 @@ in command = "typos-lsp"; }; }; - } { language = cfg.languageSettings; }; + } {language = cfg.languageSettings;}; }; }) (lib.mkIf cfg.enable { youthlic.programs.helix.languageSettings = lib.pipe defaultLanguagesSettings [ - (map ({ name, ... }: lib.nameValuePair name { language-servers = [ "typos-lsp" ]; })) + (map ({name, ...}: lib.nameValuePair name {language-servers = ["typos-lsp"];})) lib.listToAttrs ]; }) (lib.mkIf cfg.enable { youthlic.programs.helix.languageSettings = lib.recursiveUpdate - (lib.pipe defaultLanguagesSettings [ - (map (lang: lib.nameValuePair lang.name (lib.removeAttrs lang [ "name" ]))) - lib.listToAttrs - ]) - { - cmake = { - language-servers = [ - "neocmakelsp" - "cmake-language-server" + (lib.pipe defaultLanguagesSettings [ + (map (lang: lib.nameValuePair lang.name (lib.removeAttrs lang ["name"]))) + lib.listToAttrs + ]) + { + cmake = { + language-servers = [ + "neocmakelsp" + "cmake-language-server" + ]; + }; + kdl = { + formatter = { + command = "kdlfmt"; + args = [ + "format" + "-" ]; }; - kdl = { - formatter = { - command = "kdlfmt"; - args = [ - "format" - "-" - ]; - }; - }; - just = { - formatter = { - command = "just"; - args = [ - "--dump" - ]; - }; - }; - nix = { - formatter = { - command = "nixfmt"; - }; - }; - xml = { - formatter = { - command = "xmllint"; - args = [ - "--format" - "-" - ]; - }; - }; - typst = { - formatter = { - command = "typstyle"; - }; - }; - c = { - formatter = { - command = "clang-format"; - }; - }; - cpp = { - formatter = { - command = "clang-format"; - }; - }; - python = { - formatter = { - command = "ruff"; - args = [ - "format" - "-s" - "--line-length" - "88" - "-" - ]; - }; - language-servers = [ - "pyright" - "ruff" - "ty" - ]; - }; - go = { - formatter = { - command = "goimports"; - }; - }; - awk = { - formatter = { - command = "awk"; - timeout = 5; - args = [ - "--file=/dev/stdin" - "--pretty-print=/dev/stdout" - ]; - }; - }; - fish = { - language-servers = [ - "fish-lsp" - ]; - }; - yaml = { - formatter = { - command = "deno"; - args = [ - "fmt" - "-" - "--ext" - "yaml" - ]; - }; - }; - html = { - formatter = { - command = "deno"; - args = [ - "fmt" - "-" - "--ext" - "html" - ]; - }; - language-servers = [ - "vscode-html-language-server" - ]; - }; - css = { - formatter = { - command = "deno"; - args = [ - "fmt" - "-" - "--ext" - "css" - ]; - }; - language-servers = [ - "vscode-css-language-server" - ]; - }; - toml = { - formatter = { - command = "taplo"; - args = [ - "fmt" - "-" - ]; - }; - }; - markdown = { - formatter = { - command = "deno"; - args = [ - "fmt" - "-" - "--ext" - "md" - ]; - }; - }; - json = { - language-servers = [ - "vscode-json-language-server" - ]; - formatter = { - command = "deno"; - args = [ - "fmt" - "-" - "--ext" - "json" - ]; - }; - }; - jsonc = { - language-servers = [ - "vscode-json-language-server" - ]; - formatter = { - command = "deno"; - args = [ - "fmt" - "-" - "--ext" - "jsonc" - ]; - }; - }; }; + just = { + formatter = { + command = "just"; + args = [ + "--dump" + ]; + }; + }; + nix = { + formatter = { + command = "nixfmt"; + }; + }; + xml = { + formatter = { + command = "xmllint"; + args = [ + "--format" + "-" + ]; + }; + }; + typst = { + formatter = { + command = "typstyle"; + }; + }; + c = { + formatter = { + command = "clang-format"; + }; + }; + cpp = { + formatter = { + command = "clang-format"; + }; + }; + python = { + formatter = { + command = "ruff"; + args = [ + "format" + "-s" + "--line-length" + "88" + "-" + ]; + }; + language-servers = [ + "pyright" + "ruff" + "ty" + ]; + }; + go = { + formatter = { + command = "goimports"; + }; + }; + awk = { + formatter = { + command = "awk"; + timeout = 5; + args = [ + "--file=/dev/stdin" + "--pretty-print=/dev/stdout" + ]; + }; + }; + fish = { + language-servers = [ + "fish-lsp" + ]; + }; + yaml = { + formatter = { + command = "deno"; + args = [ + "fmt" + "-" + "--ext" + "yaml" + ]; + }; + }; + html = { + formatter = { + command = "deno"; + args = [ + "fmt" + "-" + "--ext" + "html" + ]; + }; + language-servers = [ + "vscode-html-language-server" + ]; + }; + css = { + formatter = { + command = "deno"; + args = [ + "fmt" + "-" + "--ext" + "css" + ]; + }; + language-servers = [ + "vscode-css-language-server" + ]; + }; + toml = { + formatter = { + command = "taplo"; + args = [ + "fmt" + "-" + ]; + }; + }; + markdown = { + formatter = { + command = "deno"; + args = [ + "fmt" + "-" + "--ext" + "md" + ]; + }; + }; + json = { + language-servers = [ + "vscode-json-language-server" + ]; + formatter = { + command = "deno"; + args = [ + "fmt" + "-" + "--ext" + "json" + ]; + }; + }; + jsonc = { + language-servers = [ + "vscode-json-language-server" + ]; + formatter = { + command = "deno"; + args = [ + "fmt" + "-" + "--ext" + "jsonc" + ]; + }; + }; + }; }) ]; } diff --git a/home/modules/programs/ion.nix b/home/modules/programs/ion.nix index 42adca5..cb458b5 100644 --- a/home/modules/programs/ion.nix +++ b/home/modules/programs/ion.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.ion; -in -{ +in { options = { youthlic.programs.ion = { enable = lib.mkEnableOption "ion"; diff --git a/home/modules/programs/jujutsu.nix b/home/modules/programs/jujutsu.nix index 48c8942..7a33b9c 100644 --- a/home/modules/programs/jujutsu.nix +++ b/home/modules/programs/jujutsu.nix @@ -3,11 +3,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.jujutsu; -in -{ +in { options = { youthlic.programs.jujutsu = { enable = lib.mkEnableOption "jujutsu"; diff --git a/home/modules/programs/kvm.nix b/home/modules/programs/kvm.nix index 82cb133..3f6a0de 100644 --- a/home/modules/programs/kvm.nix +++ b/home/modules/programs/kvm.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.kvm; -in -{ +in { options = { youthlic.programs.kvm = { enable = lib.mkEnableOption "kvm"; @@ -16,8 +14,8 @@ in dconf = { settings = { "org/virt-manager/virt-manager/connections" = { - autoconnect = [ "qemu:///system" ]; - uris = [ "qemu:///system" ]; + autoconnect = ["qemu:///system"]; + uris = ["qemu:///system"]; }; }; }; diff --git a/home/modules/programs/rustypaste-cli.nix b/home/modules/programs/rustypaste-cli.nix index 36a7844..19bdcbb 100644 --- a/home/modules/programs/rustypaste-cli.nix +++ b/home/modules/programs/rustypaste-cli.nix @@ -3,22 +3,20 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.rustypaste-cli; -in -{ +in { options = { youthlic.programs.rustypaste-cli = { enable = lib.mkEnableOption "rustypaste-cli"; }; }; config = lib.mkIf cfg.enable { - home.packages = [ pkgs.rustypaste-cli ]; + home.packages = [pkgs.rustypaste-cli]; sops = { secrets = { - "rustypaste/auth" = { }; - "rustypaste/delete" = { }; + "rustypaste/auth" = {}; + "rustypaste/delete" = {}; }; templates."rustypaste-config.toml" = { path = "${config.xdg.configHome}/rustypaste/config.toml"; diff --git a/home/modules/programs/sops.nix b/home/modules/programs/sops.nix index 452f640..92c0375 100644 --- a/home/modules/programs/sops.nix +++ b/home/modules/programs/sops.nix @@ -4,8 +4,7 @@ pkgs, rootPath, ... -}: -{ +}: { options = { youthlic.programs.sops = { enable = lib.mkOption { @@ -25,14 +24,12 @@ }; }; }; - config = - let - cfg = config.youthlic.programs.sops; - in + config = let + cfg = config.youthlic.programs.sops; + in lib.mkIf cfg.enable { home.packages = ( - with pkgs; - [ + with pkgs; [ sops age ] diff --git a/home/modules/programs/spotifyd.nix b/home/modules/programs/spotifyd.nix index 9d94848..b339ec6 100644 --- a/home/modules/programs/spotifyd.nix +++ b/home/modules/programs/spotifyd.nix @@ -1,8 +1,10 @@ -{ config, lib, ... }: -let - cfg = config.youthlic.programs.spotifyd; -in { + config, + lib, + ... +}: let + cfg = config.youthlic.programs.spotifyd; +in { options = { youthlic.programs.spotifyd = { enable = lib.mkEnableOption "spotifyd"; diff --git a/home/modules/programs/starship/default.nix b/home/modules/programs/starship/default.nix index 25e87d4..4a1b48b 100644 --- a/home/modules/programs/starship/default.nix +++ b/home/modules/programs/starship/default.nix @@ -2,14 +2,12 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.starship; fish-cfg = config.youthlic.programs.fish; bash-cfg = config.youthlic.programs.bash; ion-cfg = config.youthlic.programs.ion; -in -{ +in { options = { youthlic.programs.starship = { enable = lib.mkEnableOption "starship"; @@ -20,10 +18,9 @@ in programs.starship = { enable = true; enableTransience = true; - settings = - let - config-file = builtins.readFile ./config.toml; - in + settings = let + config-file = builtins.readFile ./config.toml; + in builtins.fromTOML config-file; }; }) diff --git a/home/modules/programs/yazi.nix b/home/modules/programs/yazi.nix index 1f79aaa..27d1a23 100644 --- a/home/modules/programs/yazi.nix +++ b/home/modules/programs/yazi.nix @@ -3,13 +3,11 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.yazi; fish-cfg = config.youthlic.programs.fish; bash-cfg = config.youthlic.programs.bash; -in -{ +in { options = { youthlic.programs.yazi = { enable = lib.mkEnableOption "yazi"; @@ -23,7 +21,8 @@ in programs.yazi = { enable = true; plugins = { - inherit (pkgs.yaziPlugins) + inherit + (pkgs.yaziPlugins) ouch starship piper @@ -81,7 +80,7 @@ in desc = "Chmod on selected files"; } { - on = [ "l" ]; + on = ["l"]; run = "plugin smart-enter"; desc = "Enter the child directory, or open the file"; } diff --git a/home/modules/programs/zoxide.nix b/home/modules/programs/zoxide.nix index 137086d..d52dcd6 100644 --- a/home/modules/programs/zoxide.nix +++ b/home/modules/programs/zoxide.nix @@ -2,13 +2,11 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.zoxide; fish-cfg = config.youthlic.programs.fish; bash-cfg = config.youthlic.programs.bash; -in -{ +in { options = { youthlic.programs.zoxide = { enable = lib.mkEnableOption "zoxide"; diff --git a/home/modules/xdg-dirs.nix b/home/modules/xdg-dirs.nix index 1b5e5b0..1845999 100644 --- a/home/modules/xdg-dirs.nix +++ b/home/modules/xdg-dirs.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.xdg-dirs; -in -{ +in { options = { youthlic.xdg-dirs = { enable = lib.mkEnableOption "xdg-dirs"; diff --git a/lib/default.nix b/lib/default.nix index 631a305..d41ffe6 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,38 +1,39 @@ final: _prev: { youthlic = { - loadImports' = - dir: f: + loadImports' = dir: f: final.pipe dir [ final.youthlic.loadImports f ]; - loadImports = - dir: + loadImports = dir: with final; - if !(pathExists dir && builtins.readFileType dir == "directory") then - [ ] - else - let + if !(pathExists dir && builtins.readFileType dir == "directory") + then [] + else let items = pipe dir [ builtins.readDir attrNames ]; in - pipe items [ - (concatMap ( - name: - let - path = dir + "/${name}"; - type = builtins.readFileType path; - in - if type == "directory" then - if pathExists (path + "/default.nix") then [ path ] else youthlic.loadImports path - else if type == "regular" then - if hasSuffix ".nix" name then [ path ] else [ ] - else - [ ] - )) - (filter (name: !hasSuffix "/default.nix" (toString name))) - ]; + pipe items [ + (concatMap ( + name: let + path = dir + "/${name}"; + type = builtins.readFileType path; + in + if type == "directory" + then + if pathExists (path + "/default.nix") + then [path] + else youthlic.loadImports path + else if type == "regular" + then + if hasSuffix ".nix" name + then [path] + else [] + else [] + )) + (filter (name: !hasSuffix "/default.nix" (toString name))) + ]; }; } diff --git a/nixos/configurations/Akun/default.nix b/nixos/configurations/Akun/default.nix index 76aa787..fd409c3 100644 --- a/nixos/configurations/Akun/default.nix +++ b/nixos/configurations/Akun/default.nix @@ -4,8 +4,7 @@ lib, outputs, ... -}: -{ +}: { imports = (with inputs.nixos-hardware.nixosModules; [ common-cpu-intel @@ -76,11 +75,11 @@ kernelPackages = pkgs.linuxPackages_cachyos; loader.systemd-boot.enable = true; loader.efi.canTouchEfiVariables = true; - kernelParams = [ "i915.enable_guc=2" ]; + kernelParams = ["i915.enable_guc=2"]; }; nix = { settings = { - system-features = [ "gccarch-skylake" ]; + system-features = ["gccarch-skylake"]; }; }; hardware = { diff --git a/nixos/configurations/Akun/disk-config.nix b/nixos/configurations/Akun/disk-config.nix index 2d21e40..f10dd5c 100644 --- a/nixos/configurations/Akun/disk-config.nix +++ b/nixos/configurations/Akun/disk-config.nix @@ -49,7 +49,7 @@ ]; content = { type = "btrfs"; - extraArgs = [ "-f" ]; + extraArgs = ["-f"]; subvolumes = { "@root" = { mountpoint = "/"; diff --git a/nixos/configurations/Akun/gui.nix b/nixos/configurations/Akun/gui.nix index 88d2e5b..38618ef 100644 --- a/nixos/configurations/Akun/gui.nix +++ b/nixos/configurations/Akun/gui.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.gui = { enabled = "niri"; }; diff --git a/nixos/configurations/Akun/hardware-configuration.nix b/nixos/configurations/Akun/hardware-configuration.nix index 765d467..630b077 100644 --- a/nixos/configurations/Akun/hardware-configuration.nix +++ b/nixos/configurations/Akun/hardware-configuration.nix @@ -7,8 +7,7 @@ pkgs, modulesPath, ... -}: -{ +}: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; @@ -21,9 +20,9 @@ "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; + boot.initrd.kernelModules = []; + boot.kernelModules = []; + boot.extraModulePackages = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/nixos/configurations/Akun/networking.nix b/nixos/configurations/Akun/networking.nix index 4212114..c5ec9c0 100644 --- a/nixos/configurations/Akun/networking.nix +++ b/nixos/configurations/Akun/networking.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { systemd.network = { enable = true; wait-online.enable = false; diff --git a/nixos/configurations/Akun/stylix.nix b/nixos/configurations/Akun/stylix.nix index 1567f89..5267a91 100644 --- a/nixos/configurations/Akun/stylix.nix +++ b/nixos/configurations/Akun/stylix.nix @@ -2,8 +2,7 @@ pkgs, rootPath, ... -}: -{ +}: { stylix = { enable = true; image = rootPath + "/assets/wallpaper/01.png"; diff --git a/nixos/configurations/Akun/users/default.nix b/nixos/configurations/Akun/users/default.nix index 0870dab..33847ac 100644 --- a/nixos/configurations/Akun/users/default.nix +++ b/nixos/configurations/Akun/users/default.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { users = { mutableUsers = true; users.david = { diff --git a/nixos/configurations/Cape/default.nix b/nixos/configurations/Cape/default.nix index eeb88c8..c0c3d68 100644 --- a/nixos/configurations/Cape/default.nix +++ b/nixos/configurations/Cape/default.nix @@ -3,12 +3,12 @@ lib, outputs, ... -}: -{ - imports = [ - outputs.nixosModules.default - ] - ++ (lib.youthlic.loadImports ./.); +}: { + imports = + [ + outputs.nixosModules.default + ] + ++ (lib.youthlic.loadImports ./.); youthlic = { home-manager = { @@ -72,7 +72,7 @@ }; nix = { settings = { - system-features = [ "gccarch-ivybridge" ]; + system-features = ["gccarch-ivybridge"]; }; }; diff --git a/nixos/configurations/Cape/disko-config.nix b/nixos/configurations/Cape/disko-config.nix index 8214982..2956283 100644 --- a/nixos/configurations/Cape/disko-config.nix +++ b/nixos/configurations/Cape/disko-config.nix @@ -15,7 +15,7 @@ size = "100%"; content = { type = "btrfs"; - extraArgs = [ "-f" ]; + extraArgs = ["-f"]; subvolumes = { "@root" = { mountpoint = "/"; diff --git a/nixos/configurations/Cape/forgejo.nix b/nixos/configurations/Cape/forgejo.nix index 1ce071a..9117716 100644 --- a/nixos/configurations/Cape/forgejo.nix +++ b/nixos/configurations/Cape/forgejo.nix @@ -1,12 +1,11 @@ -{ config, ... }: -{ +{config, ...}: { youthlic.containers.forgejo = { enable = true; domain = "forgejo.youthlic.social"; sshPort = 2222; httpPort = 8480; }; - networking.firewall.allowedTCPPorts = [ 2222 ]; + networking.firewall.allowedTCPPorts = [2222]; services.caddy.virtualHosts = { "forgejo.${config.youthlic.programs.caddy.baseDomain}" = { extraConfig = '' diff --git a/nixos/configurations/Cape/hardware-configuration.nix b/nixos/configurations/Cape/hardware-configuration.nix index ac18c26..f99f914 100644 --- a/nixos/configurations/Cape/hardware-configuration.nix +++ b/nixos/configurations/Cape/hardware-configuration.nix @@ -7,8 +7,7 @@ pkgs, modulesPath, ... -}: -{ +}: { imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; @@ -20,9 +19,9 @@ "sr_mod" "virtio_blk" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; + boot.initrd.kernelModules = []; + boot.kernelModules = []; + boot.extraModulePackages = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/nixos/configurations/Cape/miniflux.nix b/nixos/configurations/Cape/miniflux.nix index 0fc92b4..a106d53 100644 --- a/nixos/configurations/Cape/miniflux.nix +++ b/nixos/configurations/Cape/miniflux.nix @@ -1,5 +1,4 @@ -{ config, ... }: -{ +{config, ...}: { sops.secrets."miniflux" = { }; youthlic.containers.miniflux = { diff --git a/nixos/configurations/Cape/networking.nix b/nixos/configurations/Cape/networking.nix index 50d604c..2c876e2 100644 --- a/nixos/configurations/Cape/networking.nix +++ b/nixos/configurations/Cape/networking.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { systemd.network = { enable = true; wait-online.enable = true; diff --git a/nixos/configurations/Cape/radicle.nix b/nixos/configurations/Cape/radicle.nix index f3bf6f6..bb2ccc7 100644 --- a/nixos/configurations/Cape/radicle.nix +++ b/nixos/configurations/Cape/radicle.nix @@ -1,6 +1,5 @@ -{ config, ... }: -{ - sops.secrets."ssh-private-key/radicle/Cape" = { }; +{config, ...}: { + sops.secrets."ssh-private-key/radicle/Cape" = {}; youthlic.programs.radicle = { enable = true; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBbQrJNWcWsFncTX4w/hkhz6zPNwHrTjA+6lnq5dmu/s radicle"; diff --git a/nixos/configurations/Cape/stylix.nix b/nixos/configurations/Cape/stylix.nix index d2b5e6f..7730b4b 100644 --- a/nixos/configurations/Cape/stylix.nix +++ b/nixos/configurations/Cape/stylix.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { stylix = { enable = false; }; diff --git a/nixos/configurations/Cape/users/default.nix b/nixos/configurations/Cape/users/default.nix index 5eb47ab..7e89291 100644 --- a/nixos/configurations/Cape/users/default.nix +++ b/nixos/configurations/Cape/users/default.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -{ +{pkgs, ...}: { users.users.alice = { initialHashedPassword = "$y$j9T$eS5zCi4W.4IPpf3P8Tb/o1$xhumXY1.PJKmTguNi/zlljLbLemNGiubWoUEc878S36"; isNormalUser = true; diff --git a/nixos/configurations/Tytonidae/default.nix b/nixos/configurations/Tytonidae/default.nix index f7fa43f..303895e 100644 --- a/nixos/configurations/Tytonidae/default.nix +++ b/nixos/configurations/Tytonidae/default.nix @@ -4,8 +4,7 @@ inputs, outputs, ... -}: -{ +}: { imports = (with inputs.nixos-hardware.nixosModules; [ common-hidpi @@ -18,7 +17,7 @@ ++ (with outputs; [ nixosModules.gui ]) - ++ [ inputs.lanzaboote.nixosModules.lanzaboote ] + ++ [inputs.lanzaboote.nixosModules.lanzaboote] ++ (lib.youthlic.loadImports ./.); youthlic = { diff --git a/nixos/configurations/Tytonidae/disk-config.nix b/nixos/configurations/Tytonidae/disk-config.nix index 6549e97..a1c5c88 100644 --- a/nixos/configurations/Tytonidae/disk-config.nix +++ b/nixos/configurations/Tytonidae/disk-config.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { disko.devices = { disk = { disk1 = { diff --git a/nixos/configurations/Tytonidae/gui.nix b/nixos/configurations/Tytonidae/gui.nix index 88d2e5b..38618ef 100644 --- a/nixos/configurations/Tytonidae/gui.nix +++ b/nixos/configurations/Tytonidae/gui.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.gui = { enabled = "niri"; }; diff --git a/nixos/configurations/Tytonidae/hardware-configuration.nix b/nixos/configurations/Tytonidae/hardware-configuration.nix index 827d061..4eda333 100644 --- a/nixos/configurations/Tytonidae/hardware-configuration.nix +++ b/nixos/configurations/Tytonidae/hardware-configuration.nix @@ -7,8 +7,7 @@ pkgs, modulesPath, ... -}: -{ +}: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; @@ -20,9 +19,9 @@ "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/nixos/configurations/Tytonidae/hardware.nix b/nixos/configurations/Tytonidae/hardware.nix index 665738d..f986409 100644 --- a/nixos/configurations/Tytonidae/hardware.nix +++ b/nixos/configurations/Tytonidae/hardware.nix @@ -3,8 +3,7 @@ lib, config, ... -}: -{ +}: { nixpkgs.config.cudaSupport = true; services = { hardware.bolt.enable = true; @@ -16,13 +15,13 @@ }; nix = { settings = { - system-features = [ "gccarch-alderlake" ]; + system-features = ["gccarch-alderlake"]; }; }; hardware = { openrazer = { enable = true; - users = [ "david" ]; + users = ["david"]; }; graphics.package = pkgs.mesa_git; intelgpu = { @@ -40,7 +39,7 @@ }; }; boot = { - extraModulePackages = with config.boot.kernelPackages; [ ddcci-driver ]; + extraModulePackages = with config.boot.kernelPackages; [ddcci-driver]; kernelModules = [ "ddcci" "ddcci-backlight" @@ -56,38 +55,36 @@ }; systemd.services."ddcci@" = { description = "ddcci handler"; - after = [ "graphical.target" ]; - before = [ "shutdown.target" ]; - conflicts = [ "shutdown.target" ]; + after = ["graphical.target"]; + before = ["shutdown.target"]; + conflicts = ["shutdown.target"]; serviceConfig = { Type = "oneshot"; - ExecStart = - let - script = pkgs.writeShellApplication { - name = "ddcci-handler"; - runtimeInputs = with pkgs; [ - coreutils - ddcutil - ]; - text = '' - echo Trying to attach ddcci to "$1" - success=0 - i=0 - id=$(echo "$1" | cut -d "-" -f 2) - while ((success < 1)) && ((i++ < 5)); do - if ddcutil getvcp 10 -b "$id"; then - if echo ddcci 0x37 > "/sys/bus/i2c/devices/$1/new_device"; then - success=1 - echo ddcci attached to "$1" - fi + ExecStart = let + script = pkgs.writeShellApplication { + name = "ddcci-handler"; + runtimeInputs = with pkgs; [ + coreutils + ddcutil + ]; + text = '' + echo Trying to attach ddcci to "$1" + success=0 + i=0 + id=$(echo "$1" | cut -d "-" -f 2) + while ((success < 1)) && ((i++ < 5)); do + if ddcutil getvcp 10 -b "$id"; then + if echo ddcci 0x37 > "/sys/bus/i2c/devices/$1/new_device"; then + success=1 + echo ddcci attached to "$1" fi - echo "Try $i" - sleep 1; - done - ''; - }; - in - "${lib.getExe' script "ddcci-handler"} %i"; + fi + echo "Try $i" + sleep 1; + done + ''; + }; + in "${lib.getExe' script "ddcci-handler"} %i"; }; }; services.udev.extraRules = '' diff --git a/nixos/configurations/Tytonidae/networking.nix b/nixos/configurations/Tytonidae/networking.nix index 1201719..f840de5 100644 --- a/nixos/configurations/Tytonidae/networking.nix +++ b/nixos/configurations/Tytonidae/networking.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { systemd.network = { enable = true; wait-online.enable = false; diff --git a/nixos/configurations/Tytonidae/specialisation/cosmic.nix b/nixos/configurations/Tytonidae/specialisation/cosmic.nix index 7a1ff3d..c2cc305 100644 --- a/nixos/configurations/Tytonidae/specialisation/cosmic.nix +++ b/nixos/configurations/Tytonidae/specialisation/cosmic.nix @@ -1,5 +1,4 @@ -{ lib, ... }: -{ +{lib, ...}: { config.specialisation.cosmic = { inheritParentConfig = true; configuration = { diff --git a/nixos/configurations/Tytonidae/specialisation/kde.nix b/nixos/configurations/Tytonidae/specialisation/kde.nix index ed049b0..91e0f65 100644 --- a/nixos/configurations/Tytonidae/specialisation/kde.nix +++ b/nixos/configurations/Tytonidae/specialisation/kde.nix @@ -1,5 +1,4 @@ -{ lib, ... }: -{ +{lib, ...}: { config.specialisation.kde = { inheritParentConfig = true; configuration = { diff --git a/nixos/configurations/Tytonidae/specialisation/niri-hybrid.nix b/nixos/configurations/Tytonidae/specialisation/niri-hybrid.nix index f9ba86b..5cf3649 100644 --- a/nixos/configurations/Tytonidae/specialisation/niri-hybrid.nix +++ b/nixos/configurations/Tytonidae/specialisation/niri-hybrid.nix @@ -2,12 +2,11 @@ inputs, lib, ... -}: -{ +}: { config.specialisation.niri-hybrid = { inheritParentConfig = true; configuration = { - imports = [ inputs.nixos-hardware.nixosModules.common-gpu-nvidia ]; + imports = [inputs.nixos-hardware.nixosModules.common-gpu-nvidia]; hardware.nvidia.prime.reverseSync.enable = lib.mkForce false; }; }; diff --git a/nixos/configurations/Tytonidae/stylix.nix b/nixos/configurations/Tytonidae/stylix.nix index 7afd390..e5785d0 100644 --- a/nixos/configurations/Tytonidae/stylix.nix +++ b/nixos/configurations/Tytonidae/stylix.nix @@ -2,8 +2,7 @@ pkgs, rootPath, ... -}: -{ +}: { stylix = { enable = true; image = rootPath + "/assets/wallpaper/01.png"; diff --git a/nixos/configurations/Tytonidae/users/default.nix b/nixos/configurations/Tytonidae/users/default.nix index 9d652bf..d7722a5 100644 --- a/nixos/configurations/Tytonidae/users/default.nix +++ b/nixos/configurations/Tytonidae/users/default.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { users.users.david = { initialHashedPassword = "$y$j9T$eS5zCi4W.4IPpf3P8Tb/o1$xhumXY1.PJKmTguNi/zlljLbLemNGiubWoUEc878S36"; isNormalUser = true; diff --git a/nixos/modules/containers/default.nix b/nixos/modules/containers/default.nix index 9168f4c..e39e453 100644 --- a/nixos/modules/containers/default.nix +++ b/nixos/modules/containers/default.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.containers; -in -{ +in { imports = lib.youthlic.loadImports ./.; options = { youthlic.containers = { diff --git a/nixos/modules/containers/forgejo.nix b/nixos/modules/containers/forgejo.nix index 913213d..92dc034 100644 --- a/nixos/modules/containers/forgejo.nix +++ b/nixos/modules/containers/forgejo.nix @@ -3,11 +3,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.containers.forgejo; -in -{ +in { options = { youthlic.containers.forgejo = { enable = lib.mkEnableOption "forgejo container"; @@ -56,64 +54,62 @@ in } ]; - config = - { lib, ... }: - { - imports = [ - ./../programs/forgejo.nix - ./../programs/postgresql.nix - ]; + config = {lib, ...}: { + imports = [ + ./../programs/forgejo.nix + ./../programs/postgresql.nix + ]; - nixpkgs.pkgs = pkgs; + nixpkgs.pkgs = pkgs; - systemd.tmpfiles.rules = [ - "d /var/lib/forgejo 770 forgejo forgejo -" - "d /var/lib/postgresql 770 postgres postgres -" - ]; + systemd.tmpfiles.rules = [ + "d /var/lib/forgejo 770 forgejo forgejo -" + "d /var/lib/postgresql 770 postgres postgres -" + ]; - youthlic.programs = { - forgejo = { - enable = true; - domain = cfg.domain; - sshPort = cfg.sshPort; - httpPort = cfg.httpPort; - database = { - user = "forgejo"; - }; - }; - postgresql = { - enable = true; - database = "forgejo"; - auth_method = "peer"; - version = "17"; + youthlic.programs = { + forgejo = { + enable = true; + domain = cfg.domain; + sshPort = cfg.sshPort; + httpPort = cfg.httpPort; + database = { + user = "forgejo"; }; }; - - systemd.services.forgejo = { - wants = [ "postgresql.service" ]; - requires = [ "postgresql.service" ]; - after = [ "postgresql.service" ]; - wantedBy = [ "default.target" ]; + postgresql = { + enable = true; + database = "forgejo"; + auth_method = "peer"; + version = "17"; }; - - networking = { - defaultGateway = "192.168.111.1"; - firewall = { - enable = true; - allowedTCPPorts = [ - cfg.httpPort - cfg.sshPort - ]; - allowedUDPPorts = [ - cfg.httpPort - cfg.sshPort - ]; - }; - useHostResolvConf = lib.mkForce false; - }; - services.resolved.enable = true; - system.stateVersion = "24.11"; }; + + systemd.services.forgejo = { + wants = ["postgresql.service"]; + requires = ["postgresql.service"]; + after = ["postgresql.service"]; + wantedBy = ["default.target"]; + }; + + networking = { + defaultGateway = "192.168.111.1"; + firewall = { + enable = true; + allowedTCPPorts = [ + cfg.httpPort + cfg.sshPort + ]; + allowedUDPPorts = [ + cfg.httpPort + cfg.sshPort + ]; + }; + useHostResolvConf = lib.mkForce false; + }; + services.resolved.enable = true; + system.stateVersion = "24.11"; + }; }; }; } diff --git a/nixos/modules/containers/miniflux.nix b/nixos/modules/containers/miniflux.nix index 43516b3..e9bb5d0 100644 --- a/nixos/modules/containers/miniflux.nix +++ b/nixos/modules/containers/miniflux.nix @@ -3,11 +3,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.containers.miniflux; -in -{ +in { options = { youthlic.containers.miniflux = { enable = lib.mkEnableOption "miniflux container"; @@ -38,57 +36,55 @@ in }; }; - config = - { lib, ... }: - { - imports = [ - ./../programs/miniflux.nix - ./../programs/postgresql.nix - ]; + config = {lib, ...}: { + imports = [ + ./../programs/miniflux.nix + ./../programs/postgresql.nix + ]; - nixpkgs.pkgs = pkgs; + nixpkgs.pkgs = pkgs; - systemd.tmpfiles.rules = [ - "d /var/lib/miniflux 770 miniflux miniflux -" - "d /var/lib/postgresql 770 postgres postgres -" - "d /run/secrets 770 root miniflux -" - ]; + systemd.tmpfiles.rules = [ + "d /var/lib/miniflux 770 miniflux miniflux -" + "d /var/lib/postgresql 770 postgres postgres -" + "d /run/secrets 770 root miniflux -" + ]; - youthlic.programs = { - miniflux = { - enable = true; - database = { - user = "miniflux"; - }; - adminCredentialsFile = cfg.adminCredentialsFile; - }; - postgresql = { - enable = true; - database = "miniflux"; - auth_method = "peer"; - version = "17"; + youthlic.programs = { + miniflux = { + enable = true; + database = { + user = "miniflux"; }; + adminCredentialsFile = cfg.adminCredentialsFile; }; - - systemd.services.miniflux = { - wants = [ "postgresql.service" ]; - requires = [ "postgresql.service" ]; - after = [ "postgresql.service" ]; - wantedBy = [ "default.target" ]; + postgresql = { + enable = true; + database = "miniflux"; + auth_method = "peer"; + version = "17"; }; - - networking = { - defaultGateway = "192.168.111.1"; - firewall = { - enable = true; - allowedTCPPorts = [ 8485 ]; - allowedUDPPorts = [ 8485 ]; - }; - useHostResolvConf = lib.mkForce false; - }; - services.resolved.enable = true; - system.stateVersion = "24.11"; }; + + systemd.services.miniflux = { + wants = ["postgresql.service"]; + requires = ["postgresql.service"]; + after = ["postgresql.service"]; + wantedBy = ["default.target"]; + }; + + networking = { + defaultGateway = "192.168.111.1"; + firewall = { + enable = true; + allowedTCPPorts = [8485]; + allowedUDPPorts = [8485]; + }; + useHostResolvConf = lib.mkForce false; + }; + services.resolved.enable = true; + system.stateVersion = "24.11"; + }; }; }; } diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix index f365260..022a1fe 100644 --- a/nixos/modules/default.nix +++ b/nixos/modules/default.nix @@ -1,6 +1,4 @@ -{ lib, ... }: -{ - imports = - with lib; +{lib, ...}: { + imports = with lib; youthlic.loadImports' ./. (filter (name: !hasSuffix "/top-level" (toString name))); } diff --git a/nixos/modules/deploy/default.nix b/nixos/modules/deploy/default.nix index d5df750..f84ae2a 100644 --- a/nixos/modules/deploy/default.nix +++ b/nixos/modules/deploy/default.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.users.deploy; -in -{ +in { options = { youthlic.users.deploy = { enable = lib.mkEnableOption "deploy"; diff --git a/nixos/modules/documentation.nix b/nixos/modules/documentation.nix index 11c7822..54759cf 100644 --- a/nixos/modules/documentation.nix +++ b/nixos/modules/documentation.nix @@ -21,15 +21,14 @@ lib.mkMerge [ inherit (pkgs.writers) writeFish; cfg = config.documentation.man.man-db; cachePath = "/var/cache/man/nixos"; - in - { + in { documentation.man.generateCaches = false; systemd.services."man-db" = { - requires = [ "sysinit-reactivation.target" ]; - after = [ "sysinit-reactivation.target" ]; - partOf = [ "sysinit-reactivation.target" ]; - wantedBy = [ "default.target" ]; + requires = ["sysinit-reactivation.target"]; + after = ["sysinit-reactivation.target"]; + partOf = ["sysinit-reactivation.target"]; + wantedBy = ["default.target"]; path = [ cfg.package pkgs.gawk @@ -41,77 +40,77 @@ lib.mkMerge [ IOSchedulingPrioriry = 7; ExecStart = writeFish "mandbsvc" # fish + + '' + set -l SystemManLoc "/run/current-system/sw/share/man" + set -l ContentRecord "${cachePath}/man-db-state" - '' - set -l SystemManLoc "/run/current-system/sw/share/man" - set -l ContentRecord "${cachePath}/man-db-state" + if [ ! -d "${cachePath}" ] + mkdir -pv "${cachePath}" || exit 1 + end - if [ ! -d "${cachePath}" ] - mkdir -pv "${cachePath}" || exit 1 - end + if [ ! -f "$ContentRecord" ] + touch "$ContentRecord" || exit 1 + end + # 1) Collect list of all manpage files and calculate hashes + # of them + # + # man1/ls.1.gz + # man3/func.3.gz + # + # hash -> + # + # bbbbbbbbbbbb (man1/ls.1.gz) + # aaaaaaaaaaaa (man3/func.3.gz) + set -l hashes "$( + find -L "$SystemManLoc" -type f -iname "*.gz" \ + -exec sha256sum "{}" "+" \ + | awk '{ print $1 }' + or exit 1 + )" - if [ ! -f "$ContentRecord" ] - touch "$ContentRecord" || exit 1 - end - # 1) Collect list of all manpage files and calculate hashes - # of them - # - # man1/ls.1.gz - # man3/func.3.gz - # - # hash -> - # - # bbbbbbbbbbbb (man1/ls.1.gz) - # aaaaaaaaaaaa (man3/func.3.gz) - set -l hashes "$( - find -L "$SystemManLoc" -type f -iname "*.gz" \ - -exec sha256sum "{}" "+" \ - | awk '{ print $1 }' - or exit 1 - )" + # 2) Sort the hashes to make them "stable", + # and then join them toghther into a big long string, + # and then hash this big string to get the hash of the directory + # + # bbbbbbbbbbbb + # aaaaaaaaaaaa + # + # sort -> + # + # aaaaaaaaaaaa + # bbbbbbbbbbbb + # + # join -> + # + # aaaaaaaaaaaabbbbbbbbbbbb + # + # hash -> + # + # cccccccccccc + set -l ultimate_hash ( + echo $hashes \ + | sort \ + | string join "" \ + | sha256sum - \ + | awk '{ print $1 }' + or exit 1 + ) - # 2) Sort the hashes to make them "stable", - # and then join them toghther into a big long string, - # and then hash this big string to get the hash of the directory - # - # bbbbbbbbbbbb - # aaaaaaaaaaaa - # - # sort -> - # - # aaaaaaaaaaaa - # bbbbbbbbbbbb - # - # join -> - # - # aaaaaaaaaaaabbbbbbbbbbbb - # - # hash -> - # - # cccccccccccc - set -l ultimate_hash ( - echo $hashes \ - | sort \ - | string join "" \ - | sha256sum - \ - | awk '{ print $1 }' - or exit 1 - ) + set -l old_hash "$( string collect < "$ContentRecord" )" - set -l old_hash "$( string collect < "$ContentRecord" )" + echo "Old hash: $old_hash" + echo "New hash: $ultimate_hash" - echo "Old hash: $old_hash" - echo "New hash: $ultimate_hash" - - if [ "$old_hash" != "$ultimate_hash" ] - echo "Hash changed, do a full man-db rebuild" - mandb -psc || exit 1 - echo "Write new hash" - echo "$ultimate_hash" > "$ContentRecord" - else - echo "Hash not changed, skip" - end - ''; + if [ "$old_hash" != "$ultimate_hash" ] + echo "Hash changed, do a full man-db rebuild" + mandb -psc || exit 1 + echo "Write new hash" + echo "$ultimate_hash" > "$ContentRecord" + else + echo "Hash not changed, skip" + end + ''; }; }; diff --git a/nixos/modules/gui/cosmic.nix b/nixos/modules/gui/cosmic.nix index 2c19e20..04258f3 100644 --- a/nixos/modules/gui/cosmic.nix +++ b/nixos/modules/gui/cosmic.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.gui; -in -{ +in { config = lib.mkIf (cfg.enabled == "cosmic") { services = { desktopManager.cosmic = { diff --git a/nixos/modules/gui/default.nix b/nixos/modules/gui/default.nix index 2c6baef..368024e 100644 --- a/nixos/modules/gui/default.nix +++ b/nixos/modules/gui/default.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.gui; -in -{ +in { imports = with lib; youthlic.loadImports ./.; options = { youthlic.gui = { diff --git a/nixos/modules/gui/kde.nix b/nixos/modules/gui/kde.nix index 82cbaf3..8bd02c5 100644 --- a/nixos/modules/gui/kde.nix +++ b/nixos/modules/gui/kde.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.gui; -in -{ +in { config = lib.mkIf (cfg.enabled == "kde") { # Fix stylix bug qt.platformTheme = lib.mkForce "kde"; diff --git a/nixos/modules/gui/niri.nix b/nixos/modules/gui/niri.nix index de14798..f341d33 100644 --- a/nixos/modules/gui/niri.nix +++ b/nixos/modules/gui/niri.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.gui; -in -{ +in { options = { youthlic.gui.niri = { }; @@ -20,7 +18,7 @@ in # Enabled to support trash of nautilus services.gvfs.enable = true; environment = { - pathsToLink = [ "share/thumbnailers" ]; + pathsToLink = ["share/thumbnailers"]; systemPackages = with pkgs; [ nautilus nautilus-open-any-terminal @@ -38,7 +36,7 @@ in terminal-exec = { enable = true; settings = { - default = [ "com.mitchellh.ghostty.desktop" ]; + default = ["com.mitchellh.ghostty.desktop"]; }; }; mime = { @@ -70,7 +68,7 @@ in "firefox-beta.desktop" "chromium-browser.desktop" ]; - "x-scheme-handler/tg" = [ "telegramdesktop.desktop" ]; + "x-scheme-handler/tg" = ["telegramdesktop.desktop"]; "x-scheme-handler/unknown" = [ "firefox-beta.desktop" "chromium-browser.desktop" diff --git a/nixos/modules/hardware.nix b/nixos/modules/hardware.nix index 9cffe81..ba31c29 100644 --- a/nixos/modules/hardware.nix +++ b/nixos/modules/hardware.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.hardware; -in -{ +in { options = { youthlic.hardware = { asus = { diff --git a/nixos/modules/home.nix b/nixos/modules/home.nix index d44bfa9..9e0f7cb 100644 --- a/nixos/modules/home.nix +++ b/nixos/modules/home.nix @@ -6,8 +6,7 @@ pkgs, rootPath, ... -}: -{ +}: { options.youthlic.home-manager = { enable = lib.mkOption { type = lib.types.bool; @@ -33,19 +32,17 @@ ''; }; }; - config = - let - cfg = config.youthlic.home-manager; - unixName = cfg.unixName; - hostName = cfg.hostName; - in + config = let + cfg = config.youthlic.home-manager; + unixName = cfg.unixName; + hostName = cfg.hostName; + in lib.mkIf cfg.enable { home-manager = { useGlobalPkgs = true; useUserPackages = true; users."${cfg.unixName}" = ( - { ... }: - { + {...}: { imports = [ outputs.homeModules."${unixName}" (rootPath + "/home/${unixName}/configurations/${hostName}") @@ -58,7 +55,7 @@ inherit (pkgs) system; }; backupFileExtension = "backup"; - sharedModules = [ outputs.homeModules.default ]; + sharedModules = [outputs.homeModules.default]; }; }; } diff --git a/nixos/modules/i18n.nix b/nixos/modules/i18n.nix index 22a9ff5..9280241 100644 --- a/nixos/modules/i18n.nix +++ b/nixos/modules/i18n.nix @@ -3,11 +3,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.i18n; -in -{ +in { options = { youthlic.i18n = { enable = lib.mkEnableOption "zh env"; diff --git a/nixos/modules/nix.nix b/nixos/modules/nix.nix index cae67e7..b0c85c1 100644 --- a/nixos/modules/nix.nix +++ b/nixos/modules/nix.nix @@ -5,24 +5,21 @@ pkgs, lib, ... -}: -{ +}: { config = { - environment.etc = - with lib; + environment.etc = with lib; pipe inputs [ (mapAttrs' ( name: value: - lib.nameValuePair "nix/inputs/${name}" { - source = value; - } + lib.nameValuePair "nix/inputs/${name}" { + source = value; + } )) ]; nixpkgs = { config = { allowUnfree = true; - allowInsecurePredicate = - p: + allowInsecurePredicate = p: builtins.elem (lib.getName p) [ # for neochat "olm" @@ -30,22 +27,25 @@ "immersive-translate" ]; packageOverrides = p: { - kdePackages = p.kdePackages // { - inherit - ((import inputs.nixpkgs-455083 { - localSystem = { - inherit (pkgs.stdenv.hostPlatform) system; - }; - config = { - allowUnfree = true; - allowInsecurePredicate = p: builtins.elem (lib.getName p) [ "olm" ]; - }; - }).kdePackages - ) - neochat - ; - }; - intel-vaapi-driver = p.intel-vaapi-driver.override { enableHybridCodec = true; }; + kdePackages = + p.kdePackages + // { + inherit + ( + (import inputs.nixpkgs-455083 { + localSystem = { + inherit (pkgs.stdenv.hostPlatform) system; + }; + config = { + allowUnfree = true; + allowInsecurePredicate = p: builtins.elem (lib.getName p) ["olm"]; + }; + }).kdePackages + ) + neochat + ; + }; + intel-vaapi-driver = p.intel-vaapi-driver.override {enableHybridCodec = true;}; onnxruntime = p.onnxruntime.override { cudaSupport = false; ncclSupport = false; @@ -57,7 +57,7 @@ mode = "0444"; }; nix = { - nixPath = [ "/etc/nix/inputs" ]; + nixPath = ["/etc/nix/inputs"]; extraOptions = '' !include ${config.sops.secrets."access-tokens".path} ''; @@ -84,8 +84,7 @@ builders-use-substitutes = true; }; package = pkgs.nix; - registry = - with lib; + registry = with lib; pipe inputs [ (filterAttrs (name: _value: name != "nixpkgs")) (mapAttrs ( diff --git a/nixos/modules/programs/asusd.nix b/nixos/modules/programs/asusd.nix index a5d203f..c116c39 100644 --- a/nixos/modules/programs/asusd.nix +++ b/nixos/modules/programs/asusd.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.asusd; -in -{ +in { options = { youthlic.programs.asusd = { enable = lib.mkEnableOption "asusd"; diff --git a/nixos/modules/programs/bash.nix b/nixos/modules/programs/bash.nix index 5658a5c..b1471f7 100644 --- a/nixos/modules/programs/bash.nix +++ b/nixos/modules/programs/bash.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.bash; -in -{ +in { options = { youthlic.programs.bash = { enable = lib.mkEnableOption "bash"; diff --git a/nixos/modules/programs/caddy/OuterWildsTextAdventure.nix b/nixos/modules/programs/caddy/OuterWildsTextAdventure.nix index d851101..07c265f 100644 --- a/nixos/modules/programs/caddy/OuterWildsTextAdventure.nix +++ b/nixos/modules/programs/caddy/OuterWildsTextAdventure.nix @@ -3,12 +3,10 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.caddy.outer-wilds-text-adventure; caddy-cfg = config.youthlic.programs.caddy; -in -{ +in { options = { youthlic.programs.caddy.outer-wilds-text-adventure = { enable = lib.mkEnableOption "caddy.OuterWildsTextAdventure"; diff --git a/nixos/modules/programs/caddy/default.nix b/nixos/modules/programs/caddy/default.nix index 9882ec4..641cb33 100644 --- a/nixos/modules/programs/caddy/default.nix +++ b/nixos/modules/programs/caddy/default.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.caddy; -in -{ +in { imports = lib.youthlic.loadImports ./.; options = { youthlic.programs.caddy = { @@ -22,7 +20,7 @@ in enable = true; }; networking.firewall = { - allowedTCPPorts = [ 443 ]; + allowedTCPPorts = [443]; }; }; } diff --git a/nixos/modules/programs/caddy/garage.nix b/nixos/modules/programs/caddy/garage.nix index b12671d..cc526fe 100644 --- a/nixos/modules/programs/caddy/garage.nix +++ b/nixos/modules/programs/caddy/garage.nix @@ -2,12 +2,10 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.caddy.garage; caddy-cfg = config.youthlic.programs.caddy; -in -{ +in { options = { youthlic.programs.caddy.garage = { enable = lib.mkEnableOption "caddy.garage"; diff --git a/nixos/modules/programs/caddy/radicle-explorer.nix b/nixos/modules/programs/caddy/radicle-explorer.nix index 6a44afa..7220ae6 100644 --- a/nixos/modules/programs/caddy/radicle-explorer.nix +++ b/nixos/modules/programs/caddy/radicle-explorer.nix @@ -3,12 +3,10 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.caddy.radicle-explorer; caddy-cfg = config.youthlic.programs.caddy; -in -{ +in { options = { youthlic.programs.caddy.radicle-explorer = { enable = lib.mkEnableOption "caddy.radicle-explorer"; diff --git a/nixos/modules/programs/dae/default.nix b/nixos/modules/programs/dae/default.nix index 0d1ef00..518b2af 100644 --- a/nixos/modules/programs/dae/default.nix +++ b/nixos/modules/programs/dae/default.nix @@ -4,11 +4,9 @@ pkgs, lib, ... -}: -let +}: let cfg = config.youthlic.programs.dae; -in -{ +in { options = { youthlic.programs.dae = { enable = lib.mkEnableOption "dae"; @@ -29,108 +27,106 @@ in mode = "0444"; sopsFile = rootPath + "/secrets/general.yaml"; }; - systemd.services = - let - update = '' - head="user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" - new_proxy=/etc/dae/proxy.d.new - num=0 - check=1 - urls="$(cat ${config.sops.secrets.url.path})" - mkdir -p ''${new_proxy} - for url in ''${urls}; do - txt=''${new_proxy}/''${num}.txt - config="''${new_proxy}/''${num}.dae" - echo \'curl -LH \""''${head}"\" \""''${url}"\" -o \""''${txt}"\"\' - curl -LH "''${head}" "''${url}" -o "''${txt}" - echo End curl - echo "" > ''${config} - { - echo 'subscription {' - echo \ \ wget:\ \"file://proxy.d_''${num}.txt\" - echo "}" - } >> ''${config} - if [[ ! -s ''${txt} ]]; then - check=0 - fi - chmod 0640 ''${txt} - chmod 0640 ''${config} - num=$((num+1)) - - if [[ ''${check} -eq 0 ]]; then - echo "''${txt}" is empty - exit 103 - fi - done - if [[ -d /etc/dae/proxy.d ]]; then - rm -rf /etc/proxy.d.old - mv /etc/dae/proxy.d /etc/dae/proxy.d.old + systemd.services = let + update = '' + head="user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" + new_proxy=/etc/dae/proxy.d.new + num=0 + check=1 + urls="$(cat ${config.sops.secrets.url.path})" + mkdir -p ''${new_proxy} + for url in ''${urls}; do + txt=''${new_proxy}/''${num}.txt + config="''${new_proxy}/''${num}.dae" + echo \'curl -LH \""''${head}"\" \""''${url}"\" -o \""''${txt}"\"\' + curl -LH "''${head}" "''${url}" -o "''${txt}" + echo End curl + echo "" > ''${config} + { + echo 'subscription {' + echo \ \ wget:\ \"file://proxy.d_''${num}.txt\" + echo "}" + } >> ''${config} + if [[ ! -s ''${txt} ]]; then + check=0 fi - mv ''${new_proxy} /etc/dae/proxy.d - ''; - updateScript = pkgs.writeShellApplication { - name = "update.sh"; - runtimeInputs = with pkgs; [ - coreutils - curl - ]; - text = '' - mkdir -p /etc/proxy.d - if [ -z "$(ls -A /etc/dae/proxy.d 2>/dev/null)" ]; then - echo "No subscription file found in /etc/dae/proxy.d. Update now..." - ${update} - else - echo "Found existing subscription files. Skipping immediate update." - fi - ''; - }; - updateForceScript = pkgs.writeShellApplication { - name = "update-force.sh"; - runtimeInputs = with pkgs; [ - coreutils - curl - ]; - text = '' + chmod 0640 ''${txt} + chmod 0640 ''${config} + num=$((num+1)) + + if [[ ''${check} -eq 0 ]]; then + echo "''${txt}" is empty + exit 103 + fi + done + if [[ -d /etc/dae/proxy.d ]]; then + rm -rf /etc/proxy.d.old + mv /etc/dae/proxy.d /etc/dae/proxy.d.old + fi + mv ''${new_proxy} /etc/dae/proxy.d + ''; + updateScript = pkgs.writeShellApplication { + name = "update.sh"; + runtimeInputs = with pkgs; [ + coreutils + curl + ]; + text = '' + mkdir -p /etc/proxy.d + if [ -z "$(ls -A /etc/dae/proxy.d 2>/dev/null)" ]; then + echo "No subscription file found in /etc/dae/proxy.d. Update now..." ${update} - ''; + else + echo "Found existing subscription files. Skipping immediate update." + fi + ''; + }; + updateForceScript = pkgs.writeShellApplication { + name = "update-force.sh"; + runtimeInputs = with pkgs; [ + coreutils + curl + ]; + text = '' + ${update} + ''; + }; + in { + "update-dae-subscription-immediate" = { + after = ["network-online.target"]; + wants = ["network-online.target"]; + before = ["dae.service"]; + serviceConfig = { + Type = "oneshot"; + User = "root"; + ExecStart = [ + "${updateScript}/bin/update.sh" + ]; }; - in - { - "update-dae-subscription-immediate" = { - after = [ "network-online.target" ]; - wants = [ "network-online.target" ]; - before = [ "dae.service" ]; - serviceConfig = { - Type = "oneshot"; - User = "root"; - ExecStart = [ - "${updateScript}/bin/update.sh" - ]; - }; - wantedBy = [ "multi-user.target" ]; - }; - "update-dae-subscription-force" = { - serviceConfig = { - Type = "oneshot"; - User = "root"; - ExecStartPre = [ - "-${pkgs.systemd}/bin/systemctl stop dae.service" - ]; - ExecStartPost = [ - "-${pkgs.systemd}/bin/systemctl start dae.service" - ]; - ExecStart = [ - "${updateForceScript}/bin/update-force.sh" - ]; - }; - }; - dae = { - serviceConfig.LoadCredential = [ - "proxy.d:/etc/dae/proxy.d" - "local.d:/etc/dae/local.d" + wantedBy = ["multi-user.target"]; + }; + "update-dae-subscription-force" = { + serviceConfig = { + Type = "oneshot"; + User = "root"; + ExecStartPre = [ + "-${pkgs.systemd}/bin/systemctl stop dae.service" + ]; + ExecStartPost = [ + "-${pkgs.systemd}/bin/systemctl start dae.service" + ]; + ExecStart = [ + "${updateForceScript}/bin/update-force.sh" ]; }; }; + dae = { + serviceConfig.LoadCredential = [ + "proxy.d:/etc/dae/proxy.d" + "local.d:/etc/dae/local.d" + ]; + }; + }; }) (lib.mkIf (cfg.enable && config.youthlic.programs.juicity.client.enable) { environment.etc."dae/local.d/0.dae" = { diff --git a/nixos/modules/programs/emacs.nix b/nixos/modules/programs/emacs.nix index 2a217a2..3fc64e8 100644 --- a/nixos/modules/programs/emacs.nix +++ b/nixos/modules/programs/emacs.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.emacs; -in -{ +in { options = { youthlic.programs.emacs = { enable = lib.mkEnableOption "emacs"; @@ -17,14 +15,14 @@ in services.emacs = { enable = true; install = true; - package = - with pkgs; + package = with pkgs; (emacsPackagesFor emacs-pgtk).emacsWithPackages ( - p: with p; [ - vterm - evil - gruvbox-theme - ] + p: + with p; [ + vterm + evil + gruvbox-theme + ] ); }; }; diff --git a/nixos/modules/programs/forgejo.nix b/nixos/modules/programs/forgejo.nix index 90a6aa6..eada1c5 100644 --- a/nixos/modules/programs/forgejo.nix +++ b/nixos/modules/programs/forgejo.nix @@ -3,11 +3,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.forgejo; -in -{ +in { options = { youthlic.programs.forgejo = { enable = lib.mkEnableOption "forgejo"; @@ -93,15 +91,15 @@ in let caddy-cfg = config.youthlic.programs.caddy; in - lib.mkIf (cfg.enable && caddy-cfg.enable) { - services.caddy.virtualHosts = { - "forgejo.${caddy-cfg.baseDomain}" = { - extraConfig = '' - reverse_proxy 127.0.0.1:${cfg.httpPort} - ''; + lib.mkIf (cfg.enable && caddy-cfg.enable) { + services.caddy.virtualHosts = { + "forgejo.${caddy-cfg.baseDomain}" = { + extraConfig = '' + reverse_proxy 127.0.0.1:${cfg.httpPort} + ''; + }; }; - }; - } + } ) ]; } diff --git a/nixos/modules/programs/garage.nix b/nixos/modules/programs/garage.nix index 55ad419..6055408 100644 --- a/nixos/modules/programs/garage.nix +++ b/nixos/modules/programs/garage.nix @@ -3,11 +3,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.garage; -in -{ +in { options = { youthlic.programs.garage = { enable = lib.mkEnableOption "garage"; diff --git a/nixos/modules/programs/guix.nix b/nixos/modules/programs/guix.nix index e20572b..987505d 100644 --- a/nixos/modules/programs/guix.nix +++ b/nixos/modules/programs/guix.nix @@ -3,11 +3,9 @@ config, options, ... -}: -let +}: let cfg = config.youthlic.programs.guix; -in -{ +in { options = { youthlic.programs.guix = { enable = lib.mkEnableOption "guix"; @@ -20,10 +18,11 @@ in enable = true; dates = "weekly"; }; - substituters.urls = [ - "https://mirror.sjtu.edu.cn/guix/" - ] - ++ options.services.guix.substituters.urls.default; + substituters.urls = + [ + "https://mirror.sjtu.edu.cn/guix/" + ] + ++ options.services.guix.substituters.urls.default; }; }; } diff --git a/nixos/modules/programs/juicity/default.nix b/nixos/modules/programs/juicity/default.nix index f47bbba..eac4b24 100644 --- a/nixos/modules/programs/juicity/default.nix +++ b/nixos/modules/programs/juicity/default.nix @@ -3,11 +3,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.juicity; -in -{ +in { imports = lib.youthlic.loadImports ./.; options = { youthlic.programs.juicity = { @@ -21,12 +19,12 @@ in }; config = lib.mkMerge [ (lib.mkIf cfg.client.enable { - users.groups.juicity.members = [ "root" ]; + users.groups.juicity.members = ["root"]; sops = { secrets = { - "juicity/serverIp" = { }; - "juicity/sni" = { }; - "juicity/certchainSha256" = { }; + "juicity/serverIp" = {}; + "juicity/sni" = {}; + "juicity/certchainSha256" = {}; }; templates."juicity-client-config.json" = { group = "juicity"; @@ -56,7 +54,7 @@ in }; }) (lib.mkIf cfg.server.enable { - users.groups.juicity.members = [ "root" ]; + users.groups.juicity.members = ["root"]; sops = { secrets = { "juicity/certificate" = { @@ -96,8 +94,8 @@ in }) (lib.mkIf (cfg.server.enable || cfg.client.enable) { sops.secrets = { - "juicity/uuid" = { }; - "juicity/password" = { }; + "juicity/uuid" = {}; + "juicity/password" = {}; }; }) ]; diff --git a/nixos/modules/programs/juicity/template.nix b/nixos/modules/programs/juicity/template.nix index 00659a3..7117358 100644 --- a/nixos/modules/programs/juicity/template.nix +++ b/nixos/modules/programs/juicity/template.nix @@ -3,27 +3,23 @@ lib, pkgs, ... -}: -let +}: let cfg = config.services.juicity; - settingsFormat = pkgs.formats.json { }; + settingsFormat = pkgs.formats.json {}; clientConfigFile = - if (cfg.client.configFile != null) then - cfg.client.configFile - else - settingsFormat cfg.client.settings; + if (cfg.client.configFile != null) + then cfg.client.configFile + else settingsFormat cfg.client.settings; serverConfigFile = - if (cfg.server.configFile != null) then - cfg.server.configFile - else - settingsFormat cfg.server.settings; -in -{ + if (cfg.server.configFile != null) + then cfg.server.configFile + else settingsFormat cfg.server.settings; +in { options = { services.juicity = { client = { enable = lib.mkEnableOption "juicity-client"; - package = lib.mkPackageOption pkgs "juicity" { }; + package = lib.mkPackageOption pkgs "juicity" {}; group = lib.mkOption { type = lib.types.nullOr lib.types.str; example = "juicity"; @@ -31,7 +27,7 @@ in }; settings = lib.mkOption { type = settingsFormat.type; - default = { }; + default = {}; example = { listen = ":1000"; server = "112.32.62.11:23182"; @@ -59,7 +55,7 @@ in }; allowedOpenFirewallPorts = lib.mkOption { type = lib.types.nullOr (lib.types.listOf lib.types.port); - example = [ 23182 ]; + example = [23182]; default = null; description = '' the ports should be open @@ -68,7 +64,7 @@ in }; server = { enable = lib.mkEnableOption "juicity-server"; - package = lib.mkPackageOption pkgs "juicity" { }; + package = lib.mkPackageOption pkgs "juicity" {}; group = lib.mkOption { type = lib.types.nullOr lib.types.str; example = "juicity"; @@ -76,7 +72,7 @@ in }; settings = lib.mkOption { type = settingsFormat.type; - default = { }; + default = {}; description = '' Juicity server configuration, for configuration options see example of [server](https://github.com/juicity/juicity/blob/main/install/example-server.json) on github. @@ -104,7 +100,7 @@ in }; allowedOpenFirewallPorts = lib.mkOption { type = lib.types.nullOr (lib.types.listOf lib.types.port); - example = [ 23182 ]; + example = [23182]; default = null; description = '' the ports should be open diff --git a/nixos/modules/programs/kanata/default.nix b/nixos/modules/programs/kanata/default.nix index ca8d5de..276988c 100644 --- a/nixos/modules/programs/kanata/default.nix +++ b/nixos/modules/programs/kanata/default.nix @@ -3,18 +3,16 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.kanata; -in -{ +in { options = { youthlic.programs.kanata = { enable = lib.mkEnableOption "kanata"; }; }; config = lib.mkIf cfg.enable { - boot.kernelModules = [ "uinput" ]; + boot.kernelModules = ["uinput"]; hardware.uinput.enable = true; services.kanata = { enable = true; diff --git a/nixos/modules/programs/matrix-tuwunel.nix b/nixos/modules/programs/matrix-tuwunel.nix index 46d11a2..02925df 100644 --- a/nixos/modules/programs/matrix-tuwunel.nix +++ b/nixos/modules/programs/matrix-tuwunel.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.matrix-tuwunel; -in -{ +in { options = { youthlic.programs.matrix-tuwunel = { enable = lib.mkEnableOption "tuwunel"; @@ -28,7 +26,7 @@ in enable = true; settings = { global = { - port = [ 8481 ]; + port = [8481]; address = [ "0.0.0.0" "::" diff --git a/nixos/modules/programs/mautrix-telegram.nix b/nixos/modules/programs/mautrix-telegram.nix index 683bde6..a085368 100644 --- a/nixos/modules/programs/mautrix-telegram.nix +++ b/nixos/modules/programs/mautrix-telegram.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.mautrix-telegram; -in -{ +in { options = { youthlic.programs.mautrix-telegram = { enable = lib.mkEnableOption "mautrix-telegram"; @@ -21,11 +19,11 @@ in ''; } ]; - sops.secrets.matrix-telegram-bot = { }; + sops.secrets.matrix-telegram-bot = {}; services.mautrix-telegram = { enable = true; environmentFile = "${config.sops.secrets.matrix-telegram-bot.path}"; - serviceDependencies = [ "tuwunel.service" ]; + serviceDependencies = ["tuwunel.service"]; settings = { bridge = { displayname_template = "{displayname} | Telegram"; diff --git a/nixos/modules/programs/miniflux.nix b/nixos/modules/programs/miniflux.nix index ee3c248..4bf3660 100644 --- a/nixos/modules/programs/miniflux.nix +++ b/nixos/modules/programs/miniflux.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.miniflux; -in -{ +in { options = { youthlic.programs.miniflux = { enable = lib.mkEnableOption "miniflux"; diff --git a/nixos/modules/programs/minio.nix b/nixos/modules/programs/minio.nix index 38cce62..5cf0e5c 100644 --- a/nixos/modules/programs/minio.nix +++ b/nixos/modules/programs/minio.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.minio; -in -{ +in { options = { youthlic.programs.minio = { enable = lib.mkEnableOption "minio"; diff --git a/nixos/modules/programs/nh.nix b/nixos/modules/programs/nh.nix index a8958fd..ce07c10 100644 --- a/nixos/modules/programs/nh.nix +++ b/nixos/modules/programs/nh.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { config = { programs.nh = { enable = true; diff --git a/nixos/modules/programs/nix-ld.nix b/nixos/modules/programs/nix-ld.nix index 733d5b6..a079ae2 100644 --- a/nixos/modules/programs/nix-ld.nix +++ b/nixos/modules/programs/nix-ld.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.programs.nix-ld; -in -{ +in { options = { youthlic.programs.nix-ld = { enable = lib.mkEnableOption "nix-ld"; diff --git a/nixos/modules/programs/obs.nix b/nixos/modules/programs/obs.nix index d6b0cee..6567780 100644 --- a/nixos/modules/programs/obs.nix +++ b/nixos/modules/programs/obs.nix @@ -3,11 +3,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.obs; -in -{ +in { options = { youthlic.programs.obs = { enable = lib.mkEnableOption "obs"; diff --git a/nixos/modules/programs/open-webui.nix b/nixos/modules/programs/open-webui.nix index f4e2374..1770e5f 100644 --- a/nixos/modules/programs/open-webui.nix +++ b/nixos/modules/programs/open-webui.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.open-webui; -in -{ +in { options = { youthlic.programs.open-webui = { enable = lib.mkEnableOption "open-webui"; @@ -27,15 +25,15 @@ in let caddy-cfg = config.youthlic.programs.caddy; in - lib.mkIf (cfg.enable && caddy-cfg.enable) { - services.caddy.virtualHosts = { - "open-webui.${caddy-cfg.baseDomain}" = { - extraConfig = '' - reverse_proxy 127.0.0.1:8083 - ''; + lib.mkIf (cfg.enable && caddy-cfg.enable) { + services.caddy.virtualHosts = { + "open-webui.${caddy-cfg.baseDomain}" = { + extraConfig = '' + reverse_proxy 127.0.0.1:8083 + ''; + }; }; - }; - } + } ) ]; } diff --git a/nixos/modules/programs/openssh.nix b/nixos/modules/programs/openssh.nix index 75f400b..eaa0b1c 100644 --- a/nixos/modules/programs/openssh.nix +++ b/nixos/modules/programs/openssh.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.openssh; -in -{ +in { options = { youthlic.programs.openssh = { enable = lib.mkEnableOption "openssh"; @@ -46,7 +44,7 @@ in "diffie-hellman-group-exchange-sha256" ]; }; - ports = [ 3022 ]; + ports = [3022]; }; }; } diff --git a/nixos/modules/programs/owncast.nix b/nixos/modules/programs/owncast.nix index 4eb05bc..d60eeb8 100644 --- a/nixos/modules/programs/owncast.nix +++ b/nixos/modules/programs/owncast.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.owncast; -in -{ +in { options = { youthlic.programs.owncast = { enable = lib.mkEnableOption "owncast"; diff --git a/nixos/modules/programs/postgresql.nix b/nixos/modules/programs/postgresql.nix index 2d66235..ba075eb 100644 --- a/nixos/modules/programs/postgresql.nix +++ b/nixos/modules/programs/postgresql.nix @@ -3,11 +3,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.postgresql; -in -{ +in { options = { youthlic.programs.postgresql = { enable = lib.mkEnableOption "postgresql"; @@ -29,7 +27,7 @@ in # default socket: /var/lib/postgresql services.postgresql = { enable = true; - ensureDatabases = [ cfg.database ]; + ensureDatabases = [cfg.database]; ensureUsers = [ { name = "${cfg.database}"; diff --git a/nixos/modules/programs/radicle.nix b/nixos/modules/programs/radicle.nix index cb043e9..88ab6d3 100644 --- a/nixos/modules/programs/radicle.nix +++ b/nixos/modules/programs/radicle.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.radicle; -in -{ +in { options = { youthlic.programs.radicle = { enable = lib.mkEnableOption "radicle"; @@ -54,7 +52,7 @@ in filters = [ { And = [ - { HasFile = ".radicle/native.yaml"; } + {HasFile = ".radicle/native.yaml";} { Or = [ "DefaultBranch" @@ -96,11 +94,11 @@ in }; node = { alias = cfg.domain; - listen = [ ]; + listen = []; peers = { type = "dynamic"; }; - connect = [ ]; + connect = []; externalAddresses = [ "${cfg.domain}:8776" ]; diff --git a/nixos/modules/programs/rustypaste/default.nix b/nixos/modules/programs/rustypaste/default.nix index b0ab914..3165cfc 100644 --- a/nixos/modules/programs/rustypaste/default.nix +++ b/nixos/modules/programs/rustypaste/default.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.rustypaste; -in -{ +in { imports = lib.youthlic.loadImports ./.; options = { diff --git a/nixos/modules/programs/rustypaste/template.nix b/nixos/modules/programs/rustypaste/template.nix index 2cf4d9b..475bf58 100644 --- a/nixos/modules/programs/rustypaste/template.nix +++ b/nixos/modules/programs/rustypaste/template.nix @@ -3,20 +3,18 @@ lib, config, ... -}: -let +}: let cfg = config.services.rustypaste; - settingsFormat = pkgs.formats.toml { }; + settingsFormat = pkgs.formats.toml {}; configFile = settingsFormat.generate "rustypaste-config.toml" cfg.settings; -in -{ +in { options = { services.rustypaste = { enable = lib.mkEnableOption "rustypaste"; - package = lib.mkPackageOption pkgs "rustypaste" { }; + package = lib.mkPackageOption pkgs "rustypaste" {}; settings = lib.mkOption { type = settingsFormat.type; - default = { }; + default = {}; description = '' Rustypaste configuration ''; @@ -63,7 +61,7 @@ in isSystemUser = true; }; groups = lib.optionalAttrs (cfg.group == "rustypaste") { - rustypaste = { }; + rustypaste = {}; }; }; systemd.services.rustypaste = { @@ -88,8 +86,8 @@ in Type = "simple"; Restart = "on-failure"; Home = "/var/lib/rustypaste"; - ReadWritePaths = [ "/var/lib/rustypaste" ]; - StateDirectory = [ "rustypaste" ]; + ReadWritePaths = ["/var/lib/rustypaste"]; + StateDirectory = ["rustypaste"]; ExecStart = '' ${lib.getExe cfg.package} ''; diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix index 480a5e4..7762c37 100644 --- a/nixos/modules/programs/steam.nix +++ b/nixos/modules/programs/steam.nix @@ -3,11 +3,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.steam; -in -{ +in { options = { youthlic.programs.steam = { enable = lib.mkEnableOption "steam"; diff --git a/nixos/modules/programs/supergfxd.nix b/nixos/modules/programs/supergfxd.nix index 0e69481..18318ea 100644 --- a/nixos/modules/programs/supergfxd.nix +++ b/nixos/modules/programs/supergfxd.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.supergfxd; -in -{ +in { options = { youthlic.programs.supergfxd = { enable = lib.mkEnableOption "supergfxd"; diff --git a/nixos/modules/programs/tailscale.nix b/nixos/modules/programs/tailscale.nix index 998eb3f..1055e9c 100644 --- a/nixos/modules/programs/tailscale.nix +++ b/nixos/modules/programs/tailscale.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.tailscale; -in -{ +in { options = { youthlic.programs.tailscale = { enable = lib.mkEnableOption "tailscale"; diff --git a/nixos/modules/programs/transfer-sh.nix b/nixos/modules/programs/transfer-sh.nix index 4fff974..468054e 100644 --- a/nixos/modules/programs/transfer-sh.nix +++ b/nixos/modules/programs/transfer-sh.nix @@ -2,11 +2,9 @@ lib, config, ... -}: -let +}: let cfg = config.youthlic.programs.transfer-sh; -in -{ +in { options = { youthlic.programs.transfer-sh = { enable = lib.mkEnableOption "transfer.sh"; diff --git a/nixos/modules/programs/transmission.nix b/nixos/modules/programs/transmission.nix index d4a89cb..da26718 100644 --- a/nixos/modules/programs/transmission.nix +++ b/nixos/modules/programs/transmission.nix @@ -4,11 +4,9 @@ lib, rootPath, ... -}: -let +}: let cfg = config.youthlic.programs.transmission; -in -{ +in { options = { youthlic.programs.transmission = { enable = lib.mkEnableOption "transmission"; @@ -42,21 +40,21 @@ in let caddy-cfg = config.youthlic.programs.caddy; in - lib.mkIf (cfg.enable && caddy-cfg.enable) { - services.transmission = { - openRPCPort = lib.mkForce false; - settings = { - rpc-bind-address = lib.mkForce "127.0.0.1"; + lib.mkIf (cfg.enable && caddy-cfg.enable) { + services.transmission = { + openRPCPort = lib.mkForce false; + settings = { + rpc-bind-address = lib.mkForce "127.0.0.1"; + }; }; - }; - services.caddy.virtualHosts = { - "transmission.${caddy-cfg.baseDomain}" = { - extraConfig = '' - reverse_proxy 127.0.0.1:9091 - ''; + services.caddy.virtualHosts = { + "transmission.${caddy-cfg.baseDomain}" = { + extraConfig = '' + reverse_proxy 127.0.0.1:9091 + ''; + }; }; - }; - } + } ) ]; } diff --git a/nixos/modules/programs/wshowkeys.nix b/nixos/modules/programs/wshowkeys.nix index a9755e6..825aabb 100644 --- a/nixos/modules/programs/wshowkeys.nix +++ b/nixos/modules/programs/wshowkeys.nix @@ -2,11 +2,9 @@ config, lib, ... -}: -let +}: let cfg = config.youthlic.programs.wshowkeys; -in -{ +in { options = { youthlic.programs.wshowkeys = { enable = lib.mkEnableOption "wshowkeys"; diff --git a/nixos/modules/sops.nix b/nixos/modules/sops.nix index 89cd4c6..6ec8e0b 100644 --- a/nixos/modules/sops.nix +++ b/nixos/modules/sops.nix @@ -1,10 +1,9 @@ -{ rootPath, ... }: -{ +{rootPath, ...}: { config = { sops.defaultSopsFile = rootPath + "/secrets/general.yaml"; sops.age = { keyFile = "/var/sops/key.txt"; - sshKeyPaths = [ ]; + sshKeyPaths = []; generateKey = false; }; }; diff --git a/nixos/modules/top-level/default.nix b/nixos/modules/top-level/default.nix index 5438a85..4da92ba 100644 --- a/nixos/modules/top-level/default.nix +++ b/nixos/modules/top-level/default.nix @@ -3,8 +3,7 @@ inputs, outputs, ... -}: -{ +}: { imports = with inputs; [ home-manager.nixosModules.home-manager sops-nix.nixosModules.sops diff --git a/nixos/modules/top-level/gui.nix b/nixos/modules/top-level/gui.nix index 4395d2e..f3d5475 100644 --- a/nixos/modules/top-level/gui.nix +++ b/nixos/modules/top-level/gui.nix @@ -1,9 +1,9 @@ -{ inputs, ... }: -{ - imports = [ - ./. - ] - ++ (with inputs; [ - niri-flake.nixosModules.niri - ]); +{inputs, ...}: { + imports = + [ + ./. + ] + ++ (with inputs; [ + niri-flake.nixosModules.niri + ]); } diff --git a/nixos/modules/virtualisation/kvm.nix b/nixos/modules/virtualisation/kvm.nix index 64dbe72..897934f 100644 --- a/nixos/modules/virtualisation/kvm.nix +++ b/nixos/modules/virtualisation/kvm.nix @@ -3,11 +3,9 @@ lib, pkgs, ... -}: -let +}: let cfg = config.youthlic.virtualisation.kvm; -in -{ +in { options = { youthlic.virtualisation.kvm = { enable = lib.mkEnableOption "kvm"; @@ -24,11 +22,11 @@ in programs.virt-manager = { enable = true; }; - users.groups.libvirtd.members = [ cfg.unixName ]; + users.groups.libvirtd.members = [cfg.unixName]; virtualisation = { libvirtd = { enable = true; - qemu.vhostUserPackages = with pkgs; [ virtiofsd ]; + qemu.vhostUserPackages = with pkgs; [virtiofsd]; }; spiceUSBRedirection = { enable = true; diff --git a/nixos/modules/virtualisation/waydroid.nix b/nixos/modules/virtualisation/waydroid.nix index 775f05b..263fb5f 100644 --- a/nixos/modules/virtualisation/waydroid.nix +++ b/nixos/modules/virtualisation/waydroid.nix @@ -3,11 +3,9 @@ config, pkgs, ... -}: -let +}: let cfg = config.youthlic.virtualisation.waydroid; -in -{ +in { options = { youthlic.virtualisation.waydroid = { enable = lib.mkEnableOption "waydroid"; @@ -17,6 +15,6 @@ in virtualisation.waydroid = { enable = true; }; - environment.systemPackages = [ pkgs.nur.repos.ataraxiasjel.waydroid-script ]; + environment.systemPackages = [pkgs.nur.repos.ataraxiasjel.waydroid-script]; }; } diff --git a/overlays/additions/OuterWildsTextAdventure.nix b/overlays/additions/OuterWildsTextAdventure.nix index 6f8b384..b8a687f 100644 --- a/overlays/additions/OuterWildsTextAdventure.nix +++ b/overlays/additions/OuterWildsTextAdventure.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (outputs.packages.${system}) OuterWildsTextAdventure; } diff --git a/overlays/additions/TrackersListCollection.nix b/overlays/additions/TrackersListCollection.nix index 658e47e..17da85c 100644 --- a/overlays/additions/TrackersListCollection.nix +++ b/overlays/additions/TrackersListCollection.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (outputs.packages."${system}") TrackersListCollection; } diff --git a/overlays/additions/default.nix b/overlays/additions/default.nix index 44b55b5..9004a75 100644 --- a/overlays/additions/default.nix +++ b/overlays/additions/default.nix @@ -1,24 +1,22 @@ -{ ... }@args: -final: prev: -let +{...} @ args: final: prev: let inherit (prev) lib; in -with lib; -pipe - [ - ./TrackersListCollection.nix - ./OuterWildsTextAdventure.nix - ./editor-runtime.nix - ./wallpapers.nix - ./rime-yuhaostar.nix - ./rime-all.nix - ./nixvim.nix - ./doom-emacs.nix - ./osu-lazer-bin.nix # typochecker: disable-line + with lib; + pipe + [ + ./TrackersListCollection.nix + ./OuterWildsTextAdventure.nix + ./editor-runtime.nix + ./wallpapers.nix + ./rime-yuhaostar.nix + ./rime-all.nix + ./nixvim.nix + ./doom-emacs.nix + ./osu-lazer-bin.nix # typochecker: disable-line - ./pkgsNoCuda.nix - ] - [ - (map (file: import file args)) - (overlays: (lib.composeManyExtensions overlays) final prev) - ] + ./pkgsNoCuda.nix + ] + [ + (map (file: import file args)) + (overlays: (lib.composeManyExtensions overlays) final prev) + ] diff --git a/overlays/additions/doom-emacs.nix b/overlays/additions/doom-emacs.nix index da36a5a..425977c 100644 --- a/overlays/additions/doom-emacs.nix +++ b/overlays/additions/doom-emacs.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (outputs.packages.${system}) doom-emacs; } diff --git a/overlays/additions/editor-runtime.nix b/overlays/additions/editor-runtime.nix index fc24fbd..bfba19f 100644 --- a/overlays/additions/editor-runtime.nix +++ b/overlays/additions/editor-runtime.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (outputs.packages.${system}) editor-runtime; } diff --git a/overlays/additions/nixvim.nix b/overlays/additions/nixvim.nix index 4936abf..43cd9ae 100644 --- a/overlays/additions/nixvim.nix +++ b/overlays/additions/nixvim.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (outputs.packages.${system}) nixvim; } diff --git a/overlays/additions/osu-lazer-bin.nix b/overlays/additions/osu-lazer-bin.nix index aed88e4..d16989c 100644 --- a/overlays/additions/osu-lazer-bin.nix +++ b/overlays/additions/osu-lazer-bin.nix @@ -1,9 +1,6 @@ -{ inputs, ... }: -_final: prev: -let +{inputs, ...}: _final: prev: let inherit (inputs) nix-gaming; inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (nix-gaming.packages.${system}) osu-lazer-bin; # typochecker: disable-line } diff --git a/overlays/additions/pkgsNoCuda.nix b/overlays/additions/pkgsNoCuda.nix index c14c3eb..58748b8 100644 --- a/overlays/additions/pkgsNoCuda.nix +++ b/overlays/additions/pkgsNoCuda.nix @@ -1,8 +1,5 @@ -{ inputs, ... }: -_final: prev: -let +{inputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { pkgsNoCuda = inputs.nixpkgs.legacyPackages.${system}; } diff --git a/overlays/additions/rime-all.nix b/overlays/additions/rime-all.nix index 23675dc..7770ef7 100644 --- a/overlays/additions/rime-all.nix +++ b/overlays/additions/rime-all.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (outputs.packages.${system}) rime-all; } diff --git a/overlays/additions/rime-yuhaostar.nix b/overlays/additions/rime-yuhaostar.nix index 36e55ac..b9de88e 100644 --- a/overlays/additions/rime-yuhaostar.nix +++ b/overlays/additions/rime-yuhaostar.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (outputs.packages.${system}) rime-yuhaostar; } diff --git a/overlays/additions/wallpapers.nix b/overlays/additions/wallpapers.nix index b9f3568..c51f52d 100644 --- a/overlays/additions/wallpapers.nix +++ b/overlays/additions/wallpapers.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { inherit (outputs.packages.${system}) wallpapers; } diff --git a/overlays/modifications/QQ.nix b/overlays/modifications/QQ.nix index 63b21bb..16d5d7b 100644 --- a/overlays/modifications/QQ.nix +++ b/overlays/modifications/QQ.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { qq = outputs.packages."${system}".QQ; } diff --git a/overlays/modifications/cliphist.nix b/overlays/modifications/cliphist.nix index 41607c1..4c688e7 100644 --- a/overlays/modifications/cliphist.nix +++ b/overlays/modifications/cliphist.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { cliphist = outputs.packages."${system}".cliphist'; } diff --git a/overlays/modifications/default.nix b/overlays/modifications/default.nix index e6bcfee..8233af6 100644 --- a/overlays/modifications/default.nix +++ b/overlays/modifications/default.nix @@ -1,28 +1,26 @@ -{ ... }@args: -final: prev: -let +{...} @ args: final: prev: let inherit (prev) lib; in -with lib; -pipe - [ - ./niri.nix - ./spotifyx.nix - ./radicle-explorer.nix - ./wshowkeys.nix - # ./QQ.nix - ./helix.nix - ./cliphist.nix - ./zulip.nix - ./spotifyd.nix - ./nautilus.nix - ./neovim-nightly.nix - ./vim.nix + with lib; + pipe + [ + ./niri.nix + ./spotifyx.nix + ./radicle-explorer.nix + ./wshowkeys.nix + # ./QQ.nix + ./helix.nix + ./cliphist.nix + ./zulip.nix + ./spotifyd.nix + ./nautilus.nix + ./neovim-nightly.nix + ./vim.nix - # Nur - ./nur.nix - ] - [ - (map (file: import file args)) - (overlays: (lib.composeManyExtensions overlays) final prev) - ] + # Nur + ./nur.nix + ] + [ + (map (file: import file args)) + (overlays: (lib.composeManyExtensions overlays) final prev) + ] diff --git a/overlays/modifications/helix.nix b/overlays/modifications/helix.nix index e5a4e7f..a759145 100644 --- a/overlays/modifications/helix.nix +++ b/overlays/modifications/helix.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { helix = outputs.packages."${system}".helix; } diff --git a/overlays/modifications/nautilus.nix b/overlays/modifications/nautilus.nix index 0e9da2c..2edd045 100644 --- a/overlays/modifications/nautilus.nix +++ b/overlays/modifications/nautilus.nix @@ -1,8 +1,7 @@ -{ ... }: -_final: prev: { +{...}: _final: prev: { nautilus = prev.nautilus.overrideAttrs (nprev: { buildInputs = - (nprev.buildInputs or [ ]) + (nprev.buildInputs or []) ++ (with prev.gst_all_1; [ gst-plugins-good gst-plugins-bad diff --git a/overlays/modifications/neovim-nightly.nix b/overlays/modifications/neovim-nightly.nix index 20f7496..2d18971 100644 --- a/overlays/modifications/neovim-nightly.nix +++ b/overlays/modifications/neovim-nightly.nix @@ -1,8 +1,5 @@ -{ inputs, ... }: -_final: prev: -let +{inputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { neovim-nightly = inputs.neovim-nightly.packages.${system}.neovim; } diff --git a/overlays/modifications/niri.nix b/overlays/modifications/niri.nix index 5ba2cf6..200914b 100644 --- a/overlays/modifications/niri.nix +++ b/overlays/modifications/niri.nix @@ -1 +1 @@ -{ inputs, ... }: inputs.niri-flake.overlays.niri +{inputs, ...}: inputs.niri-flake.overlays.niri diff --git a/overlays/modifications/nur.nix b/overlays/modifications/nur.nix index dda0a8f..fb90ee6 100644 --- a/overlays/modifications/nur.nix +++ b/overlays/modifications/nur.nix @@ -1 +1 @@ -{ inputs, ... }: inputs.nur.overlays.default +{inputs, ...}: inputs.nur.overlays.default diff --git a/overlays/modifications/radicle-explorer.nix b/overlays/modifications/radicle-explorer.nix index 316b7a6..19a089f 100644 --- a/overlays/modifications/radicle-explorer.nix +++ b/overlays/modifications/radicle-explorer.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { radicle-explorer = outputs.packages."${system}".radicle-explorer'; } diff --git a/overlays/modifications/spotifyd.nix b/overlays/modifications/spotifyd.nix index 2689a30..eb39754 100644 --- a/overlays/modifications/spotifyd.nix +++ b/overlays/modifications/spotifyd.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { spotifyd = outputs.packages.${system}.spotifyd'; } diff --git a/overlays/modifications/spotifyx.nix b/overlays/modifications/spotifyx.nix index 9903d3c..6395e95 100644 --- a/overlays/modifications/spotifyx.nix +++ b/overlays/modifications/spotifyx.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { spotify = outputs.packages."${system}".spotifyx; } diff --git a/overlays/modifications/vim.nix b/overlays/modifications/vim.nix index 2bbaec2..cbc6a62 100644 --- a/overlays/modifications/vim.nix +++ b/overlays/modifications/vim.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { vim = outputs.packages.${system}.vim'; } diff --git a/overlays/modifications/wshowkeys.nix b/overlays/modifications/wshowkeys.nix index 4f82f53..455b646 100644 --- a/overlays/modifications/wshowkeys.nix +++ b/overlays/modifications/wshowkeys.nix @@ -1,8 +1,5 @@ -{ outputs, ... }: -_final: prev: -let +{outputs, ...}: _final: prev: let inherit (prev.stdenv.hostPlatform) system; -in -{ +in { wshowkeys = outputs.packages.${system}.wshowkeys-mao; } diff --git a/overlays/modifications/zulip.nix b/overlays/modifications/zulip.nix index 1b48724..c8697a0 100644 --- a/overlays/modifications/zulip.nix +++ b/overlays/modifications/zulip.nix @@ -1,8 +1,7 @@ -{ ... }: -_final: prev: { +{...}: _final: prev: { zulip = prev.zulip.overrideAttrs ( _finalAttrs: prevAttrs: { - nativeBuildInputs = prevAttrs.nativeBuildInputs ++ [ prev.makeWrapper ]; + nativeBuildInputs = prevAttrs.nativeBuildInputs ++ [prev.makeWrapper]; postInstall = #bash '' diff --git a/pkgs/OuterWildsTextAdventure.nix b/pkgs/OuterWildsTextAdventure.nix index 793a3b7..459706f 100644 --- a/pkgs/OuterWildsTextAdventure.nix +++ b/pkgs/OuterWildsTextAdventure.nix @@ -3,29 +3,28 @@ buildNpmPackage, importNpmLock, ... -}: -let +}: let inherit (srcs.OuterWildsTextAdventure) src date version; in -buildNpmPackage { - pname = "OuterWildsTextAdventure"; - version = "0-unstable.${date}-git${version}"; - inherit src; + buildNpmPackage { + pname = "OuterWildsTextAdventure"; + version = "0-unstable.${date}-git${version}"; + inherit src; - npmDeps = importNpmLock { - npmRoot = src; - }; + npmDeps = importNpmLock { + npmRoot = src; + }; - npmBuildScript = "bundle"; + npmBuildScript = "bundle"; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - mkdir -p $out - cp -rt $out/ index.html data p5.min.js bundle.js bundle.js.map + mkdir -p $out + cp -rt $out/ index.html data p5.min.js bundle.js bundle.js.map - runHook postInstall - ''; + runHook postInstall + ''; - npmConfigHook = importNpmLock.npmConfigHook; -} + npmConfigHook = importNpmLock.npmConfigHook; + } diff --git a/pkgs/QQ.nix b/pkgs/QQ.nix index e8fc7b2..55ee75e 100644 --- a/pkgs/QQ.nix +++ b/pkgs/QQ.nix @@ -6,7 +6,7 @@ }: symlinkJoin { name = "QQ"; - paths = [ qq ]; + paths = [qq]; inherit (qq) meta; buildInputs = [ makeWrapper diff --git a/pkgs/TrackersListCollection.nix b/pkgs/TrackersListCollection.nix index 8d75707..2633ae1 100644 --- a/pkgs/TrackersListCollection.nix +++ b/pkgs/TrackersListCollection.nix @@ -1,5 +1,4 @@ -{ srcs }: -let +{srcs}: let inherit (srcs) TrackersListCollection; in -TrackersListCollection.src + TrackersListCollection.src diff --git a/pkgs/cliphist'.nix b/pkgs/cliphist'.nix index e18f0c1..8eacb82 100644 --- a/pkgs/cliphist'.nix +++ b/pkgs/cliphist'.nix @@ -8,37 +8,38 @@ gnugrep, lib, makeWrapper, -}: -let +}: let inherit (srcs.cliphist) src date version; in -cliphist.overrideAttrs ( - _final: prev: { - inherit src; - version = - if prev.version != "0.6.1" then - throw '' - Please remove - '' - else - "0-unstable-${date}-git${version}"; - vendorHash = "sha256-4XyDLOJHdre/1BpjgFt/W6gOlPOvKztE+MsbwE3JAaQ="; - buildInputs = (prev.buildInputs or [ ]) ++ [ - makeWrapper - ]; - postInstall = '' - cp -t $out/bin/ $src/contrib/* - rm $out/bin/cliphist.service - wrapProgram $out/bin/cliphist-fuzzel-img \ - --prefix PATH : ${ - lib.makeBinPath [ - imagemagick - wl-clipboard - fuzzel - gawk - gnugrep - ] - } - ''; - } -) + cliphist.overrideAttrs ( + _final: prev: { + inherit src; + version = + if prev.version != "0.6.1" + then + throw '' + Please remove + '' + else "0-unstable-${date}-git${version}"; + vendorHash = "sha256-4XyDLOJHdre/1BpjgFt/W6gOlPOvKztE+MsbwE3JAaQ="; + buildInputs = + (prev.buildInputs or []) + ++ [ + makeWrapper + ]; + postInstall = '' + cp -t $out/bin/ $src/contrib/* + rm $out/bin/cliphist.service + wrapProgram $out/bin/cliphist-fuzzel-img \ + --prefix PATH : ${ + lib.makeBinPath [ + imagemagick + wl-clipboard + fuzzel + gawk + gnugrep + ] + } + ''; + } + ) diff --git a/pkgs/doom-emacs/package.nix b/pkgs/doom-emacs/package.nix index 8530368..35defa6 100644 --- a/pkgs/doom-emacs/package.nix +++ b/pkgs/doom-emacs/package.nix @@ -4,12 +4,11 @@ editor-runtime, symlinkJoin, makeWrapper, -}: -let +}: let inherit (stdenv.hostPlatform) system; inherit (inputs) nixpkgs emacs-overlay nix-doom; pkgs = import nixpkgs { - localSystem = { inherit system; }; + localSystem = {inherit system;}; overlays = [ emacs-overlay.overlays.default nix-doom.overlays.default @@ -20,8 +19,8 @@ let doomDir = ./config; doomLocalDir = "~/.local/share/nix-doom"; emacs = emacs; - extraPackages = - ep: with ep; [ + extraPackages = ep: + with ep; [ melpaPackages.telega melpaPackages.nixos-options melpaPackages.scroll-on-jump @@ -38,29 +37,29 @@ let ]; }; in -symlinkJoin { - name = "doom-emacs"; - paths = [ doom-emacs ]; - inherit (doom-emacs) meta; - buildInputs = [ - makeWrapper - ]; - env = { - ORIGINAL_EMACS = toString emacs; - }; - postBuild = '' - wrapProgram $out/bin/doom-emacs \ - --unset EMACSNATIVELOADPATH \ - --unset EMACSLOADPATH \ - --inherit-argv0 + symlinkJoin { + name = "doom-emacs"; + paths = [doom-emacs]; + inherit (doom-emacs) meta; + buildInputs = [ + makeWrapper + ]; + env = { + ORIGINAL_EMACS = toString emacs; + }; + postBuild = '' + wrapProgram $out/bin/doom-emacs \ + --unset EMACSNATIVELOADPATH \ + --unset EMACSLOADPATH \ + --inherit-argv0 - mkdir -p $out/share/applications - cp ''${ORIGINAL_EMACS}/share/applications/emacs.desktop \ - $out/share/applications/doom-emacs.desktop - cp -rt $out/share ''${ORIGINAL_EMACS}/share/icons - substituteInPlace $out/share/applications/doom-emacs.desktop \ - --replace 'Name=Emacs' 'Name=Doom Emacs' \ - --replace 'Exec=emacs' "Exec=$out/bin/doom-emacs" \ - --replace 'StartupWMClass=Emacs' "StartupWMClass=Doom Emacs" - ''; -} + mkdir -p $out/share/applications + cp ''${ORIGINAL_EMACS}/share/applications/emacs.desktop \ + $out/share/applications/doom-emacs.desktop + cp -rt $out/share ''${ORIGINAL_EMACS}/share/icons + substituteInPlace $out/share/applications/doom-emacs.desktop \ + --replace 'Name=Emacs' 'Name=Doom Emacs' \ + --replace 'Exec=emacs' "Exec=$out/bin/doom-emacs" \ + --replace 'StartupWMClass=Emacs' "StartupWMClass=Doom Emacs" + ''; + } diff --git a/pkgs/fonts/noto-sans-cjk.nix b/pkgs/fonts/noto-sans-cjk.nix index 60976b6..50d3d42 100644 --- a/pkgs/fonts/noto-sans-cjk.nix +++ b/pkgs/fonts/noto-sans-cjk.nix @@ -2,19 +2,18 @@ nixosTests, srcs, stdenvNoCC, -}: -let +}: let source = srcs.noto-sans-cjk; in -stdenvNoCC.mkDerivation (_finalAttrs: { - pname = "noto-sans-cjk"; - version = source.version; + stdenvNoCC.mkDerivation (_finalAttrs: { + pname = "noto-sans-cjk"; + version = source.version; - src = source.src; + src = source.src; - installPhase = '' - install -m444 -Dt $out/share/fonts/opentype/noto-sans-cjk Sans/OTC/*.ttc - ''; + installPhase = '' + install -m444 -Dt $out/share/fonts/opentype/noto-sans-cjk Sans/OTC/*.ttc + ''; - passthru.tests.noto-fonts = nixosTests.noto-fonts; -}) + passthru.tests.noto-fonts = nixosTests.noto-fonts; + }) diff --git a/pkgs/fonts/noto-serif-cjk.nix b/pkgs/fonts/noto-serif-cjk.nix index 5f0255f..80b8f74 100644 --- a/pkgs/fonts/noto-serif-cjk.nix +++ b/pkgs/fonts/noto-serif-cjk.nix @@ -2,19 +2,18 @@ nixosTests, srcs, stdenvNoCC, -}: -let +}: let source = srcs.noto-serif-cjk; in -stdenvNoCC.mkDerivation (_finalAttrs: { - pname = "noto-serif-cjk"; - version = source.version; + stdenvNoCC.mkDerivation (_finalAttrs: { + pname = "noto-serif-cjk"; + version = source.version; - src = source.src; + src = source.src; - installPhase = '' - install -m444 -Dt $out/share/fonts/opentype/noto-serif-cjk Serif/OTC/*.ttc - ''; + installPhase = '' + install -m444 -Dt $out/share/fonts/opentype/noto-serif-cjk Serif/OTC/*.ttc + ''; - passthru.tests.noto-fonts = nixosTests.noto-fonts; -}) + passthru.tests.noto-fonts = nixosTests.noto-fonts; + }) diff --git a/pkgs/helix/package.nix b/pkgs/helix/package.nix index 1c9d5ab..fd1be2f 100644 --- a/pkgs/helix/package.nix +++ b/pkgs/helix/package.nix @@ -4,14 +4,12 @@ callPackage, buildEnv, lib, -}: -let +}: let inherit (stdenv.hostPlatform) system; inherit (inputs.helix.packages."${system}") helix; - runtime = callPackage ./runtime.nix { }; + runtime = callPackage ./runtime.nix {}; helix' = helix.overrideAttrs ( - _final: prev: - let + _final: prev: let helix-runtime = buildEnv { name = "helix-runtime"; paths = [ @@ -19,18 +17,19 @@ let prev.env.HELIX_DEFAULT_RUNTIME ]; }; - in - { + in { env.HELIX_DEFAULT_RUNTIME = toString helix-runtime; } ); in -helix' -// { - passthru = (helix'.passthru or { }) // { - languages = lib.pipe "${helix.src}/languages.toml" [ - builtins.readFile - builtins.fromTOML - ]; - }; -} + helix' + // { + passthru = + (helix'.passthru or {}) + // { + languages = lib.pipe "${helix.src}/languages.toml" [ + builtins.readFile + builtins.fromTOML + ]; + }; + } diff --git a/pkgs/helix/runtime.nix b/pkgs/helix/runtime.nix index 65117ee..c8bf547 100644 --- a/pkgs/helix/runtime.nix +++ b/pkgs/helix/runtime.nix @@ -3,10 +3,8 @@ srcs, stdenv, runCommandLocal, -}: -let - buildGrammar = - grammar: +}: let + buildGrammar = grammar: stdenv.mkDerivation { pname = "helix-tree-sitter-${grammar.name}"; version = grammar.version; @@ -60,10 +58,9 @@ let runHook postFixup ''; }; - grammars = with lib; pipe srcs [ (filterAttrs (key: _: hasPrefix "tree-sitter-" key)) ]; + grammars = with lib; pipe srcs [(filterAttrs (key: _: hasPrefix "tree-sitter-" key))]; - queries = - with lib; + queries = with lib; pipe grammars [ (mapAttrsToList ( _: value: '' @@ -73,8 +70,7 @@ let '' )) ]; - grammarLinks = - with lib; + grammarLinks = with lib; pipe grammars [ (builtins.mapAttrs ( _: v: { @@ -84,20 +80,20 @@ let )) (mapAttrsToList (_: value: "ln -s ${value.value}/${value.name}.so $out/${value.name}.so")) ]; - grammarDir = runCommandLocal "helix-grammars" { } '' + grammarDir = runCommandLocal "helix-grammars" {} '' mkdir -p $out ${builtins.concatStringsSep "\n" grammarLinks} ''; - queryDir = runCommandLocal "helix-query" { } '' + queryDir = runCommandLocal "helix-query" {} '' mkdir -p $out ${builtins.concatStringsSep "\n" queries} ''; in -runCommandLocal "helix-runtime" { } '' - mkdir -p $out + runCommandLocal "helix-runtime" {} '' + mkdir -p $out - ln -s ${grammarDir} $out/grammars - ln -s ${queryDir} $out/queries -'' + ln -s ${grammarDir} $out/grammars + ln -s ${queryDir} $out/queries + '' diff --git a/pkgs/nixvim/autocmds.nix b/pkgs/nixvim/autocmds.nix index c915eb0..6462967 100644 --- a/pkgs/nixvim/autocmds.nix +++ b/pkgs/nixvim/autocmds.nix @@ -1 +1 @@ -{ ... }: { } +{...}: {} diff --git a/pkgs/nixvim/coding/blink-cmp.nix b/pkgs/nixvim/coding/blink-cmp.nix index f8a0026..b34c4b8 100644 --- a/pkgs/nixvim/coding/blink-cmp.nix +++ b/pkgs/nixvim/coding/blink-cmp.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.blink-cmp = { enable = true; setupLspCapabilities = true; @@ -26,7 +25,7 @@ }; menu = { draw = { - treesitter = [ "lsp" ]; + treesitter = ["lsp"]; }; }; documentation = { @@ -42,7 +41,7 @@ }; }; sources = { - compat = [ ]; + compat = []; default = [ "lsp" "path" diff --git a/pkgs/nixvim/coding/lazydev.nix b/pkgs/nixvim/coding/lazydev.nix index fba9470..2432afc 100644 --- a/pkgs/nixvim/coding/lazydev.nix +++ b/pkgs/nixvim/coding/lazydev.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins = { lazydev = { enable = true; @@ -7,7 +6,7 @@ library = [ { path = "$''{3rd}/luv/library"; - words = [ "vim%.uv" ]; + words = ["vim%.uv"]; } ]; }; diff --git a/pkgs/nixvim/coding/mini-ai.nix b/pkgs/nixvim/coding/mini-ai.nix index 326c9b9..6644fc2 100644 --- a/pkgs/nixvim/coding/mini-ai.nix +++ b/pkgs/nixvim/coding/mini-ai.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.mini-ai = { enable = true; luaConfig.pre = diff --git a/pkgs/nixvim/coding/mini-pairs.nix b/pkgs/nixvim/coding/mini-pairs.nix index d18bc07..d991b1b 100644 --- a/pkgs/nixvim/coding/mini-pairs.nix +++ b/pkgs/nixvim/coding/mini-pairs.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.mini-pairs = { enable = true; settings = { diff --git a/pkgs/nixvim/coding/ts-comments.nix b/pkgs/nixvim/coding/ts-comments.nix index bcba025..1507e17 100644 --- a/pkgs/nixvim/coding/ts-comments.nix +++ b/pkgs/nixvim/coding/ts-comments.nix @@ -1,4 +1,3 @@ -{ ... }: -{ +{...}: { youthlic.plugins.ts-comments.enable = true; } diff --git a/pkgs/nixvim/editor.nix b/pkgs/nixvim/editor.nix index df026bb..e78f273 100644 --- a/pkgs/nixvim/editor.nix +++ b/pkgs/nixvim/editor.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins = { # grug-far = { # enable = true; diff --git a/pkgs/nixvim/editor/gitsigns.nix b/pkgs/nixvim/editor/gitsigns.nix index fb568c1..504cecc 100644 --- a/pkgs/nixvim/editor/gitsigns.nix +++ b/pkgs/nixvim/editor/gitsigns.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.gitsigns = { enable = true; luaConfig.post = diff --git a/pkgs/nixvim/editor/trouble.nix b/pkgs/nixvim/editor/trouble.nix index eca64ac..2e59177 100644 --- a/pkgs/nixvim/editor/trouble.nix +++ b/pkgs/nixvim/editor/trouble.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.trouble = { enable = true; settings = { diff --git a/pkgs/nixvim/editor/which-key.nix b/pkgs/nixvim/editor/which-key.nix index edf12f1..57d19dc 100644 --- a/pkgs/nixvim/editor/which-key.nix +++ b/pkgs/nixvim/editor/which-key.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins = { which-key = { enable = true; diff --git a/pkgs/nixvim/formatting.nix b/pkgs/nixvim/formatting.nix index d3f8d5b..aef4e45 100644 --- a/pkgs/nixvim/formatting.nix +++ b/pkgs/nixvim/formatting.nix @@ -1,85 +1,82 @@ -{ ... }: -{ - userCommands = - let - formatCmd = { - desc = "Format all the buffer"; - # conform.format function can deal with range by itself - range = "%"; - bang = true; - bar = true; - nargs = "?"; - complete = { - __raw = - #lua - '' - function(ArgLead, CmdLine, CursorPos) - return vim.iter(require("conform").list_all_formatters()):filter(function(val) - return val.available - end):map(function(val) - return val.name - end):filter(function(name) - return string.match(name, "^" .. ArgLead) ~= nil - end):totable() - end - ''; - }; - command = { - __raw = - #lua - '' - function(opts) - local format = require("conform").format - if #(opts.fargs) == 0 then - return format() - else - return format({ formatters = { opts.fargs[1] } }) - end - end - ''; - }; - }; - in - { - Format = formatCmd; - Fmt = formatCmd; - Formatter = { - desc = "Show config of formatter"; - nargs = "?"; - bar = true; - complete = { - __raw = - #lua - '' - function(ArgLead, CmdLine, CursorPos) - return vim.iter(require("conform").list_all_formatters()):map(function(val) +{...}: { + userCommands = let + formatCmd = { + desc = "Format all the buffer"; + # conform.format function can deal with range by itself + range = "%"; + bang = true; + bar = true; + nargs = "?"; + complete = { + __raw = + #lua + '' + function(ArgLead, CmdLine, CursorPos) + return vim.iter(require("conform").list_all_formatters()):filter(function(val) + return val.available + end):map(function(val) return val.name - end):filter(function(name) - return string.match(name, "^" .. ArgLead) ~= nil - end):totable() + end):filter(function(name) + return string.match(name, "^" .. ArgLead) ~= nil + end):totable() + end + ''; + }; + command = { + __raw = + #lua + '' + function(opts) + local format = require("conform").format + if #(opts.fargs) == 0 then + return format() + else + return format({ formatters = { opts.fargs[1] } }) end - ''; - }; - command = { - __raw = - #lua - '' - function(opts) - local conform = require("conform") - if #(opts.fargs) == 0 then - local formatters = conform.list_all_formatters() - print(vim.inspect(formatters)) - return formatters - else - local config = conform.get_formatter_config(opts.fargs[1]) - print(vim.inspect(config)) - return config - end - end - ''; - }; + end + ''; }; }; + in { + Format = formatCmd; + Fmt = formatCmd; + Formatter = { + desc = "Show config of formatter"; + nargs = "?"; + bar = true; + complete = { + __raw = + #lua + '' + function(ArgLead, CmdLine, CursorPos) + return vim.iter(require("conform").list_all_formatters()):map(function(val) + return val.name + end):filter(function(name) + return string.match(name, "^" .. ArgLead) ~= nil + end):totable() + end + ''; + }; + command = { + __raw = + #lua + '' + function(opts) + local conform = require("conform") + if #(opts.fargs) == 0 then + local formatters = conform.list_all_formatters() + print(vim.inspect(formatters)) + return formatters + else + local config = conform.get_formatter_config(opts.fargs[1]) + print(vim.inspect(config)) + return config + end + end + ''; + }; + }; + }; keymaps = [ { action = { diff --git a/pkgs/nixvim/keymaps.nix b/pkgs/nixvim/keymaps.nix index c915eb0..6462967 100644 --- a/pkgs/nixvim/keymaps.nix +++ b/pkgs/nixvim/keymaps.nix @@ -1 +1 @@ -{ ... }: { } +{...}: {} diff --git a/pkgs/nixvim/lang/c.nix b/pkgs/nixvim/lang/c.nix index 940ac8f..4681dbc 100644 --- a/pkgs/nixvim/lang/c.nix +++ b/pkgs/nixvim/lang/c.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { youthlic.plugins.conform-nvim.settings = { formatters_by_ft.c = { __unkeyed-1 = "clang-format"; diff --git a/pkgs/nixvim/lang/cxx.nix b/pkgs/nixvim/lang/cxx.nix index 7d06ce0..5fd866b 100644 --- a/pkgs/nixvim/lang/cxx.nix +++ b/pkgs/nixvim/lang/cxx.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { youthlic.plugins.conform-nvim.settings = { formatters_by_ft.cpp = { __unkeyed-1 = "clang-format"; diff --git a/pkgs/nixvim/lang/idris2.nix b/pkgs/nixvim/lang/idris2.nix index b38a4ff..53e6fa8 100644 --- a/pkgs/nixvim/lang/idris2.nix +++ b/pkgs/nixvim/lang/idris2.nix @@ -1,6 +1,5 @@ -{ pkgs, ... }: -{ - extraPackagesAfter = with pkgs; [ idris2Packages.idris2Lsp ]; +{pkgs, ...}: { + extraPackagesAfter = with pkgs; [idris2Packages.idris2Lsp]; lsp.servers.idris2 = { enable = true; }; diff --git a/pkgs/nixvim/lang/json.nix b/pkgs/nixvim/lang/json.nix index 482597d..f740749 100644 --- a/pkgs/nixvim/lang/json.nix +++ b/pkgs/nixvim/lang/json.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { youthlic.plugins.conform-nvim.settings = { formatters_by_ft.json = { __unkeyed-1 = "deno_fmt"; diff --git a/pkgs/nixvim/lang/lua.nix b/pkgs/nixvim/lang/lua.nix index be2eca2..b66574f 100644 --- a/pkgs/nixvim/lang/lua.nix +++ b/pkgs/nixvim/lang/lua.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { lsp.servers.lua_ls = { enable = true; }; diff --git a/pkgs/nixvim/lang/markdown.nix b/pkgs/nixvim/lang/markdown.nix index 17fbfdf..cae1834 100644 --- a/pkgs/nixvim/lang/markdown.nix +++ b/pkgs/nixvim/lang/markdown.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { youthlic.plugins.conform-nvim.settings = { formatters_by_ft.markdown = { __unkeyed-1 = "deno_fmt"; diff --git a/pkgs/nixvim/lang/nix.nix b/pkgs/nixvim/lang/nix.nix index a000f7a..98af73c 100644 --- a/pkgs/nixvim/lang/nix.nix +++ b/pkgs/nixvim/lang/nix.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { lsp.servers = { nixd = { enable = true; diff --git a/pkgs/nixvim/lang/python.nix b/pkgs/nixvim/lang/python.nix index c53d345..67f08c7 100644 --- a/pkgs/nixvim/lang/python.nix +++ b/pkgs/nixvim/lang/python.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { youthlic.plugins.conform-nvim.settings = { formatters_by_ft.python = { __unkeyed-1 = "ruff_format"; diff --git a/pkgs/nixvim/lang/rust.nix b/pkgs/nixvim/lang/rust.nix index 2931731..bcbf89b 100644 --- a/pkgs/nixvim/lang/rust.nix +++ b/pkgs/nixvim/lang/rust.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { youthlic.plugins.conform-nvim.settings = { formatters_by_ft.rust = { __unkeyed-1 = "rustfmt"; diff --git a/pkgs/nixvim/lang/toml.nix b/pkgs/nixvim/lang/toml.nix index 6ff4f0a..b674308 100644 --- a/pkgs/nixvim/lang/toml.nix +++ b/pkgs/nixvim/lang/toml.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { youthlic.plugins.conform-nvim.settings = { formatters_by_ft.toml = { __unkeyed-1 = "taplo"; diff --git a/pkgs/nixvim/lang/yaml.nix b/pkgs/nixvim/lang/yaml.nix index adecd76..d04f189 100644 --- a/pkgs/nixvim/lang/yaml.nix +++ b/pkgs/nixvim/lang/yaml.nix @@ -2,8 +2,7 @@ lib, pkgs, ... -}: -{ +}: { youthlic.plugins.conform-nvim.settings = { formatters_by_ft.yaml = { __unkeyed-1 = "deno_fmt"; diff --git a/pkgs/nixvim/linting.nix b/pkgs/nixvim/linting.nix index c915eb0..6462967 100644 --- a/pkgs/nixvim/linting.nix +++ b/pkgs/nixvim/linting.nix @@ -1 +1 @@ -{ ... }: { } +{...}: {} diff --git a/pkgs/nixvim/lsp.nix b/pkgs/nixvim/lsp.nix index 2e949b4..bc2e419 100644 --- a/pkgs/nixvim/lsp.nix +++ b/pkgs/nixvim/lsp.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.lspconfig.enable = true; lsp = { inlayHints.enable = true; diff --git a/pkgs/nixvim/module.nix b/pkgs/nixvim/module.nix index 42b2240..decf51f 100644 --- a/pkgs/nixvim/module.nix +++ b/pkgs/nixvim/module.nix @@ -3,11 +3,9 @@ config, options, ... -}: -let +}: let cfg = config.youthlic; -in -{ +in { options = { youthlic.plugins = lib.mkOption { type = lib.types.attrsOf ( @@ -16,8 +14,7 @@ in name, lib, ... - }: - { + }: { freeformType = lib.types.anything; options = { enable = lib.mkEnableOption "nvimPlugins.${name}"; @@ -25,13 +22,12 @@ in } ) ); - default = { }; + default = {}; }; }; - config = - let - enabledPlugins = lib.filterAttrs (_name: value: value.enable) cfg.plugins; - in + config = let + enabledPlugins = lib.filterAttrs (_name: value: value.enable) cfg.plugins; + in lib.mkMerge [ { plugins = enabledPlugins; @@ -42,13 +38,13 @@ in (lib.filter (name: options.plugins.${name} ? luaConfig)) (map ( name: - lib.nameValuePair name { - luaConfig.post = - #lua - '' - _M.load("${name}") - ''; - } + lib.nameValuePair name { + luaConfig.post = + #lua + '' + _M.load("${name}") + ''; + } )) lib.listToAttrs ]; diff --git a/pkgs/nixvim/neovide.nix b/pkgs/nixvim/neovide.nix index 84d7c17..cb88ab3 100644 --- a/pkgs/nixvim/neovide.nix +++ b/pkgs/nixvim/neovide.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { extraConfigLua = #lua '' diff --git a/pkgs/nixvim/options.nix b/pkgs/nixvim/options.nix index ff42db3..1858b4e 100644 --- a/pkgs/nixvim/options.nix +++ b/pkgs/nixvim/options.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { globals = { mapleader = { __raw = @@ -92,7 +91,7 @@ ]; whichwrap = "b,s,<,>"; wildmenu = true; - wildmode = [ "full" ]; + wildmode = ["full"]; wildoptions = [ "fuzzy" "pum" diff --git a/pkgs/nixvim/package.nix b/pkgs/nixvim/package.nix index 39d149c..19dcb2b 100644 --- a/pkgs/nixvim/package.nix +++ b/pkgs/nixvim/package.nix @@ -11,8 +11,7 @@ makeNixvimWithModule { inherit nixvimPlugins; }; module = { - imports = - with lib; + imports = with lib; youthlic.loadImports' ./. (filter (name: !hasSuffix "/package.nix" (toString name))); enableMan = true; enablePrintInit = true; diff --git a/pkgs/nixvim/treesitter.nix b/pkgs/nixvim/treesitter.nix index 49ceeb8..95b46aa 100644 --- a/pkgs/nixvim/treesitter.nix +++ b/pkgs/nixvim/treesitter.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins = { treesitter = { enable = true; diff --git a/pkgs/nixvim/ui/bufferline.nix b/pkgs/nixvim/ui/bufferline.nix index 164a680..109272a 100644 --- a/pkgs/nixvim/ui/bufferline.nix +++ b/pkgs/nixvim/ui/bufferline.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.bufferline = { enable = true; settings = { diff --git a/pkgs/nixvim/ui/colorschemes.nix b/pkgs/nixvim/ui/colorschemes.nix index 5d7cffe..81523cf 100644 --- a/pkgs/nixvim/ui/colorschemes.nix +++ b/pkgs/nixvim/ui/colorschemes.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { colorschemes.gruvbox = { enable = true; settings = { diff --git a/pkgs/nixvim/ui/lualine.nix b/pkgs/nixvim/ui/lualine.nix index 5bafe08..4925ee2 100644 --- a/pkgs/nixvim/ui/lualine.nix +++ b/pkgs/nixvim/ui/lualine.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.lualine = { enable = true; luaConfig.pre = @@ -17,6 +16,6 @@ vim.o.laststatus = vim.g.lualine_laststatus end ''; - settings = { }; + settings = {}; }; } diff --git a/pkgs/nixvim/util/lazy-load.nix b/pkgs/nixvim/util/lazy-load.nix index 0c901ef..4b515c3 100644 --- a/pkgs/nixvim/util/lazy-load.nix +++ b/pkgs/nixvim/util/lazy-load.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { extraConfigLuaPre = #lua '' diff --git a/pkgs/nixvim/util/snacks.nix b/pkgs/nixvim/util/snacks.nix index 08c4e1f..0d653b1 100644 --- a/pkgs/nixvim/util/snacks.nix +++ b/pkgs/nixvim/util/snacks.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { youthlic.plugins.snacks = { enable = true; luaConfig.content = diff --git a/pkgs/nixvim/util/vim-startuptime.nix b/pkgs/nixvim/util/vim-startuptime.nix index 3d6899a..5430c38 100644 --- a/pkgs/nixvim/util/vim-startuptime.nix +++ b/pkgs/nixvim/util/vim-startuptime.nix @@ -1,5 +1,4 @@ -{ nixvimPlugins, ... }: -{ +{nixvimPlugins, ...}: { extraPlugins = [ { config = diff --git a/pkgs/nixvimPlugins/vim-startuptime.nix b/pkgs/nixvimPlugins/vim-startuptime.nix index 5e10ce2..bda263c 100644 --- a/pkgs/nixvimPlugins/vim-startuptime.nix +++ b/pkgs/nixvimPlugins/vim-startuptime.nix @@ -1,12 +1,11 @@ { srcs, vimUtils, -}: -let +}: let inherit (srcs.nvim_vim-startuptime) src version date; in -vimUtils.buildVimPlugin { - pname = "vim-startuptime"; - version = "0-unstable-${date}-git${version}"; - inherit src; -} + vimUtils.buildVimPlugin { + pname = "vim-startuptime"; + version = "0-unstable-${date}-git${version}"; + inherit src; + } diff --git a/pkgs/radicle-explorer'.nix b/pkgs/radicle-explorer'.nix index 6e1ef11..66a71a8 100644 --- a/pkgs/radicle-explorer'.nix +++ b/pkgs/radicle-explorer'.nix @@ -26,8 +26,10 @@ } ]; }).overrideAttrs - (prev: { - postInstall = (prev.postInstall or "") + '' +(prev: { + postInstall = + (prev.postInstall or "") + + '' ln -s ${ rootPath + "/assets/radicle-explorer/youthlic-seed-header.png" } $out/images/youthlic-seed-header.png @@ -35,4 +37,4 @@ rootPath + "/assets/radicle-explorer/youthlic-seed-avatar.jpg" } $out/images/youthlic-seed-avatar.jpg ''; - }) +}) diff --git a/pkgs/rime-yuhaostar/package.nix b/pkgs/rime-yuhaostar/package.nix index 5545ea2..828efdc 100644 --- a/pkgs/rime-yuhaostar/package.nix +++ b/pkgs/rime-yuhaostar/package.nix @@ -2,36 +2,35 @@ srcs, stdenv, unzip, -}: -let +}: let inherit (srcs.rime-yuhaostar) src version; in -stdenv.mkDerivation { - pname = "rime-yuhaostar"; - version = - if version != "v3.10.0" then - throw '' - Please update 宇浩输入法。 - '' - else - version; - inherit src; - nativeBuildInputs = [ unzip ]; + stdenv.mkDerivation { + pname = "rime-yuhaostar"; + version = + if version != "v3.10.0" + then + throw '' + Please update 宇浩输入法。 + '' + else version; + inherit src; + nativeBuildInputs = [unzip]; - sourceRoot = "schema"; + sourceRoot = "schema"; - patches = [ - ./punctuator.patch - ./key_binder.patch - ]; + patches = [ + ./punctuator.patch + ./key_binder.patch + ]; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - mkdir -p $out/share/rime-data - cp -rt $out/share/rime-data -- ./* - rm $out/share/rime-data/default.custom.yaml + mkdir -p $out/share/rime-data + cp -rt $out/share/rime-data -- ./* + rm $out/share/rime-data/default.custom.yaml - runHook postInstall - ''; -} + runHook postInstall + ''; + } diff --git a/pkgs/spotifyd'.nix b/pkgs/spotifyd'.nix index f7f61f4..ff1b4c0 100644 --- a/pkgs/spotifyd'.nix +++ b/pkgs/spotifyd'.nix @@ -3,25 +3,25 @@ spotifyd, rustPlatform, ... -}: -let +}: let inherit (srcs.spotifyd) src date version; in -spotifyd.overrideAttrs ( - _final: prev: { - inherit src; - version = - if prev.version != "0.4.1" then - throw '' - Please remove - '' - else - "0-unstable-${date}-git${version}"; - cargoDeps = rustPlatform.fetchCargoVendor { - inherit (prev) - src - ; - hash = "sha256-WwShp1ebk89cBqRXqKDgbwGZraCDjQAOxoL4uEIq2aw="; - }; - } -) + spotifyd.overrideAttrs ( + _final: prev: { + inherit src; + version = + if prev.version != "0.4.1" + then + throw '' + Please remove + '' + else "0-unstable-${date}-git${version}"; + cargoDeps = rustPlatform.fetchCargoVendor { + inherit + (prev) + src + ; + hash = "sha256-WwShp1ebk89cBqRXqKDgbwGZraCDjQAOxoL4uEIq2aw="; + }; + } + ) diff --git a/pkgs/spotifyx.nix b/pkgs/spotifyx.nix index e476474..baf89f1 100644 --- a/pkgs/spotifyx.nix +++ b/pkgs/spotifyx.nix @@ -5,31 +5,32 @@ perl, makeWrapper, srcs, -}: -let +}: let inherit (srcs) spotx; in -spotify.overrideAttrs ( - _final: prev: { - nativeBuildInputs = prev.nativeBuildInputs ++ [ - unzip - zip - perl - makeWrapper - ]; - spotx = spotx.src; - postUnpack = '' - cp $spotx/spotx.sh ./spotx.sh - chmod +x ./spotx.sh - patchShebangs --build ./spotx.sh - ''; - postInstall = '' - ./spotx.sh -P $out/share/spotify -h -p - ''; - postFixup = '' - wrapProgram $out/bin/spotify \ - --set NIXOS_OZONE_WL 1 \ - --add-flags '--wayland-text-input-version=3' - ''; - } -) + spotify.overrideAttrs ( + _final: prev: { + nativeBuildInputs = + prev.nativeBuildInputs + ++ [ + unzip + zip + perl + makeWrapper + ]; + spotx = spotx.src; + postUnpack = '' + cp $spotx/spotx.sh ./spotx.sh + chmod +x ./spotx.sh + patchShebangs --build ./spotx.sh + ''; + postInstall = '' + ./spotx.sh -P $out/share/spotify -h -p + ''; + postFixup = '' + wrapProgram $out/bin/spotify \ + --set NIXOS_OZONE_WL 1 \ + --add-flags '--wayland-text-input-version=3' + ''; + } + ) diff --git a/pkgs/vim'/package.nix b/pkgs/vim'/package.nix index 224addf..c636ad5 100644 --- a/pkgs/vim'/package.nix +++ b/pkgs/vim'/package.nix @@ -1,4 +1,7 @@ -{ vim-full, vimPlugins }: +{ + vim-full, + vimPlugins, +}: vim-full.customize { name = "vim"; @@ -9,7 +12,7 @@ vim-full.customize { vim-one vim-airline ]; - opt = [ ]; + opt = []; }; }; } diff --git a/pkgs/wallpapers.nix b/pkgs/wallpapers.nix index e759e92..96ad9cb 100644 --- a/pkgs/wallpapers.nix +++ b/pkgs/wallpapers.nix @@ -3,19 +3,17 @@ runCommandLocal, rootPath, lib, -}: -let - wallpapers = - with lib; +}: let + wallpapers = with lib; pipe srcs [ (filterAttrs (name: _value: hasPrefix "wallpaper" name)) (concatMapAttrsStringSep "\n" (name: value: "ln -s ${value.src} $out/${name}")) ]; in -runCommandLocal "wallpapers" { } '' - mkdir -p $out + runCommandLocal "wallpapers" {} '' + mkdir -p $out - ${wallpapers} + ${wallpapers} - ln -s ${rootPath + "/assets/wallpaper/01.png"} $out/01.png -'' + ln -s ${rootPath + "/assets/wallpaper/01.png"} $out/01.png + '' diff --git a/pkgs/wshowkeys-mao.nix b/pkgs/wshowkeys-mao.nix index 299cc82..2431c3a 100644 --- a/pkgs/wshowkeys-mao.nix +++ b/pkgs/wshowkeys-mao.nix @@ -1,14 +1,13 @@ { srcs, wshowkeys, -}: -let +}: let inherit (srcs) wshowkeys-mao; in -wshowkeys.overrideAttrs ( - _final: _prev: { - inherit (wshowkeys-mao) src; - pname = "wshowkeys-mao"; - version = wshowkeys-mao.date + "-" + wshowkeys-mao.version; - } -) + wshowkeys.overrideAttrs ( + _final: _prev: { + inherit (wshowkeys-mao) src; + pname = "wshowkeys-mao"; + version = wshowkeys-mao.date + "-" + wshowkeys-mao.version; + } + ) diff --git a/templates/cxx/flake.nix b/templates/cxx/flake.nix index a06d90a..0339e8f 100644 --- a/templates/cxx/flake.nix +++ b/templates/cxx/flake.nix @@ -5,20 +5,17 @@ url = "github:numtide/flake-utils"; }; }; - outputs = - { - flake-utils, - nixpkgs, - ... - }: + outputs = { + flake-utils, + nixpkgs, + ... + }: flake-utils.lib.eachDefaultSystem ( - system: - let + system: let pkgs = import nixpkgs { - localSystem = { inherit system; }; + localSystem = {inherit system;}; }; - in - { + in { formatter = pkgs.alejandra; devShells.default = pkgs.mkShell { packages = with pkgs; [ diff --git a/templates/python/flake.nix b/templates/python/flake.nix index 6eb7348..d37fdcf 100644 --- a/templates/python/flake.nix +++ b/templates/python/flake.nix @@ -5,26 +5,23 @@ url = "github:numtide/flake-utils"; }; }; - outputs = - { - flake-utils, - nixpkgs, - ... - }: + outputs = { + flake-utils, + nixpkgs, + ... + }: flake-utils.lib.eachDefaultSystem ( - system: - let + system: let inherit (pkgs) lib; pkgs = import nixpkgs { - localSystem = { inherit system; }; + localSystem = {inherit system;}; config = { cudaSupport = true; allowUnfree = true; }; }; defaultPython = pkgs.python3; - in - { + in { formatter = pkgs.alejandra; devShells.default = pkgs.mkShell { packages = diff --git a/templates/rust/flake.nix b/templates/rust/flake.nix index f5b39d8..0a22d97 100644 --- a/templates/rust/flake.nix +++ b/templates/rust/flake.nix @@ -24,23 +24,21 @@ }; }; }; - outputs = - { - self, - flake-utils, - nixpkgs, - rust-overlay, - advisory-db, - crane, - pre-commit-hooks, - ... - }: + outputs = { + self, + flake-utils, + nixpkgs, + rust-overlay, + advisory-db, + crane, + pre-commit-hooks, + ... + }: flake-utils.lib.eachDefaultSystem ( - system: - let + system: let inherit (pkgs) lib; pkgs = import nixpkgs { - localSystem = { inherit system; }; + localSystem = {inherit system;}; overlays = [ (import rust-overlay) (_final: prev: { @@ -50,8 +48,7 @@ }; rustToolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; craneLib = (crane.mkLib pkgs).overrideToolchain rustToolchain; - srcFilters = - path: type: + srcFilters = path: type: builtins.any (lib.flip lib.hasSuffix path) [ ".sql" ".diff" @@ -68,16 +65,17 @@ inherit src; strictDeps = true; }; - nativeBuildInputs = [ ]; - buildInputs = [ ]; + nativeBuildInputs = []; + buildInputs = []; genInputs = lib.genInputsWith pkgs; - commonArgs = basicArgs // { - cargoArtifacts = self.packages.${system}.cargo-artifacts; - buildInputs = genInputs buildInputs; - nativeBuildInputs = genInputs nativeBuildInputs; - }; - in - { + commonArgs = + basicArgs + // { + cargoArtifacts = self.packages.${system}.cargo-artifacts; + buildInputs = genInputs buildInputs; + nativeBuildInputs = genInputs nativeBuildInputs; + }; + in { formatter = pkgs.alejandra; checks = { pre-commit-check = pre-commit-hooks.lib.${system}.run { @@ -89,11 +87,11 @@ rustfmt.enable = true; cargo-check = { enable = true; - stages = [ "pre-push" ]; + stages = ["pre-push"]; }; clippy = { enable = true; - stages = [ "pre-push" ]; + stages = ["pre-push"]; settings.denyWarnings = true; }; }; @@ -125,26 +123,24 @@ } ); }; - packages = - let - callPackage = lib.callPackageWith (pkgs // { inherit craneLib callPackage; }); - packageArgs = { - inherit - lib - basicArgs - buildInputs - nativeBuildInputs - ; - }; - importWithArgs = with lib; flip import packageArgs; - in - rec { - cargo-artifacts = callPackage (importWithArgs ./nix/cargo-artifacts.nix) { }; - rust-demo = callPackage (importWithArgs ./nix/package.nix) { - cargoArtifacts = cargo-artifacts; - }; - default = rust-demo; + packages = let + callPackage = lib.callPackageWith (pkgs // {inherit craneLib callPackage;}); + packageArgs = { + inherit + lib + basicArgs + buildInputs + nativeBuildInputs + ; }; + importWithArgs = with lib; flip import packageArgs; + in rec { + cargo-artifacts = callPackage (importWithArgs ./nix/cargo-artifacts.nix) {}; + rust-demo = callPackage (importWithArgs ./nix/package.nix) { + cargoArtifacts = cargo-artifacts; + }; + default = rust-demo; + }; apps.default = flake-utils.lib.mkApp { drv = self.packages."${system}".default; }; diff --git a/templates/rust/nix/cargo-artifacts.nix b/templates/rust/nix/cargo-artifacts.nix index e3b77b3..71769a6 100644 --- a/templates/rust/nix/cargo-artifacts.nix +++ b/templates/rust/nix/cargo-artifacts.nix @@ -3,17 +3,14 @@ basicArgs, buildInputs, nativeBuildInputs, -}: -let - f = - { - craneLib, - lib, - ... - }@args: - let - genInputs = lib.genInputsWith args; - in +}: let + f = { + craneLib, + lib, + ... + } @ args: let + genInputs = lib.genInputsWith args; + in craneLib.buildDepsOnly ( basicArgs // { @@ -22,5 +19,5 @@ let } ); in -with lib; -setFunctionArgs f ((functionArgs f) // (genFunctionArgs (buildInputs ++ nativeBuildInputs))) + with lib; + setFunctionArgs f ((functionArgs f) // (genFunctionArgs (buildInputs ++ nativeBuildInputs))) diff --git a/templates/rust/nix/lib.nix b/templates/rust/nix/lib.nix index 60d8964..505e870 100644 --- a/templates/rust/nix/lib.nix +++ b/templates/rust/nix/lib.nix @@ -7,8 +7,7 @@ nameValuePair, getAttrFromPath, ... -}: -{ +}: { genFunctionArgs = flip pipe [ (map ( flip pipe [ @@ -19,8 +18,7 @@ )) listToAttrs ]; - genInputsWith = - pkgs: + genInputsWith = pkgs: map ( flip pipe [ (splitString ".") diff --git a/templates/rust/nix/package.nix b/templates/rust/nix/package.nix index 2c48936..938fb6d 100644 --- a/templates/rust/nix/package.nix +++ b/templates/rust/nix/package.nix @@ -3,18 +3,15 @@ basicArgs, buildInputs, nativeBuildInputs, -}: -let - f = - { - craneLib, - lib, - cargoArtifacts, - ... - }@args: - let - genInputs = lib.genInputsWith args; - in +}: let + f = { + craneLib, + lib, + cargoArtifacts, + ... + } @ args: let + genInputs = lib.genInputsWith args; + in craneLib.buildPackage ( basicArgs // { @@ -32,5 +29,5 @@ let } ); in -with lib; -setFunctionArgs f ((functionArgs f) // (genFunctionArgs (buildInputs ++ nativeBuildInputs))) + with lib; + setFunctionArgs f ((functionArgs f) // (genFunctionArgs (buildInputs ++ nativeBuildInputs))) diff --git a/treefmt.nix b/treefmt.nix index a81d136..a993fc1 100644 --- a/treefmt.nix +++ b/treefmt.nix @@ -1,74 +1,74 @@ { - perSystem = - { pkgs, lib, ... }: - { - treefmt = { - programs = { - nixfmt = { - enable = true; - excludes = [ "_sources/*.nix" ]; + perSystem = { + pkgs, + lib, + ... + }: { + treefmt = { + programs = { + alejandra = { + enable = true; + excludes = ["_sources/*.nix"]; + }; + biome = { + enable = true; + includes = ["*.json"]; + excludes = ["_sources/*.json"]; + settings = { + javascript.formatter.enabled = false; + css.formatter.enabled = false; }; - biome = { - enable = true; - includes = [ "*.json" ]; - excludes = [ "_sources/*.json" ]; - settings = { - javascript.formatter.enabled = false; - css.formatter.enabled = false; - }; - }; - dprint = { - enable = true; - includes = [ - "*.md" - "*.toml" - "*.yaml" - ]; - excludes = [ "secrets/*.yaml" ]; - settings = { - plugins = pkgs.dprint-plugins.getPluginList ( - plugins: with plugins; [ + }; + dprint = { + enable = true; + includes = [ + "*.md" + "*.toml" + "*.yaml" + ]; + excludes = ["secrets/*.yaml"]; + settings = { + plugins = pkgs.dprint-plugins.getPluginList ( + plugins: + with plugins; [ dprint-plugin-toml dprint-plugin-markdown g-plane-pretty_yaml ] - ); - }; + ); }; - just = { - enable = true; - includes = [ ".justfile" ]; - }; - typos = - let - config = - with lib; - pipe ./.typos.toml [ - builtins.readFile - builtins.fromTOML - ]; - in - { - enable = true; - includes = [ "*" ]; - excludes = [ "assets/*" ] ++ config.files.extend-exclude; - configFile = toString ./.typos.toml; - # Disable all extra option in treefmt module. - # Use config file. - sort = false; - isolated = false; - hidden = false; - noIgnore = false; - noIgnoreDot = false; - noIgnoreGlobal = false; - noIgnoreParent = false; - noIgnoreVCS = false; - binary = false; - noCheckFilenames = false; - noCheckFiles = false; - noUnicode = false; - }; + }; + just = { + enable = true; + includes = [".justfile"]; + }; + typos = let + config = with lib; + pipe ./.typos.toml [ + builtins.readFile + builtins.fromTOML + ]; + in { + enable = true; + includes = ["*"]; + excludes = ["assets/*"] ++ config.files.extend-exclude; + configFile = toString ./.typos.toml; + # Disable all extra option in treefmt module. + # Use config file. + sort = false; + isolated = false; + hidden = false; + noIgnore = false; + noIgnoreDot = false; + noIgnoreGlobal = false; + noIgnoreParent = false; + noIgnoreVCS = false; + binary = false; + noCheckFilenames = false; + noCheckFiles = false; + noUnicode = false; }; }; }; + }; }