I'm hoping to get a MNT Pocket Reform at some point and I heard that it comes with Sway as the default window manager. No problem, I can get into that. Years ago I was a fan of ratpoison and i3. Today, I'm trying to use sway. I think my biggest problem right now is that the pipe/backslash key works like a < and > key. How weird is that. Maybe some weird key binding that is coming back to haunt me.
In order to get started, I copied `/etc/sway/config` to `~/.config/sway/config` and started making some changes.
Scrolling with the touch pad was weird. Somehow inverted! The answer was to have `natural_scroll enabled` for the touchpad input. This didn't always work. And the scroll wheel was different than the touchpad. So right now I'm using the following:
input * { dwt enabled tap enabled middle_emulation disabled xkb_layout us xkb_variant altgr-intl xkb_options compose:caps } input type:touchpad { natural_scroll enabled }
This also makes Caps Lock the Compose Key again.
Getting the less key instead of the backslash key remained a problem. There are so many variants in `/usr/share/X11/xkb/symbols/us`. After a while I realised that I needed a variant with LSGT (less/greater) being mapped to `backslash` and `bar`, like this:
key <LSGT> { [ backslash, bar ] };
The options I had seemed to be: `euro`, `ibm2381`, `intl`, and so on. But also anything that contained dead keys was no good:
key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
In these variants, I have to type every back-quote, single-quote, double-quote and circumflex twice. @bkhl@social.sdfeu.org pointed me to `altgr-intl`. Thanks!
Now I'm wondering about suspending the laptop. With Gnome, I'd hit the GUI key and type "suspend", Enter, done. But there is no "suspend" command. I ended up installing `wlogout` which gives me huge buttons to lock, logout, suspend, hibernate, shutdown and reboot. But, surprisingly, when it suspends, and it comes back, no password is required. That's weird!
I installed `cryptsetup-suspend` which adds something the old setup did not have: returning from a suspend now asks for the disk decryption password but still does not ask for the account password. Well, on a single user system like mine, one of the two is good enough, I guess. But still. And then the other time I tried it (by running wlogout and choosing "suspend") the system would go to sleep and I couldn't find a way to get it back. And when I reset it, it wiped my keyboard's config?? I don't quite understand but I hate all of it. I uninstalled it again.
β#Administration β#Sway β#Window Manager
Time has passed and today I added keybindings for lowering and raising the volume.
bindsym XF86AudioLowerVolume exec amixer set Master '10%-' bindsym XF86AudioRaiseVolume exec amixer set Master '10%+'
So proud of myself. π
As for playback from the command-line, right now I'm using `mpv`:
mpv "https://somafm.com/secretagent.pls"
OK, time for fiddling with stuff. Every minute, the script called to produce the status bar.
bar { position top status_command while ~/.config/sway/status.fish; do sleep 60; done colors { statusline #ffffff background #323232 inactive_workspace #32323200 #32323200 #5c5c5c } }
The script prints something like this:
Bandu 65% π‘ 100% π fully-chargedπ 2023-10-31 15:40
This is the code. As you can see it calls `awk`, `perl` and tons of other stuff. Yikes!
#!/usr/bin/fish # The Sway configuration file in ~/.config/sway/config calls this script. # You should see changes to the status bar after saving this script. # If not, do "killall swaybar" and $mod+Shift+c to reload the configuration. set date (date +'%Y-%m-%d %R') set battery (upower --show-info (upower --enumerate | grep 'BAT') | perl -e ' use utf8; binmode(STDOUT,":utf8"); while (<>) { if (/state:\s*(.*)/) { print $1; } elsif (/percentage:\s*([0-9]+)/) { print $1 > 20 ? "π" : "πͺ«"; } }') # "amixer -M" gets the mapped volume for evaluating the percentage # which is more natural to the human ear according to "man amixer". # The current volume percentage comes in brackets, e.g., "[36%]" # followed by "[off]" or "[on]" depending on whether sound is muted or # not. "tr -d []" removes brackets around the volume. I'm looking at # "Front Left:" because of how amixer reports volumes on my laptop. set audio_volume (amixer -M get Master |\ awk '/Front Left:/ {print $6=="[off]" ?\ $5" π": \ $5=="[100%]" ? \ $5" π": \ $5" π"}' |\ tr -d []) set wlan (nmcli --get-values name,device,type connection show --active \ | grep wireless \ | string split ':') # $bar = join("", " βββββ βββ", int(9*$1/$2), 1); \ set ssid $wlan[1] set device $wlan[2] set q (/sbin/iwconfig $device | perl -e ' use utf8; binmode(STDOUT,":utf8"); while (<>) { if (/([0-9]+)\/([0-9]+)/) { print int(100*$1/$2) . "% " . substr("π΄π π‘π’π’", int(4*$1/$2), 1); } }') set lan (nmcli --get-values type connection show --active|awk '/ethernet/ { print "π§" }') echo $lan $ssid $q $audio_volume $battery $date
I'm learning quite a bit about controlling my system from the command line. I hadn't known about `nmcli`.
In order for the computer to lock when when idle, install `swayidle` (a separate Debian package). Then the following will have the expected effect:
exec swayidle -w \ timeout 300 'swaylock -f -c 000000' \ timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ before-sleep 'swaylock -f -c 000000'
With no more X11, I noticed that `dmenu` no longer worked and I replaced it with `wofi`. The following lets me use GUI+d to start desktop applications and GUI+Shift+d to start binaries on my `$PATH`.
set $desktop-menu wofi --show=drun set $run-menu wofi --show=run --term=foot # Start your launcher bindsym $gui+d exec $desktop-menu bindsym $gui+Shift+d exec $run-menu
I also had to rebuild Emacs using `./configure --with-pgtk` to get a graphical Emacs without X11.
This is going to be interesting.
bindsym $gui+s exec fuzzel bindsym $gui+c exec $term --window-size-chars=80x25 orpie bindsym $gui+d exec evince bindsym $gui+Period exec /home/alex/.local/bin/bemoji -t bindsym $gui+e exec emacsclient --create-frame --alternate-editor=
The config file sets the terminal and gets rid of transparency:
terminal=foot [colors] background=fdf6e3ff text=657b83ff match=cb4b16ff selection=eee8d5ff selection-text=657b83ff border=002b36ff
Removing x11proto-dev is also impossible. So many other dev packages seem to depend on it, I suspect Emacs would no longer work.
Removing x11-utils removes Chromium, the backup browser! Now it really starts to hurt.
I guess X11 is here to stay.
exec swaync bindsym $gui+n exec swaync-client -t -sw
Oh. And Gimp needs X11? "Cannot open display:" β¦ that's bad.
I tried to use another file manager. Something leaner. Like midnight commander? I also looked at `nnn`. I think it uses `xdg-open` to open files.
Here's what's weird. The default application for PDF files is Gimp instead of Evince. I want to change that, but it appears to have no effect.
alex@melanobombus ~> xdg-mime query default application/pdf gimp.desktop alex@melanobombus ~> xdg-mime default Evince.desktop application/pdf alex@melanobombus ~> cat .config/mimeapps.list [Default Applications] application/pdf=Evince.desktop alex@melanobombus ~> xdg-mime query default application/pdf gimp.desktop
In desperation, I uninstalled Gimp. The default was set to Libre Office Draw. I uninstalled that, too. Now the default was correct: `org.gnome.Evince.desktop`. What a headache. I'm sure it can be specified somewhere, but I don't know how.
OK, reinstalled Gimp, same problem. But now:
alex@melanobombus ~> xdg-mime default org.gnome.Evince.desktop application/pdf alex@melanobombus ~> xdg-mime query default application/pdf org.gnome.Evince.desktop
Oh, and installing xwayland, of course, so that I can run Gimp again.
[Settings] gtk-application-prefer-dark-theme=1
Sadly, the above only changes my Firefox theme and doesn't seem to affect this site's CSS. The following has no effect:
@media (prefers-color-scheme: dark) { β¦ }
At the console, the following still returns `false`, disappointingly:
window.matchMedia('(prefers-color-scheme: dark)').matches
It works with Chromium. My Firefox is 115.9.1esr (64-bit). This is unrelated to Sway: The situation is unchanged when I switch to Gnome. I feel like this has worked before?
input * { dwt enabled tap enabled middle_emulation disabled xkb_layout eu # xkb_layout us # xkb_variant altgr-intl xkb_options compose:caps }
The tricky parts:
Strangely, on Windows, more combos are possible but Caps Lock is no Compose Key.
Today I was finally able to find out why:
By default, the keyboard in the Librem v4 (and previous) expects you to pick the US international keyboard layout, instead of the US keyboard layout. This makes the key above the enter key, normally assigned to \ and | (and labeled as such) send french quotation marks instead (Β« and Β»). -- Installing Debian on Purism Librem 13: Keyboard
Installing Debian on Purism Librem 13: Keyboard
The solution was to create a file called `/etc/udev/hwdb.d/90-purism-pipe-symbol-fix.hwdb` as described in the wiki, containing the following:
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism:pnLibrem13* KEYBOARD_KEY_56=backslash
Contrary to the wiki article, I didn't specify Librem 13v4 because I have some older version (and thus 13v4 had no effect).
Reboot, or run the following:
sudo systemd-hwdb update sudo udevadm trigger
Thanks, @deshipu@fosstodon.org.
β#Purism