Using FreeBSD as Desktop OS

A touchpad connected to the I2C bus??? What the heck is that?

I've read its one of Microsoft's "innovations" and it has been implemented in some consumer-grade laptops.
Mine is a Lenovo Ideapad.
Linux and OpenBSD support these touchpads, but neither FreeBSD, nor NetBSD.
And KDE doesn't support them under Linux, for a reason I cannot imagine.
And of course, you cannot know this before you buy your laptop.
 
Same issue under Linux.
It seems MySQL Server is required by baloo, a feature that I'd prefer optional.
It's just there to be able to check marks in a KDE/Windows comparison, but is otherwise useless.
it has also needless dependency to kdenlive for example. When I was trying to install amarok it pulled MySQL server too. By modularity I understand that I can remove a lot of stuff that one way or another are redundant or not necesary for environement to work. I don't have baloo or MySQL server installed on my VM host.
 
I've read its one of Microsoft's "innovations"
Yes I have read that it was an Microsoft reference design for tablet touchscreens circa Windows 8.
It spread from there to laptop touchpads.
 
it has also needless dependency to kdenlive for example.
Again, the package database/akonadi is responsible for that. You can build it f.e. with SQLite as backend, and afterwards the package multimedia/kdenlive installs without MySQL. Kdenlive itself has no dependency to MySQL. The default to MySQL of akonadi is annoying to me, but as it seems others want it that way… In my opinion SQLite makes here much more sense - that doesn't conflict with other packages, and no unused server has to be installed.
 
Again, the package database/akonadi is responsible for that. You can build it f.e. with SQLite as backend, and afterwards the package multimedia/kdenlive installs without MySQL. Kdenlive itself has no dependency to MySQL. The default to MySQL of akonadi is annoying to me, but as it seems others want it that way… In my opinion SQLite makes here much more sense - that doesn't conflict with other packages, and no unused server has to be installed.
This dependency should be changeable at runtime. IIRC I could change Amarok's DB backend from MySQL to SQLite. If pkg(8) does not know about virtual packages for that purpose (e.g. dependency on sqldb_virt can be fulfilled by either mysql, pgsql or sqlite), that's a design flaw of pkg-ng. If it can't be configured after installation, that's a flaw in the implementation of Akonadi. AFAIK the Qt DB interface can handle configuration at runtime.
 
Again, the package database/akonadi is responsible for that. You can build it f.e. with SQLite as backend, and afterwards the package multimedia/kdenlive installs without MySQL. Kdenlive itself has no dependency to MySQL. The default to MySQL of akonadi is annoying to me, but as it seems others want it that way… In my opinion SQLite makes here much more sense - that doesn't conflict with other packages, and no unused server has to be installed.
if I want to install kdenlive, why it is pulling akonadi/mysql server?
 
if I want to install kdenlive, why it is pulling akonadi/mysql server?
Kdenlive requires kf5-purpose; kf5-purpose requires kaccounts-integration; kaccounts-integration requires akonadi; akonadi requires a database. So Kdenlive requires a database. Which one is up to you, but: If you go with the package, it is MySQL.

<scnr mode="curse">Using as many third party tools, libs, frameworks as possible is *modern*. If you're not doing this other "programmers" look snippy down on you, telling you that you've got no clue about how things work today. Even for one simple "document.getElementById()"(Javascript) you need many KBs extra for jQuery (so it is shorted to "$()"). If you say "let's do that old fashioned, we don't need jQuery elsewhere" your on the outside.</scnr>
 
Kdenlive requires kf5-purpose; kf5-purpose requires kaccounts-integration; kaccounts-integration requires akonadi; akonadi requires a database. So Kdenlive requires a database. Which one is up to you, but: If you go with the package, it is MySQL. Using as many third party tools, libs, frameworks as possible is *modern*. If you're not doing this other "programmers" look snippy down on you, telling you that you've got no clue about how things work today. Even for one simple "document.getElementById()"(Javascript) you need many KBs extra for jQuery (so it is shorted to "$()"). If you say "let's do that old fashioned, we don't need jQuery elsewhere" your on the outside.
I have kdenlive installed and working without akonadi and MySQL-server (running sqlite instead).
these are FreeBSD introduced dependencies (a need for akonadi requiring MySQL to get kdenlive).
KDE is/can be really light and very modular. In fact it is lighter than xfce4 if properly configured.
I decided against (after testing) KDE/Plasma installation on FreeBSD because it is not flexible and it is heavy. Instead I am running Openbox.
I like KDE Plasma 5 a lot but I think that I will wait a bit more before installing it on FreeBSD.
 
