Skip to content

Components

probonopd edited this page Sep 6, 2020 · 31 revisions

This is a work-in progress description of which components could be used to put together the hello system.

Core OS

  • FreeBSD - Liberal license, great ZFS experience, slowly-changing, complete operating system system, no different competing distributions. Big advantage: There is one way how things are done (e.g., set the keyboard language), one location in which files are. Not different ones like with different Linux distributions. This makes the job of writing that sits on top much easier. Possible alternatives: NetBSD? (Runs on more hardware types).
  • https://github.com/furybsd/furybsd-livecd - Builds Live ISOs for FreeBSD, is customizable. Live system can be booted from ISO file using https://www.ventoy.net/ which allows one to have multiple Live ISOs in parallel. Live system optionally can be installed to disk. Current issues: Without Ventoy, copies the whole ISO to RAM before booting. Possible alternatives: NomadBSD, GhostBSD?

GUI toolkit

  • Qt 5 - Most cross-platform applications are written in it. Unlike Gtk, it is also not tied to many of the unwelcome technologies.
  • lthemeengine - export QT_QPA_PLATFORMTHEME=lthemeengine to be able to get OK/Cancel buttons in the preferred order and to set custom colors for the Qt theme. Possible alternatives: Kvantum (allows themes to be made using SVG)

Desktop environment

  • A custom shell script that launches a few services and that keeps running as long as the desktop session is running. Advantage: Very lightweight, easy to understand what is going on. Possible alternatives: LxQt or Lumina (Lightweight and based on Qt 5), Xfce (Gtk would bring in Gnome-related dependencies), KDE (would violate the "software minimalism" principle)

Display manager ("login box")

  • sddm - Qt based.

Window manager

  • To be defined - No pure Qt solution known so far. Lumina uses fluxbox (window decorations don't look native and there is no window snap), NomadBSD uses openbox (window decorations don't look native and there is no window snap). kwin_x11 draws in many Kf5 dependencies and may be resource hungry (seemingly so, I see very high CPU loads on FreeBSD; to be verified with Linux) and lacks Alt-Tab application switching but it can do animations, window snap, Exposé, and has compositing features built in.

Compositor

  • compton - Drop shadows. Possible alternatives: kwin_x11, Compiz

File manager

Global menubar

  • To be written? - No pure Qt solution known so far. Maybe port over the KDE appmenu Plasmoid as a standalone application? Possible alternatives: Launch KDE Plasma just for the global menubar (would violate the "software minimalism" principle). Background information: https://blog.broulik.de/2016/10/global-menus-returning/. https://github.com/rilian-la-te/vala-panel-appmenu (Gtk, so not really wanted). https://github.com/justforlxz/deepin-topbar (has Deepin-specific dependencies and the Global menubar aspect seems not yet implemented).
  • Search in menus - This needs to be invokable from the command line, effectively allowing for a very efficient operation of application menus through the keyboard ("HUD"). UX should be discoverable (visible search box).

Dock

  • To be defined. No pure Qt solution known so far. Latte Dock performance not good in FreeBSD. Deepin's dock (probably depends on dde dependencies)?

Search and application launcher

  • Qt version of Drill to be written? - Possible alternatives: Drill (would look non-native since not written in Qt)

Browser

  • Chromium or Falkon

Utilities

  • qterminal
  • lumina-archiver
  • lumina-calculator
  • lumina-config
  • lumina-fileinfo
  • lumina-info
  • lumina-mediaplayer
  • lumina-open
  • lumina-pdf
  • lumina-photo
  • lumina-screenshot
  • lumina-search
  • lumina-textedit
  • lumina-xconfig

Fonts

Application delivery format

  • Think about merging the best aspects of AppDir, AppImage, ZFS deduplication, and PBI https://2011.eurobsdcon.org/papers/moore/eurobsdcon2011-pbi9-kpm.pdf but keep in mind https://unix.stackexchange.com/questions/244039/pc-bsd-pbi-what-reasons-made-it-to-be-scrapped. Something along the lines of: A filesystem image of a major version of FreeBSD gets union-mounted with the contents of an AppDir/AppImage, and can be its only allowed dependency. Then the whole thing gets executed as a jail. We want to achieve a) one app = one file/folder, b) multiple app versions in parallel, c) embrace much as possible the existing pkg infrastructure by building only a light layer around it for "app compartmentailzation"
  • port install - it's FreeBSD after all.
  • Linux AppImages - May be useful for applications that have not been ported to FreeBSD yet.

Application Suites

Libre Graphics Suite

Complete application suites (additional ISO)

https://github.com/AppImage/AppImageKit/wiki/Libre-Graphics-Suite

  • Scribus
  • Inkscape (despite Gtk)
  • Krita
  • Possibly Gimp (despite Gtk; has overlap with Krita, do we still need it?)

Libre Video Suite

  • OBS
  • Kdenlive

Libre Office Suite

  • LibreOffice

3D Printing Suite

  • FreeCAD
  • Cura
  • Possibly PrusaSlicer

Development Suite

  • Qt Creator
  • Arduino IDE
  • Golang
  • LiteIDE

To be considered

https://www.deepin.org/en/developer-community/architectural-design/

Clone this wiki locally