Skip to content

Commit

Permalink
Update README and fix profile management
Browse files Browse the repository at this point in the history
  • Loading branch information
ninjadev64 committed Oct 22, 2023
1 parent 98e48fd commit 799272d
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 7 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme/managing-profiles.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,29 @@

OpenDeck is a desktop software that allows Stream Deck-like functionality, implementing the Elgato Stream Deck SDK for cross-compatibility.

The software is supported on Windows, macOS, and Linux, and is built with Electron. The software is designed for ProntoKey hardware (USB and Bluetooth), but should theoretically support Elgato hardware using the `@elgato-stream-deck/node` package (untested).
The software is supported on Windows, macOS, and Linux, and is built with Electron. The software is designed for ProntoKey hardware (USB and Bluetooth), but also supports Elgato hardware (thanks to the `@elgato-stream-deck/node` package by julusian).

You can download a pre-built distributable for your platform from GitHub Actions [here](https://github.com/ninjadev64/OpenDeck/actions).
### Installation

1. Download a pre-built distributable for your platform from GitHub Actions [here](https://github.com/ninjadev64/OpenDeck/actions).
2. If you're using Elgato hardware on Linux, apply the required udev subsystem rules as described [here](https://github.com/Julusian/node-elgato-stream-deck#linux).
3. If you're using ProntoKey hardware over Bluetooth, switch to Bluetooth mode in OpenDeck settings.

### Updating

1. Terminate OpenDeck if it's running with `killall opendeck`.
2. If the update to be installed is a breaking config change, nuke your config file. Not all updates will require this. (this will remove all settings and profiles)
- On Windows, the file is located at `%appdata%/opendeck/config.json`.
- On macOS, the file is located at `~/Library/Application Support/opendeck/config.json`.
- On Linux, the file is located at `~/.config/opendeck/config.json`.
3. Install the new version by performing the installation steps.

### Usage

![Assigning actions and switching profiles](.github/readme/assigning-actions-and-switching-profiles.gif)
![Configuring and removing actions](.github/readme/configuring-and-removing-actions.gif)
![Managing profiles](.github/readme/managing-profiles.gif)
![Installing and removing plugins](.github/readme/installing-and-removing-plugins.gif)

### Structure

Expand Down
6 changes: 3 additions & 3 deletions src/renderer/profiles.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ function updateList(profiles) {
i.className = "deleteProfile";
i.addEventListener("click", () => {
if (Object.keys(store.get("devices")[selectedDevice].profiles).length < 2) return;
store.delete("profiles." + id);
store.delete("devices." + selectedDevice + ".profiles." + id);
if (store.get("devices")[selectedDevice].selectedProfile == id) {
ipcRenderer.send("profileUpdate", Object.keys(store.get("devices")[selectedDevice].profiles)[0]);
ipcRenderer.send("profileUpdate", selectedDevice, Object.keys(store.get("devices")[selectedDevice].profiles)[0]);
} else {
ipcRenderer.send("profileUpdate", store.get("devices")[selectedDevice].selectedProfile);
ipcRenderer.send("profileUpdate", selectedDevice, store.get("devices")[selectedDevice].selectedProfile);
}
t.remove();
});
Expand Down
4 changes: 2 additions & 2 deletions src/script/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ function createWindow(): void {
let devices = store.get("devices");
devices[device].profiles[id] = {
name,
key: [ [ null ], [ null ], [ null ], [ null ], [ null ], [ null ], [ null ], [ null ], [ null ] ],
slider: [ [ null ], [ null ] ]
key: Array.from({ length: devices[device].keys }, () => [ null ]),
slider: Array.from({ length: devices[device].sliders }, () => [ null ])
};
store.set("devices", devices);
mainWindow.webContents.send("profiles", devices[device].profiles, devices[device].selectedProfile);
Expand Down

0 comments on commit 799272d

Please sign in to comment.