rigoletto@
Developer
Dæmon Desktop
(The High-Integrity Desktop for Serious Workstations)
This is a tentative to conceptualize a hypothetical ‘FreeBSD Workstation’, just in case of some entity eventually get interested on to design and implement it some day.(The High-Integrity Desktop for Serious Workstations)
The main inspiration for this brainstorm is the aiming to conceptualize a “Desktop to Rule They All” desktop. Also, with the possibility to retain the same UI/UX logic between all «variations». In other words, a software collection that can scale from scriptable CLI-only tools to a full featured GUI desktop.
- Audience – ${FreeBSD}.
- Configuration – on-the-fly + buildsheets (see Ravenports) - basically a file with the specifications.
- Language – Pure Ada/SPARK (alternatively OCaml).
- Portability – Not a goal. Deep integration with the FreeBSD Base is the goal.
- Supported architectures – All supported by the FreeBSD and the GNAT compiler.
- Widget Toolkit – Lightweight but professional, custom designed.
- Window manager – Tilling-automatic, tilling-manual, stacking - modes or separated.
- Requeriments –
IBM Design Language
IPC
NO Freedesktop
OCaml plugins
bhyve gui
capsicum
centralized color setup
color management
dark mode
hot code loading
multi-monitor
network mirroring framework
privacy
push notifications
scalable UI: cli, curses, graphic
scriptable
separation
standalone hotkey daemon
strong encryption
vcs integration
bhyve
for isolation (perhaps too much of overhead?) instead of sandboxes.A 'networking mirroring framework' intended to allow mirroring (and keep mirrored) the desktop configurations between several machines. With the scalable UI/UX design it should also allow to keep it even between the different variations (CLI, Curses, and GUI) the collection. To accomplish that, the software collection would need to have the ability to compile itself, or to talk with the system builder.
The idea behind of the
centralized color setup
would be to use something similar to .Xresources colors but affecting all themes (CLI, Curses, and GUI), to avoid color mismatch between themes and applications. So, themes colors would to be set exclusively using the 'desktop color codes' instead of HEX codes or something else. Also, IBM Design Language and Carbon Design System are the perfect references for design UI/UX in general.Inspired in some design tools, it could have a built-in algorithm for color scheme creation. In practice, the user could set just the initial 16 colors (or ever just one) and the algorithm would automagically create all others missing colors (16M) to create a perfectly matching palette, following the good graphics design rules.
Using buildsheets as configuration files would make the user set configurations build time too. Those buildsheets could also be used for configuration backup, and would make that easier to move them from one machine to another by either distributing a pre-built package with all desired configurations or the buildsheets. The eventual ability to dump a single buildsheet for the entire desktop collection configurations would make the things even more "magical".
One of the goals is to integrate with the FreeBSD Base as deeper as possible, always trying to not depend on third party software, writing all necessary libraries in house.
--
Some noteworthy software to have its features, user interface, and design investigated:
- Audio Player: audio/cmus, audio/musicpd + Client (audio/ncmpcpp, audio/pms-devel), audio/cantata, audio/sayonara, audio/deadbeef, audio/xmms2
- Bittorrent Client: net-p2p/transmission, net-p2p/btpd, net-p2p/rtorrent
- CardDAV/CalDAV Clients: deskutils/khal, www/pycarddav, deskutils/py-khard, deskutils/gcalcli
- File Manager: deskutils/lumina-fm (ZFS history support), misc/mc, x11-fm/dolphin, x11-wm/pcmanfm, Norton Commander, Slider
- IRC bouncer: irc/znc
- IRC client: irc/weechat, irc/irssi, irc/quassel
- IRC Server: none in particular but an IRC server which could work in Distributed/HA/Fault Tolerant scheme would be nice.
- Indexing and Searching: sysutils/kf5-baloo (far from great, but example)
- LaTeX IDE: ditors/texmake, editors/texstudio, editors/texworks, Gummi.
- Login Manager: x11/slim, x11/sddm
- MUAs: mail/mutt, mail/neomutt, mail/alpine, mail/claws-mail | mail/fdm, mail/isync, mail/offlineimap | mail/notmuch, mail/grepmail, mail/mboxgrep, mail/mairix, mail/nmzmail
- Media Library Manager: audio/beets, audio/picard
- Mounting Media Daemon: sysutils/dsbmd, sysutils/dsbmc, sysutils/dsbmc-cli
- Notes: deskutils/note (nice encryption capabilities), deskutils/qownnotes
- Password Manager: security/keepassxc, sysutils/password-store
- Software Launcher: x11/rofi
- Status Bar: x11/polybar, x11/lemonbar
- System Monitoring: sysutils/conky
- Terminal Emulator (GPU-accelerated): x11/alacritty, x11/rxvt-unicode, x11/sterm
- Text Editor: editors/vim, editors/neovim
- Tox Client: net-im/qTox, net-im/uTox, net-im/toxic | Tox | Specification | Tox needs a bouncer!
- Usenet: test reader and binary searcher.
- Video Player: multimedia/mpv, multimedia/vlc
- Window Manager (stacking): x11-wm/cwm, x11-wm/fluxbox, x11-wm/fvwm2, x11-wm/openbox
- Window Manager (tilling): x11-wm/sway x11-wm/i3, x11-wm/bspwm, x11-wm/xmonad, x11-wm/awesome
--
Other noteworthy to have SPARK written alternatives:
ipfw(8) (but with Pf-like syntax, please)
ipsec(4) + security/openiked
ssh(1)
security/gnupg
security/kerberos and relevant related software (gssapi, sasl, etc.)
security/openssl | security/libressl
security/sudo | security/doas
net/wireguard
dns/ironsides: this is already SPARK (2012), but not enough feature rich to compete with Unbound/NSD or Bind.
Secure Mail Solution: complete e-mail solution, end-to-end encryption capable à la protonmail.com. I believe it could indeed have some serious commercial appeal.
--
Keep on watch: NeoGFX
Last edited: