Skip to content

Commit 4a00d12

Browse files
author
TheJoeIaut
committed
Prepare 2.0 for the Elgato Marketplace
The manifest was written against the 2023 schema and the store validator rejects seven things in it, so a version bump alone would not have been submittable. Adds the top-level UUID, makes FontSize a number, points CodePath at the actual .exe, and writes the version as 2.0.0.0 - the store requires four parts. Raises Software.MinimumVersion from 4.9 to 6.4, which is the floor the store accepts and does drop users on older Stream Deck builds. The OS list loses its mac entry. The macOS code paths stay and still build, but a Mac binary has to be signed and notarized before Gatekeeper runs it, and it has never been tested on hardware, so shipping it in this package would promise something untested. Ten warnings about action UUID prefixes are left as they are on purpose: renaming com.thejoeiaut.bitwardenget to com.thejoeiaut.bitwarden.get would orphan every key existing users have already configured. The README gains a What has changed section covering 2.0, leads its installation guide with the Marketplace, and no longer claims the .NET runtime is needed - the released build is self-contained.
1 parent d7289b1 commit 4a00d12

3 files changed

Lines changed: 70 additions & 34 deletions

File tree

‎BitwardenCLI/BitwardenStreamdeckPlugin.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<AssemblyTitle>Bitwarden Stream Deck Plugin</AssemblyTitle>
1717
<Company>TheJoeIaut</Company>
1818
<Copyright>Copyright © TheJoeIaut</Copyright>
19-
<Version>1.0.0</Version>
19+
<Version>2.0.0</Version>
2020
</PropertyGroup>
2121

2222
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">

‎BitwardenCLI/manifest.json‎

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
{
88
"Image": "Images/Download",
99
"TitleAlignment": "middle",
10-
"FontSize": "12"
10+
"FontSize": 12
1111
}
1212
],
1313
"SupportedInMultiActions": false,
@@ -22,7 +22,7 @@
2222
{
2323
"Image": "Images/unlock",
2424
"TitleAlignment": "middle",
25-
"FontSize": "12"
25+
"FontSize": 12
2626
}
2727
],
2828
"SupportedInMultiActions": false,
@@ -37,7 +37,7 @@
3737
{
3838
"Image": "Images/lock",
3939
"TitleAlignment": "middle",
40-
"FontSize": "12"
40+
"FontSize": 12
4141
}
4242
],
4343
"SupportedInMultiActions": false,
@@ -52,7 +52,7 @@
5252
{
5353
"Image": "Images/generate",
5454
"TitleAlignment": "middle",
55-
"FontSize": "12"
55+
"FontSize": 12
5656
}
5757
],
5858
"SupportedInMultiActions": true,
@@ -67,22 +67,19 @@
6767
"Description": "This unofficial Plugin allows interaction with the Bitwarden CLI. Actions allow the Lock/Unlock of the vault and the extraction of Username, Password or TOTP. The data is pasted at the current cursor position. This plugin requires the Bitwarden CLI to be already installed on your machine. All products that are compatible with the CLI (Bitwarden, Vaultwarden,...) are supported. Find the complete Bitwarden CLI documentation here: https://bitwarden.com/help/cli/",
6868
"Icon": "Images/icon",
6969
"URL": "https://github.com/TheJoeIaut/Bitwarden-Streamdeck-Plugin",
70-
"Version": "1.0",
71-
"CodePath": "com.thejoeiaut.bitwarden",
70+
"UUID": "com.thejoeiaut.bitwarden",
71+
"Version": "2.0.0.0",
72+
"CodePath": "com.thejoeiaut.bitwarden.exe",
7273
"Category": "Bitwarden",
7374
"CategoryIcon": "Images/category",
7475
"OS": [
7576
{
7677
"Platform": "windows",
7778
"MinimumVersion": "10"
78-
},
79-
{
80-
"Platform": "mac",
81-
"MinimumVersion": "10.11"
8279
}
8380
],
8481
"SDKVersion": 2,
8582
"Software": {
86-
"MinimumVersion": "4.9"
83+
"MinimumVersion": "6.4"
8784
}
8885
}

‎README.md‎

Lines changed: 61 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,53 @@ This unofficial Plugin allows interaction with the Bitwarden CLI. Actions allow
1010
| Get Item Information | Types a stored username, password or TOTP at the cursor | yes |
1111
| Generate Password | Generates a password or passphrase and types it at the cursor | no |
1212

