How to install Espanso on Debian or Ubuntu or Raspberry Pi OS

edafe.de/espanso

“Replace ‘:poke’ with ‘Pokémon,’ or save some time by replacing ‘:greeting’ with a stock email template. That’s the basic idea, but Espanso goes much further. It’s one of the most powerful utilities I’ve used, and if you’re willing to do a bit of legwork to set it up properly, it can be one of the most powerful tools on your PC, too”, writes Jacob Roach.

www.xda-developers.com

Installing Espanso for Wayland

Espanso is a cross-platform text expander written in Rust. Follow these instructions to install Espanso 2.3.0 for Wayland on your Debian-based distribution.

Compiling from source

If you are installing on any platform other than amd64 or simply prefer compiling software from source, start at Step 1.

Using the Debian binary package

If you are installing on amd64 hardware and would like to use the binary package for installation, start at Step 7.


Step 1

Install the required packages from your distribution’s software repository.

$ sudo apt install --yes build-essential git libdbus-1-dev libssl-dev libwxgtk3.*-dev libxkbcommon-dev wl-clipboard

Step 2

Download and install the Rust Programming Language.

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Select option 1) – just press enter.

1) Proceed with standard installation (default - just press enter)
2) Customize installation
3) Cancel installation
>

Step 3

Reload the PATH environment variable to include cargo, which is the build tool for Rust.

$ source "$HOME/.cargo/env"

Step 4

Clone the Espanso GitHub repository onto your local machine.

$ git clone https://github.com/espanso/espanso "$HOME/git/espanso"

Step 5

Compile Espanso in release mode.

$ cd "$HOME/git/espanso" && cargo build -p espanso --release --no-default-features --features modulo,vendored-tls,wayland

Step 6

Move Espanso to its correct location in your Linux system.

$ sudo mv "$HOME/git/espanso/target/release/espanso" /usr/local/bin/

Continue with Step 10.


Step 7

Install the required packages from your distribution’s software repository.

$ sudo apt-get install --yes libwxgtk3.2-1t64 wl-clipboard

Step 8

Download espanso-debian-wayland-amd64.deb onto your local machine.

$ wget -P "$HOME/Downloads/" --show-progress https://github.com/espanso/espanso/releases/download/v2.3.0/espanso-debian-wayland-amd64.deb

Step 9

Install the downloaded package.

$ sudo dpkg -i "$HOME/Downloads/espanso-debian-wayland-amd64.deb"

Step 10

Give Espanso the permissions required for its operation.

$ sudo setcap "cap_dac_override+p" $(which espanso)

Check to see whether the Espanso binary was installed successfully.

$ espanso --version

Step 11

Register Espanso as a systemd service and launch the program.

$ espanso service register && espanso start && espanso status

Use the wizard and start with a practical example.

Image

Step 12

After completing the wizard, use [Alt + Space] to open the search bar.

GNOME and PIXEL desktops only

Change the default shortcut for opening the search bar to resolve an existing conflict.

$ sed -i 's/search_shortcut: ALT+SPACE/search_shortcut: ALT+SHIFT+SPACE/' "$HOME/.config/espanso/config/default.yml"

Use [Alt + Shift + Space] to open the search bar.

Experimental support for Wayland

Espanso has some known limitations under Wayland. Most notably, “there is currently no support for App-specific configurations”.

Install Syncthing 2.x for continuous file synchronisation on Debian or Ubuntu or Raspberry Pi OS

edafe.de/syncthing

Syncthing is an open source tool that synchronises files continuously across multiple devices. It transfers data between two or more of your computers, without uploading any information to the cloud.

The Syncthing 2.0 release has recently been described as ‘A Giant Leap Forward in Decentralized File Synchronization‘.

Synchronisation for every platform

Syncthing binary packages are available for Android, Windows, macOS and Linux (including Synology DSM). In addition, Synctrain enables iOS devices to “securely synchronise files with other devices that have Syncthing installed”.

The usefulness of the Syncthing Project cannot be overstated.

Running the Syncthing stable-v2 channel

These instructions are targeting the latest release of the Syncthing stable channel.

Step 1

Add the necessary release key for validation of downloaded Syncthing packages.

$ sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg

Step 2

Add the Syncthing repository as a new source.

$ echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list

Step 3

Install Syncthing on your local system.

$ sudo -- bash -c 'apt update && apt install --yes syncthing apt-transport-https'

Step 4

Enable Syncthing for the current user.

$ sudo -- bash -c 'systemctl enable syncthing@$USER.service && systemctl start syncthing@$USER.service && systemctl status syncthing@$USER.service'

Step 5

You may want to edit your firewall settings to open ports for incoming and outgoing traffic.

