From 46b349e513b0fbb10f459c4b15f683f0bc0c6b6b Mon Sep 17 00:00:00 2001 From: Tomas Ravinskas Date: Sun, 2 Oct 2022 21:41:53 +0300 Subject: [PATCH] Update readme --- .gitignore | 2 ++ README-old.md | 99 --------------------------------------------------- README.md | 62 +++++++++++++++++++++++++++----- 3 files changed, 55 insertions(+), 108 deletions(-) delete mode 100755 README-old.md diff --git a/.gitignore b/.gitignore index ec8a36a25..a21f66f53 100755 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ web-build/ # macOS .DS_Store + +.vscode diff --git a/README-old.md b/README-old.md deleted file mode 100755 index 9242dc05f..000000000 --- a/README-old.md +++ /dev/null @@ -1,99 +0,0 @@ -# Emoji keyboard - -Virtual keyboard-like emoji palette for Linux. - -Emoji support on Linux is shaky at best. Modern distributions finally support -displaying color emoji, but using emoji is inconsistent and inconvenient. - -Enter `emoji-keyboard`! Press a hotkey (default `Ctrl+Super+Space`) or choose `Palette` -from app indicator and an emoji palette opens. Then just click on emoji you want to use -and watch them appear in the active application! - -> **Tip:** hold shift when using the terminal and you can type emoji into the terminal - -> **Tip:** you can choose to copy emoji into the clipboard instead in the `Preferences` - -Easy. - -Not sure which emoji to use? Press `Ctrl+Super+F` or choose `Search` from app indicator -and you can search emoji by name, short code or emoticon. - -> **Tip:** don't want to use mouse after searching? Press up/down arrows and `Enter` to type - -Got emoji you use frequently? Memorize short code (you can see it when hovering emoji -in the palette) and then just type it and watch it be replaced by the emoji. - -> **Tip:** you can disable this feature in `Preferences`. It doesn't play well with Firefox - -And of course there's eye-candy. Choose emoji set you prefer or app and panel themes to match your system. - -## emoji-keyboard won't start! - -First try running it in the terminal. - -You'll probably see something about `sandbox helper` and `permissions`. That's a known [electron bug](https://github.com/electron/electron/issues/17972). - -To work around it simply append `--no-sandbox` flag when starting emoji-keyboard such as - -```sh -./emoji-keyboard --no-sandbox -``` - -Do not worry, as emoji-keyboard doesn't load any remote resources, sandbox can be safely disabled. - -Relevant bug [here](https://github.com/OzymandiasTheGreat/emoji-keyboard/issues/55). - -## Credits and License - -`emoji-keyboard` is release under GPLv3 or later license. - -© 2020 [Ozymandias (Tomas Ravinskas)](mailto:tomas.rav@gmail.com) - -Based on the Angular-Electron template by [Maxime Gris](https://github.com/maximegris/angular-electron). - -Emoji artwork and metadata provided by: - -[Blobmoji](https://github.com/c1710/blobmoji) by Google Inc. and is licensed under [Apache-2.0](https://github.com/C1710/blobmoji/blob/master/LICENSE) - -[Emoji Two](https://emojitwo.github.io/) by [Ranks.com](http://www.ranks.com/) and is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). - -[Noto emoji](https://github.com/googlefonts/noto-emoji) by Google Inc. and is licensed under [Apache-2.0](https://github.com/googlefonts/noto-emoji/blob/master/LICENSE) - -[Twemoji](https://github.com/twitter/twemoji) by [Twitter](https://twemoji.twitter.com/) and is licensed under [CC-BY-4.0](https://github.com/twitter/twemoji/blob/master/LICENSE-GRAPHICS) - -[Openmoji](https://github.com/hfg-gmuend/openmoji) by [openmoji.org](https://openmoji.org/about/#team) and is licensed under [CC-BY-SA-4.0](https://creativecommons.org/licenses/by-sa/4.0/) - -## Installation - -Grab AppImage from [releases page](https://github.com/OzymandiasTheGreat/emoji-keyboard/releases) and just run it! - -***Feedback is always WELCOME*** - -## Building - -You'll need Python 3.6, Poetry, Node 12 and latest NPM. - -I use [Poetry](https://python-poetry.org/) to manage Python bits, so you'll need it installed to build/run from source. - -First setup environment and install dependencies: - -```shell -python3 -m venv .venv -source .venv/bin/activate -poetry install -npm install -``` - -Then to run from source simply run: - -```shell -npm start -``` - -To build AppImage: - -```shell -npm run electron:linux -``` - -AppImage will be located under `dist/release`. diff --git a/README.md b/README.md index be03261d2..c3952025a 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,62 @@ ## Story Time -Hello, there! I'm Tomas and I wrote emoji-keyboard years ago. It was never a passion project, I was just highly annoyed by all available means of using emoji on Linux at the time. It's 2022 and using emoji on Linux is still a PITA. At least we got system wide color emoji. +> TL,DR I can no longer maintain this app. I'm releasing an updated version that will continue +> working for a while, but it'd be nice if someone took up maintenance. -Since it's not a passion project (and I got plenty of those), it doesn't pay for itself, and I even got a proper job now, I will likely not be maintaining this package much. +Hello, there! I'm Tomas and I wrote emoji-keyboard years ago. I was annoyed how using emoji on Linux +involved a lot of copy-pasting. Not that I was a heavy emoji user, mind you. However, as emoji became +more and more mainstream, not using them at all was becoming impossible. So I begrudgingly wrote a little +Python/GTK app in an afternoon and released it in case somebody else had similar feelings on the matter. -That said I did rewrite the app last spring, using rust and third-party libraries to optimize performance and maintenance cost. And then forgot to release it. +It was always an afterthought to maintain this app, and GTK soon proved to be too much of a PITA. +So I rewrote it in Angular/Electron with a Python sidecar for system interface. That limited the +adoption of the app as many folk have irrational hate for all things Electron. -So here I am releasing the latest version (4.0.0) -with react-native front end, rust + c backend, and much simplified and reduced code base. +Also, since Linux at the time had no support for color emoji, I included several graphical emoji +sets to give an idea of how others are going to see what you type. That had the downside of making +binaries *very* large. Angular, which I picked without much forethought turned out to be a PITA +as well, so I neglected the app for a long while. It worked fine for me, but GitHub collected a bit +of a backlog of issues. -If you find new bugs here, do open an issue. Just know that I have no time for this and it takes me about a year to fix things unless they affect me personally. +So last spring (2022) I decided to rethink and rewrite the app, so it wouldn't need much +maintenance and to address at least some of the outstanding issues. -## Changes +I decided to switch out Electron for Tauri, Angular for React (Native/Expo), and to drop sidecar completely. +Since most (all?) Linux distros now natively support color emoji and even allow switching system emoji font, +there were no longer any need to include graphics. All of the above resulted in much smaller bundle, lower +resource usage, and more responsive app. I can also fix bugs in React, without developing a massive headache +Angular used to give me. Tauri allowed to replace a massive sidecar and complex Electron main script with +third party native dependencies and just a couple lines of Rust. Third party means I don't have to maintain +them! -- Much smaller bundles. No more bundled emoji sets, since every system out there supports color emoji. No more electron, I still like electron, but tauri fits better for a small utility like this. -- Fewer settings and features. Just what I use personally, otherwise I don't even remember how to fix these things even if I get the time. +All good, right? Unfortunately real life got very hectic around the same time and I forgot to actually release +this version, I didn't even push it to GitHub. Now things have settled down, but I no longer use Linux for work +reasons. So I'm releasing the much improved and simplified new version and calling for someone to take up +maintenance! I can walk you through the code any weekend that would suit you and give you write access to the repo. +If you're interested, contact me here, by email, or any way you deem suitable. + +It took a bit of work to make sure this compiles and runs after system updates, but if you use Ubuntu, this +should continue working at least until next LTS. + +## Usage + +Since the version of Tauri I used had issues with global shortcuts, I decided to return to the old mechanic +of manually assigning shortcut in your desktop environment's settings. + +Launching the app brings up the palette, closing the window puts it in the tray. Launching the app again +simply brings up the window of a running instance. First launch may be a little slow, but as it stays in +memory afterwards, subsequent launches will be instant. + +The interface should be pretty intuitive, up/down arrows to select emoji, typing to search. Right/left arrows +just move the cursor in the search box, this could be improved. Enter types selected emoji in the focused app. +Or just use the mouse. If you want to browse emoji by category, you'll have to use the mouse, didn't have the +time to implement Ctrl-Tab. + +There are also some settings. You can enable shortcode overlay over selected emoji, if you also enable expansion, +typing the shortcode will instantly replace it with that emoji. + +## License + +I'm releasing the new version under MIT. I've come to dislike GPL and I want to give as much freedom to +users and hackers as possible. Hack away!