64 lines
1.8 KiB
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/sessionData")
|
|
];
|
|
|
|
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;
|
|
};
|
|
};
|
|
});
|
|
}
|