If you are using ufw as a host-based firewall

Configure ufw to allow connections to Syncthing.

$ sudo ufw limit syncthing

If you are using firewalld as a host-based firewall

Configure firewalld to allow connections to Syncthing.

$ sudo -- bash -c 'firewall-cmd --zone=public --add-service=syncthing --permanent && firewall-cmd --reload && firewall-cmd --info-zone=public'

Step 6

Use your browser to access the Syncthing configuration page on your local system by navigating to the following address:

http://localhost:8384
Image

Step 7

Complete your setup by referring to the Syncthing documentation.

Upgrading from the v1 channel

If you have previously installed from apt.syncthing.net and are currently running Syncthing 1.x, upgrading to the stable-v2 channel is straightforward.

Remove the old APT sources configuration file.

$ sudo rm /etc/apt/sources.list.d/syncthing.list

Add the new repository for the stable-v2 channel together with its release key.

$ sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg && echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list

Upgrade to the latest stable version of Syncthing.

$ sudo -- bash -c 'apt update && apt upgrade --yes'

AI and the corporate capture of knowledge

“A society cannot meaningfully debate policy, science or justice if information is locked away behind paywalls or controlled by proprietary algorithms. If we allow AI companies to profit from mass appropriation while claiming immunity, we are choosing a future in which access to knowledge is governed by corporate power rather than democratic values.” Bruce Schneier warns of a future in which access to knowledge is subordinate to corporate interests.

www.schneier.com

Der Plan von der Abschaffung des Asyls

“Das Asylrecht setzt voraus, dass wir das Leid anderer als rechtlich relevant anerkennen. Wenn Empathie politisch diskreditiert wird, verliert das Recht seine Basis. Die Asylpolitik der Gegenwart lebt von dieser Empathieverweigerung. Sie setzt auf Distanz, auf administrative Neutralisierung. Wer Zuständigkeits- und Zulässigkeitsregeln so ausbaut, dass bereits die Möglichkeit der Antragstellung zur Odyssee wird, stiehlt sich aus der menschenrechtlichen Verantwortung. Insofern ist die deutsche und europäische Entwicklung der Abschaffung des Asyls nicht nur ein juristischer, sondern ein anthropologischer Vorgang. Die Diskussion soll unser Bild der asylsuchenden Personen verändern. Sie werden als gefährliche Regelbrecher gelabelt und ihr Schutzbedarf dadurch unsichtbar gemacht. Diese Entwicklung ist gefährlicher als jede Verfassungsänderung.” Constantin Hruschka beschreibt den Rechtsbruch als Beweis der staatlichen Souveränität mit den sich daraus ergebenden Folgen für unsere Demokratie.

verfassungsblog.de

Install OneDrive Client for Linux on Debian or Ubuntu

edafe.de/onedrive

The OneDrive Client for Linux connects your Debian or Ubuntu system to Microsoft’s OneDrive Personal, OneDrive for Business, OneDrive for Office365, Sharepoint and other such deployments.

Step 1

Install the OneDrive Client from the Debian or Ubuntu repository.

$ sudo -- bash -c 'apt update && apt install --yes onedrive'

Step 2

Begin to connect the client to your OneDrive account.

$ onedrive --sync

You will be presented with a dialog containing a URI similar to the following:

Configuring Global Azure AD Endpoints
Authorise this application by visiting:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=e50ca730-u81r-1r1m-x381-28l5d9334f0y&scope=Files.ReadWrite%20Files.ReadWrite.All%20Sites.ReadWrite.All%20offline_access&response_type=code&prompt=login&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient

Enter the response uri from your browser:

In a web browser

Open the URI from the previous dialog in a browser and log into your Microsoft account. You can either [Ctrl + Click] the URI in the terminal or copy and paste it into the address bar of your browser.

Upon successful authentication, you will be redirected to a response URI displaying a blank page. Copy the URI from the address bar of your browser.

In the terminal

Paste the response URI into the terminal. The OneDrive Client will connect to your Microsoft account and synchronise your data.

Initializing the Synchronization Engine …
Syncing changes from OneDrive …
Creating local directory:
Downloading file … done.
Uploading differences of ~/OneDrive
Uploading new items of ~/OneDrive

Step 3

After downloading your data to ~/OneDrive, validate the configuration of your client.

$ onedrive --display-config

All done!

The mad king’s digital killswitch

“The very worst-case speculative scenario for Huawei-as-Chinese-Trojan-horse is infinitely better than the non-speculative, real ways in which the US has killswitched and bugged the world’s devices.” Cory Doctorow explains why responsible governments should have to accelerate their countries’ independence from US tech and not just Russian gas.

pluralistic.net

