added wpaperd and started on otter

This commit is contained in:
2026-07-04 13:30:24 +01:00
parent cc155d4252
commit 06d93d6e4f
26 changed files with 842 additions and 22 deletions

640
flake.lock generated
View File

@@ -1,5 +1,58 @@
{ {
"nodes": { "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": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
@@ -18,6 +71,400 @@
"type": "github" "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": { "import-tree": {
"locked": { "locked": {
"lastModified": 1778781969, "lastModified": 1778781969,
@@ -35,16 +482,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1782847225, "lastModified": 1782467914,
"narHash": "sha256-JC9PjqKYG9ve5U8aDOLQipp3+KLANBHUvGdLZlxzdKI=", "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "95ca1e203c0750115fd4a6f17d5a245dfe6b1edd", "rev": "e73de5be04e0eff4190a1432b946d469c794e7b4",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "nixos-26.05", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@@ -65,6 +512,54 @@
} }
}, },
"nixpkgs_2": { "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": { "locked": {
"lastModified": 1782467914, "lastModified": 1782467914,
"narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=", "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
@@ -80,7 +575,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1780336545, "lastModified": 1780336545,
"narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=", "narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=",
@@ -96,7 +591,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1780336545, "lastModified": 1780336545,
"narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=", "narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=",
@@ -114,8 +609,8 @@
}, },
"nvim": { "nvim": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_5",
"wrappers": "wrappers" "wrappers": "wrappers_2"
}, },
"locked": { "locked": {
"lastModified": 1783103301, "lastModified": 1783103301,
@@ -131,13 +626,53 @@
"url": "https://git.voidarc.co.uk/voidarc/nvim" "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": { "root": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"hyprland": "hyprland",
"import-tree": "import-tree", "import-tree": "import-tree",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_4",
"nvim": "nvim", "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": { "wrappers": {
@@ -145,22 +680,22 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1782135443, "lastModified": 1782375095,
"narHash": "sha256-vAmbArdCyjqpVW+37aCy/PMBOLIqukUXLQuEKLwUhA4=", "narHash": "sha256-bRepNpAluz2i0IIk7Tmzw/4BkyOrwABvc66NEgXPEhA=",
"owner": "BirdeeHub", "owner": "lassulus",
"repo": "nix-wrapper-modules", "repo": "wrappers",
"rev": "6e7f66fa2cdf4d63162580b438f7fcf87c28a46f", "rev": "cd780e92c0fa66c2e721e1d91894f3db13b9f2b4",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "BirdeeHub", "owner": "lassulus",
"repo": "nix-wrapper-modules", "repo": "wrappers",
"type": "github" "type": "github"
} }
}, },
"wrappers_2": { "wrappers_2": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1782135443, "lastModified": 1782135443,
@@ -175,6 +710,71 @@
"repo": "nix-wrapper-modules", "repo": "nix-wrapper-modules",
"type": "github" "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", "root": "root",

View File

@@ -7,6 +7,11 @@
# Apps # Apps
nvim.url = "git+https://git.voidarc.co.uk/voidarc/nvim"; 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
flake-parts.url = "github:hercules-ci/flake-parts"; flake-parts.url = "github:hercules-ci/flake-parts";

View File

@@ -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;
};
});
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

View File

@@ -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

View File

@@ -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
];
};
});
};
};
}