elkowar / eww

ElKowars wacky widgets
https://elkowar.github.io/eww
MIT License
9.3k stars 382 forks source link

[FEATURE] Package eww for nixos #227

Closed winston0410 closed 3 years ago

winston0410 commented 3 years ago

Description of the requested feature

Give a clear and concise description of the feature you are proposing, including examples for when it would be useful.

It will be awesome if eww can be packaged for nixos for easy installtion.

Additional context

I have seen a PR in nix's repo, yet somehow it was rejected as eww is requiring Rust nightly.

elkowar commented 3 years ago

If you want to see this project be pckaged in your package manager of choice: Do it! It's unreasonable to assume that the project maintainer (in this case, me) would be able to support packages for all distros out there. Nixpkgs specifically seems to have some limitations regarding rust nightly. I don't have all the details about this, so I can't really help there 😄

VuiMuich commented 3 years ago

Btw: Is there a quick and nice way to check which features require nightly? (Besides compiling on stable and looking for errors)

undefinedDarkness commented 3 years ago

Grep for #[allow(..)] ?

elkowar commented 3 years ago

Btw: Is there a quick and nice way to check which features require nightly? (Besides compiling on stable and looking for errors)

a lot of the project uses nightly features - making it run on stable would require a good bit of code changes, and I don't see much reason too. There should be ways to get it to work on nixOS (RUSTC_BOOTSTRAP is a keyword I've heard in this context a couple times now)

shaunsingh commented 3 years ago

Since this repo has a flake.nix, you can also install it via nixos using nix-flakes, by passing it as an input and the defaultpackage as an output. And then install it as usual.

Keep in mind that since eww doesn't have a cache (unlike emacs-ng for example), it will build from source everytime you update your flake.lock file. I have a configuration with it here: https://github.com/shaunsingh/vimrc-dotfiles/blob/main/flake.nix, and you can look at nixos/configuration.nix for how I'm installing the package itself

wizardwatch commented 3 years ago

Since this repo has a flake.nix, you can also install it via nixos using nix-flakes, by passing it as an input and the defaultpackage as an output. And then install it as usual.

Keep in mind that since eww doesn't have a cache (unlike emacs-ng for example), it will build from source everytime you update your flake.lock file. I have a configuration with it here: https://github.com/shaunsingh/vimrc-dotfiles/blob/main/flake.nix, and you can look at nixos/configuration.nix for how I'm installing the package itself

It seems like this does not work. When adding it as an input NixOS complains about the impurity of https://github.com/elkowar/eww/blob/master/shell.nix#L4 . I don't see you using this method either.

shaunsingh commented 3 years ago

I don't see you using this method either.

Thats because I moved it to a giant overlay, along with the other plugins I use. Makes it easier to keep track of dependencies and such. You can see it here https://github.com/shaunsingh/vimrc-dotfiles/blob/main/nixos/overlays/flake.nix#L1

If you want to see the original method I used, then go back to a commit from 20 days back. I believe this should work: https://github.com/shaunsingh/vimrc-dotfiles/blob/4f2822b5aaeb17319d2c895ea53a7d6fc0e7e532/flake.nix