diff --git a/flake.lock b/flake.lock index 454f4e5..bc1eb89 100644 --- a/flake.lock +++ b/flake.lock @@ -41,11 +41,11 @@ ] }, "locked": { - "lastModified": 1728902391, - "narHash": "sha256-44bnoY0nAvbBQ/lVjmn511yL39Sv7SknV0BDxn34P3Q=", + "lastModified": 1729527199, + "narHash": "sha256-D5/YksfRga8Akd04ZtIkuYSIOjXVrAzQIQBSeplokzU=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "9874e08eec85b5542ca22494e127b0cdce46b786", + "rev": "8d732fa8aff8b12ef2b1e2f00fc8153e41312b72", "type": "github" }, "original": { @@ -100,11 +100,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1729553509, - "narHash": "sha256-rt0zKilb27nWP/+H4kj94D4axdGpSEQdXp4DU2bJJOM=", + "lastModified": 1730013417, + "narHash": "sha256-nZ6ylS3/FAjsi9wwdZJpzIV0+bgJDAurZAi0w9q1Nxw=", "owner": "rycee", "repo": "nur-expressions", - "rev": "b87a5c6f09e2c64b53dc3b19a42e7ef9352ec360", + "rev": "e9ec8d2766bbe4d242c9255247197372ac64f885", "type": "gitlab" }, "original": { @@ -267,11 +267,11 @@ ] }, "locked": { - "lastModified": 1729321331, - "narHash": "sha256-KVyQq+ez/oB30/WbdNgVD8g/bda34z8NiU187QKQb74=", + "lastModified": 1730016908, + "narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=", "owner": "nix-community", "repo": "home-manager", - "rev": "122f70545b29ccb922e655b08acfe05bfb44ec68", + "rev": "e83414058edd339148dc142a8437edb9450574c8", "type": "github" }, "original": { @@ -329,11 +329,11 @@ ] }, "locked": { - "lastModified": 1729534085, - "narHash": "sha256-4EgQyprji92cmhGaQQsw6eN6cmEkQKs0+MeD7YLgHlg=", + "lastModified": 1729679960, + "narHash": "sha256-RoFKwZsx4RHKUwO8LhEZtmI08VBVrWt3TdzoJgx1HJ0=", "owner": "hyprwm", "repo": "hypridle", - "rev": "918fd78dec258923094ecddc4e317c5b29ec2486", + "rev": "4d2fb9e73eb6b75336ed3eb198e900f94ada24f4", "type": "github" }, "original": { @@ -356,11 +356,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1729553322, - "narHash": "sha256-CjdhWsojvgZEr2t8eK6HaaWmLxirnaEckeXt/kveQNs=", + "lastModified": 1730054738, + "narHash": "sha256-xU5DxVMZXFLcypIo6PvrLRI0+74kOrFTdEykDDEaEkQ=", "owner": "hyprwm", "repo": "hyprland", - "rev": "5e96d738e698f22969ca502d042d5751711c6d8a", + "rev": "5d4b54b01286c10d4b6bf402a772b5938b054ce6", "type": "github" }, "original": { @@ -407,11 +407,11 @@ ] }, "locked": { - "lastModified": 1729534626, - "narHash": "sha256-Qb0PiZuQFH68Kb21ZT3Se1gUUohsfmaBzuBYy7OOM90=", + "lastModified": 1729596320, + "narHash": "sha256-sBPr6O2Ad916f+L7biAjmJVx4TLDITC4joKgeOT47V8=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "082d5c1007b601eccdc882d42530ecb468a40142", + "rev": "4d7f0b5d8b952f31f7d2e29af22ab0a55ca5c219", "type": "github" }, "original": { @@ -494,11 +494,11 @@ ] }, "locked": { - "lastModified": 1729555766, - "narHash": "sha256-sUIsjWpZLplSJXWyJcDZdvDweksXLH5r9GSkwg0kgBw=", + "lastModified": 1730053985, + "narHash": "sha256-jh7PhejwT+XqkkYnpZ6K/Gkqy4tvjN7g/ZBTvlS+Q9Y=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "a093a9eefda2db2430dd1612b2858a55daf14738", + "rev": "edbecc87081756b45bdbea16b63e413473659dcd", "type": "github" }, "original": { @@ -528,11 +528,11 @@ ] }, "locked": { - "lastModified": 1725200438, - "narHash": "sha256-3Cqu8jz19YyWqhneac6QFfadlyxZ4s3saSLmmpYMOe4=", + "lastModified": 1729890887, + "narHash": "sha256-Vg98Dm6MaglEUNNTRgLF2Lxy02FrU5ntnlwsMkBSTKg=", "owner": "hyprwm", "repo": "hyprpaper", - "rev": "1c18ad65032adb891b341292a1edf9e13adf4751", + "rev": "3f8cc92109209364e9d39789b3631e9ac109987a", "type": "github" }, "original": { @@ -686,11 +686,11 @@ ] }, "locked": { - "lastModified": 1729394935, - "narHash": "sha256-2ntUG+NJKdfhlrh/tF+jOU0fOesO7lm5ZZVSYitsvH8=", + "lastModified": 1729999765, + "narHash": "sha256-LYsavZXitFjjyETZoij8usXjTa7fa9AIF3Sk3MJSX+Y=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "04f8a11f247ba00263b060fbcdc95484fd046104", + "rev": "0e3a8778c2ee218eff8de6aacf3d2fa6c33b2d4f", "type": "github" }, "original": { @@ -757,11 +757,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1728888510, - "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", + "lastModified": 1729413321, + "narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", + "rev": "1997e4aa514312c1af7e2bda7fad1644e778ff26", "type": "github" }, "original": { @@ -773,11 +773,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1729256560, - "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", + "lastModified": 1729880355, + "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", + "rev": "18536bf04cd71abd345f9579158841376fdd0c5a", "type": "github" }, "original": { @@ -971,11 +971,11 @@ "systems": "systems_4" }, "locked": { - "lastModified": 1729633458, - "narHash": "sha256-5iZwH9lnFo/g3sQ2Zslbl2dbVRpysO02bi7uSOpyL3U=", + "lastModified": 1729695103, + "narHash": "sha256-1nesOKIa7zAQ3LVbWzvoxRE9PG0P9SAzBi2Ye1K3SWU=", "owner": "notashelf", "repo": "nvf", - "rev": "71e2ae1db492b2c9e27ae53521a50dfbf426dc06", + "rev": "da86e554a6433fe4ebdb390494c072b12b0b624b", "type": "github" }, "original": { @@ -2745,11 +2745,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1728778939, - "narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=", + "lastModified": 1729104314, + "narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", + "rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6", "type": "github" }, "original": { @@ -3000,11 +3000,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1728141581, - "narHash": "sha256-+wg0Avbw/MC2x3CQK4LyJHCPf+oPllJZzU2p+S/B7MU=", + "lastModified": 1729787428, + "narHash": "sha256-kGSM7b4+X5LObd6AdgQZABU241ZzHGm24xaiy33kwBI=", "owner": "dj95", "repo": "zjstatus", - "rev": "6d13e481aceacd3efe583fb6c442f30e8909f555", + "rev": "c74e310c35fb7ec6b59a1c73720db4d6d8e236a1", "type": "github" }, "original": { diff --git a/outputs/apps.nix b/outputs/apps.nix index 95e35df..110e702 100644 --- a/outputs/apps.nix +++ b/outputs/apps.nix @@ -3,7 +3,7 @@ in { perSystem = {config, ...}: { apps = { - ooks-vim.program = getExe config.packages.ook-vim; + ook-vim.program = getExe config.packages.ook-vim; default = config.apps.ook-vim; }; }; diff --git a/outputs/default.nix b/outputs/default.nix index a0f66b6..9fba190 100644 --- a/outputs/default.nix +++ b/outputs/default.nix @@ -5,5 +5,6 @@ ./hosts ./keys.nix ./pkgs + ./images.nix ]; } diff --git a/outputs/hosts/default.nix b/outputs/hosts/default.nix index d2b141c..66b5217 100644 --- a/outputs/hosts/default.nix +++ b/outputs/hosts/default.nix @@ -1,5 +1,6 @@ { imports = [ ./workstations.nix + ./servers.nix ]; } diff --git a/outputs/hosts/servers.nix b/outputs/hosts/servers.nix new file mode 100644 index 0000000..24cfc7c --- /dev/null +++ b/outputs/hosts/servers.nix @@ -0,0 +1,18 @@ +{ + withSystem, + ook, + ... +}: let + inherit (ook.lib.builders) mkServer; +in { + flake.nixosConfigurations = { + ooknode = mkServer { + inherit withSystem; + system = "x86_64-linux"; + hostname = "ooknode"; + type = "vm"; + profile = "linode"; + services = []; + }; + }; +} diff --git a/outputs/images.nix b/outputs/images.nix new file mode 100644 index 0000000..40293f8 --- /dev/null +++ b/outputs/images.nix @@ -0,0 +1,11 @@ +{ + ook, + self, + ... +}: let + inherit (ook.lib.builders) mkImage; +in { + flake.images = { + ooknode = self.nixosConfigurations.ooknode.config.system.build.image; + }; +} diff --git a/outputs/pkgs/default.nix b/outputs/pkgs/default.nix index 2fd7ca7..6c177d9 100644 --- a/outputs/pkgs/default.nix +++ b/outputs/pkgs/default.nix @@ -2,10 +2,13 @@ perSystem = {pkgs, ...}: let inherit (ook.lib) mkNeovim; ook-vim-config = import ./ook-vim; + inherit (pkgs) callPackage; in { packages = { - repopack = pkgs.callPackage ./repopack {}; - live-buds-cli = pkgs.callPackage ./live-buds-cli {}; + repopack = callPackage ./repopack {}; + live-buds-cli = callPackage ./live-buds-cli {}; + instawow-tsm = callPackage ./instawow/plugins/tsm.nix {}; + ook-vim = mkNeovim pkgs [ook-vim-config]; }; }; diff --git a/outputs/pkgs/instawow/default.nix b/outputs/pkgs/instawow/default.nix new file mode 100644 index 0000000..9584fab --- /dev/null +++ b/outputs/pkgs/instawow/default.nix @@ -0,0 +1,54 @@ +# Credit github:seirl +# +{ + lib, + python3, + fetchFromGitHub, + plugins ? [], +}: +python3.pkgs.buildPythonApplication rec { + pname = "instawow"; + version = "4.7.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "layday"; + repo = pname; + rev = "refs/tags/v${version}"; + sha256 = "sha256-tk/Lugjdzufl8VPcpj7R2q81SBE/+KtS3VhsXQ2VKZM="; + }; + + extras = []; # Disable GUI, most dependencies are not packaged. + + nativeBuildInputs = with python3.pkgs; [ + hatchling + hatch-vcs + ]; + propagatedBuildInputs = with python3.pkgs; + [ + aiohttp + aiohttp-client-cache + attrs + cattrs + click + diskcache + iso8601 + loguru + packaging + pluggy + prompt-toolkit + rapidfuzz + truststore + typing-extensions + yarl + ] + ++ plugins; + + meta = with lib; { + homepage = "https://github.com/layday/instawow"; + description = "World of Warcraft add-on manager CLI and GUI"; + mainProgram = "instawow"; + license = licenses.gpl3; + maintainers = with maintainers; [seirl]; + }; +} diff --git a/outputs/pkgs/instawow/plugins/tsm.nix b/outputs/pkgs/instawow/plugins/tsm.nix new file mode 100644 index 0000000..c26068a --- /dev/null +++ b/outputs/pkgs/instawow/plugins/tsm.nix @@ -0,0 +1,43 @@ +# Credit github:seirl +# +{ + lib, + python3, + fetchFromGitHub, + instawow, +}: let + inherit (builtins) attrValues; +in + python3.pkgs.buildPythonPackage rec { + pname = "instawow-tsm"; + version = "72edf2ba3850eaaa5041d5aa1f55166aeee81409"; + + src = fetchFromGitHub { + owner = "seirl"; + repo = "instawow-tsm"; + rev = version; + sha256 = "sha256-+ojxVwPOfy3/3/raROEDS5pWCONAiALCdg7li+K6ZjI="; + }; + + pythonRemoveDeps = [ + "instawow" # Reverse the dependency + ]; + doCheck = false; # tests require dependencies + + nativeBuildInputs = [python3.pkgs.setuptools]; + propagatedBuildInputs = attrValues { + inherit + (python3.pkgs) + aiohttp + click + loguru + ; + }; + + meta = with lib; { + homepage = "https://github.com/seirl/instawow-tsm"; + description = "Instawow plugin for TradeSkillMaster"; + license = lib.licenses.gpl3; + maintainers = with maintainers; [seirl]; + }; + } diff --git a/outputs/pkgs/ook-vim/plugins/utility.nix b/outputs/pkgs/ook-vim/plugins/utility.nix index b769715..eea1e91 100644 --- a/outputs/pkgs/ook-vim/plugins/utility.nix +++ b/outputs/pkgs/ook-vim/plugins/utility.nix @@ -1,5 +1,15 @@ { - vim.binds.whichKey = { - enable = true; + vim = { + binds.whichKey = { + enable = true; + }; + utility = { + preview = { + markdownPreview = { + enable = true; + autoStart = true; + }; + }; + }; }; }