diff --git a/home/programs/graphical/apps/default.nix b/home/programs/graphical/apps/default.nix index df8e966..78d7bea 100644 --- a/home/programs/graphical/apps/default.nix +++ b/home/programs/graphical/apps/default.nix @@ -2,5 +2,6 @@ _: { imports = [ ./spotify ./vesktop + ./webcord ]; } diff --git a/home/programs/graphical/apps/webcord/default.nix b/home/programs/graphical/apps/webcord/default.nix new file mode 100644 index 0000000..dad3236 --- /dev/null +++ b/home/programs/graphical/apps/webcord/default.nix @@ -0,0 +1,34 @@ +{ + lib, + osConfig, + pkgs, + ... +}: let + inherit (lib) mkIf; + + cfg = osConfig.myOptions.home-manager.programs.applications.webcord; +in { + config = mkIf cfg.enable { + home.packages = with pkgs; [ + # Webcord with vencord extension installed + webcord-vencord + ]; + + systemd.user.services."webcord" = mkIf cfg.autoStart { + Unit = { + Description = "Webcord (An electron-based Discord client implemented without Discord API with Vencord built-in)"; + After = [ "graphical-session.target" ]; + PartOf = [ "graphical-session.target" ]; + }; + + Service = { + Type = "simple"; + Restart = "on-failure"; + ExecStart = "${pkgs.webcord-vencord}/bin/webcord"; + }; + + Install.WantedBy = [ "graphical-session.target" ]; + }; + }; +} + diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix index 22dcdf5..c83db29 100644 --- a/hosts/voyager/default.nix +++ b/hosts/voyager/default.nix @@ -70,6 +70,7 @@ # Applications ".config/spotify" ".config/vesktop" + ".config/WebCord" ".local/share/Smart Code ltd/Stremio" # Tools @@ -178,6 +179,7 @@ enable = true; autoStart = true; }; + webcord.enable = true; mpv.enable = true; nomacs.enable = true; # TODO: probably disable qimgv.enable = true; diff --git a/options/home/programs/default.nix b/options/home/programs/default.nix index bd5593d..73ae056 100644 --- a/options/home/programs/default.nix +++ b/options/home/programs/default.nix @@ -33,6 +33,10 @@ in enable = mkEnableOption "Vesktop (An alternate client for Discord with Vencord built-in)"; autoStart = mkEnableOption "Auto-Start for Vesktop"; }; + webcord = { + enable = mkEnableOption "Webcord (An electron-based Discord client implemented without Discord API with Vencord built-in)"; + autoStart = mkEnableOption "Auto-Start for Webcord"; + }; nomacs.enable = mkEnableOption "Nomacs (Qt-based image viewer)"; qimgv.enable = mkEnableOption "QImgV (Qt-based image viewer with video support)"; qbittorrent.enable = mkEnableOption "Qbittorrent (Free software BitTorrent client)";