GhostBSD tiling spin

Open development discussions

Moderator: Developer

Post Reply
kraileth
Posts: 312
Joined: Sun Sep 04, 2016 12:30 pm

GhostBSD tiling spin

Post by kraileth »

In the past GhostBSD has supported more spins before the decision was made to concentrate on MATE and Xfce. However ideas like bringing back a GNOME spin have been around for a while and users have reported that there's interest in an even lighter edition of GhostBSD, preferably with just a WM installed. One user has also requested a spin with a tiling WM specifically.

We're all a bit short on time and resources and thus shipping an additional spin is something to think carefully about. Currently we have two developers using MATE and two others using Xfce, which is excellent. I will definitely stick with MATE on my machines since that's what my wife is used to (and she's not nearly as fond of wasting investing time to learn something new if the currently used tool does the job well as I am exploring new things). However I've been looking to improve my efficiency over the years (getting a great ergonomic keyboard, learning an optimized keymap, etc.). Now I'd like to take the next step and get tiling. So basically I volunteer to explore this field.

So far, GhostBSD has been all about making traditional desktop users happy and that's definitely a goal we shouldn't let go. The project would greatly benefit from more developers, though, and I wonder if offering a spin aiming at what a lot of more technical people love, might be something we should try. I'm thinking of a GhostBSD spin with a tiling WM and things like the VimFx plugin preinstalled that allows Firefox to be controlled in a VIM-style manner. The idea is to get rid of the mouse/touchpad/etc. as much as possible, allowing the user to keep the hands on the keyboard nearly all the time without having to take them off.

I did a little investigation. There are a lot of tiling window managers out there and most of them claim to be "easily hackable" (which probably is appealing to a lot of programmers). The two "big" ones are xmonad and Awesome. The former is BSD-licensed but written and configured in Haskell which probably isn't what a whole lot of people want to learn just to properly configure their WM. The latter is GPL'd and configured in LUA. Probably also not quite perfect. There are others that are configured using text files which might be a better fit. And there's qtile, a WM written and configured in python. Since that's GhostBSD's unofficial first language, I felt that it might be the ideal candidate, especially as it's also liberally licensed (MIT).

I was quite happy to find that it's even in ports already. However I soon figured that this port is > 5 years old and currently broken. I did my best to update and fix it - which turned out to not be so easy since some dependencies for the new version changed and it now depends on one library that isn't in ports, yet. That library has two more dependencies with missing ports and - oh the irony! - those are Haskell libraries. :P Fortunately they are build-time only dependencies. I prepared ports for everything and made them pass a "synth test" run. Then I created two PRs on the FreeBSD bugtracker; one is just asking to mark the qtile port "broken" the other is my first attempt at submitting a port and getting it committed.

There has been a little discussion about the latter, but not even the first one (which should be a quicky!) has been done and closed after more than 10 days. Yes, I know that it's a volunteer effort and I'm willing to wait and give it the time it needs. But I wonder if we couldn't import those ports into our tree for now and test things here to speed things up a little?

If anybody here is in favor of doing this, for the first step I'd only need another pair of eyes to take a look at two rather simple ports which could then be imported. So what do you think? Does a tiling spin make sense at all? Should we give it a try (again, I'm willing to explore things and hope to eventually be able to use it as my daily driver)? Can we import some more custom ports after making sure that they build?
ASX
Posts: 988
Joined: Wed May 06, 2015 12:46 pm

Re: GhostBSD tiling spin

Post by ASX »

kraileth wrote:There has been a little discussion about the latter, but not even the first one (which should be a quicky!) has been done and closed after more than 10 days. Yes, I know that it's a volunteer effort and I'm willing to wait and give it the time it needs.
As long as you support and maintain the spin, I see the no problem with that.
But I wonder if we couldn't import those ports into our tree for now and test things here to speed things up a little?
Of course yes, it is possible and certainly is one of the reason we implemented our own pkgs repo.
If anybody here is in favor of doing this, for the first step I'd only need another pair of eyes to take a look at two rather simple ports which could then be imported. So what do you think? Does a tiling spin make sense at all? Should we give it a try (again, I'm willing to explore things and hope to eventually be able to use it as my daily driver)? Can we import some more custom ports after making sure that they build?
While I have no personal interest in tiling wm, I recognize that more choices are good, and generally speaking beneficial.

If it is of interest to you, we already had a i3 spin, among others, in DesktopBSD (as of latest releases it was mainly a rebranded GhostBSD) i3 spin specifically was prepared from 'SoloBSD' on top of Hardened-BSD base.
https://sourceforge.net/projects/deskto ... esktopBSD/
https://sourceforge.net/projects/deskto ... BSD%202.0/

