mirror of
https://github.com/edu4rdshl/Strata.git
synced 2026-07-17 23:24:46 +00:00
Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1294ba741a | |||
| 6ea44ac60c | |||
| 56399996f5 | |||
| 2b1f67b1ea | |||
| 71f942ff36 |
5 changed files with 220 additions and 7 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -4,8 +4,9 @@ strata-daemon/target/
|
|||
# Bundled binary (no longer shipped - daemon must be installed separately)
|
||||
strata@edu4rdshl.dev/bin/
|
||||
|
||||
# Screenshots / scratch images
|
||||
# Screenshots / scratch images (project assets under assets/ are kept)
|
||||
*.png
|
||||
!assets/*.png
|
||||
|
||||
# External reference code (not part of this project)
|
||||
external_sources/
|
||||
|
|
|
|||
54
README.md
54
README.md
|
|
@ -10,6 +10,15 @@ All heavy work (hashing, decoding, storage, search, thumbnails) lives in a Rust
|
|||
daemon. The GNOME Shell extension only renders UI and forwards events over
|
||||
D-Bus, so the compositor is never blocked, even with thousands of items.
|
||||
|
||||
<p align="center">
|
||||
<a href="https://extensions.gnome.org/extension/10291/strata/">
|
||||
<img src="assets/ego.svg" width="200" alt="Download from extensions.gnome.org">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
> **Requires a companion daemon.** Installing from GNOME Extensions is only half
|
||||
> the setup. See [Installing the daemon](#installing-the-daemon).
|
||||
|
||||
The motivation behind this is explained in the technical blog post [Rethinking the GNOME clipboard issues](https://edu4rdshl.dev/posts/rethinking-the-gnome-clipboard-issues/)
|
||||
|
||||
## Features
|
||||
|
|
@ -78,12 +87,6 @@ Unknown MIME types are ignored (a strict allowlist).
|
|||
- Keyboard navigation (arrow keys, `Esc` to close), click-outside to dismiss,
|
||||
per-row delete, and "Clear all".
|
||||
|
||||
## How it looks
|
||||
|
||||
The idea is to have a simple but responsive UI that fits into the project's goals. Actually, Strata looks like it:
|
||||
|
||||
<img width="1470" height="1227" alt="image" src="https://github.com/user-attachments/assets/07a17d08-4d7f-4afb-bafc-9346814e376a" />
|
||||
|
||||
## Architecture
|
||||
|
||||
Strata is **two components**, and you need **both** for it to work:
|
||||
|
|
@ -104,6 +107,32 @@ GNOME Shell (GJS) ──D-Bus──▶ strata-daemon ──▶ SQLite (~/.lo
|
|||
└──▶ thumbnails (~/.cache/strata)
|
||||
```
|
||||
|
||||
## Installing the daemon
|
||||
|
||||
Strata is two parts: the GNOME Shell extension and a small background daemon
|
||||
(`strata-daemon`) that does the storage, search, and thumbnailing. Installing
|
||||
the extension from [GNOME Extensions](https://extensions.gnome.org/extension/10291/strata/)
|
||||
is only half the setup; **without the daemon the extension does nothing.**
|
||||
|
||||
Install the daemon with whichever fits your system:
|
||||
|
||||
- **Arch (AUR):** `paru -S strata-daemon` (or `strata-daemon-git` for the latest `main`).
|
||||
- **From source** (needs Rust/Cargo 1.74+):
|
||||
|
||||
```sh
|
||||
git clone https://github.com/Edu4rdSHL/Strata.git
|
||||
cd Strata
|
||||
make install-daemon # builds and installs to ~/.local/bin
|
||||
```
|
||||
|
||||
Make sure `~/.local/bin` is in your `$PATH`.
|
||||
|
||||
Then log out and back in (Wayland) or `Alt+F2` → `r` (X11). The extension finds
|
||||
`strata-daemon` in `$PATH` and starts it automatically; no separate service is
|
||||
needed.
|
||||
|
||||
For distro packages and the systemd user service, see [Install](#install).
|
||||
|
||||
## Requirements
|
||||
|
||||
- GNOME Shell 50. Older releases may work if built from source but are not tested or supported.
|
||||
|
|
@ -197,6 +226,19 @@ the wire protocol and a `busctl` example.
|
|||
The shipped UI is a GNOME Shell extension. Ports to other desktops only
|
||||
need a new front-end against the same D-Bus interface.
|
||||
|
||||
## How it looks
|
||||
|
||||
A responsive panel that drops down from the top bar and follows the GNOME
|
||||
shell's look.
|
||||
|
||||
<p align="center">
|
||||
<img src="assets/panel-desktop.png" alt="Strata's clipboard panel open on the GNOME desktop" width="100%">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="assets/panel.png" alt="Close-up of the Strata panel: a URL with its hostname, an image thumbnail, color swatches, and text entries" width="400">
|
||||
</p>
|
||||
|
||||
## Deeper reading
|
||||
|
||||
- [`ARCHITECTURE.md`](ARCHITECTURE.md): design goals, process model,
|
||||
|
|
|
|||
170
assets/ego.svg
Normal file
170
assets/ego.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 18 KiB |
BIN
assets/panel-desktop.png
Normal file
BIN
assets/panel-desktop.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 421 KiB |
BIN
assets/panel.png
Normal file
BIN
assets/panel.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 89 KiB |
Loading…
Add table
Add a link
Reference in a new issue