-
Notifications
You must be signed in to change notification settings - Fork 57
Components
probonopd edited this page Oct 3, 2020
·
31 revisions
This is a work-in progress description of which components could be used to put together the hello system.
- 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?
- 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)
- 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)
- sddm - Qt based.
- 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.
- compton - Drop shadows. Possible alternatives: kwin_x11, Compiz
- https://github.com/probonopd/filer/ - Very lightweight. Opinionated fork of PCManFM supporting AppDir. Can render the desktop, too. Current issues: Dependency on glib through libfm, limited Drag and Drop so far. Possible alternatives: lumina-fm (minimal, no glib dependency), https://github.com/probonopd/dfilemanager (more powerful, but does not build on FreeBSD yet)
-
https://github.com/probonopd/panda-statusbar - Almost pure Qt solution similar to the KDE appmenu Plasmoid but as a standalone application. Needs https://github.com/probonopd/panda-qt5-plugin or another Qt plugin that supports
_KDE_NET_WM_APPMENU_SERVICE_NAME
and_KDE_NET_WM_APPMENU_OBJECT_PATH
. Additionally needs https://github.com/probonopd/dde-globalmenu-service/tree/fix-xcb for Gtk applications. 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).
- https://github.com/probonopd/cyber-dock - Almost pure Qt/Qml solution. Latte Dock performance not good in FreeBSD. Deepin's dock (probably depends on dde dependencies)?
- Qt version of Drill to be written? - Possible alternatives: Drill (would look non-native since not written in Qt)
- Chromium or Falkon
- 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
- UI font to be decided. Candidates: URW Nimbus Sans (not L) from e.g., https://github.com/ArtifexSoftware/urw-base35-fonts/ (similar to Helvetica);
pkg install google-fonts
- 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.
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?)
- OBS
- Kdenlive
- LibreOffice
- FreeCAD
- Cura
- Possibly PrusaSlicer
- Qt Creator
- Arduino IDE
- Golang
- LiteIDE
https://www.deepin.org/en/developer-community/architectural-design/