Testing New User Tools
On recent weeks I’ve had some time to scratch my own itch on matters related to tools I use daily on my computer, namely the desktop / window manager and my text editor of choice. This post is a summary of what I tried, how it worked out and my short and medium-term plans related to them. Desktop / WMOn the desktop / window manager front I’ve been using Cinnamon on Debian and Ubuntu systems since Gnome 3 was published (I never liked version 3, so I decided to move to something similar to Gnome 2, including the keyboard shortcuts). In fact I’ve never been a fan of Desktop environments, before Gnome I used OpenBox and IceWM because they where a lot faster than desktop systems on my hardware at the time and I was using them only to place one or two windows on multiple workspaces using mainly the keyboard for my interactions (well, except for the web browsers and the image manipulation programs). Although I was comfortable using Cinnamon, some years ago I tried to move to i3, a tilling window manager for X11 that looked like a good choice for me, but I didn’t have much time to play with it and never used it enough to make me productive with it (I didn’t prepare a complete configuration nor had enough time to learn the new shortcuts, so I went back to Cinnamon and never tried again). Anyway, some weeks ago I updated my work machine OS (it was using Ubuntu 22.04 LTS and I updated it to the 24.04 LTS version) and the Cinnamon systray applet stopped working as it used to do (in fact I still have to restart Cinnamon after starting a session to make it work) and, as I had some time, I decided to try a tilling window manager again, but now I decided to go for SwayWM, as it uses Wayland instead of X11. Sway configurationOn my ~/.config/sway/config I tuned some things: Set fuzzel as the application launcher.Installed manually the shikane application and created a configuration to be executed always when sway is started / reloaded (I adjusted my configuration with wdisplays and used shikanectl to save it).Added support for running the xdg-desktop-portal-wlr service.Enabled the swayidle command to lock the screen after some time of inactivity.Adjusted the keyboard to use the es key mapAdded some keybindings to make my life easier, including the use of grimm and swappy to take screenshotsConfigured waybar as the environment bar.Added a shell script to start applications when sway is started (it uses swaymsg to execute background commands and the i3toolwait script to wait for the #!/bin/sh # VARIABLES CHROMIUM_LOCAL_STATE="$HOME/.config/google-chrome/Local State" I3_TOOLWAIT="$HOME/.config/sway/scripts/i3-toolwait" # Functions chromium_profile_dir() { jq -r ".profile.info_cache|to_entries|map({(.value.name): .key})|add|.\"$1\" // \"\"" "$CHROMIUM_LOCAL_STATE" } # MAIN IGZ_PROFILE_DIR="$(chromium_profile_dir "sergio.talens@intelygenz.com")" OURO_PROFILE_DIR="$(chromium_profile_dir "sergio.talens@nxr.global")" PERSONAL_PROFILE_DIR="$(chromium_profile_dir "stalens@gmail.com")" # Common programs swaymsg "exec nextcloud --background" swaymsg "exec nm-applet" # Run spotify on the first workspace (it is mapped to the laptop screen) swaymsg -q "workspace 1" ${I3_TOOLWAIT} "spotify" # Run tmux on the swaymsg -q "workspace 2" ${I3_TOOLWAIT} -- foot tmux a -dt sto wp_num="3" if [ "$OURO_PROFILE_DIR" ]; then swaymsg -q "workspace $wp_num" ${I3_TOOLWAIT} -m ouro-browser -- google-chrome --profile-directory="$OURO_PROFILE_DIR" wp_num="$((wp_num+1))" fi if [ "$IGZ_PROFILE_DIR" ]; then swaymsg -q "workspace $wp_num" ${I3_TOOLWAIT} -m igz-browser -- google-chrome --profile-directory="$IGZ_PROFILE_DIR" wp_num="$((wp_num+1))" fi if [ "$PERSONAL_PROFILE_DIR" ]; then swaymsg -q "workspace $wp_num" ${I3_TOOLWAIT} -m personal-browser -- google-chrome --profile-directory="$PERSONAL_PROFILE_DIR" wp_num="$((wp_num+1))" fi # Open the browser without setting the profile directory if none was found if [ "$wp_num" = "3" ]; then swaymsg -q "workspace $wp_num" ${I3_TOOLWAIT} google-chrome wp_num="$((wp_num+1))" fi swaymsg -q "workspace $wp_num" ${I3_TOOLWAIT} evolution wp_num="$((wp_num+1))" swaymsg -q "workspace $wp_num" ${I3_TOOLWAIT} slack wp_num="$((wp_num+1))" # Open a private browser and a console in the last workspace swaymsg -q "workspace $wp_num" ${I3_TOOLWAIT} -- google-chrome --incognito ${I3_TOOLWAIT} foot # Go back to the second workspace for keepassxc swaymsg "workspace 2" ${I3_TOOLWAIT} keepassxc...