Table of contents
---[ Intro
---[ Desktop usage on FreeBSD
---[ Objective
---[ Getting started - ports and packages
---[ Xorg and basic desktop
------[ Xorg
------[ Window manager
------[ Panel
------[ Launching applications
------[ Setting wallpaper and viewing images
------[ Terminal emulator
------[ Auto mounting
------[ Starting X
---[ Userland applications
------[ Browser
------[ Editor/IDE
------[ File Manager
------[ Video and audio player
------[ PDF Reader
------[ Torrent client
------[ Wireless network manager
------[ Network file sharing
------[ VirtualBox
---[ Misc
---[ Outro
---[ Intro
Three years back I was starting to become seriously unhappy with Windows and started to look for an alternative. My biggest problems were the fact that I did not have full control over my OS, closed source philosophy and "millions" of applications/libraries I did not want to have on my system.
The choice came down to FreeBSD and GNU/Linux. After browsing the Internet for a weak or so I decided to go with FreeBSD because I wanted a UNIX system and back then FreeBSD seemed to be "more of a pure UNIX" then Linux.
Nowadays I use FreeBSD because of these reasons:
The focus of this "howto" is desktop usage on FreeBSD but I would just like to say that three years back FreeBSD was an "alternative" for me and now everything else is the "alternative".
Also I would like to say thanks to FreeBSD developers for creating such a beautiful piece of software.
---[ Desktop usage on FreeBSD
After deciding that FreeBSD was going to be my new primary OS the question was "how to set it up for desktop usage?". FreeBSD handbook helped me with this a lot in the beginning. But if you follow the handbook you will probably end up with GNOME or KDE desktop environment and this "how to" is about minimal but functional desktop on FreeBSD.
Fact is that FreeBSD is more than capable of being a desktop OS the only question is what are your own preferences/requests. Mine were: minimalism, functionality, speed, low memory footprint and avoiding linuxisms.
In general, if you want to use FreeBSD as a desktop you have two ways of doing that:
1) installing a desktop environment (DE) like x11/gnome2, x11/kde4, x11-wm/xfce4, x11-wm/enlightenment , x11/lxde-meta
I have been down this road when I first started and I was not happy. I ended up with the same problem I had on Windows. Bunch of applications I did not use, high memory footprint , eye candy that has no functionality apart from eating memory for no good reason, etc.
I have actually tried all of these ports and the only one that comes into consideration IMHO, as far as minimalism goes, is x11/lxde-meta. But this "how to" is not about DE so I will not go any further into this option.
2) building your desktop from ground up with ports your only want
Now we are in business. IMHO this path is the "true" path because you will have a fully functional desktop set up the way YOU want it and you will gain so much experience and knowledge that would be simply skipped with the first path.
Do not get me wrong, althoughgh this is the "true" path it is not the easy one. It took me a lot of time to figure things out and to set up my desktop just the way I want it. I have installed and reinstalled FreeBSD so many times because I was experimenting with different ports. Now I have a shell script that installs and sets up my desktop with almost zero human interaction.
This "how to" is so that you would not need to experiment as much as I did (but you will have to experiment to a certain degree). I will present my findings over the years, ports I have settled on and alternatives to thees ports, useful readings and so on. By the end of this "howto" a FreeBSD newcomer should get the general idea of what it means and what is necessary to set up a desktop from grand up.
I will assume that you have in fact successfully installed FreeBSD and you just logged in for the first time with you user name.
If you are looking for some help on how to install FreeBSD refer to the handbook's section Installing FreeBSD 9.X and Later.
Reading the whole Getting Started section in the handbook is a MUST and I will assume that you have read it. Do not install anything but read it.
---[ Objective
Apart from preferences I have mentioned before we will try to avoid as much as possible the following things:
and depending on your choices for certain ports it is possible to build a "pure CLI" desktop without x11-toolkits/gtk20 or devel/qt4.
At the end we will be able to:
What more do you need, eh?
---[ Getting started - ports and packages
Assuming you have read the handbook's section on ports and packages I am just going to say that we are going to use ports and compile everything from source. Reason is that we need to be able to "turn off" features and that can not be accomplished via packages since they are precompiled.
Before anything we need to update our ports tree so run this commands if you don't have the ports tree installed:
run this command later on when you wish to update the installed ports tree:
Now we need to decide how are we going to manage our ports. ports-mgmt/portmaster is a great tool that dose not require external databases or languages so we will use that.
Install the port:
Sample configuration file for portmaster si located at /usr/local/etc/portmaster.rc.sample. Copy it to /usr/local/etc/portmaster.rc and set the options you like:
ee(1) stands for "easy editor" and comes with FreeBSD. It is very simple to use and perfect for editing configuration files form command line. Another option would be VI(1) if you are familiar with it.
I have enabled thees options but for more information you can refer to the man page PORTMASTER(8)
---[ Intro
---[ Desktop usage on FreeBSD
---[ Objective
---[ Getting started - ports and packages
---[ Xorg and basic desktop
------[ Xorg
------[ Window manager
------[ Panel
------[ Launching applications
------[ Setting wallpaper and viewing images
------[ Terminal emulator
------[ Auto mounting
------[ Starting X
---[ Userland applications
------[ Browser
------[ Editor/IDE
------[ File Manager
------[ Video and audio player
------[ PDF Reader
------[ Torrent client
------[ Wireless network manager
------[ Network file sharing
------[ VirtualBox
---[ Misc
---[ Outro
---[ Intro
Three years back I was starting to become seriously unhappy with Windows and started to look for an alternative. My biggest problems were the fact that I did not have full control over my OS, closed source philosophy and "millions" of applications/libraries I did not want to have on my system.
The choice came down to FreeBSD and GNU/Linux. After browsing the Internet for a weak or so I decided to go with FreeBSD because I wanted a UNIX system and back then FreeBSD seemed to be "more of a pure UNIX" then Linux.
Nowadays I use FreeBSD because of these reasons:
- FreeBSD flows the UNIX philosophy: "Write programs that do one thing and do it well"
- FreeBSD is almost fully POSIX compliant
- FreeBSD code is clean
- FreeBSD Handbook
- FreeBSD gets the job done.
- FreeBSD is virus free.
- BSD license
The focus of this "howto" is desktop usage on FreeBSD but I would just like to say that three years back FreeBSD was an "alternative" for me and now everything else is the "alternative".
Also I would like to say thanks to FreeBSD developers for creating such a beautiful piece of software.
---[ Desktop usage on FreeBSD
After deciding that FreeBSD was going to be my new primary OS the question was "how to set it up for desktop usage?". FreeBSD handbook helped me with this a lot in the beginning. But if you follow the handbook you will probably end up with GNOME or KDE desktop environment and this "how to" is about minimal but functional desktop on FreeBSD.
Fact is that FreeBSD is more than capable of being a desktop OS the only question is what are your own preferences/requests. Mine were: minimalism, functionality, speed, low memory footprint and avoiding linuxisms.
In general, if you want to use FreeBSD as a desktop you have two ways of doing that:
1) installing a desktop environment (DE) like x11/gnome2, x11/kde4, x11-wm/xfce4, x11-wm/enlightenment , x11/lxde-meta
I have been down this road when I first started and I was not happy. I ended up with the same problem I had on Windows. Bunch of applications I did not use, high memory footprint , eye candy that has no functionality apart from eating memory for no good reason, etc.
I have actually tried all of these ports and the only one that comes into consideration IMHO, as far as minimalism goes, is x11/lxde-meta. But this "how to" is not about DE so I will not go any further into this option.
2) building your desktop from ground up with ports your only want
Now we are in business. IMHO this path is the "true" path because you will have a fully functional desktop set up the way YOU want it and you will gain so much experience and knowledge that would be simply skipped with the first path.
Do not get me wrong, althoughgh this is the "true" path it is not the easy one. It took me a lot of time to figure things out and to set up my desktop just the way I want it. I have installed and reinstalled FreeBSD so many times because I was experimenting with different ports. Now I have a shell script that installs and sets up my desktop with almost zero human interaction.
This "how to" is so that you would not need to experiment as much as I did (but you will have to experiment to a certain degree). I will present my findings over the years, ports I have settled on and alternatives to thees ports, useful readings and so on. By the end of this "howto" a FreeBSD newcomer should get the general idea of what it means and what is necessary to set up a desktop from grand up.
I will assume that you have in fact successfully installed FreeBSD and you just logged in for the first time with you user name.
If you are looking for some help on how to install FreeBSD refer to the handbook's section Installing FreeBSD 9.X and Later.
Reading the whole Getting Started section in the handbook is a MUST and I will assume that you have read it. Do not install anything but read it.
---[ Objective
Apart from preferences I have mentioned before we will try to avoid as much as possible the following things:
- ports that require lots of dependency's
- ports that depend on x11-toolkits/gtk20
- ports that depend on devel/qt4
and depending on your choices for certain ports it is possible to build a "pure CLI" desktop without x11-toolkits/gtk20 or devel/qt4.
At the end we will be able to:
- browse the internet
- manage our files and folders with a file manager
- edit our files with an editor
- play movies and music
- download torrents
- auto mount USB drives (including NTFS formatted drives with read/write operations)
- read pdf files
- view images
- manage our wireless connection
- share files with FreeBSD/Linux/Windows
- emulate another OS for anything else we do not want to/can not have on our FreeBSD system but is needed.
What more do you need, eh?
---[ Getting started - ports and packages
Assuming you have read the handbook's section on ports and packages I am just going to say that we are going to use ports and compile everything from source. Reason is that we need to be able to "turn off" features and that can not be accomplished via packages since they are precompiled.
Before anything we need to update our ports tree so run this commands if you don't have the ports tree installed:
# portsnap fetch
# portsnap extract
# portsnap update
run this command later on when you wish to update the installed ports tree:
# portsnap fetch update
Now we need to decide how are we going to manage our ports. ports-mgmt/portmaster is a great tool that dose not require external databases or languages so we will use that.
Install the port:
# cd /usr/ports/ports-mgmt/portmaster/ && make install clean
Sample configuration file for portmaster si located at /usr/local/etc/portmaster.rc.sample. Copy it to /usr/local/etc/portmaster.rc and set the options you like:
# cp /usr/local/etc/portmaster.rc.sample /usr/local/etc/portmaster.rc
# ee /usr/local/etc/portmaster.rc
ee(1) stands for "easy editor" and comes with FreeBSD. It is very simple to use and perfect for editing configuration files form command line. Another option would be VI(1) if you are familiar with it.
I have enabled thees options but for more information you can refer to the man page PORTMASTER(8)
Last edited: