diff --git a/flake.lock b/flake.lock index 1ba535e..4240a48 100644 --- a/flake.lock +++ b/flake.lock @@ -18,16 +18,12 @@ "colmena": { "inputs": { "flake-compat": "flake-compat", - "flake-utils": [ - "flake-utils" - ], + "flake-utils": "flake-utils", "nix-github-actions": "nix-github-actions", "nixpkgs": [ "nixpkgs" ], - "stable": [ - "nixpkgs" - ] + "stable": "stable" }, "locked": { "lastModified": 1731527002, @@ -152,6 +148,21 @@ } }, "flake-utils": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": "systems" }, @@ -169,7 +180,7 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_3": { "inputs": { "systems": "systems_2" }, @@ -250,11 +261,11 @@ ] }, "locked": { - "lastModified": 1731535640, - "narHash": "sha256-2EckCJn4wxran/TsRiCOFcmVpep2m9EBKl99NBh2GnM=", + "lastModified": 1731786860, + "narHash": "sha256-130gQ5k8kZlxjBEeLpE+SvWFgSOFgQFeZlqIik7KgtQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "35b055009afd0107b69c286fca34d2ad98940d57", + "rev": "1bd5616e33c0c54d7a5b37db94160635a9b27aeb", "type": "github" }, "original": { @@ -387,11 +398,11 @@ ] }, "locked": { - "lastModified": 1731209121, - "narHash": "sha256-BF7FBh1hIYPDihdUlImHGsQzaJZVLLfYqfDx41wjuF0=", + "lastModified": 1731814505, + "narHash": "sha256-l9ryrx1Twh08a+gxrMGM9O/aZKEimZfa6sZVyPCImgI=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "896019f04b22ce5db4c0ee4f89978694f44345c3", + "rev": "bdba246946fb079b87b4cada4df9b1cdf1c06132", "type": "github" }, "original": { @@ -411,11 +422,11 @@ ] }, "locked": { - "lastModified": 1731548914, - "narHash": "sha256-UtYkHq8OdZcz2Q/r7gh+3HFGVgX9AFfYDrMjAVO6sj4=", + "lastModified": 1731808759, + "narHash": "sha256-WwJqguc/5Q7HEwHlgDzDT8mtd8ZxInxZM2neJKC1oh8=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "00e11784c89ecd236ff045acd7a447e0fe5b80df", + "rev": "5cf92678e6799ce45442dee4c9cb8094843c7cfa", "type": "github" }, "original": { @@ -426,11 +437,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1731403644, - "narHash": "sha256-T9V7CTucjRZ4Qc6pUEV/kpgNGzQbHWfGcfK6JJLfUeI=", + "lastModified": 1731797098, + "narHash": "sha256-UhWmEZhwJZmVZ1jfHZFzCg+ZLO9Tb/v3Y6LC0UNyeTo=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "f6581f1c3b137086e42a08a906bdada63045f991", + "rev": "672ac2ac86f7dff2f6f3406405bddecf960e0db6", "type": "github" }, "original": { @@ -470,11 +481,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1731386116, - "narHash": "sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI=", + "lastModified": 1731652201, + "narHash": "sha256-XUO0JKP1hlww0d7mm3kpmIr4hhtR4zicg5Wwes9cPMg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "689fed12a013f56d4c4d3f612489634267d86529", + "rev": "c21b77913ea840f8bcf9adf4c41cecc2abffd38d", "type": "github" }, "original": { @@ -486,11 +497,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1730602179, - "narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=", + "lastModified": 1731797254, + "narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c", + "rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59", "type": "github" }, "original": { @@ -502,11 +513,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1731570228, - "narHash": "sha256-mLuo8lZViwYdQQkA+hs6kTCPzAw1VR6O0jtXS1eC+Yc=", + "lastModified": 1731815985, + "narHash": "sha256-PgX3UFz1YESfEeGmp2HYYBc/3Vp59bPbBLtNN4VMIgI=", "owner": "xinyangli", "repo": "nixpkgs", - "rev": "8cb7e7a9ead084be01f290e26602f40815ea36fe", + "rev": "5ddf4ef59567ff1e43adacde9f677f2cbd958287", "type": "github" }, "original": { @@ -544,11 +555,11 @@ }, "nur": { "locked": { - "lastModified": 1731569820, - "narHash": "sha256-5i2hiBMnhqLVXpnmPwvLJKB5Tn816Z+9UmC5EcL2av4=", + "lastModified": 1731815686, + "narHash": "sha256-6HPZVrwQOZzeaW5QseyXnghK76a3aDnRoQf+L+cpNms=", "owner": "nix-community", "repo": "NUR", - "rev": "6e804f7059440328e36f002f6eead1fd9b8eef43", + "rev": "4cde5b2ea07d8c05570d7305738a9870b1a14700", "type": "github" }, "original": { @@ -559,7 +570,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "ixx": "ixx", "nixpkgs": [ "my-nixvim", @@ -585,7 +596,7 @@ "inputs": { "catppuccin": "catppuccin", "colmena": "colmena", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "home-manager": "home-manager", "my-nixvim": "my-nixvim", "nix-index-database": "nix-index-database", @@ -605,11 +616,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1731364708, - "narHash": "sha256-HC0anOL+KmUQ2hdRl0AtunbAckasxrkn4VLmxbW/WaA=", + "lastModified": 1731814239, + "narHash": "sha256-TGnMXCeXS924w9W6CvRFtUCUFr8E/RK138lHxU3vcw8=", "owner": "Mic92", "repo": "sops-nix", - "rev": "4c91d52db103e757fc25b58998b0576ae702d659", + "rev": "47fc1d8c72dbd69b32ecb2019b5b648da3dd20ce", "type": "github" }, "original": { @@ -618,6 +629,22 @@ "type": "github" } }, + "stable": { + "locked": { + "lastModified": 1730883749, + "narHash": "sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "dba414932936fde69f0606b4f1d87c5bc0003ede", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, diff --git a/flake.nix b/flake.nix index 42f1e30..12522d4 100644 --- a/flake.nix +++ b/flake.nix @@ -34,9 +34,7 @@ colmena = { url = "github:zhaofengli/colmena"; - inputs.stable.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs"; - inputs.flake-utils.follows = "flake-utils"; }; nix-index-database = { @@ -264,7 +262,7 @@ packages = with pkgs; [ nix git - colmena + inputs.colmena.packages.${system}.colmena sops nix-output-monitor nil diff --git a/home/xin/calcite.nix b/home/xin/calcite.nix index e0b4693..3b3c4ea 100644 --- a/home/xin/calcite.nix +++ b/home/xin/calcite.nix @@ -78,6 +78,14 @@ in }; neovim = { enable = true; + font = { + normal = [ + "JetbrainsMono Nerd Font" + "Noto Sans Mono CJK SC" + "Ubuntu" + ]; + size = 12.0; + }; }; vscode = { enable = true; diff --git a/machines/calcite/configuration.nix b/machines/calcite/configuration.nix index aaa71d0..60480c1 100644 --- a/machines/calcite/configuration.nix +++ b/machines/calcite/configuration.nix @@ -282,7 +282,6 @@ in zotero # onlyoffice-bin wpsoffice - zed-editor config.nur.repos.linyinfeng.wemeet diff --git a/machines/massicot/default.nix b/machines/massicot/default.nix index ecbc6e2..611b30d 100644 --- a/machines/massicot/default.nix +++ b/machines/massicot/default.nix @@ -54,6 +54,10 @@ git ]; + # Disable docs on servers + documentation.nixos.enable = false; + documentation.man.enable = false; + system.stateVersion = "22.11"; networking = { diff --git a/machines/massicot/kanidm-provision.nix b/machines/massicot/kanidm-provision.nix index 31cd6e6..ef8323b 100644 --- a/machines/massicot/kanidm-provision.nix +++ b/machines/massicot/kanidm-provision.nix @@ -73,8 +73,8 @@ systems.oauth2 = { forgejo = { displayName = "ForgeJo"; - originUrl = "https://git.xinyang.life/"; - originLanding = "https://git.xinyang.life/user/oauth2/kandim"; + originUrl = "https://git.xinyang.life/user/oauth2/kanidm/callback"; + originLanding = "https://git.xinyang.life/user/oauth2/kanidm"; allowInsecureClientDisablePkce = true; scopeMaps = { forgejo-access = [ @@ -96,8 +96,8 @@ }; gts = { displayName = "GoToSocial"; - originUrl = "https://xinyang.life/"; - originLanding = "https://xinyang.life/"; + originUrl = "https://xinyang.life/auth/callback"; + originLanding = "https://xinyang.life/auth/callback"; allowInsecureClientDisablePkce = true; scopeMaps = { gts-users = [ @@ -133,7 +133,7 @@ hedgedoc = { displayName = "HedgeDoc"; - originUrl = "https://docs.xinyang.life/"; + originUrl = "https://docs.xinyang.life/auth/oauth2/callback"; originLanding = "https://docs.xinyang.life/auth/oauth2"; allowInsecureClientDisablePkce = true; scopeMaps = { @@ -147,9 +147,9 @@ immich = { displayName = "Immich"; originUrl = [ - "https://immich.xinyang.life:8000/api/oauth/mobile-redirect/" - "https://immich.xinyang.life:8000/auth/login/" - "https://immich.xinyang.life:8000/user-settings/" + "https://immich.xinyang.life:8000/api/oauth/mobile-redirect" + "https://immich.xinyang.life:8000/auth/login" + "https://immich.xinyang.life:8000/user-settings" ]; originLanding = "https://immich.xinyang.life:8000/auth/login?autoLaunch=0"; allowInsecureClientDisablePkce = true; @@ -163,8 +163,9 @@ }; miniflux = { displayName = "Miniflux"; - originUrl = "https://rss.xinyang.life/"; - originLanding = "https://rss.xinyang.life/"; + originUrl = "https://rss.xinyang.life/oauth2/oidc/callback"; + + originLanding = "https://rss.xinyang.life/oauth2/oidc/redirect"; scopeMaps = { miniflux-users = [ "openid" @@ -175,7 +176,7 @@ }; grafana = { displayName = "Grafana"; - originUrl = "https://grafana.xinyang.life/"; + originUrl = "https://grafana.xinyang.life/login/generic_oauth"; originLanding = "https://grafana.xinyang.life/"; scopeMaps = { grafana-users = [ diff --git a/modules/home-manager/alacritty.nix b/modules/home-manager/alacritty.nix index afe00ea..84fac8c 100644 --- a/modules/home-manager/alacritty.nix +++ b/modules/home-manager/alacritty.nix @@ -21,7 +21,7 @@ in "alacritty-zellij" ]; }; - font.size = 10.0; + font.size = 12.0; window = { resize_increments = true; dynamic_padding = true; diff --git a/modules/home-manager/vim.nix b/modules/home-manager/vim.nix index 0709791..bd41ca5 100644 --- a/modules/home-manager/vim.nix +++ b/modules/home-manager/vim.nix @@ -5,9 +5,29 @@ ... }: let - inherit (lib) mkIf mkEnableOption getExe; + inherit (lib) + mkIf + mkEnableOption + getExe + types + attrsets + ; cfg = config.custom-hm.neovim; tomlFormat = pkgs.formats.toml { }; + fontItem = + with types; + either str (submodule { + options = { + family = { + type = str; + }; + style = { + type = nullOr str; + default = null; + }; + }; + }); + fontType = types.either fontItem (types.listOf fontItem); neovideConfig = { neovim-bin = getExe pkgs.nixvim; fork = true; @@ -17,6 +37,78 @@ in { options.custom-hm.neovim = { enable = mkEnableOption "neovim configurations"; + font = { + # Required options + normal = lib.mkOption { + type = fontType; + description = '' + The normal font description. Can be: + - A table with "family" (required) and "style" (optional). + - A string indicating the font family. + - An array of strings or tables as described above. + ''; + }; + + size = lib.mkOption { + type = lib.types.float; + description = "Required font size."; + }; + + # Optional options + bold = lib.mkOption { + type = types.nullOr fontType; + default = null; + description = '' + Optional bold font description. Can be: + - A table with "family" (optional) and "style" (optional). + - A string indicating the font family. + - An array of strings or tables as described above. + ''; + }; + + italic = lib.mkOption { + type = types.nullOr fontType; + default = null; + description = "Optional italic font description."; + }; + + bold_italic = lib.mkOption { + type = types.nullOr fontType; + default = null; + description = "Optional bold-italic font description."; + }; + + features = lib.mkOption { + type = types.nullOr (lib.types.attrsOf (lib.types.listOf lib.types.str)); + default = { }; + description = '' + Optional font features. A table where the key is the font family and + the value is a list of font features. Each feature can be: + - + (e.g., +ss01) + - - (e.g., -calt) + - = (e.g., ss02=2) + ''; + }; + + width = lib.mkOption { + type = types.nullOr types.float; + default = null; + description = "Optional font width."; + }; + + hinting = lib.mkOption { + type = types.nullOr types.str; + default = null; + description = "Optional font hinting (none, slight, medium, full)."; + }; + + edging = lib.mkOption { + type = types.nullOr types.str; + default = null; + description = "Optional font edging (none, antialiased, subpixel)."; + }; + + }; }; config = mkIf cfg.enable { home.packages = with pkgs; [ @@ -25,7 +117,12 @@ in ]; programs.neovim.enable = false; home.file.".config/neovide/config.toml" = { - source = tomlFormat.generate "neovide-config" neovideConfig; + source = tomlFormat.generate "neovide-config" ( + neovideConfig + // (attrsets.filterAttrsRecursive (n: v: v != null) { + font = cfg.font; + }) + ); }; }; } diff --git a/modules/home-manager/zellij.nix b/modules/home-manager/zellij.nix index be2d4fe..d925365 100644 --- a/modules/home-manager/zellij.nix +++ b/modules/home-manager/zellij.nix @@ -29,6 +29,7 @@ in unbind "Alt h" "Alt l" "Alt j" "Alt k" } unbind "Ctrl p" "Ctrl n" + unbind "Alt f" } ''; };