Skip to content

Commit

Permalink
merge the 2 workflow in 1 that build and publish depending on branch …
Browse files Browse the repository at this point in the history
…name

Upgrade to Tauri v2 beta. Improve speed of autopaste and stability of clipboard
  • Loading branch information
vemonet committed Mar 23, 2024
1 parent e01b305 commit 9f2d047
Show file tree
Hide file tree
Showing 12 changed files with 2,318 additions and 1,426 deletions.
1 change: 0 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ jobs:
releaseDraft: false
prerelease: false


build-flatpak:
name: 📦️ Build with Flatpak
needs: build-tauri
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ ydotool
/cldr-json/
/emoji-mart/
io.github.vemonet.EmojiMart/

src-tauri/gen/schemas
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ OS := $(shell uname)
install:
yarn
rustup component add rustfmt
# sudo apt-get install xdotool

# Install ydotool to auto-paste on wayland
install-wayland:
Expand Down
17 changes: 7 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ Modern emoji picker popup for desktop, based on the amazing [Emoji Mart](https:/

- 🍾 Built as a popup: quick invocation through your system custom shortcuts, and disappears when not needed, does not stay as a standalone window, does not run in the background
- 🔎 Search text box automatically focused and ready to type when invoked
- ⌨️ Can use the keyboard to navigate and select emojis
- ⌨️ Use the keyboard to navigate and select emojis
- 🌍 Complete translation in [22 languages](https://github.com/vemonet/EmojiMart/tree/main/src/data), it will use your system language automatically
- 🧠 Remember your favorite emojis
- ⚔️ Cross-platform, can be installed natively on Linux, MacOS, or Windows (although only tested on Linux at the moment)
- 🧑‍🚀 Uses modern and flexible technologies (TSX for the UI, Rust for the cross-platform compilation, what else?), making it easier to maintain and build upon in the future
- ✒️ On x11 the selected emoji is automatically pasted to your currently focused app, instead of being added to the clipboard! (it allows to uses emojis without losing what was copied before).
- 🧑‍🚀 Uses modern and flexible technologies
- ✒️ On x11 the selected emoji is automatically pasted to your currently focused app.
- ⚠️ Auto-paste can be enabled also on Wayland, but require to open permissions of `/dev/uinput`, which is not recommended for security.

🆕 This project just had its **first release**, it should be already usable, but you might face bugs as it is not yet battle tested (especially regarding auto-paste). Please report any weird behavior in the GitHub issues! And feel free to contribute, the codebase is quite small and understandable.
Please report any weird behavior in the GitHub issues! And feel free to contribute, the codebase is quite small and understandable.

![Emoji Mart screenshot](https://raw.github.com/vemonet/EmojiMart/main/resources/screenshot.png)

Expand Down Expand Up @@ -71,7 +71,7 @@ flatpak run io.github.vemonet.EmojiMart --lang fr
gsettings set org.gnome.mutter center-new-windows true
```

<!--
<!--
##### ⚠️ Enable auto-paste on Wayland
Expand Down Expand Up @@ -145,13 +145,10 @@ Inspired by:

- [x] Auto-paste on Wayland: currently using `ydotool` requires too many permissions (`--device=all` and user r/w access to `/dev/uinput`).

- [ ] Use [libei](https://gitlab.freedesktop.org/libinput/libei): once it has been implemented by mutter: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2628
- [ ] And merged to flatpak https://github.com/flatpak/xdg-desktop-portal/pull/762
- [ ] Use [libei](https://gitlab.freedesktop.org/libinput/libei): once it has been implemented by mutter: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2628 and merged to flatpak https://github.com/flatpak/xdg-desktop-portal/pull/762
- [ ] Recent rust crate for libei protocol: https://crates.io/crates/reis

- [ ] On x11: improve the process to add the emoji to the clipboard > paste > close the app. Currently there is an issue with `xdotool` clearing the clipboard when called from tauri
- [ ] Select multiple emoji when pressing a specific key, e.g. when pressing shift?
- [ ] Check if working properly on MacOS
- [ ] Check if working properly on Windows
- [ ] Add auto-paste on Windows and MacOS when the compatibility between Enigo and Tauri is resolved (cf. https://github.com/enigo-rs/enigo/issues/15 and https://github.com/tauri-apps/tauri/issues/6421)
- [ ] Improve persistence https://aptabase.com/blog/persistent-state-tauri-apps

Expand Down
9 changes: 6 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,23 @@
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"test": "vitest",
"lint": "prettier --ignore-path .gitignore --check . && eslint . --ignore-path .gitignore",
"lint": "eslint . --ignore-path .gitignore",
"fmt": "prettier \"**/*.{svelte,ts,tsx,js,cjs,yml,md,html,css}\" --ignore-path .gitignore --write",
"internationalize": "node resources/internationalize.js"
},
"dependencies": {
"@emoji-mart/data": "^1.1.2",
"@tauri-apps/api": "^1.4.0",
"@tauri-apps/api": "^2.0.0-beta.6",
"@tauri-apps/plugin-cli": "^2.0.0-beta.2",
"@tauri-apps/plugin-clipboard-manager": "^2.0.0-beta.2",
"@tauri-apps/plugin-os": "^2.0.0-beta.2",
"emoji-mart": "^5.5.2"
},
"devDependencies": {
"@sveltejs/adapter-auto": "^2.0.0",
"@sveltejs/adapter-static": "^1.0.0-next.50",
"@sveltejs/kit": "^1.20.4",
"@tauri-apps/cli": "^1.4.0",
"@tauri-apps/cli": "^2.0.0-beta.11",
"@types/cookie": "^0.5.1",
"@typescript-eslint/eslint-plugin": "^5.45.0",
"@typescript-eslint/parser": "^5.45.0",
Expand Down
Loading

0 comments on commit 9f2d047

Please sign in to comment.