dvm
dvm copied to clipboard
discord version manager for linux
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
rustuppackage, thenrustup 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:
- Download the latest stable tarball from discord
- Extract it into $HOME/.dvm
- Create a bin file that executes the executable
- 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:
- Remove the $HOME/.dvm/
- Remove desktop entries and icons
- Remove the bin file
Update
Updating installations is as easy as installing them
dvm update stable
This will do the following:
- Check if discord actually needs to be updated
- Download the latest tarball
- Remove the $HOME/.dvm/
- 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.