The build system was a variation of ghostbsd-build, now probably outdated.

That said talk to ericbsd ;)
kraileth
Posts: 312
Joined: Sun Sep 04, 2016 12:30 pm

Re: GhostBSD tiling spin

Post by kraileth »

ASX wrote:As long as you support and maintain the spin, I see the no problem with that.
Sure, as soon as a working package for the WM is available, I'll roll an image and if I'm happy with it upload it somewhere as an unofficial spin. Then anybody who's interested can try it out. Should I find that it works as a daily driver for me and I can thus ensure long-term support, I'll ask Eric for his blessing to maybe make it an official spin.
But I wonder if we couldn't import those ports into our tree for now and test things here to speed things up a little?
Of course yes, it is possible and certainly is one of the reason we implemented our own pkgs repo.
If it is of interest to you, we already had a i3 spin, among others, in DesktopBSD (as of latest releases it was mainly a rebranded GhostBSD) i3 spin specifically was prepared from 'SoloBSD' on top of Hardened-BSD base.
https://sourceforge.net/projects/deskto ... esktopBSD/
https://sourceforge.net/projects/deskto ... BSD%202.0/

The build system was a variation of ghostbsd-build, now probably outdated.
That's interesting indeed! While I've noticed the files for other spins in our build system, I didn't know that there were experiments to build a desktop on top of hardenedBSD. To be honest, I've already thought about doing something like this, too. The HardenedBSD guys left a very good impression on me; they are obviously having some differences in opinion with Core about where upstream FreeBSD is/should be heading (their criticism of mainline FreeBSD's "ASLR" is really quite harsh and shows that they are not afraid to publicly disagree). And they successfully teamed up with the OPNsense project for a common benefit. I don't know how much the hardening options get in the way of an enjoyable desktop experience. I'm going to ask Eric about why this was dropped. If the reasons were issues that could be overcome... Well, it could be interesting to go one step further and not just clone FreeBSD's ports tree but actually consuming HardenedBSD's OS code instead of vanilla FreeBSD's.
That said talk to ericbsd ;)
Sure, I will (still hoping to find some time in the evenings to hop on IRC - if that doesn't work out, I'll have to use another means).
kraileth
Posts: 312
Joined: Sun Sep 04, 2016 12:30 pm

Re: GhostBSD tiling spin

Post by kraileth »

Here are the first two ports, BTW.

To make it easier to look at them, I'll paste the main content of both Makefiles here. Would be nice if somebody could take a look and if we could eventually import them (they are probably not of much use on their own, but the two ports will satisfy the dependencies for another port).

x11/hs-xcb-types:

Code: Select all

PORTNAME=	xcb-types
PORTVERSION=	0.8.0
CATEGORIES=	x11 haskell

MAINTAINER=	haskell@FreeBSD.org
COMMENT=	Library to provide xcb data-types

LICENSE=	BSD3CLAUSE

RUN_DEPENDS=	ghc>0:lang/ghc

USE_CABAL=	mtl>=2.0 xml>=1.3.0
USE_LDCONFIG=	yes

.include "${.CURDIR}/../../lang/ghc/bsd.cabal.mk"
.include <bsd.port.mk>
hs-language-python:

Code: Select all

PORTNAME=	language-python
PORTVERSION=	0.5.4
CATEGORIES=	lang haskell

MAINTAINER=	haskell@FreeBSD.org
COMMENT=	Library for lexical analysis, parsing and pretty printing Python code

LICENSE=	BSD3CLAUSE

RUN_DEPENDS=   ghc>0:lang/ghc

USE_CABAL=	monads-tf>=0.1.0 utf8-string>=1.0 happy>=1.19.0 alex>=3.2.0
USE_LDCONFIG=	yes

.include "${.CURDIR}/../../lang/ghc/bsd.cabal.mk"
.include <bsd.port.mk>
Attachments
hs-ports.tar.gz
(1.21 KiB) Downloaded 553 times
ASX
Posts: 988
Joined: Wed May 06, 2015 12:46 pm

Re: GhostBSD tiling spin

Post by ASX »

kraileth wrote:I'm going to ask Eric about why this was dropped. If the reasons were issues that could be overcome...
I can answer that, and it is not it was dropped, it was that the whole DesktopBSD project has been put on hold, after 'convbsd' disappeared.
It was not ericbsd decision in any way, ericbsd and/or GhostBSD was supporting DesktopBSD at the time, or if you prefer was supporting our (convbsd and others) efforts to deploy some new DesktopBSD ISOs. Think of it as a brother project, yet it was a separate thing. ;)
Sure, I will (still hoping to find some time in the evenings to hop on IRC - if that doesn't work out, I'll have to use another means).
That indeed would be a nice thing! :D
Post Reply