<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by probono on Medium]]></title>
        <description><![CDATA[Stories by probono on Medium]]></description>
        <link>https://medium.com/@probonopd?source=rss-60cd994adfbf------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*MzHumYMu-Gp7l0aZ.jpg</url>
            <title>Stories by probono on Medium</title>
            <link>https://medium.com/@probonopd?source=rss-60cd994adfbf------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 12 Aug 2026 22:31:38 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@probonopd/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Running #Cosmic by @system76 for the first time: UX first impressions]]></title>
            <link>https://medium.com/@probonopd/running-cosmic-by-system76-for-the-first-time-ux-first-impressions-ec1e1a0e885e?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/ec1e1a0e885e</guid>
            <category><![CDATA[linuxusability]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[system76]]></category>
            <category><![CDATA[usability]]></category>
            <category><![CDATA[cosmic]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Tue, 13 Aug 2024 18:06:33 GMT</pubDate>
            <atom:updated>2024-08-28T18:03:02.401Z</atom:updated>
            <content:encoded><![CDATA[<p>Running <a href="https://twitter.com/hashtag/Cosmic?src=hashtag_click">#Cosmic</a> by <a href="https://twitter.com/system76">@system76</a> for the first time. Sharing first impressions here. As someone who cares about usability a lot, I am very interested in seeing how Cosmic looks, and more importantly, works.</p><h3>UX first impressions</h3><h4>Welcome screen</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*gNP_cFd6ArDw13kU" /><figcaption>This is the first screen you see</figcaption></figure><p>This is the first screen you see. Like that there is a proper Dock. Like the wallpaper. Don’t like the baby blue color. The radius of the Dock is way, way too large. Destroys the first impression.</p><p>The <a href="https://twitter.com/hashtag/Cosmic?src=hashtag_click">c</a>osmic installer window barely fits on a 1366x768 screen. Wonder what happens on 800x600.</p><h4>Dark mode by default, shudder</h4><p>First thing I will change is disable the dark mode. We are not in the early 80s anymore. WYSIWYG gave us black type on white backgrounds.</p><p>At least it is simple enough to switch to Light Mode, which should be the default.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/0*45gwSQtfubi_YJsf" /><figcaption>At least it is simple enough to switch to Light Mode, which should be the default</figcaption></figure><h4>Proper typeface, yay!</h4><p>I like that unlike many Linux distributions, <a href="https://twitter.com/hashtag/Cosmic?src=hashtag_click">#Cosmic</a> uses a proper typeface throughout the system (<a href="https://en.wikipedia.org/wiki/Fira_(typeface)">Fira</a>), designed by <a href="https://en.wikipedia.org/wiki/Erik_Spiekermann">Erik Spiekermann</a> et al.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*JOoh7Aa6v53ORH0q.jpg" /><figcaption>Fira Sans, designed by <a href="https://en.wikipedia.org/wiki/Erik_Spiekermann">Erik Spiekermann</a> et al.</figcaption></figure><h4>Fix for the ridiculous radii</h4><p>With “Slightly round” the radii look correct. It definitely should be the default. Looks way more polished like this.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/0*Y_aDNkA0SQs3Ucs8" /><figcaption>With “Slightly round” the radii look correct</figcaption></figure><h4>Performance?</h4><p>It has been claimed that thanks to its exclusive use of Wayland, Cosmic would be “snappy”. However, Cosmic doesn’t feel very responsive on my lowly Acer TravelMate B117-M. For comparison, XFCE on Xorg definitely feels way snappier on the same hardware. In addition to that, there is a lack of immediate feedback: For example, when you launch an application via the Dock there is no visual feedback until the launched application is fully loaded and shows its first window.</p><h4>Proper menus, good!</h4><p>I like that there are proper menus (not just those dreaded hamburger icons) in Cosmic. And most (though not all) windows have icons to minimize and maximize.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/977/0*5BEurf1T9x5TIoBq" /><figcaption>Proper menus in applications</figcaption></figure><h4>Buttons in dialog boxes, light and shadows</h4><p>Good use of colors in dialog boxes. Buttons mostly positioned in sensible places. But that “Cancel” needs to be a button, not just a clickable word.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/0*GxVguQNZZ-egz5vf" /><figcaption>Good use of colors in dialog boxes. But “Cancel” needs to be a button</figcaption></figure><h4>Keyboard settings do not get applied to Live system</h4><p>The keyboard setting I made as part of the Welcome dialog doesn’t seem to have affected the keyboard setting of the running Live system. Why is the user even asked if the choice is then discarded when you choose to run Live mode?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*yaP0chigFbXPfmDj" /><figcaption>Keyboard language set in the Welcome assistant did not take effect in the Live system</figcaption></figure><h4>File manager does not have a spatial mode (yet?)</h4><p>It would be nice if icons could be freely positioned at arbitrary coordinate locations in Cosmic (think <a href="https://en.wikipedia.org/wiki/Spatial_file_manager">spatial file manager</a>).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/0*xTHOEDDUTclk4qZ5" /><figcaption>Icons cannot be freely positioned at arbitrary coordinate locations</figcaption></figure><h4>Strange window close controls</h4><p>I like how Cosmic shows the git commit in the About screen, but why “Close &gt;” instead of the usual close button provided by window decorations? Consistency rules. (And it needs to be “x”, not “&gt;” anyway.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/0*yBYHmikS1JrToBFA" /><figcaption>Why “Close &gt;” instead of the usual close button provided by window decorations?</figcaption></figure><h4>Wasteful use of screen real estate</h4><p>The application launcher screen takes up way too much space. Especially when there is not much in it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*AmTIW4guvoPSOZYN" /><figcaption>This takes up way too much space</figcaption></figure><h4>Desktop metaphor 101</h4><p>The Trash is not a “folder”. And if something is empty, there is no need to put an icon in there. Just show an empty window. In fact, icons in file managers represent objects. But if there is no object, then showing a folder icon there nonetheless is outright misleading!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/0*H5FVFgNwi-XTo7HB" /><figcaption>Why put a folder icon into an empty folder? This is outright misleading. If it is empty, show it empty.</figcaption></figure><h4>Minor UX hiccups</h4><p>The navigation bar feels misplaced on the right-hand side of the window. It should span the entire width of the window, directly under the menu bar. In other words, it should also be over the sidebar.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/0*KV-0PrS3SYCeLDlu" /><figcaption>Navigation bar should span the entire width of the window</figcaption></figure><h4>Search box could be even better</h4><p>When you press the Meta (a.k.a. “Windows”) key, a nifty search box comes up at the top of the screen. It would be neat if you could search for commands from the menu of the frontmost application there, too. Would be a true productivity booster!</p><h4>Dock</h4><p>It’s great to see a proper Dock right out of the box, without having to press any keys or install any plugins (that tend to break all the time) first. Yay for giving us a proper dock as the default.</p><p>The third button from the left in the Dock (looking like a mosaic) in Cosmic seems to do the exact same thing as clicking on “Applications” in the global menu bar. It can be removed.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*k-ZuzJ6E8cYG78ua" /><figcaption>The third button from the left in the Dock is redundant</figcaption></figure><h4>Menus</h4><p>Oopsie Cosmic!</p><p>This is not how menus are supposed to work. They need to extend in length further than the window if needed. Conceptually, opened drop-down menus are not part of but float above the window. They should not adhere to the size of the window, but of the screen.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*n7qU5UdswJYgII-Z" /><figcaption>This is not how menus are supposed to work</figcaption></figure><h4>On/off controls</h4><p>“Checked” icons would be so much better than these weird controls in <a href="https://twitter.com/hashtag/Cosmic?src=hashtag_click">C</a>osmic. With these, I never know whether something is off or on. Please give us <a href="https://tonsky.me/blog/checkbox/">proper checkboxes</a> (and in menus, proper “checked” icons).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/407/0*WtKeLn_wYb7ncyID" /><figcaption>Please give us proper checkboxes instead</figcaption></figure><p>Especially if you are already using them in some other menus. Just use them consistently…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/367/0*HzqNQPw__edP1xXF" /><figcaption>Proper checkboxes are already useed in other menus</figcaption></figure><h4>How to minimize windows?</h4><p>Also, there is no obvious way to minimize windows via the Dock, effectively not giving me ANY way to minimize Firefox in Cosmic.</p><p>It seems to be totally random. Where is the minimize button here?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*by6xp6V92jAANO0O" /><figcaption>Where is the minimize button here?</figcaption></figure><p>Apparently this is what you get when you allow <a href="https://en.wikipedia.org/wiki/Client-side_decoration">client-side decorations</a>. No consistency.</p><p>Cosmic should enforce server-side decorations on all windows, so that we would at least have the same set of buttons on all windows. How do you minimize the Fonts window?</p><h4>Workspaces</h4><p>Is there a way to get rid of the “Workspaces” menu entry in the upper-left corner of the Cosmic screen? I never use this feature.</p><h4>Tiled windows</h4><p>Trying “Tiled” for a second. Ah, I guess this is how Windows 1.0 must have felt before it was allowed to have overlapping windows! I prefer “Floating” (a.k.a. overlapping) windows a lot, be it in Cosmic or elsewhere.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*nLyVaJyKBBvMB_pE" /><figcaption>Tiled, a.k.a. non-overlapping windows. Like in the very early versions of Microsoft Windows</figcaption></figure><h3>Summary</h3><p>With that, I’ll end my “first impressions”.</p><p>There is a lot to like here:</p><p>No Gnome. That’s already a big improvement.</p><p>Design better than Gnome. But still some Gnome-isms, like date and time at the center of the screen. That space could be so much better used by a gloabal menu bar for “File, Edit,…”. Like it used to be since the early 1980s.</p><p>A Dock right out of the box, not relying on fragile extensions.</p><p>Proper typeface by default.</p><p>Proper window decorations, at least on <em>some </em>windows.</p><p>And then, some missing “desktop-y” features such as persisting window locations, sizes, and icon positions. Maybe a “spatial mode” will come later?</p><p>And some features I personally won’t use: Workspaces and tiled, a.k.a. non-overlapping windows.</p><p>Going forward, I hope the developers will orient their design even less around Gnome and more around the successful desktop metaphors that were developed in the 1980s. Especially I hope the developers will have a deep look at the <a href="https://dl.acm.org/doi/book/10.5555/573097">Macintosh human interface guidelines: | Guide books | ACM Digital Library</a> and adopt the “feel” of a true desktop system. Using Haiku for a while would also definitely not hurt, to see how a truly “desktop-y” system works (especially <a href="https://medium.com/@probonopd/my-sixth-day-with-haiku-under-the-hood-of-resources-icons-and-packages-abec8d0e4ec6">under the hood</a>) and feels.</p><p>I think that Cosmic is important. If executed properly, it can finally give us a proper desktop for Linux again, after all that mobile-UX that made Gnome after version 2 un-desktop-y and, in my opinion, unusable.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ec1e1a0e885e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Remember Direct Manipulation: A Call to Action for Intuitive Design]]></title>
            <link>https://medium.com/@probonopd/remember-direct-manipulation-a-call-to-action-for-intuitive-design-3061f654e508?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/3061f654e508</guid>
            <category><![CDATA[appimage]]></category>
            <category><![CDATA[file-management]]></category>
            <category><![CDATA[gnome]]></category>
            <category><![CDATA[flatpak]]></category>
            <category><![CDATA[linuxusability]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Tue, 06 Aug 2024 14:37:30 GMT</pubDate>
            <atom:updated>2024-08-06T14:51:51.236Z</atom:updated>
            <content:encoded><![CDATA[<p>The way we manage files and launch applications has undergone significant transformation over the years, but unfortunately, this evolution has often been for the worse. What was once a straightforward and intuitive process has become convoluted and confusing, leaving users frustrated. The shift from simple file manager interactions to complex systems involving package managers, launchers, and menus has degraded the user experience. It is time to rethink this “modern” approach and return to a more intuitive paradigm that empowers users through Direct Manipulation.</p><h4><strong>The Simplicity of Early Graphical Desktop Computers</strong></h4><p>In the early days of personal computing, launching applications was simple. Operating systems on the Apple Lisa and the classic Macintosh allowed users to double-click application icons directly in the file manager. This method was intuitive and required no additional steps — users could see all available applications in one place and launch them with a simple click. This directness fostered a sense of control and familiarity, making it easy for users to find and run the software they needed.</p><h4><strong>Direct Manipulation</strong></h4><p>“<a href="https://en.wikipedia.org/wiki/Direct_manipulation_interface">Direct Manipulation</a>” in computing, pioneered by <a href="https://en.wikipedia.org/wiki/Ben_Shneiderman">Ben Shneiderman</a>, refers to a user interface design paradigm that allows users to interact with digital objects in a way that resembles physical manipulation. This approach emphasizes intuitive interaction, where users can directly manipulate graphical representations of objects on the screen.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FCWgPe8VjTsM%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DCWgPe8VjTsM&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FCWgPe8VjTsM%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/4a8494b4f9f5c19d2f13320d19b5f272/href">https://medium.com/media/4a8494b4f9f5c19d2f13320d19b5f272/href</a></iframe><p>Direct Manipulation engages users and makes them feel in control of their environment. Being able to click on an application and drag it around on the desktop (or to another disk, or to the Trash) is more efficient than using a package manager application, and is, well, satisfying.</p><h4><strong>Spatial Orientation</strong></h4><p>Spatial file managers, like the <a href="https://arstechnica.com/gadgets/2003/04/finder/">Spatial Finder</a> described by John Siracusa, offer a “natural” approach to navigating the file system by emulating physical spaces in the digital realm. Unlike navigational file managers that use a single window to represent multiple directories, spatial file managers open a new window for each folder, maintaining the size, position, and view settings for each window and for each object in it. This creates a strong sense of location and orientation, making it easier for users to remember where files are and how to get to them. By preserving the state of each window and its contents, spatial file managers provide a consistent and intuitive experience that closely mimics handling physical files and folders, enhancing user control and reducing cognitive load.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*3ltClkQ19D_DfkQF" /><figcaption>“Spatial”, a conceptual file manager under development, shown running on Windows. Each folder opens in its own window, each window persists its position and size, and the position of the objects inside it.</figcaption></figure><p>Unfortunately, there is not one single spatial file manager for Windows or Linux that is in widespread use, and the modern Finder on the Mac comes configured in a way that makes it act more like a browser than a spatial file manager by default. File managers on Linux are worst; they don’t even show the application icon on application binaries, unlike Windows or Classic Mac OS. They don’t persist window locations nor the position of the icons inside windows. As a result, working with the filesystem becomes monotonous, unnatural, and cumbersome quickly.</p><h4><strong>The Rise of Complexity through Layers of Abstraction</strong></h4><p>With the introduction of taskbars, start menus, and launchers, for example in Microsoft Windows, the user experience took a turn for the worse. These features offered some organization but introduced layers of abstraction that complicated the user experience. Modern operating systems, particularly various Linux desktop environments based on XDG Specifications, have taken this trend to an absurd level. Dedicated application launchers, such as the “Activities Overview” in GNOME, provide a centralized location for accessing applications, but at what cost? Users don’t know where applications live, where they are coming from, or how to copy them to a backup medium.</p><h4><strong>Mobile Devices</strong></h4><p>The rise of mobile devices has revolutionized the way we interact with technology, but it has also led to a significant departure from traditional computing paradigms. Mobile operating systems, such as Android and iOS, handle file systems in a way that abstracts away the file system hierarchy, making it difficult for users to directly manipulate files and folders. This lack of Direct Manipulation has significant implications for user control, transparency, and overall productivity. Users may not know where their files are being saved or how they are organized, leading to confusion and disorganization.</p><p>This shift has especially impacted younger users, particularly those who have grown on smartphones rather than desktop computers. Increasingly, the concept of navigating the filesystem is utterly foreign to such users. They are accustomed to app grids and touch interfaces where applications are abstracted away from the underlying file structure, keeping them uninformed and disengaged from their devices. The simplicity of launching applications by double-clicking an icon has been replaced by a paradigm that obscures where applications reside and how they function.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FFtso4oZC1rs%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DFtso4oZC1rs&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FFtso4oZC1rs%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/af38876d5cb0e932e801ecc78d461a5a/href">https://medium.com/media/af38876d5cb0e932e801ecc78d461a5a/href</a></iframe><p>Mobile operating systems often make offline use harder than necessary due to their lack of Direct Manipulation, as users are not always aware of where their files and applications are stored and how to access them without an internet connection. How do you keep multiple versions of the same application in parallel? How do you back up applications for eternity? Heck, how do you even quit an application completely?</p><h4><strong>Loss of Flexibility in Modern Application Management</strong></h4><p>The “modern” approach to application management has led to a loss of flexibility. In the past, it was simple to have multiple versions of the same application and run them from different filesystem locations. Users could experiment, test, and switch between different versions of software without the constraints imposed by installation processes. Now, the “modern” paradigm requires everything to be “installed,” which is inflexible and stifling. Users are forced into predefined directories, losing the freedom to organize their software in a way that makes sense to them. And many users have grown entirely dependent on centralistic app stores, managed by big tech companies acting as gatekeepers to their devices.</p><h4><strong>Flatpak and OSTree: The Opposite of Direct Manipulation</strong></h4><p>The trend of abstraction and complexity in application launching has been further exacerbated by the rise of Flatpak, a package management system designed to centralize the deployment of applications across different Linux distributions. While Flatpak’s goals may be noble, its implementation has had a negative impact on user control and Direct Manipulation. It is not integrated into the file manager, but is essentially a package manager with a GUI application bolted on top of it.</p><p>One of the most egregious aspects of Flatpak is its use of OSTree, which creates a layer of abstraction between the user and the file system, making it difficult for users to understand and interact with the underlying system. OSTree’s complicated storage model, characterized by cryptic paths and a complex directory structure, makes Direct Manipulation in the file manager nearly impossible.</p><h4><strong>AppImage: One app = one file</strong></h4><p>Contrast this with <a href="https://appimage.org/">AppImage</a> (conceived by the author), a format for distributing applications on Linux (and on other operating systems that can run Linux applications, such as FreeBSD and Windows with WSL). Essentially a self-mounting disk image that runs the application contained in it, it is optimized for Direct Manipulation, allowing users to interact with applications in a straightforward and intuitive way. Unlike traditional installation methods that require complex package management systems, AppImages encapsulate all necessary resources an application needs within a single file. This means that users can download an AppImage, make it executable, and run it without navigating through intricate installation processes or dependency resolutions.</p><p>The self-contained nature of AppImage files facilitates easy Direct Manipulation; users can move, copy, or delete these files just like any other file on their system. This flexibility allows for quick testing of different application versions or configurations without the risk of affecting the underlying system or other installed software.</p><h4><strong>Outlook</strong></h4><p>It is time to rethink the modern approach to application management and demand desktop environments that prioritize Direct Manipulation. The way we get and launch applications has taken a wrong turn and removed control from the user. While app stores and launchers may offer some superficial convenience, they come at the cost of lessened user empowerment and reduced direct access. We need systems that allow users to interact with their applications and files in a straightforward, intuitive manner. This is a call to learn from the past and incorporate its simplicity and flexibility into modern design.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*Lf86cxw20fBAErPH" /><figcaption><a href="https://hellosystem.github.io/docs/">helloSystem</a>, a desktop system based on FreeBSD</figcaption></figure><p>With projects like <a href="https://hellosystem.github.io/">helloSystem </a>(and its helloDesktop desktop environment), <a href="https://appimage.org/">AppImage</a> for Linux, and experiments like the conceptual file manager tentatively called “Spatial” shown above, I am trying to preserve the best concepts from early graphical desktop computing to today’s personal computers.</p><h4>References</h4><p>Shneiderman, B. 1983. <em>Direct Manipulation: A Step Beyond Programming Languages</em>. Computer <strong>16 </strong>(8), pp. 57–69.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3061f654e508" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[“KDE 6” has landed —  worth the wait?]]></title>
            <link>https://medium.com/@probonopd/kde-6-has-landed-worth-the-wait-7db2e270ab96?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/7db2e270ab96</guid>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Fri, 01 Mar 2024 18:32:24 GMT</pubDate>
            <atom:updated>2024-03-01T18:32:24.092Z</atom:updated>
            <content:encoded><![CDATA[<h3>“KDE 6” has landed — worth the wait?</h3><p>First impressions count, something many vividly remember from the KDE 4 days. How is the K Desktop Environment performing out of the box this time?</p><p>A bit about my background: Been using Macs, Windows, Linux, BSD, and KDE during various periods of time, most of the time concurrently. Passionate in all things user interface design, my gold standard against which I <a href="https://medium.com/@probonopd/bring-back-the-ease-of-80s-and-90s-personal-computing-393738c5e2a1">measure desktop user interfaces</a> are the Apple Human Interface Guidelines (HIG) from the 1990s , which I still consider unmatched by any other desktop operating system (some details below). I wish every desktop user interface designer would use <a href="https://en.wikipedia.org/wiki/System_7">System 7</a> for a month.</p><p>Reality is that probably most Linux power users don’t live in a Linux world 100% of the time, at least when they also work in a (large) company, have family and friends, etc. For this reason, I think we should think desktop environments in a “cross platform” way for users. So that users who are constantly moving back and forth between Windows, the Mac, and Linux don’t have to constantly apply different mental concepts. For example if all other systems use double-click, then double-click it is.</p><h3>From the outside</h3><p>Saw that a new “KDE” version is out. Yes, I know — <em>KDE </em>is actually the name of the <em>community</em>, not the product. But everyone I know calls KDE, well, KDE. Speaking of the community, my impression is that it is a very friendly and welcoming community in which user voices are actually heard, even if they are different from the opinions of the core developers. I find this a very welcome change from some other open source desktop projects. Point in case: Double-click is the default again, just like users (myself included) want. When they say “KDE is not a big company; it’s an international volunteer community, and its software is made by people like you donating their time and passion” that’s not just empty marketing speak. It really shows, and it does make a difference!</p><h4>Live ISO</h4><p>Immediately headed over to <a href="https://neon.kde.org/download">https://neon.kde.org/download</a>. I really like that they provide an official Live ISO with a reference distribution that contains the KDE software in exactly the way the KDE team wants it to be delivered. This way, I can be sure to see the original configuration as intended by the designers and developers.</p><p>Why the ISO doesn’t have the name “6” in it puzzles me, though. I keep lots and lots of Live ISOs over the time, how am I supposed to know a few years down the road that <em>neon-user-20240229–0716.iso</em> is the one with “KDE 6.0&quot;?</p><h4>Size</h4><p>KDE neon User Edition comes in at 2.7 GB. I still fondly remember the times when Kubuntu fit on a 800 MB CD-ROM. Since then, size has more than tripled — why? It may be feature creep and the sheer size of KDE, it might be a large dependency trees, or a bloated base operating system. Most likely, a combination of all three. This is not a KDE specific issue, though. All Ubuntu flavors were shipping on CD-ROM once. I think that was a good forcing mechanism for developers to think harder about what is actually needed, and how to do it efficiently.</p><h3>First boot experience</h3><p>You can’t replicate first impressions, they say. For me, the total end user experience is what counts. That’s why I like to write down my first impressions whenever I switch something on for the first time. So here we go with “KDE 6” a.k.a. <em>neon-user-20240229–0716.iso.</em></p><h4>Plasma</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/848/1*yRtzNPrSqB5kk1jhK3_nhA.png" /><figcaption>“Plasma” reminds me of the dark times in KDE’s past</figcaption></figure><p>Maybe it’s just me, but every time I read “Plasma” I am reminded of the dreadful switch from the excellent KDE 3 to the strange KDE 4, where the desktop was replaced with strange desktop widgets called “Plasmoids”, the assumption was that users would be using projection tables rather than a screen and mouse, and would be interested in rotating everything in strange angles. No one I know is using their computer this way. From that time onward, I keep thinking “KDE would be really great without this Plasma thing”. Nowadays they are using “KDE Plasma” as the name fo the desktop environment as a whole, the thing most people used to call just “KDE”. Maybe “KDE Desktop Environment” would be the most fitting name. Oh well, the “DE” in “KDE” already stands for “Desktop Environment”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/952/1*xz9HGiuhzgnoUP4SYZCsfw.png" /><figcaption>Welcome Center</figcaption></figure><h4>Simple by default</h4><p>The welcome center claims that “Plasma is designed to be simple and usable out of the box. Things are where you’d expect, and there is generally no need to configure anything before you can be comfortable and productive”. I applaud this philosophy very much! This is really welcome, especially when compared to other desktop environments that seem to take pride in putting things into unexpected places (e.g., hiding the Dock behind an icon, etc.).</p><p>However, the statement is pretty much true for switchers coming from Windows: Menus are inside windows (rather than at the top of the screen where switchers from the Mac would expect them), windows are closed with Alt-F4 (rather than with Command-W), you need to use the Ctrl key (rather than Command), the default button in windows is on the left hand side (rather on the right), to continue searching you have to press F5 (rather than Command-G), the buttons in the window title bar are on the right hand side (rather than on the left), and so on. So if you are coming from the Mac, then this doesn’t equal mean that “Things are where you’d expect”. It would be super awesome if the “Simple by Default” screen in Welcome Center would ask whether the user is coming from Windows or from the Mac, and configuring things in line with user expectations.</p><p>Welcome Center could ask whether the user is coming from Windows or the Mac, in order to make sure that “Things are where you’d expect”. I think this would be in line with the KDE philosophy and would increase usability for switchers a lot.</p><h4>Powerful when needed</h4><p>Welcome Center points to <strong>Vaults</strong>, where you can “store sensitive files securely”; <strong>Activities</strong>, to “separate work, school, or home tasks”, <strong>KDE Connect</strong> to “connect your phone and your computer”, <strong>KRunner</strong> to “search for anything”, and <strong>Get New Stuff</strong> to extend the system with add-ons.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/856/1*7NfHwp306s5ODToi9KvXXA.png" /><figcaption>KRunner is not working as advertised, probably a bug that is quickly fixed</figcaption></figure><p>I am one of those users who are typically impatient and don’t read introduction texts in assistants like the Welcome Center. We are missing out, as this one really contains some gems, like being able to launch KRunner by pressing Alt-Space. Sounds very cool! If it actually worked. Instead I get an error message. Oh well. (As a switcher coming from the Mac, I’d look for some kind of “magnifying glass” icon in the menu bar to find this kind of feature.)</p><p>As part of the Welcome Center, various applications are showcased. The selection of example applications is a testament to the fact that the KDE community puts the user above politics: It showcases powerful, cross-platform, real-world applications, no matter where they are coming from or which toolkit they are written in. Contrast this with some other desktop environments which seem to pretend that every application should be written specifically for a certain desktop environment.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/637/1*CsV2iB6x3WuX8nG_RaH7dg.png" /><figcaption>A selection of powerful cross-platform applications is shown</figcaption></figure><p>The Welcome Center asks users to share anonymous data to improve KDE software. They give reasons, show their privacy policy, and let users opt-into the data collection, describing <em>exactly </em>what is being shared. This is how you do it!</p><h4>It’s improving</h4><p><strong>KDE developers are listening</strong> to their audience, and are willing to correct design decisions when they prove to be unpopular with users. This is a big factor why I think KDE is way ahead of some other desktop environments.</p><p>Finally, clicking on an item on the desktop or in the file manager selects the item, as on every other desktop operating system. This is a “proper desktop” and not a phone or tablet, after all, so great to see that finally we have <strong>double-click to open</strong> again, just like we expect from a desktop. Great!</p><p><strong>Alt-Tab works as expected</strong> and the annoying Command-Tab (something about workspaces, a concept I never started to embrace) is gone by default (who wants it can get it back easily). Good!</p><p><strong>Icons on the desktop</strong> work more in line with expectations than in the past. No more confusing plus and minus buttons on icons (I still haven’t figured out what these are for, on a mouse-operated system). Unfortunately, the file manager behaves inconsistently vs. the desktop. In the file manager, we still have those extraneous icons:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/82/1*dTWyRVqXJnOhzHh90FckzA.png" /><figcaption>Extraneuous “+” icon — what is it even for?</figcaption></figure><p>I can only suspect that this is a leftover from the time when you couldn’t select an icon by just clicking on it.</p><h4><strong><em>Cosmetic idiosyncrasies</em></strong></h4><p>In some areas KDE has been defaulting to strange defaults I find quite annoying but could be fixed very easily:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/80/1*PyENTnjanMYV6XXH8MrgMw.png" /></figure><ul><li><strong>Shape of the cursor</strong>. This shape just doesn’t look right. It looks like a christmas tree about to fall over, not like an arrow as it should. Compare it to the shape of cursor in virtually every other operating system.</li><li><strong>Jumping icon</strong> in the cursor when an application is launched. Personally I find this very annoying and distracting. The dock icon should be animated by default, not the cursor.</li><li><strong>Inconsistent, too large text in some places,</strong> e.g., the time in the dock should be the same size as the rest of the user interface, especially the same size as the date. Headlines in Kirigami (a KDE GUI framework on top of Qml) should not be larger than the rest of the user interface, and should especially not be larger than the text in the window title bar.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/856/1*0rglylrq3y-OSCf7RMH4Uw.png" /><figcaption>The text “Status and Notifications” is too large, especially when compared to “Home — Dolphin”</figcaption></figure><h4>Some dialogs are unnecessary and too busy</h4><p>When I insert a storage device, I’d expect its icon(s) to show up on the desktop. After all, this is how the desktop has been working since at least 1984. Instead, when I plug in a USB stick, KDE shows a “Disks &amp; Devices” popup with no less than 11 clickable icons in it:</p><ol><li>A “&lt;” (back) icon</li><li>A “hamburger” icon (my least favorite of all icons because it feels like “random unsorted mess” is in there)</li><li>An arrow icon next to it (as if the hamburger icon alone wasn’t enough — but the two confusingly do the same thing)</li><li>A settings icon</li><li>A pin icon</li><li>A CD-ROM icon (for the Live ISO I am running) — I have not inserted that one right now</li><li>An Eject icon for the CD-ROM (I just attached a USB stick, why should I want to eject the CD-ROM now?)</li><li>An arrow icon with some random applications inside it</li><li>A USB stick icon for the USB stick that I just attached</li><li>A folder icon</li><li>Another arrow icon</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/856/1*U1i8MtNhVoWZ1tf0XD63CQ.png" /><figcaption>“Disks &amp; Devices” popup with no less than 11 clickable icons in it, some with technical jargon like “Mount”</figcaption></figure><p><em>Eleven</em> icons. And an entirely unnecessary popup.</p><p>I point this out because this is actually a big thing. KDE feels unnecessarily overcomplicated in places. Its developers probably want to make things easy, but just adding more and more stuff actually achieves the opposite. “Simple by default, powerful when needed” — make the simple thing the default. Let power users change it if so desired.</p><p>It could just “do the right thing” and show the icon for the device on the desktop, like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/639/1*FsSJZBI9-Lpn_-9XNjMV1A.png" /><figcaption>Macintosh System 7.5. Each volume has one icon on the desktop. The user does not have to think about “mounting”, it just feels very natural</figcaption></figure><p>No popups. One icon for each storage volume. On the desktop. Simple by default!</p><h4>One application menu is enough</h4><p>Note that as a switcher from the Mac, I have configured my desktop to show the global menu bar at the top of the screen. Why does the file manager have a “hamburger” icon which yet another menu then? And even worse, why does the “hamburger” menu have another (dotted) “hamburger” which seems to duplicate the exact same menu that we already have in the menu bar at the top of the screen?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/856/1*pxeqLN5MYlY-cwGS3n4vcQ.png" /><figcaption>Extraneous “hamburger” menu and even more extraneuous “More” dotted “hamburger” menu inside it</figcaption></figure><p>It’s stuff like this that may seem like unimportant details, but actually determines how polished the product appears overall. Could be more simple by default.</p><h4>Form over function?</h4><p>In some areas, a lot of complexity has been introduced presumably to make things look “nice” (which of course is subjective), resulting in unnecessary amounts of code and visual inconsistency. Check the menu bar at the top of the screen, and the Dock at the bottom of the screen:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/856/1*fWYC5UhbIsoyo5BF6Xsxpw.png" /><figcaption>Menu bar and Dock are wierdly spaced from the corners of the screen</figcaption></figure><p>As soon as you maximize a window, things become normal again:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/856/1*Nm_OSanOg393FhfSJuPFuQ.png" /><figcaption>Menu bar and Dock are properly aligned at the edge of the screen, where users expect them</figcaption></figure><p>This is not only causing unnecessary code complexity (probably took the developers a lot of tie), but unfortunately also creates the perception of “wasted space” and visual inconsistency. Can we please have a consistent user experience where Menu bar and Dock are aligned with the edge of the screen all the way, where users expect them, <em>all the time</em>?</p><p>When showing just the desktop (without an application open other than the desktop itself), the global menu is empty. It should be populated with roughly the same menus as when a file manager window is open, since the desktop has the same functionality as the file manager but for ~/Desktop.</p><h3>Key “desktop-y” features still missing</h3><p>There are some aspects in which most open source desktop environments are still trailing beyond commercial desktops from the 80s. I’ve been wondering for a long time why this is. To me these omissions are really puzzling. These are not unimportant details in my opinion; having them would really make a big difference for open source desktops.</p><p>Some prominent examples:</p><ul><li><strong>Persistent icon position in file manager windows:</strong> While Dolphin remembers window size, position, and most properties, it doesn’t let us freely position icons in the window, and persist their location (also between different machines). Some Mac users meticulously arrange icons in icon view in a way that makes sense (e.g., README file centered on top, application icon below it, everything else down below).</li><li><strong>Icons on binaries: </strong>Opening /usr/local/bin, all executables are missing their icons. On systems like Windows and Classic Mac (and on Haiku OS), icons are <a href="https://medium.com/@probonopd/my-sixth-day-with-haiku-under-the-hood-of-resources-icons-and-packages-abec8d0e4ec6#8601">resources built into the application executables</a> themselves (rather than separate files that must be moved around and associated with clumsy XDG <em>.desktop</em> files), and hence can always be shown in the file manager (instead of generic application icons).</li><li><strong>Custom icons on items in the file manager: </strong>A super simple way to paste custom icons into the file manager for documents and folders (without having to edit any text files).</li><li><strong>Support for application bundles</strong>: Application bundles (such as .app or .AppDir) are really useful, because they allow applications to be used just like documents, without the need to install them first. It would be nice if they were embraced more universally, e.g., in the Dolphin file manager.</li><li><strong>File creator codes:</strong> If I create one .txt file in VSCode and another one in Kate, chances are that I <em>always </em>want to open the one file in VSCode and the other one in Kate. On the classic Mac, the default is that the application that has created a file gets to open it when it is double-clicked. In KDE, whatever happens to be the default for a certain file type will be launched, no matter which application actually created any particular file. Worse, it seems not even <em>possible</em> to manually define which application is going to open a <em>specific </em>file (only <em>all </em>files of the same type, which doesn’t really cut it).</li></ul><p>Open source desktops have largely ignored the need for features like these, making them (in my opinion) still not on par with what commercial systems already had 40 years ago.</p><p>How hard can it be?</p><p>Will the open source desktop <em>ever </em>catch up?</p><h3>Configurability</h3><p>A strong point of KDE is that you can configure almost everything to your liking. It can become a weak point if it gets overwhelming. There are some changes I always make immediately when launching KDE, and I wish could either be made the default or could at least be set in “I am a switcher from the Mac” mode.</p><ul><li>Right-click on the Start icon, Show Alternatives…, <strong>Application Menu</strong>. A big “thank you” to the KDE developers for providing a relatively easy way to get a global menu bar working at the top of the screen!</li><li>Right-click on the desktop, Enter Edit Mode, Add Panel, <strong>Application Menu Bar</strong>.</li><li>Right-click on the desktop, Icons, Align, <strong>Right.</strong></li><li>Right-click on the desktop, Icons, Arrange, <strong>Top to Bottom.</strong></li><li>Right-click on the desktop, Configure Desktop and Wallpaper…, Plain Color, some <strong>unobtrusive solid color</strong> like a muted blue. (What is important on a desktop are the icons of the items on the desktop, not the background picture.)</li><li>Right-click on the global menu bar, Edit Mode, Add Spacer. Then<strong> move tray icons to right-hand side of the global menu bar</strong>.</li><li>Start, Settings, System Settings. Unfortunately it does nothing at all, except show the ugly jumping icon cursor for a while. I would like to change: <strong>No icons in menus, no icons on buttons, default buttons blue and in the right-hand corner. Window close/minimize/maximize buttons at the left hand side of windows. Alt-W to close windows instead of Alt-F4 (and similar).</strong></li></ul><h3>Under the hood</h3><p>There are quite many changes under the hood of “KDE 6”,</p><h4>Qt 6</h4><p>Qt, the framework KDE software is built with, recently moved from Qt 5 to Qt 6. While this is a pain for all developers involved (and I hope that Qt won’t do major version jumps anymore anytime soon), it is only logical for KDE to eventually switch over to it. The timing seems right and Qt being Qt, I don’t expect mayor issues resulting from it, apart from the time it took the KDE developers to make it happen.</p><h4>Wayland</h4><p>This is the controversial one. Wayland is an incompatible alternative to the widely used X11 windowing system that we have been using since, well, basically forever. It breaks a lot of stuff by design, due to its nature of not being designed as an API compatible nor feature compatible drop-in replacement. Its developers are known for discussing even the most basic features (that have been working on X11, Windows, and the Mac forever) for an eternity (e.g., the ability for applications to set icons on windows, or the ability for applications to freely position their windows at pixel-precise locations on the screen — the list goes on and on).</p><p>Unfortunately, KDE is hopping into that bandwagon big time now, making Wayland the default. This means that a lot of existing software will be broken to various degrees. At least, users largely don’t notice major interruptions from the move to Wayland <em>as long as</em> they stay within the KDE ecosystem. Quite an achievement which must have cost KDE developers a lot of time and effort.</p><p>Does performance on Nvidia, screen sharing and screen capturing (with sound) work reliably though? Will have to test this on another day. In case it doesn’t, I’ll blame it on Wayland (the concept), not KDE (the software). After all, getting things to work at all under Wayland must have been a giant undertaking for the KDE project, just to get things (roughly) into a state no worse than before the switch. Imagine if all that developer time could have been spent on the missing &quot;desktop-y&quot; features...</p><h3>Summary</h3><p>Overall, I am optimistic about the future of KDE. The “dark times” of KDE 4 are really over, and some “controversial” decisions (like single-click to open) have been reversed. This shows that the project is driven by a community that actually cares about its users.</p><p>If I share some criticisms of “KDE 6”, it is not because I think that it is bad software. Quite to the contrary, it is in the hope that this kind of feedback is taken as constructive input by the developers, helping them to turn the K Desktop Environment into an even better place to be.</p><h4>Pros</h4><ul><li>Made by a welcoming and friendly volunteer community, not dominated by a big company</li><li>Live ISO available for download from <a href="https://neon.kde.org/download">https://neon.kde.org/download</a></li><li>KDE community listens to its users — double-click is the (sane) default again</li><li>“Simple by default, powerful when needed” philosophy “designed to be simple and usable out of the box. Things are where you’d expect”</li><li>Relatively easy to get a global menu bar working at the top of the screen</li><li>Users largely don’t notice major interruptions from the move to Qt 6</li><li>Users largely don’t notice major interruptions from the move to Wayland as long as they stay within the KDE ecosystem (even though Wayland breaks many things in incompatible ways) — with occasional exceptions (e.g., applications don’t show proper icons on all windows)</li></ul><h4>Cons</h4><ul><li>KDE neon size: 2.7 GB for the (compressed!) <em>neon-user-20240229–0716.iso </em>Live ISO</li><li>No 64-bit ARM version of the Live ISO yet</li><li>Made the immature Wayland the default rather than the proven X11, causing breakage in existing software</li><li>“Things are where you’d expect” not entirely true for Mac users</li><li>Some dialogs are unnecessary and too busy (e.g., what happens when you attach a USB stick)</li><li>Sometimes seems to put “form over function” (e.g., Menu bar and Dock not always aligned at the edge of the screen), causing unnecessary code complexity and visual inconsistency“</li><li>Fra still missing, e.g., persistent icon positions in window manager windows, icons embedded into binaries, custom icons in the file manager, application bundles, file creator codes, allowing to open certain files always with certain applications)</li></ul><h4>Ideas for (quick?) fixes</h4><ul><li>Put “KDE 6.0” in the name of the ISO</li><li>Welcome Center could ask whether the user is coming from Windows or the Mac, in order to make sure that “Things are where you’d expect”</li><li>Fix Alt-Command to show KRunner on the Live ISO. t shows an error</li><li>Fix System Settings on the Live ISO. It does not open</li><li>Fix cosmetic idiosyncrasies that could easily be fixed (e.g., shape of the cursor, jumping icon next to the cursor when launching applications, inconsistent, too large text in some places)</li><li>Remove “hamburger” menus from applications when global menu bar is present</li></ul><p><em>probono is passionate about desktop usability (see his </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-1-5fa0fb369b42"><em>series</em></a><em> on </em><a href="https://twitter.com/hashtag/LinuxUsability"><em>#LinuxUsability</em></a><em> (</em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-1-5fa0fb369b42"><em>part 1</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-2-d34b86fd9b79"><em>part 2</em></a><em>,</em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-3-780f127f5794"><em>part 3</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-4-13be6486b358"><em>part 4</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-5-d810a0d2f368"><em>part 5</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-6-1c03de7c00a9"><em>part 6</em></a><em>), has introduced the </em><a href="https://appimage.org/"><em>AppImage</em></a><em> format for distributing portable applications on Linux, has started the </em><a href="https://hellosystem.github.io/"><em>helloSystem </em></a><em>desktop operating system, and is a casual contributor to hundreds of open source projects.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7db2e270ab96" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Can we stay in full control of our personal computers and privacy please?]]></title>
            <link>https://medium.com/@probonopd/can-we-stay-in-full-control-of-our-personal-computers-and-privacy-please-18059a2beea6?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/18059a2beea6</guid>
            <category><![CDATA[pricacy]]></category>
            <category><![CDATA[macintosh]]></category>
            <category><![CDATA[operating-systems]]></category>
            <category><![CDATA[conrol]]></category>
            <category><![CDATA[apple]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Sun, 02 Jan 2022 20:08:17 GMT</pubDate>
            <atom:updated>2022-01-02T20:14:32.494Z</atom:updated>
            <content:encoded><![CDATA[<h3>Can we stay in full control of our personal computers and privacy?</h3><p>In a world in which computing is increasingly omnipresent, we are running the risk of losing control and privacy. If we like to stay in control, we should resist using App Stores, always-on computers, Apple/Microsoft/Google/Facebook/whatever IDs, two-way authentication using phone numbers, digital signatures, entitlements, notarizations and all the other crap coming under the disguise of “security” <strong>today</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/0*NHYNWZJgc6IETCY7.jpg" /><figcaption>Big Brother from 1984 Apple Macintosh Commercial. Ironically Apple is becoming Big Brother today</figcaption></figure><p>Looking back at the state of computing 25 years ago and comparing it to today, it is easy to see that not everything has improved.</p><p>Extrapolating from the past into the future it is not all that hard to see that things have the potential to go downhill rapidly, and that we have to do something against it.</p><h4>25 years ago</h4><p>You installed a piece of software like this:</p><ul><li>Turn on the computer</li><li>The computer does not know who you are. There are no usernames nor accounts</li><li>Insert floppy disk containing the application</li><li>Copy from floppy to hard disk with drag-and-drop — easy! No personal data, no sign-ups, no cookies, no phone home, no spying</li><li>What happens on your computer, stays on your computer</li><li>Switch off at any time</li><li>Secure by default (by not being connected to anything other than power)</li></ul><p>You were in full control. Could install older versions of anything at your discretion.</p><h4>Today</h4><p>It looks more like this:</p><ul><li>Wake the computer from sleep</li><li>It connects to the Internet before you are even seeing anything</li><li>You give it your fingerprint to unlock</li><li>It phones home to the operating system vendor</li><li>Enter your Apple ID to access the App Store — or else you can’t even download iMovie (which came with every Mac)</li><li>Purchase the application. It is automatically downloaded and installed, making sure the operating system vendor (and who knows who else) exactly knows who downloaded what to which machine</li><li>The computer checks <a href="https://a-m.medium.com/solved-this-copy-of-the-install-macos-high-sierra-app-application-is-damaged-4d7688b6f427">signatures</a>, <a href="https://developer.apple.com/documentation/bundleresources/entitlements">entitlements</a>, <a href="https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution">notarizations</a>, and <a href="https://support.apple.com/de-de/guide/security/sec59b0b31ff/web">other stuff you don’t understand</a> to make sure that<em> someone</em> (not you) controls what does and doesn’t run on your machine</li><li>Put the computer to sleep</li></ul><p>You are no longer in full control. Operating systems and applications are digitally signed, and the signatures have expiry dates. You cannot downgrade at your discretion. Vendors force you on a never-ending upgrade rat race. Who guarantees that you will be able to install today’s software 10 years from now?</p><h4>In 25 years?</h4><p>Maybe it will look like this much more quickly, actually:</p><ul><li>The computer is always spying on everything you do</li><li>You allowed the computer to spy on you 24/7 a long time ago, and to use everything collected against you</li><li>You do not get to install an application, nor to decide which version to use</li><li>You just do stuff, and the computer is watching you do it</li><li>You will be billed for the usage the computer has seen</li><li>You own nothing</li><li>Everything can be taken away from you at someone else’s discretion at any time for whatever reason</li><li>The computer knows everything about you because it watches you 24/7</li><li>And shares information about you with whatever entities it deems appropriate</li><li>Everything you do is biometrically tied to you and saved redundantly on the Blockchain so that you cannot delete your traces or rewrite history, which are all more or less public (at least to tech companies, the NSA, and other advanced persistent threats and adversaries)</li><li>Everything is encrypted and pseudo-“secured” by “Trusted Hardware” that you totally can’t understand because it is entirely proprietary and undocumented</li></ul><p>You will not even remember how it felt to be in full control. You are at the mercy of “service providers” billing you for every move you do, and spying on every step you do.</p><h4>Do we want such a future? No!</h4><p>So resist using App Stores, always-on computers, Apple/Microsoft/Google/Facebook/whatever IDs, two-way authentication using phone numbers, digital signatures, entitlements, notarizations and all the other crap coming under the disguise of “security” <strong>today</strong>! These things can work <em>against</em> you. They can take away your freedoms and can make you the subject of surveillance.</p><h4>What can we do?</h4><ul><li>Use Open Source</li><li>Build systems that do not require logins nor IDs</li><li>Build systems that let you use a multitude of different, partly temporary pseudonyms</li><li>Never use “supercookies” (such as mobile phone numbers — most people only have very few and don’t change them all too often)</li><li>Do not restrict software by enforcing the use of digital signatures with built-in “time bombs” (=expiry dates)</li></ul><p>More ideas?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=18059a2beea6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Simplicity to Empower You: Home Automation with helloSystem and Tasmota]]></title>
            <link>https://medium.com/@probonopd/simplicity-to-empower-you-home-automation-with-hellosystem-and-tasmota-2376746a2299?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/2376746a2299</guid>
            <category><![CDATA[tasmota]]></category>
            <category><![CDATA[operating-systems]]></category>
            <category><![CDATA[user-experience]]></category>
            <category><![CDATA[hellosystem]]></category>
            <category><![CDATA[home-automation]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Sun, 12 Dec 2021 17:44:01 GMT</pubDate>
            <atom:updated>2021-12-12T17:44:01.457Z</atom:updated>
            <content:encoded><![CDATA[<p>In <a href="https://hellosystem.github.io/">helloSystem</a> we are following our <a href="https://medium.com/@probonopd/hellosystem-three-layer-ux-design-philosophy-for-simplicity-and-power-37c95bf58398">three-layer UX design philosophy for Simplicity and Power</a>. Simple things should be easy, but in a good way — not by taking power away from you by making complex things just look simple on the surface, but by making things <em>actually</em> simple through. Here is an example: Creating a very simple application that is integrated into the menu and does one simple job.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/895/1*ba7AGmICw64HFCWNjA1LHw.png" /><figcaption>Controlling light bulbs running the <a href="https://tasmota.github.io/docs/">Tasmota</a> firmware with helloSystem using MQTT</figcaption></figure><p>Applications don’t always have to be something you download from some store somewhere, and that might happen to spy on you. Applications can also be delightful small programs you write yourself to do one job, and do it exactly how you like it to be done for you.</p><h3>Let’s bring Home Automation on the desktop</h3><p>Suppose you would like to be able to trigger different Home Automation scenes like “Reading”, “Work”, “Leisure”, “Bedtime”, etc. — right from your desktop. In your home automation setup you are using a <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a> broker running on a tiny embedded server, and several lights running the <a href="https://tasmota.github.io/docs/">Tasmota</a> firmware.</p><h4>Create a minimal application</h4><p>Now, you would like to have a super simple way to switch between the scenes.</p><p>Let’s create a helloSystem application that does just that with minimal fuzz. Thanks to the concept of <a href="https://hellosystem.github.io/docs/developer/application-bundles">Application Bundles</a> this is not complicated:</p><ol><li>Create an Applications folder inside the home folder</li><li>Create a folder named Scenes inside the Applications folder</li><li>Create a folder named Work.app inside the home folder</li><li>Create a file named Work inside the Work.app folder</li><li>Paste the program code from below (adjust to your own environment) — I am not going to explain the code in detail here but Tasmota MQTT users will instantly recognize it</li><li>Click on Work and press ⌘-I, then click “Make File executable”</li><li>Move Work.app into the Scenes folder created earlier. This will make it show up in the menu automatically</li></ol><p>Program code:</p><pre>#!/usr/bin/env python3</pre><pre>import os<br>import paho.mqtt.client as mqtt</pre><pre>client = mqtt.Client()<br>client.connect(&quot;mqtt.local&quot;) # Replace with address of your broker</pre><pre># Set screen color temperature<br>os.system(&quot;redshift -P -O 5700&quot;)</pre><pre># Set light bulb colors<br>client.publish(&quot;cmnd/tasmota_aaaaaa/Color&quot;,&#39;030100FF00&#39;, retain=True) # large bulb<br>client.publish(&quot;cmnd/tasmota_bbbbbb/Color&quot;,&#39;030100FF00&#39;, retain=True) # small bulb</pre><p>There you have it. A fully functional helloSystem application that does one job, and does one job well.</p><p>Whenever you want to run the scene “Work”, you can now just select System -&gt; home -&gt; user -&gt; Applications -&gt; Scenes -&gt; Work.</p><p>Or press ⌘-Spacebar, type “work”, and press Enter.</p><h4>Adding some polish</h4><p>Let’s make this application use a nice application icon. To do that, right-click on Work.app, select “Show Contents”, create a new folder called Resources and copy a 128x128 pixel png there with the name Work.png. Done!</p><p>Let’s also make this application accessible via a shortcut on the keyboard. For this, open System -&gt; Applications -&gt; Preferences -&gt; Shortcut Keys and add a new shortcut. Choose a key combination (e.g., Meta-F3), click “Activated”, Click “Command” and enter launch Work.</p><p>Now, you can launch the “Work” scene by pressing the key combination.</p><p>Easy, huh?</p><h4>Copy&amp;Paste</h4><p>Now, having just one scene is kinda boring, right? Copy and paste your application, rename it, and let it call a different scene. Let’s say “Bedtime”.</p><pre>#!/usr/bin/env python3</pre><pre>import os<br>import paho.mqtt.client as mqtt</pre><pre>client = mqtt.Client()<br>client.connect(&quot;mqtt.local&quot;) # Replace with address of your broker</pre><pre># Set screen color temperature<br>os.system(&quot;redshift -P -O 4000&quot;)</pre><pre># Set light bulb colors<br>client.publish(&quot;cmnd/tasmota_aaaaaa/Color&quot;,&#39;80621C004A&#39;, retain=True) # large bulb<br>client.publish(&quot;cmnd/tasmota_bbbbbb/Color&quot;,&#39;80621C004A&#39;, retain=True) # small bulb</pre><p>And once you are happy with everything, copy that Scenes folder to other machines on your network as well.</p><h3>Simplicity that Empowers You</h3><p>Now try this with another operating system.</p><p>Sure, you could probably use a proprietary system like Philips Hue along with proprietary apps that may or may not collect your personal data and get it to work sooner or later. But I challenge you to get to the same result as fast and efficiently.</p><p>Or you could go the Linux way and fiddle around with desktop files and whatnot. But again, I challenge you to get to the same result as fast and efficiently.</p><p>This is the kind of simplicity we are striving for. Not hiding away how things work, but making them as accessible and non-frightening as possible for slightly more advanced users.</p><p>You are in full control. Simple as that!</p><p>helloSystem is in pre-release status. Please see <a href="https://hellosystem.github.io/docs/developer/contributing.html">https://hellosystem.github.io/docs/developer/contributing</a> for how to contribute.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2376746a2299" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Usability Point in Case: Why Simplification is the Ultimate Sophistication]]></title>
            <link>https://medium.com/@probonopd/usability-point-in-case-why-simplification-is-the-ultimate-sophistication-49d074032cd1?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/49d074032cd1</guid>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[linuxusability]]></category>
            <category><![CDATA[user-experience]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[desktop]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Fri, 08 Oct 2021 16:42:56 GMT</pubDate>
            <atom:updated>2021-10-08T16:44:31.694Z</atom:updated>
            <content:encoded><![CDATA[<p>You may have heard the phrase “Simplification is the ultimate sophistication”. It is attributed to Leonardo da Vinvi and to Steve Jobs. While many user interface designers agree, most fail to deliver. Here is a prime example: Formatting a disk on Linux and other UNIX-like systems.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_ZVj8FamSSO4kwJlWw0G2A.png" /><figcaption>helloSystem 0.6.0 with disks, folders, and files on the desktop</figcaption></figure><p>Making technology “simple” is not about making “flat designs”. It is about making things “accessible”. For me, it pretty much involves <em>making simple tasks simple</em>. And most desktop environments are terribly bad at it, as I have pointed out in my six-part series about <a href="https://twitter.com/hashtag/LinuxUsability">#LinuxUsability</a> (<a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-1-5fa0fb369b42">part 1</a>, <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-2-d34b86fd9b79">part 2</a> , <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-3-780f127f5794">part 3</a>, <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-4-13be6486b358">part 4</a>, <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-5-d810a0d2f368">part 5</a>, <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-6-1c03de7c00a9">part 6</a>).</p><h3>Example: Formatting a disk</h3><p>Here is a prime example: Formatting a disk.</p><p>Simple, eh? Most people (at least those used to Windows and the Mac) will take a dialog like this for granted:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/592/1*DbZtkd_APVNEQUix14dLGA.png" /><figcaption>Format Disk for in helloSystem. Deceivingly simple in the surface yet surprisingly complex under the hood</figcaption></figure><p>Nothing fancy here, nothing special. That’s what I thought too, until I went about implementing it. Turns out that most open source desktop environments make this type of task way too complicated, because they are approaching the problem like an engineer rather than like a person who wants to “just format that disk”. Windows and the Mac do this much better!</p><h4>Step 0: Think like a user, not like an engineer</h4><p>Making things simple requires a developer to think like a user. And then work hard to make all the tech stuff happen.</p><p>Let’s look at that “Format Disk” example in detail.</p><h4>Step 1: Put the verbs where the object is</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/157/1*tErhq_TgUUPBxTyy5i2ebA.png" /><figcaption>Disk icons on the desktop</figcaption></figure><p>It begins with the desktop, where disks (“volumes” to be precise) are shown to the user.</p><p>This is where a user naturally goes to access disks, it is where disks “are” for a user. So naturally this is where a user would go to format a disk. Windows users can right-click a disk and select “Format…”. Yet in most open source desktop environments you can’t do that. You need to open another application with a cryptic name like “GParted”. Scary stuff!</p><p>Disks are objects. They should have a place in the user interface. Ideally <strong>one</strong> place (in helloSystem, that place is on the desktop). Not <em>multiple</em> places (e.g., on the desktop and in GParted). You should be able to manipulate the objects by clicking on them and by selecting a verb (usually by selecting something from the menu).</p><h4>Step 2: Ask the user only relevant questions</h4><p>In the “Format Disk” dialog, the questions that are <em>relevant</em> for the user are asked: Name, format, and partitioning scheme.</p><p>And we are referring to things in terms users can relate to. A user might know that a disk is for “Linux”, but not necessarily know what “ext2” is.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/427/1*_dJsdB-D3vVEvk2rEeeBzA.png" /><figcaption>Using understandable names for things is important</figcaption></figure><p>We are only asking the user for a partitioning scheme the whole disk to be formatted, rather than an individual partition. Many users will never even have to know the difference, we are just doing the <em>right thing</em>.</p><p>All questions can be answered in <em>one</em> step. Try doing the same in GParted and count the number of steps needed! This dialog contains all mere mortals will need in &gt;95% of cases. For the remaining cases, there are still command line tools and more specialized utilities.</p><h4>Step 3: Do the legwork</h4><p>“Formatting the disk” can mean different things in different situations. Most “mere mortals” can’t remember to do those things in the correct sequence manually, and even if they can, they will find it cumbersome.</p><p>In this example, the user wants to format /media/AIRYX, which happens to be on /dev/da0 (no partition!) while /media/bootdisk is on /dev/da0p1. So we do:</p><pre>umount /media/AIRYX # (1)<br>umount /media/bootdisk # (2)<br>dd if=/dev/zero of=/dev/da0 bs=1M count=1 # (3)<br>/sbin/gpart create -s MBR da0 # (4)<br>/sbin/gpart add -t fat32 da0 # (5)<br>newfs_msdos -F 32 -L Untitled /dev/da0 # (6)<br>/usr/local/sbin/automount da0 attach # (7)</pre><ol><li>Unmount the disk the user requested to format</li><li>Unmount all partitions that are on the same disk</li><li>Blank out the partition table — without this the next step would fail</li><li>Create a partition table using the selected partitioning scheme</li><li>Add a partition with a type that matches the selected filesystem</li><li>Format the partition with the selected filesystem <em>(not sure this step is correct — would it need to be </em><em>/dev/da0p0?)</em></li><li>Mount the newly formatted partition</li></ol><p>What is essentially the “same” operation for the user — format a disk — can look very different technically in another case:</p><p>In the next example, the user wants to format a disk that was previously formatted in <a href="https://en.wikipedia.org/wiki/ExFAT">ExFAT</a>. Shouldn’t make a big difference, should it? Well, it does, because ExFAT is mounted using <a href="https://en.wikipedia.org/wiki/Filesystem_in_Userspace">FUSE</a> (again something “mere mortals” will not need to know even exists):</p><pre>umount /media/exfat # (1)<br>dd if=/dev/zero of=/dev/da0 bs=1M count=1 # (2)<br>/sbin/gpart create -s MBR da0 # (3)<br>/sbin/gpart add -t fat32 da0 # (4)<br>newfs_msdos -F 32 -L Untitled /dev/da0 # (5)<br>/usr/local/sbin/automount da0 attach # (6)</pre><ol><li>Unmount the disk the user requested to format (as above)</li><li>Blank out the partition table. For this we need to know the device node /dev/da0. Turns out that mount tells us: /dev/fuse on /media/exfat (fusefs). But umount /dev/fuse is not going to work. So we need to do a series of rather convoluted steps to find out the <em>actual</em> device that is mounted at /media/exfat. (I will spare you the details here but it is <em>not straightforward</em>.)</li></ol><p>Rest of the steps as above.</p><p>By thinking about what users want to do rather than by thinking about what the computer needs we put “user first”. Sounds trivial, but it isn’t.</p><p>Here is another example.</p><h3>Renaming a disk</h3><p>Renaming a disk. Simple enough, right? Just click on the disk icon on the desktop and rename it — just like you would rename any file or folder. Piece of cake. Right?</p><p>No. To my knowledge, <strong>none of the existing open source desktop environments can do this</strong>! Go try it out for yourself. You will be surprised.</p><p>Making it work isn’t trivial either. Turns out that depending on which file system is used on the disk, a different command line tool (with different syntax) is needed to do the job.</p><p>Tasks like this should be simple. They are way too complicated!</p><h3>Let’s make simple tasks simple</h3><p>Grown out of my frustration with <a href="https://twitter.com/hashtag/LinuxUsability">#LinuxUsability</a> (<a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-1-5fa0fb369b42">part 1</a>, <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-2-d34b86fd9b79">part 2</a> , <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-3-780f127f5794">part 3</a>, <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-4-13be6486b358">part 4</a>, <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-5-d810a0d2f368">part 5</a>, <a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-6-1c03de7c00a9">part 6</a>) and with the ongoing <a href="https://medium.com/@probonopd/the-desktop-metaphor-must-be-restored-its-under-attack-6fcd8fa45cc">crippling of the desktop metaphor</a>, I set out to build a <a href="https://medium.com/@probonopd/hello-lets-make-a-freebsd-for-mere-mortals-41b8f93ba075">desktop system for <em>“mere mortals”</em></a> that is <a href="https://medium.com/@probonopd/hellosystem-three-layer-ux-design-philosophy-for-simplicity-and-power-37c95bf58398"><em>simple yet powerful</em></a>.</p><p>So the examples above are set to be solved in the upcoming pre-release of <a href="https://hellosystem.github.io">helloSystem</a>, 0.7.0, expected to arrive later this year.</p><p>helloSystem is in pre-release status. Please see <a href="https://hellosystem.github.io/docs/developer/contributing.html">https://hellosystem.github.io/docs/developer/contributing</a> for how to contribute.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=49d074032cd1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is FreeBSD, actually? Think again.]]></title>
            <link>https://medium.com/@probonopd/what-is-freebsd-actually-think-again-200c2752d026?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/200c2752d026</guid>
            <category><![CDATA[operating-systems]]></category>
            <category><![CDATA[freebsd]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Fri, 17 Sep 2021 20:15:44 GMT</pubDate>
            <atom:updated>2021-09-17T20:25:09.960Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/191/0*WtfKt6lT9JMGvM2h.png" /><figcaption>FreeBSD Daemon, created by Poul-Henning Kamp<br>Source: <a href="https://cgit.freebsd.org/src/tree/share/examples/BSD_daemon/">/usr/share/examples/BSD_daemon/</a></figcaption></figure><p>Recently there was a challenge on Twitter to “Describe FreeBSD in three words only”. An operating system. Right? Berkeley Software Distribution, literally. Dating back to early UNIX, and powers macOS and the iPhone, that’s what I always mentally filed FreeBSD under. But also as something that still requires you to use a cryptic command line and to configure stuff — like if the graphical desktop, Plug&amp;Play, and Live ISOs that “just work” never had happened. Maybe I was wrong all along.</p><p>When I think of an “operating system”, I think of Windows, macOS, or Ubuntu-style “Linux”. And naturally, that was the standard I kept measuring FreeBSD against. In comparison, FreeBSD felt so much more cryptic and complicated. I always wondered why that was.</p><p>So<em> “Community nongraphical UNIX” </em>is what I wrote.</p><p>When I read through the answers to the “FreeBSD in three words” question it finally dawned upon me:</p><h3>Patrick M. Hausen on Twitter: &quot;Infrastructure, not product. / Twitter&quot;</h3><p>Infrastructure, not product.</p><p><em>Infrastructure, not product. Interesting way to look at it. </em>In the Linux world, many distributions are based on Debian, including the arguably most popular one on the desktop, Ubuntu. So in a way, FreeBSD is like Debian if it was simply a building kit for other distributions. It is not the Ubuntu Desktop Live ISO that made Ubuntu so popular and the experience I am after — pop it into a computer and be able to use it as a desktop machine.</p><p><em>Infrastructure, not product. Is that a good thing? </em>My initial reaction would be “no”. For many years I looked at FreeBSD and always decided to test it “once they have a Desktop Live ISO like Ubuntu I will try it out”. Which never happened.</p><p>Yes, variants of it like TrueOS, DesktopBSD, FuryBSD came and went and some are still around like GhostBSD and NomadBSD, and new ones like my own <a href="https://hellosystem.github.io/docs/">helloSystem</a> are coming up , but are they really FreeBSD? Places like <a href="https://forums.freebsd.org/">https://forums.freebsd.org/</a> say no, and don’t want to support them.</p><p><em>Infrastructure, not product. Is that really a bad thing? </em>After all, wouldn’t it be a good thing to have an official FreeBSD Desktop Live ISO?</p><p>Turns out the issue goes deeper than that. Unlike Linux distributions, FreeBSD draws a strict line between the core operating system (base.txz) and what is thought of as “packaged third-party software” (Ports and Packages that live in /usr/local). The the core operating system is BSD licensed and developed as a fully integrated operating system by the FreeBSD team, whereas the rest happens to run on FreeBSD but is essentially mostly third-party software which may or may not agree with the FreeBSD objectives.</p><p>So, wouldn’t it be nice to have at least a very spartan, minimal graphical environment as part of the FreeBSD core operating system ? Operating systems like <a href="https://haiku-os.org">Haiku</a> and <a href="http://serenityos.org/">SerenityOS</a> see graphics as an integral part of the core operating system. FreeBSD doesn’t.</p><p>And then it dawned upon me again:</p><h3>Michael Dexter on Twitter: &quot;Own the stack / Twitter&quot;</h3><p>Own the stack</p><p><em>Own the stack. That is certainly a good thing and an aspect I really like. </em>No one is following some hidden agenda to force certain stack elements (“unwelcome technology”) upon users, such as SELinux, systemd, Gtk, Gnome, Wayland, Pipewire, Flatpak and so on. And I like FreeBSD for that. So, maybe we should really come to embrace that FreeBSD wants to be more like a toolkit that enables third parties (you and me!) to build the end-user experiences we like rather than a readimade operating system like Windows, macOS, or Ubuntu-style “Linux”.</p><p>And in fact, it is very good at that. It allows us to build a <a href="https://medium.com/@probonopd/hellosystem-three-layer-ux-design-philosophy-for-simplicity-and-power-37c95bf58398">helloSystem user experience</a> exactly to our liking.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*LrBLGYnM28AbvI_Z" /><figcaption>helloSystem 0.5.0</figcaption></figure><p><strong>Maybe FreeBSD should position itself as a “toolkit for building operating systems” rather than an “operating system”. I think it would have helped me understand it better.</strong></p><p>But… somehow I think it is still sad that graphics is completely absent from the FreeBSD core operating system. At least the window server and graphics drivers….</p><p>What do you think?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=200c2752d026" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[helloSystem: Three-layer UX design philosophy for Simplicity and Power]]></title>
            <link>https://medium.com/@probonopd/hellosystem-three-layer-ux-design-philosophy-for-simplicity-and-power-37c95bf58398?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/37c95bf58398</guid>
            <category><![CDATA[usability]]></category>
            <category><![CDATA[operating-systems]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[linuxusability]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Sat, 26 Dec 2020 15:00:28 GMT</pubDate>
            <atom:updated>2020-12-26T15:00:28.073Z</atom:updated>
            <content:encoded><![CDATA[<p>One objective for <a href="https://hellosystem.github.io/docs">helloSystem</a>, an operating system welcoming to switchers from the Mac, is to be both <em>easy to use</em> for “mere mortals” yet <em>powerful</em> under the hood for advanced users, a combination that had been skillfully mastered in the first releases of Mac OS X (before they started to lock everything down). So the question is, can we take this objective of being <em>easy but powerful</em> but take it even further than Apple ever did?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/318/1*AoZTtzHCKAItIeJbOjxpsA.png" /><figcaption>Choosing the keyboard language on helloSystem</figcaption></figure><p>Imagine you want to set the keyboard language to German. Does it really need to be any more complicated than that?</p><p>How hard can it be? I think it should be only one click in a preferences application. Yet most existing open source desktops (developed by geeks for geeks) screw this up so badly that it can actually make me angry.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F4nR4HP2x1iU%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D4nR4HP2x1iU&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F4nR4HP2x1iU%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/fb9b73831e0ae11dfc68f492ec57d5a1/href">https://medium.com/media/fb9b73831e0ae11dfc68f492ec57d5a1/href</a></iframe><p>Can we do better than that? Sure we can.</p><p>Here is what I call the “three-layer design philosophy”:</p><ul><li>For <em>mere mortals</em>, remove everything that is confusing</li><li>For <em>advanced users</em>, give raw access to the underlying components</li><li>For <em>developers</em>, show’em the code</li></ul><h4>Layer 1: Remove everything that is confusing</h4><p>This layer is for <em>“mere mortals”</em>. It is what grandma sees when she is using the computer. In this layer, expose only what is needed to get 80% of the users to get their job done 80% of the time. Remove everything that is not essential or requires much explanation. In most cases, Layer 1 will be a graphical application (with an uppercase name, such as “Keyboard”).</p><p>Compare the left-hand side dialog (from KDE) with the right-hand side dialog (from helloSystem). Which one would you want to use if all you wanted to do was switch the keyboard language?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*0RrjZgyvbFckaPRZ" /><figcaption>Setting the keyboard language. Left: KDE, Right: helloSystem</figcaption></figure><h4>Layer 2: Give raw access to the underlying components</h4><p>This layer is for <em>advanced users. </em>Mac OS X used to be great at this, but with Apple’s continued focus on iOS, Memoji and watchfaces, and with locking down everything, their current systems increasingly fall flat in this aspect. This layer is all about <em>explaining</em> advanced users how things work under the hood, and give them <em>raw access</em> to tweak things. In most cases, Layer 2 will be a command line tool (with a lowercase and often cryptic name for historic reasons, such as setxkbmap).</p><p>In helloSystem, we give access to the raw power of the underlying core operating system, FreeBSD.</p><p>Can we go even further with this concept?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*dFgNJmgQgYquNua7OKmviA.png" /><figcaption>The about box links to the man page of the underlying command line tool for raw access</figcaption></figure><p>For users who want to tweak settings more than what the GUI offers at first sight, we make it as easy as possible to access the right information. In this example, by linking the man page for the setxkbmap command line tool which is being used by the GUI under the hood. Arguably, using that command line tool will be more satisfying for <em>advanced users </em>than trying to figure out from the convoluted KDE user interfaces what things could possibly mean.</p><h4>Layer 3: Show’em the code</h4><p>This layer is for <em>developers</em>, including first-time developers. Here the beauty of an open source operating system such as helloSystem can really shine.</p><p>From my own experience, it is good to know that the source code for the applications one is using is available <em>somewhere, in case one would ever need it.</em></p><p>But then, wouldn’t it be much cooler if the source code was always <em>right there</em>, available at your fingertips all the time?</p><p>In helloSystem, many applications can be right-clicked to reveal their source code. This is because they are written in Python, an interpreted language that effectively results in the source code to be always present.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/369/1*2PUyfdSyKntcwjkjSz3UNQ.png" /><figcaption>By clicking “Open in new Tab”, you can see the application’s source code</figcaption></figure><p>We could extend this concept by providing a “Show Source Code” menu entry that would open a web browser pointing to the GitHub repository of compiled applications, so that, just like in the Python example, you could have a glance at the code very quickly.</p><p>Can we embrace the open source nature of helloSystem even more?</p><p>Consider this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/648/1*YeCLS0aQX4j3lVxndESq4g.png" /><figcaption>“Show Source Code” menu item in an application help menu</figcaption></figure><p>Would you be more likely to peek into the source code if it was presented to you in this simple way?</p><p>So here you have it. My “three-layer design philosophy”:</p><ul><li>For <em>mere mortals</em>, remove everything that is confusing</li><li>For <em>advanced users</em>, give raw access to the underlying components</li><li>For <em>developers</em>, show’em the code</li></ul><p>But wait. There is one more thing.</p><h4>Layer 0: Zero configuration</h4><p>Now that we have looked at three layers of user interface to set the keyboard language, wouldn’t it even be much, much cooler if the user wouldn’t have to set the keyboard language <em>at all</em>, because when you attach a German keyboard the system <em>just knows</em> that it is a German keyboard and configures the system accordingly, at least for the vast majority of users? At least 80% of people with a German keyboard will want the keyboard layout to be German. So why not <em>just do it</em>? Using English is wrong for at least 80% of people with a German keyboard. Using German will be right for at least 80% of people. Yet most operating systems just default the keyboard language to English all the time.</p><p>Turns out that even in the days of USB, most keyboard manufacturers decided to save 2 cents in production by not having the firmware communicate the keyboard language to the system. What a pity! Luckily, some genius at the Raspberry Pi foundation finally produced a keyboard that can do the job — with the result that I have equipped <em>all </em>my computers with their keyboards. (Unfortunately that genius did not make any attempt to get any of this standardized, what a shame.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/543/0*aPDh6Dby-9hsk8Ch" /><figcaption>The official Raspberry Pi keyboard can communicate the keyboard language to the system</figcaption></figure><p>helloSystem will detect the keyboard language and make intelligent guesses regarding not only the keyboard layout, but also the system language, and timezone based on this information. helloSystem will also read language information from NVRAM (also known as “Parameter RAM” or PRAM) on Apple devices, and use that information. Possibly we can also find other sources of information to make even more intelligent guesses.</p><p>The point: Zero configuration is what gives the user those pleasant “it just works” experiences without having to fiddle around.</p><p>A true master in this area is <a href="https://en.wikipedia.org/wiki/Stuart_Cheshire">Stuart Cheshire</a>, the mastermind behind <a href="https://en.wikipedia.org/wiki/Zeroconf">Zeroconf</a> networking (also known as <a href="https://en.wikipedia.org/wiki/Bonjour_(protocol)">Bonjour</a>). Apple was kind enough to not only introduce this technology, but to also make the specifications and even code publicly available. Yet it surprises me all the time how neglected this building block for “it just works” is by many open source systems. But that will be the topic for another day.</p><p>So here we go:</p><ul><li><strong>Level 0: </strong><em>Out of the box</em>, make it just work without fiddling around. For example, pre-select the correct keyboard language based on hints the hardware may be giving</li><li><strong>Level 1: </strong>For <em>mere mortals</em>, remove everything that is confusing. For example, just show the most common keyboard languages in their own language and make them selectable by just one click</li><li><strong>Level 2: </strong>For <em>advanced users</em>, give raw access to the underlying components. For example, actively point power users toward the underlying command line tool and its documentation</li><li><strong>Level 3: </strong>For <em>developers</em>, show’em the code. For example, have a “Show Source Code” menu item in the Help menu.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/453/0*jgJAKDiOp8llZRCp.gif" /><figcaption>Hello again?</figcaption></figure><p>By combining the simplicity of the original Macintosh with the power of UNIX, the original designers of Mac OS X did a great job in making something that was both <em>easy to use</em> for “mere mortals” yet <em>powerful</em> under the hood.</p><p>Can we take this design objective to new heights in helloSystem? Please leave your comments.</p><p>helloSystem is in pre-release status. Please see <a href="https://hellosystem.github.io/docs/developer/contributing.html">https://hellosystem.github.io/docs/developer/contributing</a> for how to contribute.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=37c95bf58398" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The desktop metaphor must be restored. It’s under attack!]]></title>
            <link>https://medium.com/@probonopd/the-desktop-metaphor-must-be-restored-its-under-attack-6fcd8fa45cc?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/6fcd8fa45cc</guid>
            <category><![CDATA[desktop]]></category>
            <category><![CDATA[linuxusability]]></category>
            <category><![CDATA[user-experience]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[ux]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Sun, 06 Dec 2020 19:24:07 GMT</pubDate>
            <atom:updated>2020-12-06T19:26:20.297Z</atom:updated>
            <content:encoded><![CDATA[<h3>The desktop metaphor must be saved. It’s under attack!</h3><p>Why I set out to build a desktop system operating system true to the desktop metaphor’s roots. One that removes the distractions, clutter, complexities, privacy issues, and encumbrances that have kept piling up.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wyZ4myekSjqTKqtbpSYtSg.png" /></figure><p>Desktop user experience needs to be <strong>restored</strong> because it has been <strong>crippled</strong> over the years.</p><h3>We risk forgetting the power of the Desktop</h3><p>They build user interfaces for touch. They bring in user experience elements made to be used with the finger on tiny mobile devices, no matter that we have a precise mouse pointer and 27&quot; screens.</p><p>Already three years ago when I wrote my series on <a href="https://twitter.com/hashtag/LinuxUsability"><em>#LinuxUsability</em></a><em> (</em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-1-5fa0fb369b42"><em>part 1</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-2-d34b86fd9b79"><em>part 2</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-3-780f127f5794"><em>part 3</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-4-13be6486b358"><em>part 4</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-5-d810a0d2f368"><em>part 5</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-6-1c03de7c00a9"><em>part 6</em></a><em>) </em>I had the impression that there was some super secret, evil plan to <em>kill</em> the desktop as we know it. A general-purpose computing productivity powerhouse. Replace it with inferior user experiences that make our lives harder.</p><p>Today I stumbled across this article:</p><p><a href="https://uxdesign.cc/the-desktop-metaphor-must-die-676fbb34afdb">The desktop metaphor must die</a></p><p>It proves my worst fears.</p><p>Sometimes it seems that even desktop operating systems these days are made by people who <em>don’t get</em>, or worse, <em>hate</em> the desktop.</p><h3>The desktop metaphor is still unmatched when it comes to productivity</h3><p>When I observe people in a company, I can immediately tell those who actually <em>do</em> the work from those who just <em>glance over</em> other people’s work. The former have real desktop computers or powerful notebooks, usually plugged into power and a wired network. The latter have tablet-wannabe-computer “convertibles” with cardboard keyboards held together by magnets, and their battery is always empty.</p><p>No TV studio will cut a feature-length movie on those mobile toys.</p><h4>The mouse is your friend</h4><p>It allows for pixel-perfect navigation and object manipulation. It allows you to select even parts of a word on the first try. It makes it easy to do drag-and-drop.</p><p>Touch is an inferior substitute, as far as productive work is concerned. No serious graphic designer will be happy with the precision of manipulating objects with the fingers on a slippery glass surface. Heck, even selecting text within a word is almost impossible on those mobile touch devices. And no, voice is not a good substitute at all. I don’t want to <em>tell</em> my computer how to draw a picture.</p><p>So let’s use a <strong>real</strong> mouse. Not those pesky touchscreens. Not those touchpads. A mouse with an optical sensor and buttons, you know.</p><h4>Applications and documents are our friends</h4><p>You could call them “verbs” and “objects”. Being able to exactly choose which version of which application to use to operate on which document is crucial.</p><p>Centering the workflow around lofty other ideas has been <a href="https://en.wikipedia.org/wiki/OpenDoc">tried before</a>, and went nowhere.</p><h4><strong>The file system is your friend</strong></h4><p>It allows you to understand where stuff goes. It gives you full power over where stuff goes. It allows you to access, move, copy, remove, backup, archive stuff. It puts you in control. By using “Save As…” and saving a file under a different name, you can make a new version. And so on.</p><p>On mobile devices, stuff goes “somewhere”, in places you don’t know. You never know what gets saved when and where. Maybe stuff goes somewhere on the local device, and worse, those days maybe it goes somewhere in the cloud. Anyone who as ever tried to get an MP3 file <em>off</em> an iPhone knows what I mean. You don’t even know where the files are stored, and you need complicated 3rd party software to actually access them. Complicated!</p><p>So let’s <strong>embrace</strong> the file system. Not a file system hidden away from view. And let’s work in the file manager. Let’s do everything by drag-and-drop in the file manager. Let’s do away with control panels, application installers, app stores, backup software, and the like. It can all be done with drag-and-drop in the file manager.</p><h4>The global menu is your friend</h4><p>It allows you to see all commands that are available to you quickly. Today, it even lets you <em>search</em> those commands.</p><p>So let’s use a <strong>real</strong> menu. Not those pesky hamburger or ribbon things that only make everything slow and inefficient.</p><h3>Let’s get rid of the bloat, less is better!</h3><p>There is just <em>way too much stuff</em>. And it’s all <em>way too configurable</em>. As a result, it’s a giant mess. Hence, let’s remove everything that had been bolted onto the desktop metaphor lately, and let’s go back to the basics.</p><h4>Get rid of notifications</h4><p>The computer is supposed to execute the instructions the user gives it, not the other way around. Notifications are a big distraction, most often designed for the computer to make the user do something. They are a never ending stream of unwanted interruptions, taking the focus away from your work. <em>Your virus scanner wants to phone home. There is a new version of this and that. 7 new messages on Twitter. Please reboot. Activate your windows. Special promo offer ends today.</em></p><p>Get rid of notifications entirely! The original Mac did not need them, and nor do we today.</p><h4>Get rid of ads</h4><p>Some desktop operating systems look like an ad-financed newspaper.</p><p>Get rid of all ads entirely! Not just in the web browser. The original Mac did not need them, and nor do we today.</p><h4>Get rid of app launchers</h4><p>A Start menu with tiles? A Launchpad? Who needs those extra things to launch apps when we have the file system. I want to launch an app, I double-click it in the file system. Easy as that! As an added benefit, I can organize the apps in folders to my own liking, and can move, copy, delete, archive, backup them exactly like I want.</p><p>Get rid of tiles, launchpads, and other launchers. The original Mac did not need them, and nor do we today.</p><h4>Get rid of app stores, DRM, signed everything</h4><p>App stores require you to give their operators your personal information. They allow the app store operator to know which apps you have. They enforce “DRM” against you. They use signing to keep you from doing with your computer what you want.</p><p>Get rid of app stores. Drag-and-drop the apps into the file system at your own liking. Get rid of all the app store accounts and the phone home that comes with them. The original Mac did not need them, and nor do we today.</p><h4>Get rid of everything that messes with your privacy</h4><p>Once Apple positioned themselves as the savior that rescued mankind from an omnipresent Big Brother. Today they are phoning home which developers’ apps you use, and are making it hard to firewall internet traffic originating from the operating system. It’s outright evil.</p><p>Get rid of everything that messes with your privacy.</p><h4>Get rid of everything that is “always on”</h4><p>What if you don’t want an “always on” processor, let alone an “always online” one? Don’t use battery-operated devices.</p><p>Get something that has an off switch. Something that is <em>really</em> <em>off</em> when it is not in active use.</p><h4>Get rid of everything you cannot understand</h4><p>Good things can be understood. Not just how to operate them at their surface, but <em>how they work</em>.</p><p>Get rid of anything you cannot figure out how it works on the inside, if you like to.</p><p>I you are like me, you want to get tasks done with high efficiency, speed, and control. <strong>The desktop metaphor is ideal</strong> for this.</p><p>The mouse is your friend. The file system is your friend. The global menu is your friend. They can make your life <strong>easy</strong>! Don’t treat them as your enemies but <em>embrace</em> them. Let’s bring back the original simplicity of the desktop.</p><p>Un-bloat the desktop. Throw everything out that makes it cluttered, distractive, and encumbered. Notifications, ads, launchers, app stores, DRM , “always on” stuff — all that cruft that has no place on the desktop.</p><p>Less, but better!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/862/1*0pAy8HICOpJKf05vR9Rn4A.png" /></figure><p>Check out <a href="https://hellosystem.github.io/docs/">helloSystem</a>. It is a desktop system for creators with focus on simplicity, elegance, and usability. Its design follows the “Less, but better” philosophy. It is intended as a system for “mere mortals”, welcoming to switchers from the Mac. <a href="https://www.freebsd.org/">FreeBSD</a> is used as the core operating system.</p><p>Right now, it is beginning to materialize from the idea stage.</p><p>Want to collaborate? This is a small, purely volunteer-driven project, so your contributions are <em>highly</em> welcome. Check out <a href="https://hellosystem.github.io/docs/developer/contributing">https://hellosystem.github.io/docs/developer/contributing</a> to get started.</p><p>Say hello!</p><p><a href="https://twitter.com/probonopd"><em>probono</em></a><em> is the founder and lead developer of </em><a href="https://hellosystem.github.io/docs"><em>helloSystem</em></a><em>, the </em><a href="https://appimage.org/"><em>AppImage</em></a><em> project, and a </em><a href="https://github.com/probonopd?tab=repositories"><em>contributor to various open source projects</em></a><em>. Screenshots were made on helloSystem booted from USB.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6fcd8fa45cc" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[hello: Let’s make a FreeBSD for “mere mortals”]]></title>
            <link>https://medium.com/@probonopd/hello-lets-make-a-freebsd-for-mere-mortals-41b8f93ba075?source=rss-60cd994adfbf------2</link>
            <guid isPermaLink="false">https://medium.com/p/41b8f93ba075</guid>
            <category><![CDATA[macos]]></category>
            <category><![CDATA[desktop]]></category>
            <category><![CDATA[unix]]></category>
            <category><![CDATA[freebsd]]></category>
            <category><![CDATA[usability]]></category>
            <dc:creator><![CDATA[probono]]></dc:creator>
            <pubDate>Sun, 15 Nov 2020 21:00:02 GMT</pubDate>
            <atom:updated>2021-09-22T18:31:43.144Z</atom:updated>
            <content:encoded><![CDATA[<p>Can we make an open source system that is welcoming to switchers from the Mac? Something that “just works” as intended, without the need to fiddle around much to get to a working desktop that does its job and otherwise gets out of your way? Say hello to <a href="https://hellosystem.github.io/">helloSystem</a>, a desktop system for creators with focus on simplicity, elegance, and usability. Based on FreeBSD. Less, but better!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RJOME7-yukJQj_NNbRnYSg.png" /><figcaption>hello: a FreeBSD Live system that is welcoming to switchers from the Mac</figcaption></figure><h3>Design is how it works, not how it looks</h3><p>Don’t get me wrong here: With <em>“welcoming to switchers from the Mac”</em> I don’t mean a Mac theme nor a Mac clone. There is an abundance of themes and even so-called “Linux distributions” that are basically just themed versions of Ubuntu. This is <em>not</em> what I want to create.</p><p>Also, the last thing I want to have on an open source system is the lock-down and spyware that Apple has been adding to its systems as of late.</p><p>I mean something that is inspired by some core Mac <em>principles</em>, while using Libre (“free as in freedom, not as in beer”) ingredients, and simplifying things as much as possible.</p><p>Some examples:</p><ul><li>A <strong>Live medium</strong> that you can boot e.g., from USB to try out the system without the need to install</li><li>Automatically set the correct <strong>keyboard</strong>, <strong>language</strong>, and <strong>timezone</strong></li><li>A proper <strong>global menu</strong> bar that works like you expect it to work</li><li><strong>Every application comes in its own directory</strong> that can easily be “managed” using the file manager, no need for package managers</li><li>Automatically discover network services using <strong>Zeroconf</strong> (no more looking for IP addresses on the local network)</li><li>Easy and <strong>straightforward installer</strong> that doesn’t ask you cryptic questions</li><li>A <strong>straightforward backup</strong> system that “just works”</li></ul><h3>Less, but better</h3><p>When I think about it, most desktop environments have many things that I find utterly annoying and do not want nor need:</p><ul><li>Annoying notifications</li><li>Lots of configurability which makes everything complicated, makes no 2 systems the same, and, as a result, makes everything unsupportable</li><li>Everything tightly coupled with everything</li><li><a href="https://www.apple.com/business/docs/site/AAW_Platform_Security.pdf">Lock-down</a> (it’s my computer, not the manufacturer’s, and it’s not the manufacturer’s business to decide what I can and cannot run on my machine)</li><li><a href="https://www.youtube.com/watch?v=aS2lJNQn3NA">Spyware</a> (no, I don’t want to send the manufacturer and the secret service a list of the authors of all applications I am using)</li><li>GNOME, KDE Plasma (too much of everything)</li><li>App Stores where you have to log in using personal information</li></ul><p>Makes me realize that I want basically the things I have written about in my series on <a href="https://twitter.com/hashtag/LinuxUsability"><em>#LinuxUsability</em></a><em> (</em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-1-5fa0fb369b42"><em>part 1</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-2-d34b86fd9b79"><em>part 2</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-3-780f127f5794"><em>part 3</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-4-13be6486b358"><em>part 4</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-5-d810a0d2f368"><em>part 5</em></a><em>, </em><a href="https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-6-1c03de7c00a9"><em>part 6</em></a><em>)</em>, and not much more. I don’t need feature creep on the desktop, but I need the basics to work. I don’t want to configure 1,001 knobs just to get something to work. I want to switch on the machine and be in familiar territory, but I don’t need most things that make everything complex. FreeBSD greatly simplifies things because there is only one FreeBSD and hence doesn’t suffer from the <a href="https://www.youtube.com/watch?v=hdRGVej3RyI">Desktop Linux Platform Issues</a>.</p><blockquote>Unix philosophy is about small tools that do one job, but do one job well. Mac philosophy is about using the mouse to achieve everything. Let’s combine the two. Small tools that do one job, but do it well. As simple as possible.</blockquote><h4><strong>Live medium</strong></h4><p>If you are somewhat like me, you want to try out a new operating system before you commit to installing to disk. This is what Live systems are for. Of course, hello comes as a Live system.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*KFIk7UMmj5YJzBe8sz-6fg.png" /><figcaption>Create Live Media: Tool to fetch the lastest builds and write them to USB devices in one go</figcaption></figure><p>The <em>Create Live Media </em>tool makes it really convenient to fetch the lastest build and write it to a USB device in one go. No more messing around with dangerous dd if=... of=... commands!</p><h4><strong>Automatic keyboard</strong>, <strong>language</strong>, and <strong>timezone</strong></h4><p>As someone who is using Live systems for everything, I can tell you: <em>It’s annoying to set keyboard, language, and timezone each time</em> you boot into a new system.</p><p>So hello does it for you, automatically, without asking questions.</p><p>If you boot on a Mac, then the information stored in EFI NVRAM is used. If you have a keyboard attached that tells the system its language (like the official Raspberry Pi keyboards do), then this information is used. (If you know other ways to automatically figure this stuff out, let me know.)</p><h4>A proper <strong>global menu</strong></h4><p>File, Edit,… you name it. Easy, eh? You would think. Yet so many systems get it wrong.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/642/1*Gvj64vX206NEasQW9DQNIw.png" /><figcaption>A proper global menu. Yet so many systems get it wrong</figcaption></figure><p>And this menu has superpowers: You can search its content, allowing for very quick navigation through applications with large menus like GIMP, Scribus, Krita, and the like.</p><h4>Every application is a directory</h4><p>Applications on Unix traditionally are scattererd around the whole file system, with the main executable in /usr/local/bin, metadata in /usr/local/share/applications, icons in /usr/local/share/icons,… you get the idea. As a result, it is very hard to drag-and-drop an application (and everything that belongs to it) in the file manager. The hello system simplifies this by taking a GNUstep-like approach using .app bundles. That <em>Boot Environments</em> application shown above? Open it in a new tab, and you see that it is actually a directory that contains the applications and additional resources it needs to run.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/642/1*xSiKW92HEaX5f7-PpCibzA.png" /><figcaption>A simplified .app bundle is a directory that is treated like an opaque file in the file manager</figcaption></figure><p>This system can be extended to produce fully self-standing application bundles that have no dependencies other than the base system.Which means that you can have multiple versions of applications in parallel, and can update each application without impacting anything else.</p><h4>Using Zeroconf to connect to devices on the network</h4><p>For example, imagine that instead of having to find out and type IP addresses you could just use this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/502/1*ZP3lfZbV2jQFtszWVfLhOg.png" /><figcaption>Using Zeroconf to connect to devices on the network</figcaption></figure><p>This is just one example of what I mean by “small tools that do one job, but do one job well”.</p><h4>Preferences are managed <em>with</em> small apps</h4><p>Preferences are just regular applications, many written in Python, which allows one to inspect and change the source code with ease.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/642/1*IjNd439YPkj5R3IvJycq2w.png" /></figure><h4>Easy and <strong>straightforward installer</strong></h4><p>If you have ever installed the operating system on a Mac, you should feel instantly at home. Example: just enter your name, the installer figures out a name for your computer (hostname) on its own. Want to log in over the network? It’s just one checkbox away.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*wxXzC4oO-63icZSDqiBDVg.png" /><figcaption>An installer that does not ask the user cryptic questions</figcaption></figure><p>When you use this installer, you end up with FreeBSD proper plus an easy-to-use graphical interface.</p><h4>A <strong>straightforward backup</strong> system</h4><p>FreeBSD uses OpenZFS, a file system with true superpowers. Yet features like Boot Environments and Snapshots need to be understood and actively managed by the user. Well, let hello do that for you.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/90/1*rBWKElWKMD2o3yiviEeYbA.png" /><figcaption>Straightforward tools to make use of advanced OpenZFS features</figcaption></figure><h3>Say hello!</h3><p>Would you like to try it for yourself? Grab a pre-release <a href="https://hellosystem.github.io/">Live ISO</a>.</p><p>What do you expect from a desktop FreeBSD for “mere mortals” that “just works” and is “welcoming to switchers from the Mac”? We would be happy to <a href="https://hellosystem.github.io/docs/user/feedback">hear from you</a>.</p><p>At this point, this project is still very much in the idea strage, with some proof-of-concept (ok, I’ve been using it as my <em>daily driver</em> lately). Do you have FreeBSD experience, Qt skills, or other ideas how to help the project? <strong><em>Check out the </em></strong><a href="https://hellosystem.github.io/docs/developer/contributing"><strong><em>contributing page</em></strong></a><strong><em>. </em>This project lives from contributions of interested people like you! </strong>There is no company behind it, just users like you and me.</p><p><a href="https://twitter.com/probonopd"><em>probono</em></a><em> is the founder and lead developer of the </em><a href="https://appimage.org/"><em>AppImage</em></a><em> project, the founder of the </em><a href="http://www.puredarwin.org/"><em>PureDarwin</em></a><em> project, and a </em><a href="https://github.com/probonopd?tab=repositories"><em>contributor to various open source projects</em></a><em>. Screenshots were made on a </em><a href="https://github.com/helloSystem/ISO/releases/tag/continuous-hello"><em>hello</em></a><em> Live system.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=41b8f93ba075" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>