13+
## What has changed
14+
15+
### 2.0
16+
17+
The first release since 2023, and a large one. Everything below is new since 1.0.
18+
19+
**New**
20+
21+
- **Generate Password action.** Passwords or passphrases with the same options as the
22+
Bitwarden generator, typed at the cursor, copied to the clipboard, or both. Works on a
23+
locked vault.
24+
- **Searchable item picker.** Load your vault once, then type to search it. Entries are
25+
labelled with their username so several logins for the same site can be told apart, and
26+
a clear button resets the selection.
27+
- **Username+Password in one press.** Types the username, Tab, then the password.
28+
- **macOS and Linux code paths.** Typing goes through `osascript` on macOS and
29+
`xdotool`/`ydotool` on Linux. The released package is Windows only - build from source
30+
for the others, and see [Platform support](#platform-support).
31+
- **No .NET install needed.** The released build carries its own runtime.
32+
33+
**Fixed**
34+
35+
- **TOTP typed the stored seed, not a code.** The TOTP option typed the raw base32 secret
36+
from the vault entry, which no login form accepts. It now asks the CLI for the current
37+
six digit code on every press.
38+
- **A Bitwarden CLI process per keystroke.** Typing in the item field reloaded the whole
39+
vault on every character, which also rewrote the field mid-typing and made characters
40+
jump and disappear. The list is fetched once, when you press Load.
41+
- **Hangs on a locked vault.** A `bw` command that wanted to prompt - which is what a
42+
locked vault produces - waited forever on input that could never arrive. Prompts are now
43+
turned off, so it fails and reports instead.
44+
45+
**Under the hood**
46+
47+
- .NET 10 and BarRaider's StreamDeck-Tools 7.
48+
- A unit test suite, integration suites covering real Linux typing and an end to end run
49+
against a throwaway Vaultwarden server, a dev container and CI.
50+
- Credentials are handed to the typing helpers over stdin rather than as command line
51+
arguments, so they cannot be read out of the process list.
52+
1353
## Requirements
1454

1555
| You need | Why |
1656
| --- | --- |
1757
| [Bitwarden CLI](https://bitwarden.com/help/cli/#download-and-install) (`bw` on `PATH`) | Every action shells out to it; the plugin never talks to Bitwarden directly |
18-
| [.NET 10 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/10.0) | The plugin runs on **.NET 10** |
19-
| Stream Deck 4.9 or newer | Minimum host version in the plugin manifest |
20-
21-
A self-contained build carries its own runtime and needs no .NET install - see
22-
[BUILDING.md](BUILDING.md).
58+
| Stream Deck 6.4 or newer | Minimum host version in the plugin manifest |
59+
| [.NET 10 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/10.0) | Only for framework-dependent builds from source. The released plugin is self-contained and needs no .NET install |
2360

2461
Typing a credential into the focused window needs a platform helper:
2562

@@ -52,18 +89,16 @@ the Unlock action does for you.
5289

5390
### 2. Install the plugin
5491

55-
**From a release.** Download `com.thejoeiaut.bitwarden.zip` from the
56-
[releases page](https://github.com/TheJoeIaut/Bitwarden-Streamdeck-Plugin/releases),
57-
unzip it, and double-click the `com.thejoeiaut.bitwarden.streamDeckPlugin` file inside.
58-
Stream Deck installs it and the actions appear under a **Bitwarden** category in the
59-
action list.
92+
**From the Elgato Marketplace.** Search for **Bitwarden** in the Stream Deck store and
93+
install it. Stream Deck handles updates from then on. This is the recommended route.
6094

61-
> The published 1.0.0 release dates from 2023 and does not include the newer work -
62-
> the Generate Password action, the searchable item picker, .NET 10 or the Linux and
63-
> macOS support. For those, build from source.
95+
Other ways in, if you need them:
6496

65-
**From source.** See [BUILDING.md](BUILDING.md). On Windows,
66-
`tools/install-local.ps1` publishes and installs in one step.
97+
- **From a GitHub release.** Download the package from the
98+
[releases page](https://github.com/TheJoeIaut/Bitwarden-Streamdeck-Plugin/releases) and
99+
double-click the `com.thejoeiaut.bitwarden.streamDeckPlugin` file inside.
100+
- **From source.** See [BUILDING.md](BUILDING.md). On Windows,
101+
`tools/install-local.ps1` publishes and installs in one step.
67102

68103
### 3. Add the actions
69104

@@ -141,14 +176,18 @@ unlock again.
141176

142177
## Platform support
143178

144-
Elgato's own Stream Deck software runs on **Windows and macOS only**, and the plugin
145-
manifest has no Linux platform value. To use this plugin on Linux you need a third party
146-
host such as [OpenDeck](https://github.com/nekename/OpenDeck), which runs plugins built
147-
for the original Stream Deck SDK. OpenDeck can also run the Windows build under Wine, so
148-
a native Linux build is not strictly required.
179+
The released 2.0 package is **Windows only**, and its manifest declares nothing else.
180+
That is a packaging decision, not a code one: the plugin builds and runs for macOS and
181+
Linux too, and [BUILDING.md](BUILDING.md) covers publishing for them.
182+
183+
macOS is not shipped because a Mac build has to be signed and notarized before Gatekeeper
184+
will run it, and it has never been tested on real hardware.
149185

150-
macOS and Linux are built and published successfully but have not been tested on real
151-
hardware.
186+
Linux is not a Stream Deck platform at all - Elgato's own software runs on Windows and
187+
macOS only, and the manifest has no Linux platform value. To use this plugin on Linux you
188+
need a third party host such as [OpenDeck](https://github.com/nekename/OpenDeck), which
189+
runs plugins built for the original Stream Deck SDK. OpenDeck can also run the Windows
190+
build under Wine, so a native Linux build is not strictly required.
152191

153192
## Development
154193

0 commit comments

Comments
 (0)