Haiku (Pt. 2)
- - - - - - -

So I read up on the filesystem layout, got access to many
more programs and libs, and learned a lot more shortcut
keys. Here are some details from today:

_Applications_____

I cloned the haikuports and haikuporter repos... but before
I could do anything with them I noticed that there seemed
to have been some form of package management update
(_possibly_ enacted by one of my actions but possibly
automatic) that added haikuports as a repository that
delivers full packages.

That made things easier. I could now use either HaikuDepot
(gui package manager) or pkgman (cli package manager) to
install much more standard programs (for me at least).
First thing was to get vim. It was a modern version (8.6)
and came with both gvim and the cli (which is the one I
use). I cloned my dotfiles onto this system and away we
went... to full vanilla vim. The way the folder structure
works on this system is sufficiently different that the vim
port for Haiku was not looking for it in /boot/home/.vimrc
(the equivalent of ~/.vimrc). Instead it goes with all
other user settings: /boot/home/config/settings/vim/vimrc

Once I figured that out all was well and I now had a solid
editor on the system. Up next I clearly needed to be able
to access gopher and gemini content. I ran `pkgman install
go` and got golang running on the system. The gopath
variable was not set, so I needed to set it. I then cloned
Bombadillo and tried `go build`. Nope. This is Go
1.4.something. Most everything seems to work, but there are
two major problems: the TLS lib for Go 1.4.x does not have
some of the features I used for Gemini authentication... so
i just commented out all Gemini module references in the
main module. Problem one solved. Problem two is bigger:
`strings.Builder` did not exist at the time of 1.4.x. I use
it everywhere. I, in theory, could make all of those into
straight string concatenation (which would get a lot
slower), but have not decided if I want to go to the
effort. I decided, for the time being, to abandon the idea.
Maybe I'll code something new in Go 1.4 for Haiku. I cloned
Stubb, a lua gopher client I wrote a while back. I ran
`pkgman install lua luarocks`. This got Lua and Luarocks
(Lua's package manager) on the system. I thought all was
well, but when I tried to use Luarocks I was told that
"<lua.h>" is not present. I then found a lua_dev package
and got that. Problem solved? Even after that I was able to
get my package to install, but Lua could not find it, or
any of the packages installed by Luarocks. I tried a
`--local` install and had no better luck. So I am zero for
two with gopher clients. I did get Lynx running though, so
that will do for now.

I noticed in the application menu there was a program
called vision with an icon that looked sort of like a
camera. I figured the other day that it was webcam stuff.
It turned out to be a very usable IRC client. I connected
to freenode #haiku for a bit. No one was talking though so
I did not hang out too long. It was a pretty cool find
though and I am sure I will use it more in the future.


_Web Browser(s)___

The web browser WebPositive is servicable but glitchy,
particularly on CSS animation and JS heavy sites. Lynx and
W3M are avialablae as ports. That _may_ be it. I didnt dig
too much deeper. It isn't a high priority for me on this
system. I thought about trying to build Surf... but I was
doubtful that the needed libs would be available. Maybe
I'll try later.


_Sound____________

While testing out the web browser I went to youtube to play
Roger Miller's Doo-Wacka-Doo (listen to it if you haven't
heard it... a very enjoyable old novelty song). The sound
just worked. No problem. Another big check mark for Haiku
support for my Thinkpad. So far prety much everything has
worked out of the box.


_Sleep/Hibernate___

I'm not sure what the Haiku equivalent of these ideas are.
The shutdown menu does not offer a sleep option, just
restart or sut down. The shut down is extremely fast and
the boot up is really fast as well (from the first splash
screen paint to meaningful usage at least). If I leave the
computer sitting idly the screen will eventually dim and
then "turn off". A key press revives. Closing the laptop
also turns the screen off. I am not sure what happens with
power consumption in either state. There is still a bit of
fan hum coming from the system during these times. I
imagine there is still pretty sizable power draw, but with
the screen off it is likely reduced from what it otherwise
would be. I have had pretty decent battery life on it in
any case.


