I had not been using my thinkpad with Haiku on it. So, I
gave GhostBSD a try again. Having spent way too much time
before trying to get FreeBSD to work I was happy that the
folks at GhostBSD have put together a really great installer
that detects a good bit of your hardware and gets X up and
running quickly. When I tried it last time my resolution
was horrible (640x480) and I did not like the Mate desktop
environment.

I am really liking BSD so far, now that I have a system
running that mostly does what I want. It _did_ take some
work though... I am running a Lenovo Thinkpad X230, and
here is where things are at:

- - -

I. Trackpoint

I had long ago disabled the touchpad in the bios in favor
of the trackpoint. When GhostBSD was installed the trackpoint
worked, but moved really slowly. The Mate mouse settings did
nothing to affect this. After some digging I came to the
following as a solution:

Add the following to: /etc/rc.conf
  moused_enable="YES"
  moused_flags="-A 1.8,1.8 -a 1.2 -V"

That mostly fixed the trackpoint. It took some tweaking of
those numbers to land there. It was originally 2.0,2.0, but
that was too much acceleration.

- - -

II. Video

As I mentioned above, the resultion was terrible the first
time I tried GhostBSD. It seems that I was using the Vesa
driver before. This time I used the Intel (Legacy) driver
and it has done well enough for me. They had a "Intel DRM
Video Driver" available as well, but I have not tried it.
I am now at 1366 x 768. Given what I use this laptop for
that does just fine for me (though I did bring down the
font size on everything to compensate).

- - -

III. Audio

The internal speakers on the Thinkpad worked right away
with no issues. I did not try headphones the first day but
eventually figured out that they did not work. The system
could tell that they were plugged in. I know this because
the sound no longer came out of the speakers. So after a
bit of digging I came to this solution:

Add the following to /boot/device.hints
   hint.hdaa.0.nid21.config="as=1 seq=15"

That got the headphones working. I have no problems now
switching between headphones and speakers either.

- - -

IV. Wifi

This worked fine. No need to modify anything.

- - -

V. Software

This is where things started to get a little funky again.
Remember how I did not like Mate? Well, I tried out XFCE
and found I did not like it either. I run *cough* Gnome3
*mumblemumble* on my *cough* Ubuntu *mumblemumble* XPS13
(it came that way from Dell and worked well so I never
changed it), so I tried installing Gnome3. Well, it ran
like absolute grabage. So I removed XFCE and Gnome3. In
doing so my xsession got messed up, and I was not sure
what the right setting was... but Mate would no longer
come up. So I could get to the login screen, but no
further. I put the computer away that night after a bit of
frustration and approached it again the next day by doing
a fresh install. I had written notes for myself for all
of the hardware fixes, so it was quick and painless.

I have been using Mate and while it feels kind of... I
dont know - old and windows-esque, I am getting used to
it. I know I can install different "themes" that wil
make it look and behave differently. I tried a few but
found the only one I liked to be buggy. So I set to
customizing what I could:

Super+Up: toggle window maximization state
Super+Left: window tile left
Super+Right: window tile right
Super+Down: hide window
Super+PgUp: Workspace left
Super+PdDown: Workspace right
Super+Shift+PgUp: Move window left a workspace
Super+Shift+PgDown: Move window right a workspace
Super+B: Open default browser
Suber+R: Run command dialog

That gives me a workflow I am mostly used to. The last
one (Super+R) is a bit of a weird one. Since I am used
to Gnome3 I like to be able to hit super and type a
program name to launch it. I dont really like having
bars or pannels with icons on them for launching. So
this is working alright for me, but is a little odd. I
thought about trying to integrate dmenu, but it seemed
like it would be a little weird to run with all of the
mate cruft.

So that mostly got the desktop workable for me. Terminals
have been another story. The default mate-term is more or
less the same as gnome-term as far as I can tell. I am
not a huge fan. I could not get the build of ST I usually
use to build here and have not taken the time to debug
that yet. So in its absence I have been using alacritty.
It has worked out pretty well. I got it configured to use
the keybindings I like. The only binding it doesnt have
available is kind of a big one for me: scroll up or down
one line with alt+k/alt+j. I can go up and down by pages
but not by line. So that is a bummer but not the end of
the world. I like that they offer the ability to run it
without a title bar or a border. I think I will eventually
try to get it to work with 'tabbed' (since it does not
offer its own tab support).

The other terminal issue I have had is that BSD apparently
does not alter defaults for many programs... and linux
does. This has created an interesting experience. I could
not seem to get any application to use the alternate screen
no matter what I did. Upon quitting less or vim I would be
left with the previous screen of data. I know some people
prefer this, but I do not. Eventually I found a weird fix:
change $TERM to `xterm-clear`. That works for vim and less,
but not for Bombadillo (so I must not be sending some kind
of code or other on exit for Bombadillo, note to self to
look into that). That has been great... but has created a
whole set of other issues. Now when i ssh into a server my
$TERM gets sent as `xterm-clear`. It seems that this really
donks things up (backspace and arrow keys no longer work).
To get around this I export, on the remote machine,
TERM=xterm and that has seemed to fix things up... but it
has been weird. If any BSD folks have any advice about how
to handle this (I am sure I am doing this in a hacky not
good way) please reach out.

- - -

VI. Packages

Last time I tried FreeBSD I mostly used the ports tree.
This time I have mostly used `pkg`. It works well. Nothing
much to report. Most of the packages I have wanted have
been available, in some cases in newer versions than I am
used to. The system came with vim-tiny, so I immediately
installed the full version as I do all of my coding in vim
and like syntax highlighting (I have a vimrc I made, but I
do not use any non-builtin plugins).

- - -

VII. Other

A strange surprise is that `Fn` if pressed and released
without any other key in combination will put the system
into either sleep or hibernation (not sure). This key is in
the exact spot that the `Ctrl` key is in on my XPS... so
this seems to happen on accident a lot. I have searched
around but cannot seem to find any info on this. I know
that function keys are often BIOS dependent... but I also
know that this key did not have this behavior in haiku,
so it seems like it _must_ be realted to my GhostBSD
install. It sitll works with function keys just fine.
Speaking of function keys: screen brightness controls also
worked fine with no tweaks required. As did my volume
buttons (which on this system are not function keys, but a
fully separate set of keys above the top row of the
keyboard).

It seems that BSD uses csh or tcsh by default. When I first
installed GhostBSD I used bash. This time I tried out tcsh.
I really really like it. To the point that I may switch
over to it on my other systems. Though I will probably do
a bit of reading on it first (just to make sure the initial
great impression doesn't have too many gotchas later on).





If you have been thinking about trying out a BSD but have
been overwhelmed by the amount of arcane things you need
to know to get your laptop to work: I recommend GhostBSD.
It mostly "just works". Because it is still FreeBSD under
the hood, forum answers and such will often work. I have
been enjoying the system and have even managed to get some
development work done for Bombadillo (golang was maybe
the second package I installed).