Thanks to visit codestin.com
Credit goes to GitHub.com

Skip to content

FlameFlag/nixcord

Repository files navigation

Nixcord

Manage Vencord, Equicord, Vesktop, and Dorion configuration declaratively

Heads up: Since this is declarative, the in-app "Plugins" menu won't save changes permanently. You have to update your .nix file to make settings stick

Quickstart

Add to flake.nix:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
    nixcord.url = "github:FlameFlag/nixcord";
    # ...
  };
  
  # ...
}

Then import the module

Home Manager (Recommended)

Most people should use this. It handles paths and permissions for you

# home.nix
{ inputs, ... }: {
  imports = [ inputs.nixcord.homeModules.nixcord ];
  # ... config
}

NixOS (System-wide)

If you don't use Home Manager

# configuration.nix
{ inputs, ... }: {
  imports = [ inputs.nixcord.nixosModules.nixcord ];

  programs.nixcord = {
    enable = true;
    user = "your-username"; # Needed for system-level config
    # ... config
  };
}

nix-darwin (macOS)

If you are managing your Mac system-wide

# darwin-configuration.nix
{ inputs, ... }: {
  imports = [ inputs.nixcord.darwinModules.nixcord ];

  programs.nixcord = {
    enable = true;
    user = "your-username"; # Needed for system-level config
    # ... config
  };
}

Configuration

You can configure Vencord (default), Equicord, Vesktop, or Dorion

Tip: Launch your client once manually to look through the plugins list so you know what you actually want to enable

{
  programs.nixcord = {
    enable = true;

    # Choose your client (enable only one of these two)
    discord.vencord.enable = true;      # Standard Vencord
    # discord.equicord.enable = true;   # Equicord (has more plugins)

    # Or these
    vesktop.enable = true;
    # dorion.enable = true;

    # Theming
    quickCss = "/* css goes here */";
    config = {
      useQuickCss = true;
      themeLinks = [
        "https://raw.githubusercontent.com/link/to/some/theme.css"
      ];
      frameless = true;

      plugins = {
        hideAttachments.enable = true;
        ignoreActivities = {
          enable = true;
          ignorePlaying = true;
          ignoredActivities = [
            { id = "game-id"; name = "League of Legends"; type = 0; }
          ];
        };
      };
    };
  };
}

Check the online docs for the full list of options

A Note on Dorion

Dorion is a bit annoying because it needs LocalStorage databases that only exist after a successful launch. If you just enable it in Nix immediately, it won't work

  1. Run it once temporarily: nix run github:FlameFlag/nixcord#dorion (or nix-build https://github.com/FlameFlag/nixcord/archive/main.tar.gz -A packages.$(nix-instantiate --eval -E 'builtins.currentSystem' | tr -d '"').dorion if you use "legacy" nix)
  2. Log in and close it.
  3. Enable dorion.enable = true in your config and rebuild.

Also, Dorion uses WebKitGTK, so voice/video might fail with "Unsupported Browser" errors. Can't fix that on our end, sorry.

Docs


Disclaimer: Vencord violates Discord ToS. You probably know this already, but use at your own risk.

Releases

No releases published

Packages

No packages published