I really like GhostBSD … and NomadBSD. They are really great graphical and easy to use FreeBSD variants for the lack of better word. While NomadBSD is more focused on portable USB pendrive edition the GhostBSD is more like a Ubuntu replacement. Install and use on your laptop or desktop computer. It comes in two flavors – the default MATE edition and an alternative XFCE edition.
One of the things I really like about Ubuntu MATE edition is that it comes with desktop layout helper tool that will allow you to select one of the available predefined MATE desktop layouts.
From all of the available ones I like the ‘Cupertino’ one the most – its tries to mimic the Apple Mac OS X operating system behavior with global menu on top and Plank dock at the bottom … and it does it really well.
I wanted to do something similar on GhostBSD but unfortunately the Vala Panel Application Menu for MATE desktop environment is not available for FreeBSD (and that means its also not available for GhostBSD). Fortunately the XFCE global menu is available on FreeBSD as x11/xfce4-appmenu-plugin package so I will try to make GhostBSD look more like Ubuntu Mate in its Cupertino layout with several easy steps.
By default GhostBSD XFCE edition comes with single XFCE panel at the bottom. I have done pretty straightforward installation with fish(1) shell chosen as default during installation.
By default GhostBSD comes with 96 DPI set by the installer. Lets change that to something smaller. Start the Appearance application.
Now set the desired settings for the fonts on the Fonts tab. After some checks the 80 DPI along with Hinting set to None looked best. I also switched to the Ubuntu font.
ZSH Shell and Terminal
While the fish(1) shell is quite decent interactive shell with sane defaults I really prefer the POSIX syntax compatible zsh(1) shell instead. I talked more about that in my Ghost in the Shell – Part 7 – ZSH Setup article.
I will not repeat everything I wrote there and I will just paste the instructions here to make that zsh(1) shell configured and nice looking.
root # pkg install -y \ zsh \ zsh-autosuggestions \ zsh-syntax-highlighting \ ubuntu-font root # fetch -o /usr/local/etc/zshrc https://raw.githubusercontent.com/vermaden/scripts/master/zshrc user % fetch -o ~/.zshrc https://raw.githubusercontent.com/vermaden/scripts/master/DOT.zshrc user % fetch -o ~/.zshrc.DOAS.SUDO https://raw.githubusercontent.com/vermaden/scripts/master/DOT.zshrc.DOAS.SUDO user % chsh -s /usr/local/bin/zsh user % fc-cache -f
As we are at the terminal related things enable Solarized (Dark) theme in the XFCE Terminal options.
… and change font to Ubuntu Mono with your preferred size.
Now you have the zsh(1) shell configured and set as your default shell. Also the XFCE Terminal looks better now. Some settings will require logout and login route but I recommend something different. Go through all these setting and then do just one single reboot or logout/login routing.
XFCE Global Menu
I though that XFCE global menu is – same as MATE one – not available on FreeBSD. Fortunately Joel Carnat with its FreeBSD 13 on ThinkPad T460s article proved me wrong. He even added the instructions to his guide – for which I am very thankful to him.
To get XFCE global menu on FreeBSD (and GhostBSD) we need to do these steps.
root # pkg install -y xfce4-appmenu-plugin user % xfconf-query -c xsettings -p /Gtk/ShellShowsMenubar -n -t bool -s true user % xfconf-query -c xsettings -p /Gtk/ShellShowsAppmenu -n -t bool -s true user % xfconf-query -c xsettings -p /Gtk/Modules -n -t string -s appmenu-gtk-module
Now we will be able to add the XFCE AppMenu Plugin to our top panel.
We need to now move the XFCE panel from bottom to the top. Go into the Panel Preferences as shown below and move it.
After moving it to the top and enabling the Lock Panel option add/remove the Items to match this list below. Feel free to also add other items that you need.
To make the XFCE AppMenu Plugin look even better enable Bold Application Name in its Preferences dialog.
As for the Whisker Menu left only icon enabled to display to make it look better.
The XFCE AppMenu Plugin should be now ready and the top panel should look somewhat like that.
You can also customize the DateTime plugin to your needs.
The Window Manager settings are not controlled by the Appearance application. It has its own separate one. Lets start it.
We will also set the Ubuntu font here.
Make sure your user (vuk in this guide) is in below groups.
root # pw groupmod wheel -m vuk root # pw groupmod operator -m vuk root # pw groupmod video -m vuk root # pw groupmod network -m vuk
You can omit the network group if you do not intend to use network.sh to manage your network connections.
As the last step we will add the Plank dock at the bottom.
root # pkg install -y plank user % plank & user % plank --preferences
You should see something like that on the bottom of your screen.
The Plank preferences are shown below.
Make sure to add Plank to Startup so it will start automatically at each login.
After all these steps our GhostBSD looks more or less like that now.
Plain FreeBSD Way
Some people will prefer to stick to the ‘original’ FreeBSD instead of using preconfigured GhostBSD. This last section is for them. First install FreeBSD like described HERE. Then install these packages shown below.
root # pkg install -y exa ubuntu-font xfce xfce4-appmenu-plugin xorg-minimal user % echo '. /usr/local/etc/xdg/xfce4/xinitrc' > ~/.xinitrc user % xintrc
Now having done the above do all the steps from that article.
The end result seems quite similar.
You may even want to replace Plank with another bottom XFCE Panel if you want.
Viola! You have XFCE configured on plain FreeBSD. One thing to keep in mind is that besides XFCE you have nothing more 🙂 Using GhostBSD method all other things are configured. With plain FreeBSD way you have no device automounting. No network plugin in the taskbar. No power management tuning. No other applications. Nothing. But you can all do it yourself using the needed articles from the FreeBSD Desktop series or other sources.
One last thing. I really appreciate that GhostBSD exists and is actively maintained and expanded – this guide is not here to make it look bad. Its here to make it better.