<scnr mode="curse">Using as many third party tools, libs, frameworks as possible is *modern*. If you're not doing this other "programmers" look snippy down on you, telling you that you've got no clue about how things work today. Even for one simple "document.getElementById()"(Javascript) you need many KBs extra for jQuery (so it is shorted to "$()"). If you say "let's do that old fashioned, we don't need jQuery elsewhere" your on the outside.</scnr>

Stated otherwise: companies earn money by selling solutions, so they need problems; and when there aren't enough, they have to create some.
The more code, the more bugs, so the more "modern" development practices have to be, the more money flows in.

When a framework accidentally - and unfortunately - solves problems and makes developers more productive and software more reliable, there is still a solution to create more problems: release new versions of the framework more often, e.g. every 6 months, to make sure it becomes more unstable and unreliable.
 
these are FreeBSD introduced dependencies (a need for akonadi requiring MySQL to get kdenlive).
KDE is/can be really light and very modular. In fact it is lighter than xfce4 if properly configured.
Haven't test it, but: Compiling Kdenlive without filesharing support should disappear the dependency to kf5-purpose. So that might be a second possibility to get Kdenlive without MySQL (even without any database). To me that's no option (another port relies on akonadi).
I don't see KDE as "light" - even on Debian it pulls me 150 packages in (checked!) - and that on a machine already running LXQT (so QT5 stuff is already available); On the other side Xfce installs only a dozen packages on the same machine. "Modular" might be, but it really isn't smart. FreeBSD compared to my Debian it is just: different.
 
I don't see KDE as "light" - even on Debian it pulls me 150 packages in (checked!) - and that on a machine already running LXQT (so QT5 stuff is already available); On the other side Xfce installs only a dozen packages on the same machine. "Modular" might be, but it really isn't smart. FreeBSD compared to my Debian it is just: different.

