chore: format and clean up
This commit is contained in:
@@ -1,19 +1,120 @@
|
||||
# Olive
|
||||
|
||||
Olive is a private Microsoft PowerToys Command Palette extension. It searches animated GIFs with Klipy and allow you to quickly the one that suits you best!
|
||||
Olive
|
||||
is
|
||||
a
|
||||
private
|
||||
Microsoft
|
||||
PowerToys
|
||||
Command
|
||||
Palette
|
||||
extension.
|
||||
It
|
||||
searches
|
||||
animated
|
||||
GIFs
|
||||
with
|
||||
Klipy
|
||||
and
|
||||
allow
|
||||
you
|
||||
to
|
||||
quickly
|
||||
the
|
||||
one
|
||||
that
|
||||
suits
|
||||
you
|
||||
best!
|
||||
|
||||
## Requirements
|
||||
|
||||
- Windows 10/11 with PowerToys and Command Palette enabled.
|
||||
- .NET SDK 10.
|
||||
- Windows SDK `10.0.22621.0` or a compatible newer SDK.
|
||||
- A Klipy API key.
|
||||
-
|
||||
|
||||
Windows
|
||||
10/11
|
||||
with
|
||||
PowerToys
|
||||
and
|
||||
Command
|
||||
Palette
|
||||
enabled.
|
||||
|
||||
-
|
||||
|
||||
.NET
|
||||
SDK
|
||||
|
||||
10.
|
||||
|
||||
-
|
||||
|
||||
Windows
|
||||
SDK
|
||||
`10.0.22621.0`
|
||||
or
|
||||
a
|
||||
compatible
|
||||
newer
|
||||
SDK.
|
||||
|
||||
-
|
||||
|
||||
A
|
||||
Klipy
|
||||
API
|
||||
key.
|
||||
|
||||
## Klipy API Key
|
||||
|
||||
Olive stores the Klipy key locally in its Command Palette settings. Do not put the key in source code, Git, environment variables, or the package.
|
||||
Olive
|
||||
stores
|
||||
the
|
||||
Klipy
|
||||
key
|
||||
locally
|
||||
in
|
||||
its
|
||||
Command
|
||||
Palette
|
||||
settings.
|
||||
Do
|
||||
not
|
||||
put
|
||||
the
|
||||
key
|
||||
in
|
||||
source
|
||||
code,
|
||||
Git,
|
||||
environment
|
||||
variables,
|
||||
or
|
||||
the
|
||||
package.
|
||||
|
||||
To configure it, open Command Palette, open the context commands for `Olive GIF Picker`, open Olive settings, paste the key into `Klipy API key`, then save.
|
||||
To
|
||||
configure
|
||||
it,
|
||||
open
|
||||
Command
|
||||
Palette,
|
||||
open
|
||||
the
|
||||
context
|
||||
commands
|
||||
for
|
||||
`Olive GIF Picker`,
|
||||
open
|
||||
Olive
|
||||
settings,
|
||||
paste
|
||||
the
|
||||
key
|
||||
into
|
||||
`Klipy API key`,
|
||||
then
|
||||
save.
|
||||
|
||||
## Build
|
||||
|
||||
@@ -27,71 +128,251 @@ dotnet build .\Olive.sln -c Debug -p:Platform=x64
|
||||
.\scripts\Build-OlivePackage.ps1
|
||||
```
|
||||
|
||||
Or double-click:
|
||||
Or
|
||||
double-click:
|
||||
|
||||
```text
|
||||
scripts\Build-OlivePackage.cmd
|
||||
```
|
||||
|
||||
This creates the shareable package in `dist\OlivePackage`.
|
||||
This
|
||||
creates
|
||||
the
|
||||
shareable
|
||||
package
|
||||
in
|
||||
`dist\OlivePackage`.
|
||||
|
||||
The private signing file is exported to `dist\private\OlivePrivate.pfx`. Do not share it unless the recipient must be able to sign Olive builds.
|
||||
The
|
||||
private
|
||||
signing
|
||||
file
|
||||
is
|
||||
exported
|
||||
to
|
||||
`dist\private\OlivePrivate.pfx`.
|
||||
Do
|
||||
not
|
||||
share
|
||||
it
|
||||
unless
|
||||
the
|
||||
recipient
|
||||
must
|
||||
be
|
||||
able
|
||||
to
|
||||
sign
|
||||
Olive
|
||||
builds.
|
||||
|
||||
## Install
|
||||
|
||||
From `dist\OlivePackage`:
|
||||
From
|
||||
`dist\OlivePackage`:
|
||||
|
||||
```powershell
|
||||
.\Install-Olive.ps1
|
||||
```
|
||||
|
||||
Or double-click:
|
||||
Or
|
||||
double-click:
|
||||
|
||||
```text
|
||||
Install-Olive.cmd
|
||||
```
|
||||
|
||||
The script asks for administrator rights, imports `OlivePrivate.cer` into `Cert:\LocalMachine\Root`, then opens the `.msix` with Windows App Installer.
|
||||
The
|
||||
script
|
||||
asks
|
||||
for
|
||||
administrator
|
||||
rights,
|
||||
imports
|
||||
`OlivePrivate.cer`
|
||||
into
|
||||
`Cert:\LocalMachine\Root`,
|
||||
then
|
||||
opens
|
||||
the
|
||||
`.msix`
|
||||
with
|
||||
Windows
|
||||
App
|
||||
Installer.
|
||||
|
||||
Restart PowerToys after installation.
|
||||
Restart
|
||||
PowerToys
|
||||
after
|
||||
installation.
|
||||
|
||||
## Uninstall
|
||||
|
||||
From `dist\OlivePackage` or `scripts\`:
|
||||
From
|
||||
`dist\OlivePackage`
|
||||
or
|
||||
`scripts\`:
|
||||
|
||||
```powershell
|
||||
.\Uninstall-Olive.ps1
|
||||
```
|
||||
|
||||
Or double-click:
|
||||
Or
|
||||
double-click:
|
||||
|
||||
```text
|
||||
Uninstall-Olive.cmd
|
||||
```
|
||||
|
||||
By default, uninstall removes the Olive package, the Olive certificate from `Cert:\LocalMachine\Root`, local settings, cached GIFs, and MSIX user data.
|
||||
By
|
||||
default,
|
||||
uninstall
|
||||
removes
|
||||
the
|
||||
Olive
|
||||
package,
|
||||
the
|
||||
Olive
|
||||
certificate
|
||||
from
|
||||
`Cert:\LocalMachine\Root`,
|
||||
and
|
||||
Olive
|
||||
user
|
||||
data.
|
||||
|
||||
Use `-KeepCertificate` to keep the certificate.
|
||||
Use
|
||||
`-KeepCertificate`
|
||||
to
|
||||
keep
|
||||
the
|
||||
certificate.
|
||||
|
||||
Use `-KeepUserData` to keep local settings and cached GIFs.
|
||||
Use
|
||||
`-KeepUserData`
|
||||
to
|
||||
keep
|
||||
Olive
|
||||
user
|
||||
data.
|
||||
|
||||
## Usage
|
||||
|
||||
1. Open PowerToys Command Palette.
|
||||
2. Launch `Olive GIF Picker`.
|
||||
3. Search for a GIF.
|
||||
4. Select a result with Enter.
|
||||
5. Paste with Ctrl+V in an app that accepts animated GIF files.
|
||||
1.
|
||||
|
||||
Open
|
||||
PowerToys
|
||||
Command
|
||||
Palette.
|
||||
|
||||
2.
|
||||
|
||||
Launch
|
||||
`Olive GIF Picker`.
|
||||
|
||||
3.
|
||||
|
||||
Search
|
||||
for
|
||||
a
|
||||
GIF.
|
||||
|
||||
4.
|
||||
|
||||
Select
|
||||
a
|
||||
result
|
||||
with
|
||||
Enter.
|
||||
|
||||
5.
|
||||
|
||||
Paste
|
||||
with
|
||||
Ctrl+V
|
||||
in
|
||||
an
|
||||
app
|
||||
that
|
||||
accepts
|
||||
animated
|
||||
GIF
|
||||
files.
|
||||
|
||||
## Sharing
|
||||
|
||||
- Share only `dist\OlivePackage`.
|
||||
- Do not share `dist\private\OlivePrivate.pfx`.
|
||||
- Do not include the Klipy API key in the package.
|
||||
- Each user must set the Klipy key in Olive settings.
|
||||
-
|
||||
|
||||
Share
|
||||
only
|
||||
`dist\OlivePackage`.
|
||||
|
||||
-
|
||||
|
||||
Do
|
||||
not
|
||||
share
|
||||
`dist\private\OlivePrivate.pfx`.
|
||||
|
||||
-
|
||||
|
||||
Do
|
||||
not
|
||||
include
|
||||
the
|
||||
Klipy
|
||||
API
|
||||
key
|
||||
in
|
||||
the
|
||||
package.
|
||||
|
||||
-
|
||||
|
||||
Each
|
||||
user
|
||||
must
|
||||
set
|
||||
the
|
||||
Klipy
|
||||
key
|
||||
in
|
||||
Olive
|
||||
settings.
|
||||
|
||||
## Notes
|
||||
|
||||
- Olive copies GIFs as files to preserve animation.
|
||||
- Some apps may reject file pasting or use fallback text only.
|
||||
- Cached GIFs are stored in `%LOCALAPPDATA%\Olive\Cache`.
|
||||
-
|
||||
|
||||
Olive
|
||||
copies
|
||||
GIFs
|
||||
as
|
||||
files
|
||||
to
|
||||
preserve
|
||||
animation.
|
||||
|
||||
-
|
||||
|
||||
Some
|
||||
apps
|
||||
may
|
||||
reject
|
||||
file
|
||||
pasting
|
||||
or
|
||||
use
|
||||
fallback
|
||||
text
|
||||
only.
|
||||
|
||||
-
|
||||
|
||||
GIFs
|
||||
are
|
||||
downloaded
|
||||
in
|
||||
memory
|
||||
when
|
||||
copied.
|
||||
|
||||
Reference in New Issue
Block a user