Files
sydnix/modules/home/discord.nix

64 lines
1.8 KiB
Nix

{ config, lib, pkgs, ... }:
let cfg = config.sydnix.discord;
in {
options.sydnix.discord = {
enable = lib.mkEnableOption "Discord";
fixWayland = lib.mkOption {
description = ''
Fix flickering on Wayland.
'';
type = lib.types.bool;
default = false;
};
};
config = lib.mkIf cfg.enable
(let
# Fixes flickering and platform detection on Wayland.
vesktop-wayland-wrapper =
pkgs.symlinkJoin {
name = "vesktop-wayland-wrapper";
paths = [ pkgs.callPackage pkgs.vesktop ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/vesktop \
--add-flags "--disable-gpu-compositing"
# --add-flags "--disable-gpu-compositing --ozone-platform-hint=auto"
'';
};
in {
sydnix.impermanence.directories =
let xdg-config-home =
config.home.confighome
or "${config.home.homeDirectory}/.config";
in [
# This directory should really be written in terms of
# `config.programs.nixcord.vesktopConfigDir`, but it defaults to null
# for unknown reasons. This is in conflict with the docs, which claim
# it should be the path used here.
(lib.removePrefix
config.home.homeDirectory
"${xdg-config-home}/vesktop")
];
programs.nixcord = {
enable = true;
discord = {
# Install Vesktop without Discord.
enable = false;
# openASAR.enable = true;
vencord.enable = false;
vencord.package = pkgs.vencord;
};
vesktop = {
enable = true;
# package =
# if cfg.fixWayland
# then vesktop-wayland-wrapper
# else pkgs.vesktop;
};
};
});
}