So I still use my frankenstein KWin + XFCE (when I can get expose support in another WM that works well I'll stop doing this). I wanted to comment on the "lightness" of KDE by showing the lightness of a subset of KDE...KWin:

Code:
> pkg info -d plasma5-kwin | wc -l
      74
> pkg info -d xfce | wc -l
      14

That's just kwin! I haven't installed the rest of kde but I did have to install a few extra kde packages to get this to work. Note that KWin still hangs randomly, causing me to have to SSH in and kill it. The expose feature is worth this hassle.
 
I don't see KDE as "light" - even on Debian it pulls me 150 packages in (checked!) [...]
His point was that it is possible to run a KDE w/o KWin and Plasma - only the kf5-framework stuff - with Openbox WM instead KWin and that makes up a lighter DE than XfCE4. Probably even more feature-rich. Very likely the Debian packages pull in KWin & Plasma packages, like on FreeBSD.
 
So I still use my frankenstein KWin + XFCE (when I can get expose support in another WM that works well I'll stop doing this). I wanted to comment on the "lightness" of KDE by showing the lightness of a subset of KDE...KWin:

Code:
> pkg info -d plasma5-kwin | wc -l
      74
> pkg info -d xfce | wc -l
      14

That's just kwin! I haven't installed the rest of kde but I did have to install a few extra kde packages to get this to work. Note that KWin still hangs randomly, causing me to have to SSH in and kill it. The expose feature is worth this hassle.
To be honest I am really surprised that someone would refer to the number of packages installed as a measure of lightness or not.
System responsiveness, RAM use, CPU use, that what's count. This is on laptop where I prefer that system is working on battery as long as possible.
Xfce4 in virtual machine is not acceptable as it does not show properly vshares.
 
<scnr mode="curse">Using as many third party tools, libs, frameworks as possible is *modern*. If you're not doing this other "programmers" look snippy down on you, telling you that you've got no clue about how things work today. Even for one simple "document.getElementById()"(Javascript) you need many KBs extra for jQuery (so it is shorted to "$()"). If you say "let's do that old fashioned, we don't need jQuery elsewhere" your on the outside.</scnr>
You might have a point when these things are exaggerated (I see that for example in the whole "node" ecosystem, npm hell ...) -- but on the other hand, re-inventing the wheel was always frowned upon. KDE is a "full-featured" desktop, and this indeed means a shitload of features -- sure it has a lengthy list of dependencies, and actually, this is just sane reuse of existing libraries in most cases. Yes, a desktop depending on a database server is a bit over the top -- maybe it's just "akonadi" is a bad idea :eek:

As for jQuery -- this had a totally different usecase, mainly working around all the quirks and little differences of different browsers. Nobody in their right mind would ever have considered using it just to get a few elements from DOM by their IDs. Yes, I'm writing in past tense here. As browsers evolved and improved, jQuery is used more and more rarely. Ask a typical "frontend developer" nowadays, most would tell you to better avoid jQuery.
 
To be honest I am really surprised that someone would refer to the number of packages installed as a measure of lightness or not.
System responsiveness, RAM use, CPU use, that what's count. This is on laptop where I prefer that system is working on battery as long as possible.

I take care of a low power consumption when buying hardware - the software used on it isn't into question as it is bought therefore. (And as I don't want running software I don't need I always create my own desktop - I would never use a ready KDE, Xfce, LXQT, LXDE, GNOME etc. for my main desktops.)

The look at "how much RAM this and that desktop uses" I've even didn't understand 20 years ago. Really, if it takes 20 MB or 1 MB isn't the point in days 4 GB are called "little". And even in the "128 MB times" I didn't see the difference between f.e. KDE and a simple window manager - both were fast und enough to get my things done. But when it comes to "let's save ressources" I never even thought about using a whole DE; Using any DE says you're having ressources and want to sacrify them for comfort aspects.

The responsiveness thing … may that belong more to QT vs GTK in a VM on *your* setup? Also to this aspect: I cannot see a difference *whatever* desktop I'm using in a VM; Actually I'm using Xfce, LQXT, GNOME and simple window managers in my unixoid VMs, and all I can say is that only the Win 10 VM is less responsiv, all others are equal. (But since the last hardware upgrade - low power consumption of course - the Win 10 thing is gone.) The limit on desktop VMs belonging to responsiveness is in my case more of using VNC than choosing DE x or y.

Also the CPU usage: Requesting a website, moving some files to other drives etc. - everything I'm doing the desktops CPU usage itself is just vanishing in the noise. Over the last years the one thing my computer comes to limits was neither RAM nor CPU, but: disk space.

So yes, I'm taking care of low dependencies when I'm choosing my software. To me that is one indicator of good designed software: Keep it simple. In my opinion "keep it simple" also means not to need 150 third party packages. The concept of sharing libs is great, but todays overflow and the freewheeling and blithely unaware use of them is far too much. To me KF5 is one of the most ugliest things onto this aspect - and there was a time Kdenlive didn't need this whole monster (!). And even that time: I remember Kdenlive had heavy dependencies on strange third party tools not really needed to just cut movies.

Xfce4 in virtual machine is not acceptable as it does not show properly vshares.

What are vshares? If that are mountable disks: Just make an entry in fstab, and Thunar should show them.
 
To be honest I am really surprised that someone would refer to the number of packages installed as a measure of lightness or not.
System responsiveness, RAM use, CPU use, that what's count. This is on laptop where I prefer that system is working on battery as long as possible.

Well first, I intended my message to be "number of dependencies" not "number of packages". I find that is a measure of lightness because the more a package depends on, the more that has to be installed and the heavier the memory requirements.

But there's, of course, more to the story:

Code:
> ps auwx | grep X
...
root     27354    2.6  0.6 26013796  752208 v2  S     4Jul20   1290:26.32 /usr/local/bin/Xorg :0 -nolisten tcp

Now this box has a lot of RAM to be sure, but 26GB of VSZ is what the X server -itself- takes. I doubt that is considered light by any metric.
 
Now this box has a lot of RAM to be sure, but 26GB of VSZ is what the X server -itself- takes. I doubt that is considered light by any metric.

Can't tell if trolling or serious. It's completely normal for applications primarily targeting Linux to map much more memory than they actually need or will ever use. Mmaping large files, for example, will inflate this number quite a bit.
 
Here is another one for you:

https://cooltrainer.org/a-freebsd-desktop-howto/

There is also the script desktop-installer in the package repository and the ports tree. You simply do pkg install desktop-installer in a new install and follow the instructions. You can have a basic FreeBSD desktop up and running literally within about 15 minutes.

This is a very outdated guide and some of these things will cause issues or maybe even render your system unbootable. It does contain some valuable info, such helpful tuneables to change for desktop/workstation use

vermaden and a few other users on here have comprehensive spoonfeeding guides for setting up desktops on freebsd, they may not cover _everything_ though
 
Kdenlive requires kf5-purpose; kf5-purpose requires kaccounts-integration; kaccounts-integration requires akonadi; akonadi requires a database. So Kdenlive requires a database. Which one is up to you, but: If you go with the package, it is MySQL.
Well, it turns out that these days, nearly every piece of software requires certain infrastructure. For example, most software uses networks, so you need good RPC support. Most software requires configuration, so they use libraries that know how to decode config files. They store data in interesting formats, which requires record management, and often databases. Given that de-facto all software needs this, wouldn't it make sense if operating systems contained the facilities as a basic part?

Well, it turns out in the 60s and 70s there was lots of research into operating systems, and a few OSes that became spectacularly successful followed that advice. For example, both System/38 and VMS shipped with a full relational database integrated into the OS, with backup facilities integrated into file systems, in the case of VMS with a networked cluster file system starting in the late 80s (VAXcluster). That was REAL progress. Alas, due to a cost-saving move by the whole industry, we ended up standardizing on the "minimum viable product" among operating systems, namely Unix (today shipped in the form of Linux and the BSDs), where none of this comfortable stuff is available by default. Interestingly, those two operating systems still exist; System/38 is still shipping today (it turned into AS/400 and then into System i, which today is just a software package you can run on a PowerPC system). And a lot of the technology from VMS (and the people that made it) ended up in Windows, through the path of NT. There is a reason that technologically, Windows has been ahead of the game in many areas, even if we (as Unix snobs) refuse to acknowledge that.

<scnr mode="curse">Using as many third party tools, libs, frameworks as possible is *modern*.
Yes, it is, And for VERY good reasons. It is insane if every developer ends up having to re-invent all the infrastructure for their little project. Using well-made existing projects is much more sensible.

Let me explain that with a little joke, from about 40 years ago (I started doing commercial data processing in the late 70s and early 80s): A small business owner wants to use computers to run his business more efficiently. And he decided that the best place to start is by automating "accounts receivable" (the act of printing invoices, collecting payments from customers, and matching payments to outstanding bills) would be the best place to start. So he buys a computer (which in those days was something big enough to require a room of its own), and hires a programmer. The programmer tells him that it will three years to develop "accounts receivable". Well, that seems expensive and slow, but the business owner has no alternative than to let the programmer do it. After one year, the business guy goes to the programmer to see what progress has been: the programmer is putting the finishing touches on an editor. He's hoping in the second year to create a compiler, and in the third an operating system. Once he has those tools, "accounts receivable" will be quick and easy.

Today, if I'm supervising a junior software engineer, or I'm doing a code review for a colleague, and I find out that they have re-implemented something that exists as a good-quality library, I will stop them, and make then use the library. Because I want them to invest their time into creating something new and useful, not re-inventing the wheel.
 
Thanks ralphbsz.

There are other sides to this.

Rolling your own code gives you ownership of the underlying infrastructure and escapes any concerns over software license compatibility. If it breaks, you wrote it and presumably know how to fix it. If a third party library breaks, it may take you a long time to either come up with a fix or wait for a fix upstream.

Lots of libraries do more than I want. This larger surface area carries more bugs and a higher risk of CVEs. I see the same libraries in 'pkg audit' over and over.
 
I take care of a low power consumption when buying hardware - the software used on it isn't into question as it is bought therefore. (And as I don't want running software I don't need I always create my own desktop - I would never use a ready KDE, Xfce, LXQT, LXDE, GNOME etc. for my main desktops.)

The look at "how much RAM this and that desktop uses" I've even didn't understand 20 years ago. Really, if it takes 20 MB or 1 MB isn't the point in days 4 GB are called "little". And even in the "128 MB times" I didn't see the difference between f.e. KDE and a simple window manager - both were fast und enough to get my things done. But when it comes to "let's save ressources" I never even thought about using a whole DE; Using any DE says you're having ressources and want to sacrify them for comfort aspects.

The responsiveness thing … may that belong more to QT vs GTK in a VM on *your* setup? Also to this aspect: I cannot see a difference *whatever* desktop I'm using in a VM; Actually I'm using Xfce, LQXT, GNOME and simple window managers in my unixoid VMs, and all I can say is that only the Win 10 VM is less responsiv, all others are equal. (But since the last hardware upgrade - low power consumption of course - the Win 10 thing is gone.) The limit on desktop VMs belonging to responsiveness is in my case more of using VNC than choosing DE x or y.

Also the CPU usage: Requesting a website, moving some files to other drives etc. - everything I'm doing the desktops CPU usage itself is just vanishing in the noise. Over the last years the one thing my computer comes to limits was neither RAM nor CPU, but: disk space.

So yes, I'm taking care of low dependencies when I'm choosing my software. To me that is one indicator of good designed software: Keep it simple. In my opinion "keep it simple" also means not to need 150 third party packages. The concept of sharing libs is great, but todays overflow and the freewheeling and blithely unaware use of them is far too much. To me KF5 is one of the most ugliest things onto this aspect - and there was a time Kdenlive didn't need this whole monster (!). And even that time: I remember Kdenlive had heavy dependencies on strange third party tools not really needed to just cut movies.



What are vshares? If that are mountable disks: Just make an entry in fstab, and Thunar should show them.
virtualbox client FreeBSD xfce4 reports incorrectly contents of virtualbox shares in GUI and CLI. This is not an issue with KDE/Plasma or Openbox (see picture attached)

Disk is/was never a problem as it is possible to replace one with the larger disk RAM is an issue (I maxed it out at 32GB on my laptop), battery/CPU is an issue.
I am not sure where VAX fits here. I was using IBM in mid 70'. Still don't see any relevance.
I have several linuxes, BSDs, windows, solaris, openindiana in VM. I run different VM clients at the same time. So yes RAM is important. KDE/Plasma uses 369MB (not FreeBSD), without extra modifications, Openbox uses 270MB (could be less but this is good enough)

I think that with the modular design, RAM/CPU use we hit the wall (nearing ridiculousnes in part of your answers) so no point to discuss it anymore.

Anyway thank you
 

Attachments

  • FBSD11 and vboxvfs2.png
    FBSD11 and vboxvfs2.png
    401.1 KB · Views: 166
There are other sides to this.

Rolling your own code gives you ownership of the underlying infrastructure and escapes any concerns over software license compatibility. If it breaks, you wrote it and presumably know how to fix it. If a third party library breaks, it may take you a long time to either come up with a fix or wait for a fix upstream.

Lots of libraries do more than I want. This larger surface area carries more bugs and a higher risk of CVEs. I see the same libraries in 'pkg audit' over and over.
All of those are concerns. Clearly, if the tradeoff is to use a giant package (100 page manual, lawyers have to do special work to deal with license agreement, repeat offender in vulnerabilities...) to save 10 lines of code, you don't do it. That's good engineering common sense. On the other hand, re-implementing things just to "own" them means that you own all of their downsides too: If it breaks, you can't get any help with fixing it, because it's only your own fault.

A lot depends on the trust relationship. In the old days, when I was programming with systems that came from trusted vendors (such as Digital, HP, IBM), I could expect that the software they sold me was of high quality and had good support. And if not, I would call 1-800-DIGITAL or 1-800-IBM-SERV, open a trouble ticket, and a few weeks later a tape with patches would be on my desk. Today, we expect software to be free, and too often the quality matches the price. Still, if a library of reasonably quality exists to solve a problem, and using it is more efficient than solving the problem yourself, then use it.
 
Still, if a library of reasonably quality exists to solve a problem, and using it is more efficient than solving the problem yourself, then use it.
Efficience is a good point.
If it install python 2.7 or a db dependency it is not efficient.
And a lot of project have a very long obscure and useless list of dependencies.
I use dwm with dmenu. What things KDE offer at what price ?
KISS is a past concept today.
What about user preference encoded in obscure DB like Xressource ?
A file in .config do the same thing.

The OS need to offer tools to solve use case. But UNIX is brained as a set of concepts that can handle a lot of use case with few tools. So IMHO we better have to see how we can use basic tools/lib to feet our need instead of searching a foreign monster that solve our use case.

I am pretty sure that the big majority of node programs will not be transpilable in the 2 years.
Do I want that mess in the OS I daily use ?
 
Back
Top