Espanso jest wieloplatformowym programem do rozwijania tekstu, z którego często korzystałem pod Windows 11, ale nie chciało działać na Ubuntu 23.04. Spieszę się z instrukcją, jak skompilować i uruchomić ten program na podstawie następcy X11 - Wayland
W czym problem?
Jak wspomniałem jakiś czas temu ↗:
nie współpracuje zarówno z Ubuntu 23.04 jak z innymi systemami ↗, które działają na podstawie Wayland (nowsza wersja graficznego serwera X11). Jasne, można zainstalować ręcznie DEB’a, jak i skompilować .. ale problem jest z brakiem spełnionych zależności.
Czym jest Espanso?
Espanso jest wieloplatformowym programem do rozwijania tekstu (text-pander
). Pozwala on na zastępowanie skrótów klawiszowych dłuższymi fragmentami tekstu
np: :date
zamienia na 2023/09/26
Może mieć wpływ na zwiększenie wydajności i komfortu pisania. Jest konfigurowany za pomocą prostych plików YAML
, które pozwalają na tworzenie własnych skrótów i reguł.
Przykładowa konfiguracja
matches:
# Outputs the current weather for your location
- trigger: ":weather"
replace: "{{output}}"
vars:
- name: output
type: shell
params:
cmd: "curl 'http://wttr.in/gniezno?format=3'"
shell: zsh
To jedno z głupszych przykładów, ale zanim zabierzemy się za własne skonfiguracje, warto zajrzeć na EspansoHub ↗ i sprawdzić, czy ktoś nie wpadł na podobny pomysł. Instalacja paczki sprowadza się do wydania polecania espanso install <paczka>
.
Nic prostszego.
Poprawne zbudowanie aplikacji w Ubuntu 23.04
1. Instalacja zależności
sudo apt install build-essential git wl-clipboard libxkbcommon-dev libdbus-1-dev libwxgtk3.2-dev libssl-dev
2. Instalacja cargo
Czym jest Rust i Cargo?
Kod Espanso jest stworzony w języku Rust, zapewniający wysoką wydajność i niezawodność a także ma aktywną społeczność, która mocno działa na rzecz rozbudowy ekosystemu wokół Rust. Cargo jest odpowiednikiem narzędzi takich jak Make, służący do zarządzania pakietami i automatyzuje proces budowania aplikacji
zatem:
sudo apt install curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
3. Kompilacja Espanso ze źródeł i instalacja
Cały proces wprowadza sie do ściągnięcia źródeł z repozytorium ↗ i kompilacji, która potrwa jakieś 5-10 minut (czyli idealnie na kawę).
git clone https://github.com/federico-terzi/espansocd espanso
cd espanso
### zwróć uwagę na flagę `NO_X11`, co oznacza jest kompilujemy pod Wayland
cargo make --profile release --env NO_X11=true build-binary
Po zbudowaniu należy zainstalować w systemie, uruchomić usługę a następnie przyznać odpowiednie uprawnienia.
Ale uwaga, warto upewnić się, czy w systemie nie ma jakis paczek Espanso
. W moim przypadku tak było (o czym pisałem tutaj) i musiałem po prostu usunąć SNAP
a:
sudo setcap "cap_dac_override+p" $(which espanso)
Invalid file '/snap/bin/espanso' for capability operation
sudo rm -rf /snap/bin/espanso
Zatem “instalacja” i uruchomienie wygląda następująco:
sudo mv target/release/espanso /usr/local/bin/espanso
sudo setcap "cap_dac_override+p" $(which espanso)
espanso service register
# Start espanso
espanso start
Warto zajrzeć do pomocniczych komend:
❯ espanso --help
espanso 2.2.0
Federico Terzi
A Privacy-first, Cross-platform Text Expander
USAGE:
espanso [FLAGS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-v Sets the level of verbosity
-V, --version Prints version information
OPTIONS:
SUBCOMMANDS:
cmd Send a command to the espanso daemon.
edit Shortcut to open the default text editor to edit config files
env-path Add or remove the 'espanso' command from the PATH
help Prints this message or the help of the given subcommand(s)
install Install a package
log Print the daemon logs.
match List and execute matches from the CLI
migrate Automatically migrate legacy config files to the new v2 format.
package package-management commands
path Prints all the espanso directory paths to easily locate configuration and matches.
restart Restart the espanso service
service A collection of commands to manage the Espanso service (for example, enabling auto-start on system
boot).
start Start espanso as a service
status Check if the espanso daemon is running or not.
stop Stop espanso service
uninstall Remove a package
workaround A collection of workarounds to solve some common problems.
Podsumowanie
Cieszę się, że komentarz od Samuela przyniósł oczekiwane rezultaty i wreszcie mogę korzystać z narzędzia, do którego przyzwyczaiłem się będąc użytkownikiem Windows 11. Istotną zaletą aplikacji jest uniwersalność konfiguracji, którą można migrować niezależnie od platform.
No dobra, problem pojawi się przy mocno zaawansowanej konfiguracji, która opiera się na API, charakterystycznych dla danego systemu operacyjnego. Myślę, że jest to kwestia czasu, kiedy to WSL pośle pościwego CMD’a na zasłużoną emeryturę.