Package request: kando 🥧 The Cross-Platform Pie Menu.
Project description
Kando will be a pie menu for the desktop. It will be highly customizable and will allow you to create your own menus and actions. For instance, you can use it to control your music player, to open your favorite websites or to simulate shortcuts. It will be available for Windows, Linux and macOS.
Metadata
- homepage URL: https://ko-fi.com/post/Introducing-Ken-Do-L3L7L0FQ2
- source URL: https://github.com/kando-menu/kando
- license: mit
- platforms: linux, darwin
Packaging this from source seems a bit difficult at the moment:
- The project uses
electron-forgefor building electron apps, which useselectron-packageras a build back-end, which is very annoying to work with.- There are no packages ATM in nixpkgs, which use it, however I have a pending PR https://github.com/NixOS/nixpkgs/pull/250627, which actually uses it
- Here are the package subcommand docs: https://electron.github.io/packager/main/interfaces/Options.html
- The app uses
cmake-jswhich tries to fetch some node-api related files from the network, which we can't do. This is probably an issue withcmake-js, and I haven't been able to figure out how to work around this.
The latter made me give up on packaging it from source.
@TomaSajt, there are Appimages available now for each release (starting in July), would it now be possible to work from one of those?
There's some early attempts in the above mentioned issue on the Kando repo
Finally got it to compile from source, though it looks a bit buggy for me (I'm using i3 as the wm, probably that's the issue)
Finally got it to compile from source, though it looks a bit buggy for me (I'm using i3 as the wm, probably that's the issue)
Got an idea on how I can test this package out, so I can see if it runs on Plasma?
Finally got it to compile from source, though it looks a bit buggy for me (I'm using i3 as the wm, probably that's the issue)
Got an idea on how I can test this package out, so I can see if it runs on Plasma?
nix-shell -I nixpkgs=https://github.com/TomaSajt/nixpkgs/archive/kando.tar.gz -p kando
and then run kando
or just clone my branch, and run nix-build -A kando and then run result/bin/kando
nix-shell -I nixpkgs=https://github.com/TomaSajt/nixpkgs/archive/kando.tar.gz -p kandoand then run
kando
Sweet, this works fine. Got Kando up and running on my install of KDE Plasma. It's just currently missing a shortcut, but I'd imagine that the reason why it doesn't have that is because of how nix-shell functions.
Finally got it to compile from source, though it looks a bit buggy for me (I'm using i3 as the wm, probably that's the issue)
On i3 you'll need a compositor for Kando to look good. Else the transparent background will be black.
Sweet, this works fine. Got Kando up and running on my install of KDE Plasma. It's just currently missing a shortcut, but I'd imagine that the reason why it doesn't have that is because of how nix-shell functions.
Are you using Wayland? If so, you'll need to configure the hotkey in KWin's global shortcut settings. See the platform-notes of Kando. On X11, it should be possible to adjust the hotkey in the settings of Kando.
Edit: I just looked at your PR. This looks like an awful lot of fiddling around to get this working. Thanks a ton! I'll try to not change much to the build system in the future :wink:
Are you using Wayland? If so, you'll need to configure the hotkey in KWin's global shortcut settings.
Yeah, I'm using Wayland. It just seems like using CTRL + Win (Meta) might just be tripping up KDE or something. Will probably wait to play around further with this.
I just looked at your PR. This looks like an awful lot of fiddling around to get this working. Thanks a ton! I'll try to not change much to the build system in the future 😉
Am I off base in thinking it would be easier/less fragile to just copy the binaries from the AppImage and bring in the same dependencies?
I assume this is not preferred in the Nix philosophy? I'm interested in making an attempt at writing that build script when I have some free time (currently moving)
Am I off base in thinking it would be easier/less fragile to just copy the binaries from the AppImage and bring in the same dependencies?
I assume this is not preferred in the Nix philosophy? I'm interested in making an attempt at writing that build script when I have some free time (currently moving)
I think I got the derivation to a point where it is no longer that fragile. Sadly, this kind of complexity is required for electron apps.
Yes, it might be easier to package the AppImage, but that's even more fragile IMO. With AppImages we don't really know if we're missing a dependency or not until we run the program, (unlike when we package from source). So automated updates might break the app.
I think I reached a point where I can't improve the derivation anymore, and I'm satisfied with it.
If you want to help this move forward a bit faster, please leave a review on the PR stating which platform you're testing on and whether certain features of the program worked for you or not. I'd appreciate the help.
Alright, for those wondering, if you run it through nixshell, the shortcuts won't work.
So I managed to add it to my own dotfiles by adding this flake, and then adding kando under the outputs:
kando.url = "github:TomaSajt/nixpkgs/kando";
Afterwards, I add this to my "systemPackages = with pkgs;":
inputs.kando.legacyPackages.${pkgs.system}.kando
Just tested out this package, and it works.