The majority of this is written under Haiku using Kate (the KDE text editor). I tried using Pe (the built-in advanced text editor in Haiku) but me being a webshit spoiled by vscode felt really uncomfortable with it.
Haiku User Experience Report (August 2023)
I decide to try out Haiku again when I've heard with the release of R1/beta4 it comes with Epiphany which finally allows Haiku users to have a relatively-modern web experience (it uses the same engine as Safari). Before this I've heard nodejs & npm is also available under Haiku so I thought maybe finally I'm able to use this non-Linux OS as somewhat of a daily driver.
Installation
I tried to install Haiku on my main laptop (Lenovo X1 6th Gen Yoga) but I couldn't get the installation image to boot, until one day I decided to go back to Arch Linux and being told that you have to disable Secure Boot before booting with USB HDD, so I gave it one more try and... it sure booted without problems* so I thought hey maybe I can do a trial-boot (as in one more than dual-boot) of Windows + Linux + Haiku so that's what I did.
(Before this happened I tried to install Haiku on my Panasonic CF-SX2 because I didn't know about the secure boot thing. It booted with the wrong resolution and a good part of the viewport got cut off; I didn't know how to fix this so I gave up.)
Before the installation process, this was the situation of my laptop:
- Uses UEFI boot.
- The disk is already divided into four parts: the EFI partition, the Microsoft Reserved partition, the main Windows partition and the recovery tools partition. This is typical for new machines that comes with Windows.
- There's an OEM boot manager that lives in the EFI partition; I can press F12 to stop at this boot manager.
-
Clear up enough space so the main Windows partition can be shrinked; after shrinking you can create the partitions with the newly reclaimed free space.
- Windows 10 has built-in partition management tool; Press Win+X and select "Disk Management".
- It could happend that you have freed up a lot of space but the disk management tool refuses to shrink.
- Create three new partitions. One for Linux, one for Linux swap, and one for Haiku. The disk management tool in Windows does not support the filesystems we needed, so we don't format the new partitions for now.
- Disable Secure Boot through BIOS setup and boot from Linux installation disk.
- Proceed to install Linux. In this step you'll format two of the three new partitions for Linux and Linux swap. I'm installing Arch so I don't know about other distros; but when installing the boot manager you'll want to choose GRUB. You don't need to config GRUB for Haiku right now; we can do that later. Maybe other boot manager works as well, but that's yours to found out...
-
After installing Linux, boot from Haiku installation disk and go through the installation process. Select the last unformatted partition and format it to BeFS in this step. Now, the whole situation should look like this:
-
A new option would be available from the OEM's boot manager.
- Now, one might use things like
bcdedit
under Windows to manually add the option; if I remembered correctly (this happened days ago) the GRUB installer automatically adds itself to the EFI partition so no such operation is needed.bcdedit
actually added the option to another list on my machine;
- Now, one might use things like
- With Secure Boot on you're lead to the Windows Boot Manager if you don't touch anything and did not configure GRUB to support Secure Boot because apparently that's a thing that you can do.
- With Secure Boot off you're lead to GRUB if you don't touch anything.
-
A new option would be available from the OEM's boot manager.
-
Now, after installing Haiku in the partition you have prepared, you need to make the partition bootable, which is strange because according to what they say this step was supposed to be unnecessary as the installer would take care of it but sometimes it just didn't. Use
makebootable
to mark the partition as bootable so that the boot loader we're going to install can find it. I messed up at this step so I usedmakebootabletiny
when I was under linux. You can grab it from here:https://stefanschramm.net/dev/makebootabletiny/makebootabletiny.c
It would be better if you just use the normalmakebootable
when you're still in Haiku. -
Now we install the EFI bootloader. Haiku's installer does not do this step for you; you have to do it yourself. When in Haiku, mount the EFI partition (you will know it's the EFI partition if there's a
EFI
and aBOOT
folder) and create a folder under theEFI
folder. Copy/system/data/platform_loaders/haiku_loader.efi
to this folder. You might want to rename it toBOOTX64.EFI
as well. -
And now we configure GRUB:
menuentry "Haiku" { load_video insmod part_msdos insmod chain search --fs-uuid --set=root <EFIBOOT partition UUID> chainloader ($root)/EFI/Haiku/BOOTX64.EFI }
The "/EFI/Haiku/BOOTX64.EFI" should be the path to the installed EFI bootloader you've installed in the previous step. The "EFIBOOT partition UUID" part really needs to be the UUID of the EFI partition; on my machine it's of the format "XXXX-XXXX". Update the GRUB config and reboot. - Proceed till you see the GRUB boot menu. Select "Haiku"; this should boot the OS from your Haiku partition.
Everything worked fine from the get go, except for those that didn't. (Some issues described below)
Resource usage
You can seriously run this on a machine with as little as 2GBytes RAM (maybe even less) without noticing any kind of UI lag; not that many linuxes can pull that off nowadays (not with things like KDE plasma). I have heard that the 32-bit version could run on machines with less than 512MBytes; it's kinda crazy when you think about it.
UI
It's not until now that I realized my Windows setup has its UI configured to be 125% bigger (for high DPI support); no wonder everything looks tiny when things are in their supposed sizes. I set the font size to 16+pt; it's tolerable after that. The icons are still very small though. I'm guessing people are only gonna run it on second-hand old Thinkpads but I still hope this could be added in the next release.
I probably can never get used to Tracker (the built-in file manager?); good thing they have Dolphin (KDE's file manager) in HaikuDepot.
Keyboard
Haiku uses MacOS layout (Control-Option-Command) by default; you can switch this behaviour with Preferences-Keymap
. Surprisingly they have X-Bows in Keymap configuration (I was using one) but that breaks my config of replacing PgUp/PgDn with Home/End so just stuck with some generic choices instead.
Audio
It sort of works but also sort of doesnt:
For whatever reason audio on my haiku setup sounds thinner than a motherfucker and it seems like there's no related config where i could tweak the soundcard or something within the os.
Somehow the device manager is in the Applications folder. Sure thing, buddy...
It's not a manager but rather an info viewer...
-- from my own Mastodon posts when I was trying to fix this issue
It sounded like using Bluetooth Hands-free AG audio. I tried to fiddle around with input mapping and output mapping and all that stuff, couldn't found a combination that would give a proper bass sound. It's not an earphone problem - I used the same pair of earphones on my phone and everything sounded normal. It's not an application problem - I played some music with Bandcamp using Epiphany and it sounded just as thin. I tried to investigate further -
Okay so from what I've seen it seems like the output from mediaplayer got resampled and only the left side became the source of the output and got mapped to both sides of the earphones. What a strange situation...
Don't know if this is correct at all - I don't know enough about Haiku. It doesn't explain why there's no bass though; it's not like you have to have stereo before you got the bass.
Installed opensound. Let's hope that this will fix the audio issue... nope, the audio is gone. I guess I'll have to stick with phones for music when using haiku from now on.
My laptop comes with Intel HD Audio which Haiku does have a driver but as I mentioned before didn't work as well as I expected it to be. According to some sources you can switch to OSS by (1) installing OSS (named opensound in HaikuDepot) and (2) disabling built-in drivers for HD Audio by configuring /boot/system/settings/packages
. When I disabled the HD Audio driver no audio devices had been recognized.
Bluetooth
I had zero luck with Bluetooth; Haiku recognized my bluetooth device but it seems like the bluetooth server doesn't want to load.
Webcam
No luck on my machine. CodyCam simply told me there was no webcam. Haiku recognizes that there's an "ACPI 'ICAM'" (which is the infrared camera that was supposed to be used for logging in with facial recognition) and an "ACPI 'WCAM'" (I'm guessing this is the actual webcam), but it seems like it doesn't have a driver for the device.
CJK support
这句话是在Haiku下用BeCJK输入的。坦白说,UX非常糟糕,词库也不是很好。
It comes with Noto fonts so it can display CJK just fine, but CJK input is a different story. You can use BeCJK, which is arguably worse than using the one that comes with emacs; you can't config keyboard shortcut to switch between input methods and CJK input on/off mode (BeCJK has zero keyboard shortcut). It somehow has its own toolbar that doesn't seem to stick to anywhere and doesn't disappear when it's not needed (which is the norm twenty years ago but very annoying in today's standard). At least it's better than 9front's barely anything.
Proxy
There's no system-wide network proxy settings but somehow there's this "Qt Configuration" thing (which probably comes with some Qt application I installed from HaikuDepot) that looks like it can set the network proxy used by *all* Qt applications. I tried this but had no luck.
Can I do front-end webdev on this thing?
I mean it depends? There do be a node16
and npm
package in HaikuDepot but node
is just a few minor versions too old for a new Svelte project (maybe I could compile the latest 16.x with existing config but I gotta change my focus onto something else now); older versions of frameworks should definitely work, combined with GNOME Web you can just pretend you're writing for Safari.
Final Verdict: Daily Driver?
Depend on what you do it finally ranges from "feasible" to "very close"; it takes significantly less effort than before to be able to do what you used to do on Windows or Linux (with the introduction of GNODE Web, considering so much things are now implemented with the modern web stack), but it still takes time to be comfortable with it. If you don't have the time to tinker (not even a weekend or two) I would suggest you wait for the next release...
I think I really need to learn C++ now. Haiku dev requires C++, Genode dev requires C++, ...Back