having tried the newly released Haiku R1/beta4 RC0 on both bare metal as well as numerous recent nightlies in a Windows Hyper-V VM prior to this, here are my personal high-to-low reflections on the overall state of things in lengthy grab bag format (read: TL;DR if you so wish, it’s also pretty late here so please forgive any messy sorting, grammar issues or typos :)). I have tried to put them all into High/Medium/Low(er) importance categories as per my own assessment, but sometimes of course items can be overlapping these boundaries or are be more subjective/YMMV. So, without further ado…
Functions accessing volumes can hang the parent application for several seconds (3-10s on high performance bare metal in my case!) while doing their thing. This includes the Deskbar mount submenu, Tracker settings/preferences (“Show disks icon” and related settings), DriveSetup, Installer, etc.
On my system, a single USB mouse and keyboard are presented as 5 USB keyboards and 2 mice in Input preferences, indicating some kind of issue handling USB composite devices or similar (?). The USB mouse is also very high DPI capable (up to 18000!), but there is no setting in Input preferences to adjust for such high resolutions. Thankfully, I can program my mouse to increase/decrease DPI upon specific button clicks to partly work around this issue, but even then the mouse pointer movement is still quite flaky/erratic. As this is not at all uncommon a scenario these days, I put this as a “High” item here, especially as the “feel” of the mouse pointer is so important to the UX overall.
While a lot of good preparatory work has recently been done to tweak parts of the OS for HiDPI capability, I think the current mainly (?) font size centric approach is or will be too limited or convoluted UX-wise in many cases. As part of my own Windows alternative shell project (xoblite), I’ve witnessed the need first to support 2x, and nowadays 4x is required for e.g. HiDPI 4K laptop screens. The way I have implemented this is by having the equivalent of a Haiku Appearance preferences drop-down menu with options to select 1x, 2x, 3x, 4x, which are then the internal UI scaling multipliers used on all related integer settings (e.g. font sizes, misc widths/heights, etc). This could of course be expanded with more granular .5x options too if so desired/required, but having 1x-4x steps is a good start in my experience.
For any HiDPI implementation, it is then also crucially important that at least the main UI elements - the Deskbar, Desktop (currently part of Tracker) and Tracker as file manager - fully (i.e. beyond the currently adapted things also menus, scrollbars, icons, content as applicable, Web+ is a front-runner here it seems) support dynamic re-scaling in runtime (eventually we’d probably need some kind of “universal” window message here if not yet implemented; I haven’t looked). For example, for the common user it seemingly takes a reboot (!) for the Deskbar, desktop icons etc to pick up the new settings, and given how centerpiece the Deskbar and its menus are to the current Haiku UX, this becomes a very visible and therefore major issue for any user on a HiDPI system (read: an ever increasing crowd of users).
Speaking of the Deskbar… the task management UX could really use some rethinking for modern times. Example: Left click on a task button currently brings up a window handling menu. Say what? (read: maybe bring all related task windows to the front or something - please make your voice heard in the comments below ;))
Some/many windows do not have the resize corner thingy, and even without HiDPI resolutions to consider the window borders are too thin to make decent drag points. And no, I do not think the Ctrl+Alt+Right click “purple window edges” combo is intuitive at all to be brutally honest… (even after I’d RTFM). So, can we enforce the resize corner universally somehow, at least for standard windows? (nb. this should then also work with HiDPI scaling etc as per above)
- Speaking of Alt and Ctrl, as one of the many many guys who have got Ctrl+C/X/V & Co burned into muscle memory, I would prefer Ctrl (rather than “Haiku mode”) to be the default (and savvy Haiku users will know where to find the toggle button), but I know others think otherwise… The bigger issue, then, is therefore the somewhat hit-and-miss nature of providing this flexibility, as many apps don’t recognize this setting, with weird UX as a result. Terminal binaries e.g. nano? Alt. Most GTK apps? Similar story, though some seem to mix and match too (?). You get the point. It’s weird. End of story.
Dark mode - because there is a solid reason why all other operating systems have it these days!!! A relatively easy way to do this would perhaps be to replace the Appearance preferences colour tab’s current “Default” button with two “Light” and “Dark” buttons respectively, using some of the excellent prior work of this community to define the optimum colour scheme of the latter. Another possibility would be to somehow merge Appearance with the third party Theme Manager, say as a “Themes” tab in the former, but that would of course also be a much bigger undertaking (and perhaps overkill?) and potentially also overlap/clash with other Preferences apps (e.g. Screen for wallpapers etc). Oh, and if my heart gets to decide, Dark Mode in fact has the highest priority!
On a similar note, why are the “Haiku extras” a separate download really? I prefer the flat layout too…
An option to hide the desktop icons, like every other operating system out there, because I like many other people prefer my desktop clean and calm (full disclosure: I’m already looking into this and will commit when ready).
Some kind of evolved structure for the Deskbar (and beyond?) Applications menu is very much needed; it quickly gets out of hand once you start adding things from HaikuDepot. Maybe it could also have “GTK” (or GNOME?), “QT” (or KDE?) etc sub-folders added automatically/smartly too, to nicely separate native and ported applications? (it wouldn’t hurt to also show just how flexible Haiku is in this regard, and would perhaps also put a damper on the native-vs-ported debate on these forums? ;))
The OS internal device management and presentation thereof still seems to have a bit of a split vision currently, as e.g. the Devices app and lsdev/lsusb bins present things differently while seemingly also relying on different input data. For example, lsusb seems to fetch its data (device name, ID, etc) directly from the USB devices, while Devices ultimately relies on the upstream usb.ids header file imported during compilation. Maybe a good idea here would be to have Device Manager instantiation logic fetch such data from the USB device if not already specified in the header file? (i.e. if !strlen…). Likewise, PS2 devices are not presented every(any?)where. Next, I have about a zillion individual ACPI entries listed on my system; perhaps these could be sub-grouped somehow? By the way, my USB devices do not currently seem to be (fully?) grouped as such in Devices, some of them ending up under “Unclassified devices”. To summarize, I’m putting all this under “Medium” simply because HW support - or at least proper identification thereof as some kind of user centric starting point - is such a core thing when trying out a new operating system. This said I do of course understand that the above examples only address the presentation layer and not the actual support and drivers for a piece of HW, but you get the point. Maybe Devices should even more clearly flag supported (green indicator?) vs unsupported (red indicator?) devices so it’s more obvious what is up and running and what is not?
Deskbar: Even on my otherwise capable system, I’m missing standby/sleep and hibernate/suspend options in the submenu, but maybe these are not yet supported on all system configurations? (…or at all enabled yet?)
Networking: SSH is enabled by default in Networking preferences, but no more information thereof (username, password, etc) is displayed/configurable anywhere as far as I can see (?). If hardcoded somehow, I would highly suggest having SSH disabled by default for security reasons.
Screen: My primary monitor is 2560x1080, 32bpp, 60 Hz, and this is the only selectable resolution on my bare metal system. Since it’s the max resolution I’m not really complaining much, but it does stand out a bit.
Documentation/Website/Help: Is there or should we have a shortlist of “recommended” / “works well with Haiku” hardware somewhere? For example, my Netgear WLAN USB adapter is currently not supported by Haiku (and likely won’t be for some time), so which other one should I buy that is tried and tested under Haiku? (hmm, maybe this could even be an information popup window or added pane in Devices if we keep it simple and the list reasonably short and continuously updated?)
BuildTools: In my view, all the basic dev tools should be installed by default; it wouldn’t take up that much extra space on the ISO but would lower the barrier somewhat for new developers (case in point: I was actually positively surprised by how smooth sailing it was once up and running). Perhaps consider including some simple-but-illustrating example projects as well to get them going? (I’m sure we have some, somewhere?)
Added bundled applications: Web browsing and email are still centerpiece stuff for many of us. With this in mind, I think we should hide away (…if not bury? ;)) the forum hatchet and include both WebPositive and Epiphany/Web (perhaps under a “GTK” apps submenu, see elsewhere) by default, as you shouldn’t have to make the extra jump to HaikuDepot for core things. IMHO…
…and similarly with regards to email: The default Mail app+preferences combo is likely a somewhat strange a beast for most newcomers, and while many people perhaps use web mail today (but if so, see the previous bullet!), perhaps a minor (?) modernization and thereafter bundling of e.g. BeAM would make sense? (read: I do know of course that it lacks modern HTML format viewing and many other modern things, but beggars can’t be choosers, as the saying goes).
While not of “Medium” importance in itself, Icon-O-Matic seems severely broken as is? (also, iirc it’s bitmap based (?), but nowadays the Haiku icons are SVG, so… does this make it obsolete even?)
Low(er) (the grab bag part)
- Deskbar: Is the menu positioning off by a few pixels x and y? It’s all in the details, after all
- Desktop: The underline … under icon text looks a bit old-ish I think; maybe tweak somehow? (e.g. maybe a straight line with midpoint of text colour and desktop colour would look a bit slicker?)
- Desktop: Mid click support (nb. I’m already working on the basic underpinnings of this, see Gerrit 5909, but it’s not yet accepted and merged, and the action thereof have to be jointly decided upon in the next step - I vote some kind of apps menu, for improved easy accessibility and UX)
- Terminal: Similar to how you can open a Terminal window from Tracker (add-on), I’d like to be able to open a Tracker window at the current path from the Terminal menu (you often go back and forth when e.g. developing in my experience). I may take a look at this myself at some point; it should be a relatively simple thing to add I guess.
- Demos: We could use some new ones I think; the current ones are all like 20 years old and arguably do not reflect the cool(est) aspects of current day Haiku (if nothing else, perhaps the GLFW package from HaikuDepot could be included as standard, assuming perhaps also an updated MESA etc).
- …speaking of which, GLTeapot is an interesting beast for a demo: It actually goes slower with 16 CPU threads than with 1 CPU thread assigned (approximately 530 vs 600 or so FPS when I tested). Oh, and it could use some averaging of the FPS display these days perhaps; it goes so much faster nowadays than back in the days when it was created…
- Pulse: Should be promoted to Applications I think. Could also use some “shortcut” buttons to disable/enable sets of cores these days; clicking 15 times to go from 16 to 1 core/HT is a bit tedious
- Devices: Even though it doesn’t have any configurable settings, I think it should be moved back under Preferences instead of under Apps; that’s where I would expect to find it at least.
- Input: My mouse has >= 6 buttons, but only 1-5 seem to be working here. Speaking of which, if someone hasn’t already we should probably look into global OS support for multi-button mice (it seems to be limited to 3 button i.e. left/right/mid in at least parts of the code)
- Virtualization (guest): Running under Hyper-V is quite workable, except for one thing: The mouse emulated is a PS2 IBM Trackpoint without scrollwheel. Oh, the horror!!! (other things like only a few fixed screen resolutions options are of course also less then great, but at least workable)
- Virtualization (host): Ready to go Haiku-on-Haiku maybe? (RISC-V on x86 as proof of concept?)
- WebPositive: Cookie manager and Script console child windows default in the upper left corner, Downloads in the lower right corner, Settings screen center, About off-center… Maybe some tweaking of the default positions here should be considered (e.g. maybe all screen center by default, then it’s up to the user to move them around as he/she wishes. Yes, I like the small details too ;))
- Activity Monitor: Defaults to a very small window size where no graphs are shown. Could easily be made at least twice the default size; it’s a good looking activity monitor and shows off multi-core workloads nicely.
- Process Controller: Its KILL powers seem more limited than e.g. Terminal kill options?
- Printers: The first launch window position has the window title tab off screen…
- Bluetooth: The start/stop Bluetooth services menu items do not indicate the current running state (?).
- DiskUsage: Scan the default disk automatically on launch; the window looks so empty otherwise…
- Sound Recorder: Strange UI controls, looks non-native, especially the position scrubber but also the buttons below. Maybe someone with 1337 window layout skillz could quickly fix this to look more aligned with standard Haiku UI paradigms?
- BePDF: The default document view is not fully visible; change default to “fit to page”. And also maybe rename the application? It stands out a bit being the only one with a “Be” prefix… (plus being related to an old company trademark etc).
- DeskCalc: If someone is up for it, I think we should ultimately have a better calculator than the current very simplistic one. I for one would like to have at least a bare-bones programmer’s view (cf. e.g. hex/decimal conversion etc), and as stretch(ier) request also RPN (…because once you go down that path there is no turning back).
- The Shutdown dialog window should perhaps be center screen always on top at all times?
- Terminal: listusb, listdev etc should perhaps also have aliases from lsusb, lsdev etc that are arguably more familiar to many users… (read: it took me a while to find them at least ;))
- Terminal: htop and ps axf (yes I know we have other apps for this but the Terminal is the Terminal) - you know you want them too! (and, to cater to the more hardcore crowd, maybe also bundle WireShark?! ;))
- Are the window tab buttons placed/sized pixel perfectly? (…I need to fetch my magnifying glass… :))
Last but not least - it has all come a long long way since the last release already of course (big round applause for the core developers!) so see the above not as criticism but some simple findings by an on-and-off-and-on-and-off-and-on user, now aspiring Haiku semi-developer.
Phew, I think that was it - let the flaming wars begin!
BR//Karl aka qwilk/@xoblite