Getting X windows into Hyperbola Linux

Following the Hyperbola Linux install described here

it would be nice if I could get a graphic window system running, instead of operating at an alphanumeric login prompt.

So I had to learn a few pacman commands, then when I tried to
do a system update, I discovered there was no network connection.
Most Linux installs setup a primary network connection for you, but not Hyperbola… it is like Gentoo… you do it all.
So I looked around , found there was no NetworkManager, but it did have dhcpcd installed but not running.
So I decided to start the service and see if it would connect. So a short lesson in OpenRC

rc-update add dhcpcd
rc-service dhcpcd start

The first line sets it up for autostart, the second starts it here and now, to save a reboot.
Now it is running, and a chjeck with ip addr reveals that eth0 ( the virtual ethernet interface) is 192.168.122.57/24.

So now I can use pacman… first a system update
pacman -Syu
does nothing,

So , then I look around for some X11 packages using pacman -Ss to search… cant find X anywhere? Had to resort to searching with google and reading the manual. It turns out X11 in Hyperbola is called xenocara. What!
After more reading I am told that the Xorg package used by Hyperbola is actually the Xorg package from OpenBSD, and OpenBSD calls it xenocara, so they stuck with the name.

So X evolution goes X11 → XFree86 → Xorg → xenocara.
We need to do an Elon Musk and get back to X.

Anyway, here are the packages needed to get X running

pacman -S xenocara-server xenocara-xinit 
pacman -S mesa mesa-demos
pacman -S ttf-liberation ttf-dejavu
pacman -S xterm libx11

Then you need a window manager. Most raw X installs have the primitive twm window manager. I chose fvwm

pacman -S fvwm3

Now we dont have a display manager yet to start the window manager, so we use the old-fashioned startx at the command line.
For startx to work it needs .xinitrc in your home directory.
Here is mine

#!/bin/sh
#
# ~/.xinitrc
#
exec fvwm3
#exec startxfce4
#exec startfluxbox
#exec openbox-session
#exec dwm
#exec icewm-session
#exec jwm
#exec startlxde
#exec mate-session
#exec i3

So it just says exec fvwm3 and if you want to use one of the others you change the comments.

Now , last thing , I am going to want an Xterm. To configure a decent Xterm you need a .Xdefaults file in your home directory
I borrowed mine from my Void/Lumina project

xterm*faceName: Hack
xterm*faceSize: 10

xterm*loginshell: true
xterm*saveLines: 4096

!double-click to select whole URLs
xterm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48

!DOS-box colours
xterm*foreground: rgb:a8/a8/a8
xterm*background: rgb:10/10/20
xterm*color0: rgb:00/00/00
xterm*color1: rgb:a8/00/00
xterm*color2: rgb:00/a8/00
xterm*color3: rgb:a8/54/00
xterm*color4: rgb:00/00/a8
xterm*color5: rgb:a8/00/a8
xterm*color6: rgb:00/a8/a8
xterm*color7: rgb:a8/a8/a8
xterm*color8: rgb:54/54/54
xterm*color9: rgb:fc/54/54
xterm*color10: rgb:54/fc/54
xterm*color11: rgb:fc/fc/54
xterm*color12: rgb:54/54/fc
xterm*color13: rgb:fc/54/fc
xterm*color14: rgb:54/fc/fc
xterm*color15: rgb:fc/fc/fc

!right hand side scrollbar
xterm*ScrollBar: true
xterm*rightScrollBar: true

!stop output to terminal from jumping down to bottom of scroll again
xterm*scrollTtyOutput: false
xterm*metaSendsEscape: true

Quite a mess, but that gives you a bit of color and a scrollbar

Now, the acid test… type startx and yes fvwm display manager starts

That is the default fvwm config, except I have started one Xterm.
There is a menu which comes with a click on background, and the
panel on the right shows 4 virtual screens. That right panel apparently also accomodates icons.

That is it. I have X and a Window manager running.
fvwm is quit a configurable Window manager, you can make it look like most DE’s, but it is not a DE… there is no stuff like file managers or browsers automatically setup. If you mostly work at a terminal, you could live with fvwm… I did once in Solaris, until I found Openlook.

What I plan to do is have a look at a range of Window Managers… ie alternatives to fvwm. And I will probably put in one DE… it has no official support for the major DE’s. It does have Lumina.
And I might use lightdm or slim as a login manager.

1 Like

I like this!!! Just might give me something to, in my off building-days season. This is almost like LFS.

1 Like

Great. We may even get to explain why startx is so difficult in Gentoo… and learn how to fix it.
How is the building going?

Slowly!!! But I am working on it!!!

1 Like

Neville, this is really cool!

Please keep letting us know about your journey with Hyperbola Linux.

I am not sure what DE you put in. (I love KDE Plasma, but I understand it isn’t for everyone)

That is an issue. The better DE’s use things like dbus, pam, polkit,… that hyperbola considers undesirable. So they are unavailable. I am working on it.

https://wiki.hyperbola.info/doku.php?id=en:philosophy:incompatible_packages

https://www.hyperbola.info/todo/

Those links show Hyperbola is missing a lot of software. Its amazing it still works.

Two things that have inconvenienced me are

  • spice-vdagent is needed to make copy/paste work in a VM guest… it is not available because it uses dbus
  • qemu-guest-agent is available, but it does not work. It helps run a VM but it is not essential.

