nixcord icon indicating copy to clipboard operation
nixcord copied to clipboard

Support equicord

Open CodedNil opened this issue 10 months ago • 9 comments

Love the program, was doing this manually with settings.json files and it was a nightmare.

Is there any chance in the future it could support equicord? Basically just vencord with extra plugins, even if only to add the extra plugins from their repo. I managed to get most of the ones I wanted with userPlugins but a few errored and I didn't feel like forking the plugins to make it work.

https://github.com/Equicord/Equicord

CodedNil avatar Jan 14 '25 21:01 CodedNil

This should be possible, although just through filling in the extra config fields. I think making nix options for all of their new plugins should be on a different branch maybe if someone wants to try to do that, but it would be a pretty immense amount of work.

KaylorBen avatar Jan 15 '25 23:01 KaylorBen

I managed to get most of the ones I wanted with userPlugins but a few errored and I didn't feel like forking the plugins to make it work.

How? I've tried using subdirectories on the Equicord repo and Nix complains at me:

userPlugins = {
  anammox = "github:Equicord/Equicord/bfb97040b9e939d705778461c1857ccb36883d72?dir=src/equicordplugins/anammox";
};
error: A definition for option `home-manager.users.tohmais.programs.nixcord.userPlugins.anammox' is not of type `(path in the Nix store or package convertible to it) or string matching the pattern github:([[:alnum:].-]+)/([[:alnum:]/-]+)/([0-9a-f]{40}) convertible to it'. Definition values:
       - In `/nix/store/f84i2nqc39yw5lrpih07lj6yi6axwm8n-source/modules/home-manager': "github:Equicord/Equicord/bfb97040b9e939d705778461c1857ccb36883d72?dir=src/equicordplugins/anammox"

I know why the above is erroring, but I was just wondering how you bypassed it.

tohmais avatar Feb 18 '25 05:02 tohmais

This was my solution, it fetches the repo as a variable first

  programs.nixcord =
    let
      equicordRepo = builtins.fetchGit {
        url = "https://github.com/Equicord/Equicord.git";
        rev = "8ce8d10fb41b19fb3986e978dc20fdf0697c14f1";
      };
    in
    {
      enable = true;
      userPlugins = {
        betterQuickReact = "${equicordRepo}/src/equicordplugins/betterQuickReact";
        homeTyping = "${equicordRepo}/src/equicordplugins/homeTyping";

CodedNil avatar Feb 18 '25 15:02 CodedNil

Thanks!

tohmais avatar Feb 19 '25 03:02 tohmais

I've tried to use Equicord with Discord from the Nixpkgs. Seems like it's currently impossible: Vencord package and Equicord package have different structure. Here's Vencord structure:

Image

And here's Equicord structure:

Image

And Discord package wants patcher.js to be in the package root. Equibop works fine

NikSneMC avatar Feb 23 '25 07:02 NikSneMC

Might be a recent-ish change? I've had trouble building with the workaround since updating my flake inputs a couple days ago. Temporarily disabled adding the extra equicord plugins for now.

tohmais avatar Feb 23 '25 11:02 tohmais

Yeah, might be. I was trying to install some plugins, but had some dependency errors on every one

NikSneMC avatar Feb 23 '25 21:02 NikSneMC

Yeah unfortunately mine have broken recently too, not sure why or now to get around it.

CodedNil avatar Feb 23 '25 21:02 CodedNil

The most interesting part is he fact that those deps are present in the upstream (Vencord) So this issue is kinda strange to me

NikSneMC avatar Feb 23 '25 21:02 NikSneMC

Same thing for vesktop -> equibop, would be great

qweered avatar Jun 12 '25 02:06 qweered

This should be possible, although just through filling in the extra config fields. I think making nix options for all of their new plugins should be on a different branch maybe if someone wants to try to do that, but it would be a pretty immense amount of work.

Well it would be possible to split up the plugins by doing a plugins-equicord.nix file that adds the extra plugins on top when equicord is enabled.

Eveeifyeve avatar Jul 07 '25 16:07 Eveeifyeve

im working on this at https://github.com/not-a-cowfr/equinix, right now i plan on just keeping it as a fork but i wouldnt be opposed to making a pr to this repo if thats what @KaylorBen wants

so far you can set it up just like normal nixcord and it works (though the icon doesnt seem to work but i also had that issue with nixcord so idk), but some config options are missing like plugins for example, so im working on a script to handle that, right now it looks like its correctly parsing everything into a json that shouldnt be to hard to then parse into nix

update: got some work on the json to nix parsing, im no nix pro but so far its not that bad one problem is for one that dont have any config options because theyre just enable/disable, however right now im not fetching the description for them. so far though the generated output seems to be valid(?) nix needs support for enums and sliders tho :P

update 2: added enum support, im going to sleep ive spent far too long on this

update 3: slider support (int value with a min/max limit)

who needs lib.types.bool Image

not-a-cowfr avatar Sep 23 '25 22:09 not-a-cowfr

Oh wow, thanks a lot, @not-a-cowfr! I've actually thought about doing this myself in the past but abandoned the idea because Equicord has many more plugins, and it seemed like a big hassle to manually keep track of which plugins were added, removed, or had their settings changed.

I'll take a look later to try and understand what you did and see if I can contribute back as well!

When you feel confident with your changes, would you be open to creating a PR to merge them?

FlameFlag avatar Sep 24 '25 12:09 FlameFlag

When you feel confident with your changes, would you be open to creating a PR to merge them?

yeah if i get the plugins script to a working state ill see how hard it would be to make into a pr instead of a separate thing

not-a-cowfr avatar Sep 24 '25 14:09 not-a-cowfr