_WiFi_____________

As reported yesterday the WiFi worked right away and
continues to do so. It remembers my networks fine and has
only had a hiccup once or twice where it couldnt connect
and I needed to tell it to try again.


_Workspaces_______

I got this one a bit wrong yesterday. The number of rows
and columns of workspaces is fully customizable. You do not
have to run the workspaces application as a standalone
application to have a visual note of wher eyou are at: that
application can be run as a widget (termed a replicant in
haiku-speak) in the system tray (which appears on all
workspaces). I have my workspaces set up to be one row with
four columns, which is more or less what I would use in
Gnome or the like (my tiling setup would be a bit
different). I can hot key between them with ease
(Ctrl+Alt+Arrow-to-whichever-direction). It is also
possible to move a window to a new workspace by adding
`shift` to the aforementioned key combo.


_Terminals______

The haiku terminal (Terminal, which is an xterm-256color)
seems to be the only terminal available. I could not find a
port of any other terminal. I tried to build ST, but there
were some issues with fontconfig missing. I did not dig
into it too far. I will likely return to this and see if I
can get things working as I would very much prefer ST. This
Terminal is a little glitchy, but still very usable.

The issues I mentioned in my last post about my cursor
disappearing in my text editor Hermes still exist and also
exist in Vim (though to a lesser degree). I also found out
the proper place to install (or link) any local
applications that I build:
`/boot/home/config/non-packaged/bin`.


_Docs_________

I had been looking at docs online, but it turns out the
system actually comes with the user guide on the desktop
and I just hadnt looked too closely. So it is good to know
that if you install the system and dont have WiFi you wont
be completely left in the lurch. I read the docs a lot
today. They helped a lot with file layout (it is still a
little odd to me and I am not used to it, but things are
much clearer to me than they were), hot keys,
configuration, etc. I'll talk more in depth about the file
layout in a future post. It is an interesting design with
pros and cons.


_Day_Two_Thoughts__

I liked working on the system a lot more once I got a few
basic pieces of kit available to me. I also generated some
keys and got set up to login to my favorite pubnixes (I am
writing this over SSH from my Haiku system). The thing
about Haiku is that it is NOT a unix system. It does not
work or feel like unix/linux except in the shell. In the
shell it is tantalizingly familiar: Bash, GNU Core Utils,
familiar programs (once you get that ports repo working).
This blend of familiar and foreign actually is working
alright for me. As far as desktop systems go it is really
quite fast and nice to work in once you get used to some of
its peculiarities (a big one is that `alt` is used for
things like copying and pasting... `alt+c` or `alt+v`, as
well as most other hot key combos. Ctl is used in some hot
key combos and is still the key you would use for sending
signals like Ctl+c. This is actually kind of cool since it
lets you still have copy easily avialable as `alt+c` and
SIGINT as `Ctl+c`).

While it is not the system I intended to run and it does
not exactly accomplish the goal I had for this Thinkpad...
I am having fun with this system and think I may stick it
out for awhile. For someone that just needs a fast and easy
secondary desktop it works great. I can SSH elsewhere to do
more heavy lifting coding tasks with newer libs if I need
to. The connectivity is solid.

The biggest current drawback to the system for me is the
lack of a more recent Go version (1.10+ would be nice). I
was able to get fully modern Python (3.8) and modern Lua.
Both seems to work well, though there seem to be some
package management quirks. I like building my own tools a
lot so it seems like there are some gaps here that could be
fun to fill... unfortunately the answer for filling them
seems to be C++. We'll see. Their gui api has some really
cool stuff available to scripting languages (like simple
scripts to have really nice looking system native alert or
file select boxes appear with next to no effort, even from
bash scripts).

If anyone out there reading this is a Haiku user please
reach out and share some of your tips, tricks, and
experiences. Or if anyone is thinking about trying it out
and has quesitons feel free to get in touch as well.   <
sloum AT rawtext.club >

Until next time, try to avoid the plague that seems to be
going around ;)