Skip to content

diced/dvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dvm (Discord Version Manager)

Allowing you to manage all of your discord versions. This was made as I was impatient to waiting for AUR maintainers (no offense 😂 we have lives) to update discord packages. This solves that problem: since you can update your version by just doing dvm update <type>. This utility is heavily inspired by the rustup command line tool

Installing

Arch Linux

You can install the binary version of dvm through the dvm AUR package or dvm-bin AUR package

Or you can compile from source using the dvm-git AUR package

Other Distros

At the moment I haven't bothered making this available on other package managers as the issue dvm wants to solve usually isn't present in those other distros.

Compiling from Source

If you prefer compiling from source you can do the following

Prequisites

  • Rust Nightly (rustup or your distro might provide a rustup package, then rustup install nightly)
git clone https://github.com/diced/dvm
cd dvm
cargo +nightly build # make sure you have rust nightly installed like stated above

Using prebuilt binary

If you don't want to bother compiling from source then you may use the precompiled binary that I provide on the releases page

Note: The precompiled binary is not a statically compiled binary, so if it happens to error, run ldd dvm-x86_64-unknown-linux-gnu and it will show the libraries it needs, then install them.

wget https://github.com/diced/dvm/releases/download/<version>/dvm-x86_64-unknown-linux-gnu
chmod +x dvm
./dvm # you can move it into /usr/bin or move it into somewhere then add it to $PATH

Usage

discord version manager for linux

Usage: dvm <COMMAND>

Commands:
  install            Install the latest <type> of discord
  install-open-asar  Install openasar for <type> of discord
  update             Update to the latest <type> of discord
  remove             Remove the installed <type> of discord
  list               Show all installed versions
  completions        Get shell completions
  run                Run discord with specific options
  help               Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

Installing Discord

To install a specific version just type in

dvm install stable

This will do the following:

  1. Download the latest stable tarball from discord
  2. Extract it into $HOME/.dvm
  3. Create a bin file that executes the executable
  4. Copy desktop and icons to their folders

Install Open Asar

If you forget to add the flag -o when installing discord, you can install open asar by doing

dvm install-open-asar stable

...or do it when installing discord

dvm install stable -o

Installing multiple versions at once

You can install multiple versions at once, they will be executed one after the other.

dvm install stable ptb canary development

Removing

Removing installations is as easy as installing them

dvm remove stable

This will do the following:

  1. Remove the $HOME/.dvm/
  2. Remove desktop entries and icons
  3. Remove the bin file

Update

Updating installations is as easy as installing them

dvm update stable

This will do the following:

  1. Check if discord actually needs to be updated
  2. Download the latest tarball
  3. Remove the $HOME/.dvm/
  4. Do everything the installation does.

Show

This will show all installations that are currently installed, the --verbose, -v flag will show the path it's installed to, and the --check, -c flag will check if your installations are up-to-date (red = outdated, green = up to date)

dvm show
dvm show -v
dvm show -c
dvm show -vc
# no flag
canary:0.0.133
development:0.0.198
stable:0.0.17
# -v
canary:0.0.133 -> /home/diced/.dvm/DiscordCanary
development:0.0.198 -> /home/diced/.dvm/DiscordDevelopment
stable:0.0.17 -> /home/diced/.dvm/Discord

Run

You can run discord via command line with extra flags

dvm run canary <extra args>
# for example
dvm run canary --idk-some-chromium-flag-or-something

Completions

Get shell completions for your shell of choice

dvm completions zsh

Maintaining

I don't really focus on this anymore, but I'll try my best lol. If you want to reach out to help feel free to send a message request or friend request on discord (@dicedtomato), or contact through github issues, etc.