In the Part 6 of the FreeBSD Desktop series I would like to describe key components of self made custom desktop environment such as:
- Window Manager
- Status Bar
- Task Bar
- Wallpaper Handling
- Application Launcher
- Keyboard/Mouse Shortcuts
- Locking Solution
- Blue Light Spectrum Suppress
Today we will focus on the third part – the Task Bar. In the next series each of these components configuration would also be described along with eventual needed scripts.
You may want to check other articles in the FreeBSD Desktop series on the FreeBSD Desktop – Global Page where you will find links to all episodes of the series along with table of contents for each episodeβs contents.
Task Bar
To quote Wikipedia – “A taskbar is an element of a graphical user interface which has various purposes. It typically shows which programs are currently running.”
While there are dozens of options here after using many them I have narrowed the choice to lighter solutions such as:
- XFCE Panel
- Tint2
- Fbpanel
- Lxpanel
- Plank
Classic
You can use classic taskbar likeΒ XFCE Panel used in the XFCE desktop environment.
You can also configure Tint2 that way.
But this solution has its drawbacks, it only shows applications that are active on the current desktop, using 4 or more virtual desktop is a ‘standard’ for most power users so not knowing what is happening on the other desktops is not acceptable.
Docks
One of the greatest taskbars of all time was/is the Mac OS X Dock (now macOS Dock).
It also does not cover virtual desktops but it has a feature that it shows applications from all desktops and if you click that application icon, then it will switch you to that application on that desktop. It also has an indicator showing if application is launched or not which also helps.
There was time, when You could use Fbpanel to create pixel-perfect clone of Mac OS X Dock, without all features of course, but still.
Unfortunately it worked only till 4.3 version of the Fbpanel, with later releases this pixel-perfect custom themes was not possible because of forced spacing between elements and it looks like the Fbpanel development stopped somewhere in 2010.
Currently the best and lightest solution for providing the dock-like functionality on open desktops seems to be Plank – the dock that originally was written for the Elementary OS Linux distribution. Besides being light and having nice look it also offers most important features of the original Mac OS X Dock like switching to the application and showing an indicator for already running applications.
The ‘original’ Plank theme used in Elementary OS looks like that.
While its quite nice it takes definitely too much desktop space, thus I prefer to configure it little more lean way. Also styled along with Dzen2 and Tint2 colors/style.
Virtual Desktops
While its one of the best solutions out there lets not forget Tint2. One of the nicest features of this small beauty is that you can configure it to show all applications from all virtual desktops … and even provide separate launcher … and system tray … and many other useful things which we will not use, such as clock that we already have on the Dzen2 status bar.
Here is an example of Tint2 configured in such way.
I do not find it usable nor efficient either that way, but habits of Windows like desktop systems die hard for some π
The Lxpanel can also be a launcher but does not have all needed functionality and flexibility that Tint2 offers.
While Lxpanel is low on resources the Tint2 taskbar uses even less of them while doing more, so I mention Lxpanel here just for historical reasons as I used it in the past.
Resources
Lets compare how are these solutions on the system resources. I have omitted Fbpanel in here because its no longer usable as a taskbar solution.
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 53862 vermaden 5 20 0 51284K 36376K select 1 0:03 1.07% plank 83288 vermaden 1 20 0 33608K 28480K select 1 0:00 0.00% xfce4-panel 43380 vermaden 1 20 0 32484K 26332K select 0 0:21 0.00% tint2 94650 vermaden 2 20 0 50752K 27652K select 1 0:00 0.00% lxpanel
The Tint2 takes about 25 MB of RAM. While Plank taking a little more – 35 MB of RAM – its usability and nice look can be justified to take little more.
Result
The final result along with Dzen2 status bar on the top along with Tint2 for virtual desktop overview and Plank running on the bottom will look like that.
The Plank taskbar on the bottom is optional. Once I got used to Tint2 and Dzen2 setup on the top the Plank became optional/redundant, but some people prefer it for their desktop usage patterns.
Pingback: FreeBSD Desktop – Part 7 – Key Components – Wallpaper Handling | vermaden
Pingback: FreeBSD Desktop – Part 8 – Key Components – Application Launcher | vermaden
Pingback: FreeBSD Desktop – Part 9 – Key Components – Keyboard/Mouse Shortcuts | vermaden
Pingback: FreeBSD Desktop – Part 10 – Key Components – Locking Solution | vermaden
Pingback: FreeBSD desktop (6) | 0ddn1x: tricks with *nix
Pingback: FreeBSD Desktop – Part 11 – Key Components – Blue Light Spectrum Suppress | vermaden
Pingback: FreeBSD Desktop – Part 12 – Configuration – Openbox | vermaden
Pingback: FreeBSD Desktop – Part 13 – Configuration – Dzen2 | vermaden
Pingback: FreeBSD Desktop – Part 14 – Configuration – Tint2 | vermaden
Pingback: FreeBSD Desktop – Part 5 – Key Components – Status Bar | vermaden
Pingback: FreeBSD Desktop – Part 4 – Key Components – Window Manager | vermaden
Pingback: FreeBSD Desktop – Part 3 – X11 Window System | vermaden
Pingback: FreeBSD Desktop – Part 15 – Configuration – Fonts & Frameworks | vermaden
Pingback: FreeBSD Desktop – Part 1 – Simplified Boot | vermaden
Pingback: FreeBSD Desktop – Part 2 – Install | vermaden
Pingback: FreeBSD Desktop – Part 16 – Configuration – Pause Any Application | vermaden
Pingback: FreeBSD Desktop – Part 17 – Automount Removable Media | π π ΄ππΌπ°π³π π
Pingback: FreeBSD Desktop – Part 2.1 – Install FreeBSD 12 | ππππππππ
Pingback: FreeBSD Desktop – Part 18 – Global Dashboard | ππππππππ
Hi thanks for guide, I am wondering how to show icons below taskbar? do you use lxpanel for that or what? because i dont see in your guide.
LikeLike
Hi,
I am not sure about which part you are asking but from the top there is:
[dzen2]
[tint2]
[DESKTOP_AREA]
[plank]
Keep in mind that this is only one part of the whole series and there are more then 20 articles about that π
Here is the link to the ‘global’ FreeBSD Desktop series page with all parts:
https://vermaden.wordpress.com/freebsd-desktop/
Hope that helps.
LikeLike
well its tint2. Idk tint2 is not starting, i add “tint2 &” to .xinitrc but nothing happen even after reboot.
i have to start manually, then icons show up.
try to put at ~/.config/openbox/autostart ya and its failed to start.
where can if i want to change size tint2 panel, because its overlap to dzen2 panel.
LikeLike
If something does not start from ~/.xinitrc then it will not start the same from ~/.config/openbox/autostart file π
I start TINT2 with config named as ~/.tint2rc.ALL file:
By default its ~/.tint2rc only.
Check configs and files again.
Regards.
LikeLike
how yours start form ~/.tint2rc?
my config is at ~/.config/tint2/tint2rc
and i cant find tint2rc.ALL file at your guide.
i am still fail to start tint2, how you start your tint?
LikeLike
ok tint2 is now running perfectly.
i saw robonuggie video https://www.youtube.com/watch?v=KidU8s18b30 on description it says to add exec openbox-session at xinitrc.
i put openbox & only at xinitrc.
and then i add tint2 -c ~/.tint2rc line into ~/.config/openbox/autostart
LikeLike
If you have config at ~/.config/tint2/tint2rc then you need to start it like that:
… but I see you already find the solution π
LikeLike