diff --git a/flake.lock b/flake.lock index 6b21782..bd093cb 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,58 @@ { "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1782073106, + "narHash": "sha256-dnS5SaZlPqR1E0dPXaPc+lFkBwLUbAgbwsVMk7uA6dY=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "6d6e2384f381def4ea4ea81543cba4bbdac72457", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" @@ -18,6 +71,400 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1776511930, + "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "39435900785d0c560c6ae8777d29f28617d031ef", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1782566056, + "narHash": "sha256-haEZcHzYrePnjFOYSWTbxm/Nrla0aPslJfmvdCvqtVc=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "c6e7b9f673f4360bc813d3dc75028f75ee88d3f8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "hyprland": "hyprland_2", + "nixpkgs": "nixpkgs_2", + "wrappers": "wrappers" + }, + "locked": { + "lastModified": 1783110854, + "narHash": "sha256-qDk/Ds3tODJxqNo1n+N1GKURtHw2hoJnE3OuOJwDzgM=", + "ref": "refs/heads/main", + "rev": "0fea6f14505e1e381a3583d99be671d9461325de", + "revCount": 31, + "type": "git", + "url": "https://git.voidarc.co.uk/voidarc/hypr" + }, + "original": { + "type": "git", + "url": "https://git.voidarc.co.uk/voidarc/hypr" + } + }, + "hyprland-guiutils": { + "inputs": { + "aquamarine": [ + "hyprland", + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprland", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1782563850, + "narHash": "sha256-rs/EzgrgPHbCtJjFZN4aR1HYldH/0NtGAempWVpWQTs=", + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "rev": "5ba080ee036c30cb2485f2647ff8a61f7aa08178", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1772460177, + "narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland_2": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", + "hyprland-protocols": "hyprland-protocols", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1783106555, + "narHash": "sha256-D+CFZ784rsLLhIjGjlmiR8TBbjZ1N8NbD+3u8HF0nuw=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "37b02954ec347642edcb8eefdf15846d2da9180f", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777320127, + "narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "090117506ddc3d7f26e650ff344d378c2ec329cc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprtoolkit": { + "inputs": { + "aquamarine": [ + "hyprland", + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland", + "hyprland-guiutils", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "hyprland", + "hyprland-guiutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "hyprland-guiutils", + "systems" + ] + }, + "locked": { + "lastModified": 1782554491, + "narHash": "sha256-+p3MlyN/nqRefcf2IckPlGRUn9+hielqpS9XClbLleM=", + "owner": "hyprwm", + "repo": "hyprtoolkit", + "rev": "bdba25ced39ea39ab004a8f31593ba0b0ff1ca35", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprtoolkit", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1783002634, + "narHash": "sha256-xGqHIUK0wIZoW7SiMalwvO6uGOO/VrlQwoRobpE7dDI=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "41fb809557abd29a57151b6e1aaeabd05f9437e1", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777159683, + "narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1778410714, + "narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, "import-tree": { "locked": { "lastModified": 1778781969, @@ -35,16 +482,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1782847225, - "narHash": "sha256-JC9PjqKYG9ve5U8aDOLQipp3+KLANBHUvGdLZlxzdKI=", - "owner": "nixos", + "lastModified": 1782467914, + "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "95ca1e203c0750115fd4a6f17d5a245dfe6b1edd", + "rev": "e73de5be04e0eff4190a1432b946d469c794e7b4", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-26.05", + "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -65,6 +512,54 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1782723713, + "narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1773734432, + "narHash": "sha256-IF5ppUWh6gHGHYDbtVUyhwy/i7D261P7fWD1bPefOsw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cda48547b432e8d3b18b4180ba07473762ec8558", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1782847225, + "narHash": "sha256-JC9PjqKYG9ve5U8aDOLQipp3+KLANBHUvGdLZlxzdKI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "95ca1e203c0750115fd4a6f17d5a245dfe6b1edd", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1782467914, "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=", @@ -80,7 +575,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_6": { "locked": { "lastModified": 1780336545, "narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=", @@ -96,7 +591,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_7": { "locked": { "lastModified": 1780336545, "narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=", @@ -114,8 +609,8 @@ }, "nvim": { "inputs": { - "nixpkgs": "nixpkgs_2", - "wrappers": "wrappers" + "nixpkgs": "nixpkgs_5", + "wrappers": "wrappers_2" }, "locked": { "lastModified": 1783103301, @@ -131,13 +626,53 @@ "url": "https://git.voidarc.co.uk/voidarc/nvim" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781733627, + "narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "flake-parts": "flake-parts", + "hyprland": "hyprland", "import-tree": "import-tree", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_4", "nvim": "nvim", - "wrappers": "wrappers_2" + "wrappers": "wrappers_3" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" } }, "wrappers": { @@ -145,22 +680,22 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1782135443, - "narHash": "sha256-vAmbArdCyjqpVW+37aCy/PMBOLIqukUXLQuEKLwUhA4=", - "owner": "BirdeeHub", - "repo": "nix-wrapper-modules", - "rev": "6e7f66fa2cdf4d63162580b438f7fcf87c28a46f", + "lastModified": 1782375095, + "narHash": "sha256-bRepNpAluz2i0IIk7Tmzw/4BkyOrwABvc66NEgXPEhA=", + "owner": "lassulus", + "repo": "wrappers", + "rev": "cd780e92c0fa66c2e721e1d91894f3db13b9f2b4", "type": "github" }, "original": { - "owner": "BirdeeHub", - "repo": "nix-wrapper-modules", + "owner": "lassulus", + "repo": "wrappers", "type": "github" } }, "wrappers_2": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1782135443, @@ -175,6 +710,71 @@ "repo": "nix-wrapper-modules", "type": "github" } + }, + "wrappers_3": { + "inputs": { + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1782135443, + "narHash": "sha256-vAmbArdCyjqpVW+37aCy/PMBOLIqukUXLQuEKLwUhA4=", + "owner": "BirdeeHub", + "repo": "nix-wrapper-modules", + "rev": "6e7f66fa2cdf4d63162580b438f7fcf87c28a46f", + "type": "github" + }, + "original": { + "owner": "BirdeeHub", + "repo": "nix-wrapper-modules", + "type": "github" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1782311043, + "narHash": "sha256-07zLc2M3/ax+JsjxGTft17/Joua41LHE9/9AC/F9zeU=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "882ad01e195ce201b07c618bbee44a0cad8b9e5a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 1a23d9c..7d0f8ae 100644 --- a/flake.nix +++ b/flake.nix @@ -5,8 +5,13 @@ # System nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; - # Apps - nvim.url = "git+https://git.voidarc.co.uk/voidarc/nvim"; + # Apps + nvim.url = "git+https://git.voidarc.co.uk/voidarc/nvim"; + hyprland.url = "git+https://git.voidarc.co.uk/voidarc/hypr"; + otter-launcher = { + url = "github:kuokuo123/otter-launcher"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # Flake parts flake-parts.url = "github:hercules-ci/flake-parts"; diff --git a/modules/features/hypr/default.nix b/modules/features/hypr/default.nix new file mode 100644 index 0000000..0d98316 --- /dev/null +++ b/modules/features/hypr/default.nix @@ -0,0 +1,53 @@ +{ + self, + inputs, + ... +}: { + flake.nixosModules.hypr = { + pkgs, + lib, + ... + }: { + programs.hypr = { + enable = true; + package = self.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; + }; + }; + perSystem = { + pkgs, + lib, + self', + ... + }: { + packages = { + hyprland = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.default; + wpaperd = let + config-file = builtins.toFile "config.toml" '' + [any] + path = "${./wallpapers}" + + [HDMI-A-1] + path = "${./wallpapers/topo1.png}" + + [DP-1] + path = "${./wallpapers/topo2.png}" + + [DP-2] + path = "${./wallpapers/topo3.png}" + ''; + in + inputs.wrappers.lib.wrapPackage ({ + config, + wlib, + lib, + ... + }: { + inherit pkgs; + package = pkgs.wpaperd; + flags = { + "--config" = config-file; + }; + }); + }; + }; +} diff --git a/modules/features/hypr/wallpapers/aesthetic.jpg b/modules/features/hypr/wallpapers/aesthetic.jpg new file mode 100644 index 0000000..2a539c6 Binary files /dev/null and b/modules/features/hypr/wallpapers/aesthetic.jpg differ diff --git a/modules/features/hypr/wallpapers/bars.jpg b/modules/features/hypr/wallpapers/bars.jpg new file mode 100644 index 0000000..9c1668f Binary files /dev/null and b/modules/features/hypr/wallpapers/bars.jpg differ diff --git a/modules/features/hypr/wallpapers/black-hole.png b/modules/features/hypr/wallpapers/black-hole.png new file mode 100644 index 0000000..a1b3e2b Binary files /dev/null and b/modules/features/hypr/wallpapers/black-hole.png differ diff --git a/modules/features/hypr/wallpapers/city-horizon.jpg b/modules/features/hypr/wallpapers/city-horizon.jpg new file mode 100644 index 0000000..0836f1d Binary files /dev/null and b/modules/features/hypr/wallpapers/city-horizon.jpg differ diff --git a/modules/features/hypr/wallpapers/dragon.jpg b/modules/features/hypr/wallpapers/dragon.jpg new file mode 100644 index 0000000..10e226a Binary files /dev/null and b/modules/features/hypr/wallpapers/dragon.jpg differ diff --git a/modules/features/hypr/wallpapers/flower-field.jpg b/modules/features/hypr/wallpapers/flower-field.jpg new file mode 100644 index 0000000..e2b930b Binary files /dev/null and b/modules/features/hypr/wallpapers/flower-field.jpg differ diff --git a/modules/features/hypr/wallpapers/ocean.png b/modules/features/hypr/wallpapers/ocean.png new file mode 100644 index 0000000..8c61b4a Binary files /dev/null and b/modules/features/hypr/wallpapers/ocean.png differ diff --git a/modules/features/hypr/wallpapers/pink-clouds.jpg b/modules/features/hypr/wallpapers/pink-clouds.jpg new file mode 100644 index 0000000..6b45408 Binary files /dev/null and b/modules/features/hypr/wallpapers/pink-clouds.jpg differ diff --git a/modules/features/hypr/wallpapers/sakura-trees-over-river.jpg b/modules/features/hypr/wallpapers/sakura-trees-over-river.jpg new file mode 100644 index 0000000..bfff533 Binary files /dev/null and b/modules/features/hypr/wallpapers/sakura-trees-over-river.jpg differ diff --git a/modules/features/hypr/wallpapers/sousou-no-frieren-flowers.png b/modules/features/hypr/wallpapers/sousou-no-frieren-flowers.png new file mode 100644 index 0000000..f203b75 Binary files /dev/null and b/modules/features/hypr/wallpapers/sousou-no-frieren-flowers.png differ diff --git a/modules/features/hypr/wallpapers/sunset.jpg b/modules/features/hypr/wallpapers/sunset.jpg new file mode 100644 index 0000000..971a1c9 Binary files /dev/null and b/modules/features/hypr/wallpapers/sunset.jpg differ diff --git a/modules/features/hypr/wallpapers/topo1.png b/modules/features/hypr/wallpapers/topo1.png new file mode 100644 index 0000000..7e5c127 Binary files /dev/null and b/modules/features/hypr/wallpapers/topo1.png differ diff --git a/modules/features/hypr/wallpapers/topo2.png b/modules/features/hypr/wallpapers/topo2.png new file mode 100644 index 0000000..aff0c9c Binary files /dev/null and b/modules/features/hypr/wallpapers/topo2.png differ diff --git a/modules/features/hypr/wallpapers/topo3.png b/modules/features/hypr/wallpapers/topo3.png new file mode 100644 index 0000000..39729d0 Binary files /dev/null and b/modules/features/hypr/wallpapers/topo3.png differ diff --git a/modules/features/hypr/wallpapers/tree.jpg b/modules/features/hypr/wallpapers/tree.jpg new file mode 100644 index 0000000..0a84979 Binary files /dev/null and b/modules/features/hypr/wallpapers/tree.jpg differ diff --git a/modules/features/hypr/wallpapers/unused/wide_lines.png.unused b/modules/features/hypr/wallpapers/unused/wide_lines.png.unused new file mode 100644 index 0000000..8774cf4 Binary files /dev/null and b/modules/features/hypr/wallpapers/unused/wide_lines.png.unused differ diff --git a/modules/features/hypr/wallpapers/unused/wide_lines2.png.unused b/modules/features/hypr/wallpapers/unused/wide_lines2.png.unused new file mode 100644 index 0000000..8dcbaa1 Binary files /dev/null and b/modules/features/hypr/wallpapers/unused/wide_lines2.png.unused differ diff --git a/modules/features/hypr/wallpapers/voyager-8.jpg b/modules/features/hypr/wallpapers/voyager-8.jpg new file mode 100644 index 0000000..2f3f205 Binary files /dev/null and b/modules/features/hypr/wallpapers/voyager-8.jpg differ diff --git a/modules/features/hypr/wallpapers/wallpaper-sun.jpg b/modules/features/hypr/wallpapers/wallpaper-sun.jpg new file mode 100755 index 0000000..b1a9ad0 Binary files /dev/null and b/modules/features/hypr/wallpapers/wallpaper-sun.jpg differ diff --git a/modules/features/hypr/wallpapers/waves.png b/modules/features/hypr/wallpapers/waves.png new file mode 100644 index 0000000..8df8e8a Binary files /dev/null and b/modules/features/hypr/wallpapers/waves.png differ diff --git a/modules/features/otter-launcher/cat.png b/modules/features/otter-launcher/cat.png new file mode 100644 index 0000000..5eccee7 Binary files /dev/null and b/modules/features/otter-launcher/cat.png differ diff --git a/modules/features/otter-launcher/config.toml b/modules/features/otter-launcher/config.toml new file mode 100644 index 0000000..621aab6 --- /dev/null +++ b/modules/features/otter-launcher/config.toml @@ -0,0 +1,113 @@ +[general] +default_module = "app" # module to run when no prefix is matched +empty_module = "app" # run with an empty prompt +exec_cmd = "zsh -c" # exec command of your shell +vi_mode = false # set true to use vi keybinds, false emacs keybinds +esc_to_abort = true # useful for vi users +cheatsheet_entry = "?" # when prompted, will show a list of configured modules +cheatsheet_viewer = "less -R; clear" # command to show cheatsheet; through piping stdout +clear_screen_after_execution = false +loop_mode = false # don't quit after executing a module, useful with scratchpads; stderr is hidden in loop mode +external_editor = "nvim" # if set, press ctrl+x ctrl+ee (or v in vi normal mode) to edit prompt in the specified program +delay_startup = 0 # sometimes the otter runs too fast even before the terminal window is ready; this slows it down by milliseconds; useful when chafa image is skewed + + +# ANSI color codes are allowed. However, \x1b should be replaced with \u001B, because the rust toml crate cannot read \x as an escaped character +[interface] +# use three quotes to write longer codes +header = """ + \u001B[1;36m$USER@nixos\u001B[0m + """ +header_cmd = "" # run a command and print stdout above the header +header_cmd_trimmed_lines = 0 # remove trailing lines from header_cmd output, in case of some programs appending excessive empty lines +place_holder = "execute" # at the input field +suggestion_mode = "list" # available options: list, hint +footer = "" # add a line after suggestion list +suggestion_lines = 8 # 0 to disable suggestions and tab completion +list_prefix = " " +selection_prefix = "\u001B[31;1m " +prefix_padding = 3 # format prefixes to have a uniformed width +default_module_message = " \u001B[33mlaunch\u001B[0m app" # shown when the default module is in use +empty_module_message = "" # shown when the empty module is in use +customized_list_order = false # false to list modules alphabetically; true to list as per the configured order in the below [[modules]] section +indicator_with_arg_module = " * " # the sign showing whether a module should run with an argument +indicator_no_arg_module = " " +# below color options affect all modules; per-module coloring can be configured using ansi codes individually +prefix_color = "\u001B[33m" +description_color = "\u001B[39m" +place_holder_color = "\u001B[30m" +hint_color = "\u001B[30m" # suggestion color in hint mode +# move the interface rightward or downward +move_interface_right = 21 +move_interface_down = 0 + +[overlay] +overlay_cmd = """ +chafa -s 20x20 ~/.config/otter-launcher/cat.png +""" +overlay_trimmed_lines = 1 + +[[modules]] +description = "programs" +prefix = "app" +cmd = """ +hyprctl dispatch 'hl.dsp.window.resize({x = 700, y = 700, window = activewindow})' && +hyprctl dispatch 'hl.dsp.window.center({window = activewindow})'&& +hyprctl dispatch "hl.dsp.exec_cmd('$(fsel --no-exec)')" +""" + +[[modules]] +description = "bluetooth" +prefix = "bl" +cmd = """ +hyprctl dispatch 'hl.dsp.window.resize({x = 650, y = 400, window = activewindow})' && +hyprctl dispatch 'hl.dsp.window.center({window = activewindow})'&& +bluetui +""" + +[[modules]] +description = "nixos wiki" +prefix = "nw" +cmd = """ +hyprctl dispatch "hl.dsp.exec_cmd('firefox --new-window https://wiki.nixos.org/w/index.php?search={}')" +""" +with_argument = true +url_encode = true +unbind_proc = true + +[[modules]] +description = "nixpkgs" +prefix = "nix" +cmd = """ +hyprctl dispatch "hl.dsp.exec_cmd('firefox --new-window https://search.nixos.org/packages?query={}')" +""" +with_argument = true +url_encode = true +unbind_proc = true + +[[modules]] +description = "jellyfin" +prefix = "jf" +cmd = """ +hyprctl dispatch 'hl.dsp.exec_cmd("kitty --class jf-tui -e jellyfin-tui", {workspace = "special:music"})' +""" + +[[modules]] +description = "youtube" +prefix = "y" +cmd = """ +hyprctl dispatch "hl.dsp.exec_cmd('firefox --new-window https://www.youtube.com')" +""" +with_argument = false +url_encode = true +unbind_proc = true + +[[modules]] +description = "whatsapp" +prefix = "w" +cmd = """ +hyprctl dispatch "hl.dsp.exec_cmd('firefox --new-window https://web.whatsapp.com')" +""" +with_argument = false +url_encode = true +unbind_proc = true diff --git a/modules/features/otter-launcher/default.nix b/modules/features/otter-launcher/default.nix new file mode 100644 index 0000000..fdb965f --- /dev/null +++ b/modules/features/otter-launcher/default.nix @@ -0,0 +1,49 @@ +{ + self, + inputs, + ... +}: { + flake.nixosModules.hypr = { + pkgs, + lib, + ... + }: { + programs.hypr = { + enable = true; + package = self.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; + }; + }; + perSystem = { + pkgs, + lib, + self', + ... + }: { + packages = { + otter-launcher = let + config-file = ./config.toml; + extra-config = '' + [overlay] + overlay_cmd = """ + ${pkgs.chafa} -s 20x20 ${./cat.png} + """ + ''; + in + inputs.wrappers.lib.wrapPackage ({ + config, + wlib, + lib, + ... + }: { + inherit pkgs; + package = inputs.otter-launcher.packages.${pkgs.stdenv.hostPlatform.system}.default; + flags = { + "-c" = lib.mkMerge [ + config-file + extra-config + ]; + }; + }); + }; + }; +}