379 lines
2.3 KiB
Markdown
379 lines
2.3 KiB
Markdown
# 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!
|
|
|
|
## 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.
|
|
|
|
## 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.
|
|
|
|
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
|
|
|
|
```powershell
|
|
dotnet build .\Olive.sln -c Debug -p:Platform=x64
|
|
```
|
|
|
|
## Package
|
|
|
|
```powershell
|
|
.\scripts\Build-OlivePackage.ps1
|
|
```
|
|
|
|
Or
|
|
double-click:
|
|
|
|
```text
|
|
scripts\Build-OlivePackage.cmd
|
|
```
|
|
|
|
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.
|
|
|
|
## Install
|
|
|
|
From
|
|
`dist\OlivePackage`:
|
|
|
|
```powershell
|
|
.\Install-Olive.ps1
|
|
```
|
|
|
|
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.
|
|
|
|
Restart
|
|
PowerToys
|
|
after
|
|
installation.
|
|
|
|
## Uninstall
|
|
|
|
From
|
|
`dist\OlivePackage`
|
|
or
|
|
`scripts\`:
|
|
|
|
```powershell
|
|
.\Uninstall-Olive.ps1
|
|
```
|
|
|
|
Or
|
|
double-click:
|
|
|
|
```text
|
|
Uninstall-Olive.cmd
|
|
```
|
|
|
|
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
|
|
`-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.
|
|
|
|
## 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.
|
|
|
|
## Notes
|
|
|
|
-
|
|
|
|
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.
|