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:
match my workflows
to get the archaic desktop environment I use to behave reasonably on the high
DPI display
and to update my workflows a bit, to better suit having multiple reasonably
performing laptops instead of a main one and then a bunch of almost absolute
junk in comparison, with was the case in 2014 when I set up the M6800.
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:
It's more expensive
It's not that much more performant
The mouse doesn't have buttons anymore. The 7760 is the last one in the series
to have mouse buttons.
Why I didn't go with the 7780:
It's this year's model so it's crazy expensive and barely available
The mouse doesn't have buttons anymore. The 7760 is the last one in the series
to have mouse buttons.
I don't actually know if they have built any yet with a 4K (UHD) display
What I like about the 7760:
The 4K display (This is why I bought it)
The performance (This is why I bought it)
The sound of the fans under heavy load. The noise is spread among a very wide
a frequency spectrum and is surprisingly low pitched, while the fans are
moving lots of air. (This isn't why I bought it but it's a very nice bonus)
The touchpad has buttons (It's ridiculous that this needs to be specifically
mentioned nowadays)
The touchpad is still small enough (even though they unnecessarily enlargened
it compared to the M6800) to not require using the "Disable While Typing"
option. That option makes gaming and using CAD software impossible. I do not
understand why people want huge touchpads that require it and make the laptop
almost useless.
It's got a modern set of ports and expansion slots, and the full size SD card
reader is super useful (altough again, I don't understand why every laptop
doesn't have it)
It does look good (I don't really care though. I'd like more of a theft
deterrent look)
What I hate about it:
The only thing I hate is the keyboard.
The keyboard layout is screwed up in various ways:
The up and down arrow keys are tiny
The numpad up/down keys are an alternative, but they don't work in all
applications. I'm having bad luck in many terminal applications at least.
The main pageup/pagedown keys are fn + tiny up/down
This is grossly impractical and forces one to use the pageup/down keys on
the numpad when using only one hand. However these do not work with about
50% of applications without setting up special keybinds. Of course, that's
not always possible.
Programs where these don't work where I don't know how to even begin to
fix it:
less
gitk
The home and end keys are fn+F11 and fn+F12
This gives only two practical options for using the home and end keys:
Use the fn lock function, overriding all F1-F12 keys to their fn
alternatives, and requiring fn+F1-F12 for the actual F1-F12 key
Use the numpad home and end keys. These don't work in all applications
and of course you can't use the numpad number keys then
Some keys have been doubled up in the firmware in such a way that they
literally produce the same keycode to the OS, so they are not separately
mappable and essentially just create useless keys that could have been used
much better if the designers had a few more brain cells
The delete key is doubled up as the "CE" key above the numpad
This has been done to match with the Windows calculator default
keybindings. Ridiculous waste of keys.
There is literally one key between the actual delete key and this
doubled up "CE" key, and that key is the "calculator" key!
The F9 key is doubled up as a "+/-" key above the numpad
This has been done to match with the Windows calculator default
keybindings. Ridiculous waste of keys.
Funnily enough the "switch display" key (fn+F8) presses win+p. Dell truly
gave up on writing Windows drivers and just hardcoded Windows 11 key
combinations in their firmware.
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
The host controller in some Dell laptops is MEC5105. This one might have
that exact same one or something very similar
You can't find a datasheet for MEC5105
The supposed host controller is probably in some ways similar to the MEC1705
or MEC142x for which you can find a datasheet.
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:
The arrow keys are shaped appropriately
Pageup and pagedown keys are placed at the upper left and upper right corners
of the arrow keys. This SUPER convenient. Absolutely lovely.
The screen brightness control is fn+up/down. This is super convenient for
brightness control.
To complement this, I set win+up/down to control audio volume
The home, end, insert and delete keys are separate from the F1-F12 keys,
coming right after them on the top row, which is convenient enough (right next
to backspace)
Even the sysrq/print, scroll lock and pause keys are available. They are
mapped as fn+home/end/insert and marked properly on the keys.
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:
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.