X window managers on the reform pocket

Hi!

I just got my pocket reform (diy kit with rockchip cpu module) and it is great!

To my delight, it runs xorg so I can use exwm=)

The screen was initially configured in portrait layout, but this can be fixed by adding a file to /etc/X11/xorg.conf.d/ with the following contents:

Section "Monitor"
Identifier "DSI-1"
Option "Rotate" "Left"
EndSection

So far so good. I have not, however, been able to get the keyboard working with the eu layout (as in sway with eurokey2), for some reason altgr doesn’t bite. I tried the following to no avail, altgr+o is still just o, not o-diaeresis.

Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "eu"
Option "XkbModel" "pc105"
Option "XkbOptions" "lv3:ralt_switch"
EndSection

Do anyone have any idea about how to configure the reform pocket keyboard under x11?

Cheers,
Tor-bjorn

3 Likes

I have not tried on the Pocket Reform yet (as I have had problems getting X running properly) but on my other computers, I set up the AlgGr using xmodmap, specifying

keycode 108 = Multi_key

You can use xev to find out what keycode the AltGr key generates on the Pocket. Then you can enter all kinds of non-ascii characters by hitting the AltGr key (not holding), then some modifier (~, ', "), and then the target letter. So, for instance, to generate ö, I type AltGr " o in sequence.

Thanks! That works, and altgr was 108 on the pocket as well.

Cheers

And also, a little more digging shows that the eu keymap is not visible to x, so it defaulted to a us keymap explaining why this didnt work for me. Adding (shell-command “setxkbmap eu”) to my init.el fixes the whole thing:)

1 Like

I thought I’d asked you this already but it doesn’t look like it: how do you switch from Wayland to X on the Pocket? I really would also like to use exwm as my window manager, making the most effective use of the small screen!

Thank you.

I installed gdm, which can start x as well as wayland compositors. That was all I had to do:-)

1 Like

Ah, okay. I guess I need to sort out gdm then (it hangs when I try, having done the full upgrade recently discussed in another thread). Thanks.

I haven’t tried yet, but I think tuigreeter can also start either wayland or X sessions. I think you just need to have a session file set up in such a way that the greeter (tui or gdm) can parse it and start whatever session you are want. On GDM, these can be selected with the gear icon in the lower right corner of the screen after you’ve selected the account to log in but before you enter your password. On tuigreeter I think it’s one of the options in the lower left, accessed via function key.

So the trick is to get a session for exwm configured that allows the greeter to offer it as an option.

I think this is currently handled by a framework called xdg (like, xdg-session or something similar). It’s been awhile since I messed with this stuff, and it’s all changed since I did it. :stuck_out_tongue:

1 Like

Aha, looks like I was half-right. Probably xdg is unnecessary, but this section on sessions for tuigreet looks like it might have the details you need:

1 Like

Thank you for this. I will have a look at the github pages. I don’t have much experience with tuigreeter (the Pocket is the first time I have encountered this tool). I imagine I’ll be able to adapt the xsession files I have for exwm.

I must admit that I never noticed the option at the bottom of the screen that indicates I can change the session (the text is too small for my ageing eyes…).

I’ll post here once I’ve had a chance to try something out.

1 Like

If I remember correctly, there is a possibility to run a custom command on login (I have been experimenting with a full screen compositor for emacs-pgtk), maybe you could use that to startx?

Otherwise there is the start windowmaker script in a kiosk compositor, that mntre includes by default, maybe that could be adapted?

1 Like

I’ve made some progress but now stuck. I did have to install xinit which does not seem to be installed automatically even with a full upgrade.

In any case, I now have X fail on start with the following error message (in the /var/log/Xorg.0.log file):

Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices

Searching on the Interweb suggests creating a driver configuration file in /usr/share/X11/xorg.conf.d identifying the device to use, based on information from lspci. Unfortunately, the latter command gives no details on the framebuffer.

Am I missing some package in my installation?

Edit: this is a Pocket with the iM8* processor board.

We used to ship a Xorg.conf that was supposed to work (I never tested this myself) on the imx8mq. It got removed with this commit:

Maybe the content of xorg/10-reform-etnaviv.conf and etc/X11/xorg.conf for imx8mq can help you with crafting one for the imx8mplus?

1 Like

I don’t think Xorg works on the imx8mplus/etnaviv nowadays, but maybe someone figures it out. Cool that it works on panfrost, though.

1 Like

Thanks for this. I’ll try to play with these settings: at least the card location seems to match given the output from X when starting.

Xorg “works” on imx8mq/etnaviv using your config from Classic X11 with Config File

But when moving windows and the mouse cursor, there are artifacts (this is fluxbox with grml):

2 Likes