Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kaylorben/nixcord
Declarative Vencord plugins + options
https://github.com/kaylorben/nixcord
discord home-manager-module nix nix-flake nixos vencord
Last synced: 1 day ago
JSON representation
Declarative Vencord plugins + options
- Host: GitHub
- URL: https://github.com/kaylorben/nixcord
- Owner: KaylorBen
- License: mit
- Created: 2024-06-22T07:37:28.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-12-17T01:06:36.000Z (9 days ago)
- Last Synced: 2024-12-24T18:09:31.725Z (1 day ago)
- Topics: discord, home-manager-module, nix, nix-flake, nixos, vencord
- Language: Nix
- Homepage:
- Size: 328 KB
- Stars: 79
- Watchers: 1
- Forks: 8
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Nixcord
Manage [Vencord](https://github.com/Vendicated/Vencord) settings and plugins declaratively with Nix!This repo can be used to make a clean looking config for Vencord
without needing to pollute system config with needless utils to
override the discord pacakge, and write ugly JSON code directly
in .nix files.I started this project after having to reinstall my NixOS system
several times, resulting in manually enabling and configuring the
~100 Vencord plugins more than 4 times. With Nixcord you can
configure once and save it to a git repo.>[!WARNING]
> Using Nixcord means comitting to declaratively installing plugins.
> This means that the normal "plugins" menu in Vencord will not
> apply permenant changes. You can still use it to test out plugins
> but on restarting the client, any changes will be gone.
>
> The primary goal of this project is to reduce the need to configure
> Vencord again on every new system you install.>[!WARNING]
> If you're using NixOS 24.05, please set
> `programs.nixcord.discord.vencord.package` to `pkgs.vencord;`
> because the `pnpmDeps.hash` differs between NixOS stable and
> unstable and this repo uses the unstable hash for the
> Vencord that it provides.
>
> Example:
>
> ```nix
> { pkgs, lib, ... }: {
> programs.nixcord = {
> enable = true;
> discord.vencord.package = pkgs.vencord;
> };
> }
> ```## How to use Nixcord
Currently Nixcord only supports nix flakes as a [home-manager](https://github.com/nix-community/home-manager) module.First, you need to import the module:
```nix
# flake.nix
{
# ...
inputs.nixcord = {
url = "github:kaylorben/nixcord"
};
# ...
}
```
Next you'll have to import the home-manager module into flake.nix.
This step varies depending on how you have home-manager installed.
Here is a simple example of home-manager installed as a nixos module:
```nix
# flake.nix
{
# ...
outputs = inputs@{ nipkgs, home-manager, ... }: {
nixosConfigurations = {
hostname = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.jdoe = import ./home.nix;home-manager.sharedModules = [
inputs.nixcord.homeManagerModules.nixcord
];
}
];
};
};
};
# ...
}
```
or to install to a specific home
```nix
# home.nix
{
# ...
imports = [
inputs.nixcord.homeManagerModules.nixcord
];
# ...
}
```
After installation, you can easily start editing config
## Configuration
This is an example home-manager configuration using Nixcord
```nix
# home.nix
{
# ...
programs.nixcord = {
enable = true; # enable Nixcord. Also installs discord package
quickCss = "some CSS"; # quickCSS file
config = {
useQuickCss = true; # use out quickCSS
themeLinks = [ # or use an online theme
"https://raw.githubusercontent.com/link/to/some/theme.css"
];
frameless = true; # set some Vencord options
plugins = {
hideAttachments.enable = true; # Enable a Vencord plugin
ignoreActivities = { # Enable a plugin and set some options
enable = true;
ignorePlaying = true;
ignoreWatching = true;
ignoredActivities = [ "someActivity" ];
};
};
};
extraConfig = {
# Some extra JSON config here
# ...
};
};
# ...
}
```It is highly recommend configuring Nixcord with an open Vencord client
to look through available plugins and options.
A list of all available options is available [here](docs/INDEX.md).## Special Thanks
Special Thanks to [Vencord](https://github.com/Vendicated/Vencord), [Home Manager](https://github.com/nix-community/home-manager), and [Nix](https://nixos.org/) and all the
contributers behind them. Without them, this project would
not be possible.## Disclaimer
Using Vencord violates Discord's terms of service. Read more about
it at [their github](https://github.com/Vendicated/Vencord)