c55 logo

A blog post

This is a recklessly made blog based on haphazard static file generation scripts.

"New" laptop

I set up a new-to-me laptop for myself now, as an upgrade to the Dell Precision M6800.

The model I chose is the Dell Precision 7760 with a 4K display. It's a 2021 model, so not exactly new, and I did buy it second hand, but it is essentially new compared to the 2013 model year M6800.

The other alternative was the Asus ZBook Fury G9. However, I decided its glass 4K display is a problem for me as the glass can easily break in my heavy handling of the laptop. I do require a fairly rugged laptop. The Dell does not have a glass display as it doesn't have a touchscreen.

It took about a week to set up the 7760 to:

I still use Fedora, which I started to use with the M6800. It's been working very well even when using IceWM instead of any of the recommended desktop environments.

I started using Syncthing for some things. It seems to be quite useful for synchronizing things between always-on devices like my main laptop and phone, without a central server or central file storage. Regardless of whether this proves good long term, it is immediately obvious they do have a nicely set up organization and sponsors, and they also have a well defined development goal (issues are often rejected as nonsense or as out-of-scope, which is a good sign).

Why I didn't go with the 7770:

Why I didn't go with the 7780:

What I like about the 7760:

What I hate about it:

The only thing I hate is the keyboard.

The keyboard layout is screwed up in various ways:

All of this would be remediable if I managed to get access to modifying the firmware of the controller that translates the keyboard matrix coordinates into scancodes. Aside from the prints on the keys themselves, all of this nonsense is implemented there.

I even checked that the keyboard matrix is connected to an ECE1117, which is likely connected via a proprietary BC-Link bus to a host controller

Anyone got ideas how to get access to the host controller firmware and how to flash it?

A special mention about the Precision M6800's keyboard:

In the M6800, which is now my secondary laptop, the keyboard is basically perfect:

Keyboard conclusion

All this makes the Precision 7760's keyboard layout an absolute joke in comparison. The only saving feature of the 7760's keyboard is the remaining full sized numpad which allows enough keybindings to be set up to work around the issues.

In the Precision 7760, I think I can for example remap the pageup, up, pagedown, left, down, right (3x2 keys) layout onto the numpad 1,2,3,4,5,6 keys using showkey and setkeycodes. I have yet to try this. This will of course render the numpad useless for typing numbers, but I super rarely use it for that purpose so completely remapping it is definitely an option. Most applications do not use the numpad scancodes/keycodes for anything, as most laptops don't have the numpad and people use laptops a lot.

Setting up xdg-desktop-portal

I started with a Fedora Workstation, which is the Gnome Shell spin of Fedora, and then modified it to use IceWM. This was a bad idea because of a new mechanism called xdg-desktop-portal.

The short answer to how to make this work is: Switch to a Fedora spin which most closely resembles IceWM - one which uses Xorg instead of Wayland, and doesn't require a plethora of background services to provide all kinds of things. What I ended up doing was:

sudo dnf swap fedora-release-identity-workstation fedora-release-identity-lxqt sudo dnf remove xdg-desktop-portal-gnome

and then a bit of cleanup, plus I made sure my .xinitrc has this:

export XDG_CURRENT_DESKTOP=X-Cinnamon exec dbus-launch --exit-with-session icewm-session

This avoids the issue of xdg-desktop-portal-gnome being available and somehow messing up the xdg-desktop-portal mechanism in such a way that Chrome is completely unable to open a file chooser dialog. Go figure.

Also X-Cinnamon seems to be a good magic value for XDG_CURRENT_DESKTOP as Cinnamon is the main project that's developing environment agnostic Xorg compatible xdg-desktop-portal implementations to serve other projects like MATE in addition to themselves.