Install Cockpit on Debian 13 trixie

edafe.de/cockpit

Cockpit provides an easy-to-use, web-based interface for administering Linux systems. It simplifies tasks such as monitoring logs, controlling system services, configuring networks, and managing virtual machines.

Cockpit has been described as a “useful and extensible tool to observe, manage, and troubleshoot Linux servers“.

Step 1

cockpit requires the use of the firewalld service to be able to make changes to your firewall rules.

If you are using ufw as a host-based firewall

Remove ufw before replacing it with firewalld.

$ sudo apt-get remove --purge --yes ufw

[sudo] password for yourusername:

Install firewalld as a host-based firewall

Install firewalld and maintain ssh access as well as enabling cockpit to receive incoming connections.

$ sudo -- bash -c 'apt-get install --show-progress --yes firewalld && systemctl enable --now firewalld.service && firewall-cmd --zone=public --add-service=ssh --permanent && firewall-cmd --zone=public --add-service=cockpit --permanent && firewall-cmd --reload && firewall-cmd --info-zone=public'

Step 2

Proceed to install cockpit and selected add-on applications.

$ sudo apt-get install --show-progress --yes cockpit cockpit-bridge cockpit-machines cockpit-podman nullmailer ssh tuned-utils

Step 3

If you selected a wireless interface as the primary network interface for use during installation of the Debian system, you may need to re-establish connection to the wireless network after rebooting.

Enable NetworkManager for the primary network interface and reboot your system.

$ sudo sed -i 's/managed=false/managed=true/' /etc/NetworkManager/NetworkManager.conf&&sudo sed -i '/# The primary network interface/,$d' /etc/network/interfaces && sudo reboot

Step 4

Access the Cockpit web console on https://localhost:9090 by entering your username and password.

Step 5

By default, the Cockpit web console listens on port 9090 for connections. If you want to make changes from the default, use the following command to edit /etc/systemd/system/cockpit.socket.d/override.conf.

$ sudo systemctl edit cockpit.socket

The example below changes the web console port from 9090 to 9091 and restricts access to the localhost only.

### Editing /etc/systemd/system/cockpit.socket.d/override.conf
### Anything between here and the comment below will become the new contents of the file

[Socket]
ListenStream=
ListenStream=127.0.0.1:9091

### Edits below this comment will be discarded

Use the following command for your changes to take effect.

$ sudo -- bash -c 'systemctl daemon-reload && systemctl restart cockpit.socket && systemctl status cockpit.socket'

Configure nullmailer with a relay host

edafe.de/nullmailer

If you wish to receive status updates from your Debian or Ubuntu system, you need to install and configure a mail transfer agent (MTA). nullmailer is a relay-only forwarding MTA that can be used as an alternative to more complex MTAs, such as Exim, Sendmail or Postfix.

A relay host, also referred to as a smarthost, can be defined as an email server for outgoing mail that is being afforded a good reputation by its peers. In this example, we use Fastmail because email deliverability depends on a number of different factors.

Configuration of nullmailer with Email Service Providers (ESPs) other than Fastmail should be similar, given that all ESPs implement the Simple Mail Transfer Protocol (SMTP).

Step 1

Generate an app password

Log into your Fastmail account and set up a new app password for SMTP authentication.

Create an alias

Set up a dedicated Fastmail alias to receive incoming messages.

Step 2

Use copy and paste to enter the following commands. Be careful not to miss any punctuation.

Create the new directory /etc/nullmailer and the file /etc/nullmailer/adminaddr.

$ sudo mkdir /etc/nullmailer && sudo nano /etc/nullmailer/adminaddr

The Fastmail alias you created in Step 1 should be the only entry in /etc/nullmailer/adminaddr.

target.email@fastmail.com

Step 3

Install the required packages.

$ sudo apt-get install --yes nullmailer mailutils

Step 4

Enter the system mailname. If you are setting up on a home network, you should use home.arpa as the domain name.

Configuring nullmailer

Mailname of your system:

tux.home.arpa

Ok

Configuring the smarthost

Configure nullmailer to use the Fastmail SMTP server as a smarthost. Use your Fastmail username and the app password from Step 1.

Configuring nullmailer

Smarthosts:

smtp.fastmail.com smtp --port=587 --auth-login --starttls --user=linus.torvalds@fastmail.com --pass=password

Ok

Step 5

Test your configuration with the following command.

$ echo "Test mail from nullmailer on tux.home.arpa to the local root user and forwarded on to Fastmail" | mail -s "Test nullmailer" root

Check your inbox!

Step 6

You can reconfigure nullmailer at any time by issuing the following comand.

$ sudo dpkg-reconfigure nullmailer
Click to copy