I worked in a VM because I was concerned a hard install in my machine may have graphics driver problems… I have a fairly new AMD card that is not yet supported by Debian 11 ( maybe Debian 12… I have to try)

Cheers Neville

2 Likes

Well, I made that statement … but it took me a week to even penetrate how to configure it.

Fvwm3 is configured by editing a config file , which is located in the users home directory ~/.fvwm/config
There is a default config file, but in a raw install of fvwm3 it may not be in ~/.fvwm. You may need to copy it from
/usr/share/fvwm3/default-config/config

If you start fvwm3 with the default config file, you get the default screen shown in the previous post… the menu allows you to start Xterm, and close to nothing else.

After a lot of searching I figured out how to add items to the menu.
Here is part of my modified config file with commands added to offer a File Manager and two alternative Browsers in the menu

# Root Menu
#
# The root menu will PopUp with a click in the root
# window or using alt-f1 (or menu).
DestroyMenu MenuFvwmRoot
AddToMenu   MenuFvwmRoot "Fvwm" Title
+ "&Programs%icons/programs.png%" Popup MenuPrograms
+ "XDG &Menu%icons/apps.png%" Popup XDGMenu
+ "&XTerm%icons/terminal.png%" Exec exec $[infostore.terminal]
Test (x $[infostore.runcmd]) + "Run command" Exec exec $[infostore.runcmd] $[infostore.runcmdopt]
+ "File Manager%mini-x.xpm%"  Exec spacefm
+ "Iceweasel-uxp%mini-x.xpm%" Exec iceweasel-uxp 
+ "Dillo%mini-x.xpm%" Exec dillo 
+ "" Nop
+ "Fvwm&Console%icons/terminal.png%" Module FvwmConsole -terminal $[infostore.terminal]
+ "&Wallpapers%icons/wallpaper.png%" Popup BGMenu
+ "M&an Pages%icons/help.png%" Popup MenuFvwmManPages
+ "Copy Config%icons/conf.png%" FvwmScript FvwmScript-ConfirmCopyConfig
+ "" Nop
+ "Re&fresh%icons/refresh.png%" Refresh
+ "&Restart%icons/restart.png%" Restart
+ "&Quit%icons/quit.png%" Module FvwmScript FvwmScript-ConfirmQuit

We should note that that is fvwm2 format… which fvwm3 accepts… there is a new fvwm3 format, but even their default config file is still in the old format.

The resulting menu looks as follows


So you can see it offers a File Manager , Iceweasel-uxp, and Dillo, in addition to Xterm.
So lets start a couple of these

The File Manager is Spacefm and it seems to have at least some of the capabilities of modern File Managers. Iceweasel-uxp is a fork of firefox-esr and is fully capable. There is also the elementary Dillo browser.

There are several alternative file managers in hyperbola - Rox, SpaceFM, Ranger, Worker, Xfe, zzzfm, mc. The last (mc) is the old Midnight Comander file utility.

I will stop there. I have not figured out how to get icons, and one can , of course , add any number of programs to the menu.

The point here, is to do enough to show that one can build a reasonable desktop with Hyperbola3 and fvwm3. My config has a menu and 4 workspaces, and you can see the system tray underneath the workspace button, on the right.

There are other alternatives… watch this space.

I decided to have a look at IceWM.
I have seen it before … it is the default WM in Antix.
Lets see what it is like to configure from scratch

The install is simple
pacman -S icewm
and I can start it simply by uncommenting
exec icewm-session
in my .xinitrc file then typing startx

The default theme is a crazy penguin meme


which we shall fix, but you can see it has a system tray at the bottom,
with a menu button, 4 workspaces on the left, and on the right popup buttons for Network onterface ( shown), Memory Usage (it says I am using 3863Mb with 3404Mb free), and CPU load. Then finally time in the corner.

So lets see if we can make that workable… get a plain background and start an Xterm


OK, now we have a terminal window, and it shows the menu, started by clicking background (you can do that or use the menu button), and I have chosen Network → WebBrowser, and it has brought up Dillo and Iceweasel-UXP.
So, it has automatically found the installed browsers and added them to the menu. That is an advance on fvwm, where I had to add them by hand to a config file. It also found the SpaceFM FileManager which I had installed for fvwm.

Lets have a look at SpaceFM. I have set it up with 2 views… one with hidden files shown, and one without.


You can have up to 4 views shown simultaneously.
I attempted to use SpaceFM to mount a filesystem from the host. This involved typing the URL of the host as
ssh://hostname
and it produced some fuse errors because I did not have some things installed, so
pacman -S sshfs
and
modprobe fuse
and then I get

which is my home directory filesystem in the host.
And I can even use the split screen to display both the host directory and the local directory simultaneously.
and
I can drag an drop files between host and guest

Above is the dual view of host and guest, with the file junk having been dragged from host to guest.
I like that.

Conclusion: IceWM is a big advance on fvwm in that you dont have to edit a config file to modify menus. Programs are menued automatically, and the system tray is quite well configured.
And , most important… it has a Users Manual which loads from the help menu button.
It would seem that one can get minimized windows to iconise on the background, but I have not succeeded in getting that to work yet.
I dont know about icons for starting apps.

It is possible to get a workable window system going in Hyperbola3.
That is quite amazing, given the number of packages that have been omitted because they do not comply the the Hyperbola philosophy, and it reinforces their view that a certain amount of unnecessary complexity and nonfree junk has crept into Linux.

i