Pangolin

Pangolin Desktop

Pangolin Desktop UI shell, designed for dahliaOS, written in Flutter. As of v200614.1, Pangolin has been available by default as the desktop in dahliaOS Linux-based builds. Try out the Pangolin web preview here. Code can be found on our GitHub.

History / significant changes

  • February 27, 2019, @Camden Bruce announced the beginning of dahliaOS (Source: Reddit).
  • March 2, 2019, @Camden Bruce created the repository pangolin-desktop.
  • March 4, 2019, @Noah Cain uploaded the first basic code for the desktop in a (now deprecated) custom codebase.
  • April 5, 2019, @Horus125 began importing some components from Capybara for use within Pangolin.
  • May 11, 2019, a basic calculator application was added to the system.
  • May 17, 2019, a text editor called "Petal" was merged into Pangolin.
  • June 30, 2019, the launcher was given an updated look featuring cards, was not yet functional.
  • May 26, 2020, app icons were finally added to the launcher, they were not yet functional.
  • May 31, 2020, @kanouharu implemented a basic app launching ability to the panel icons.
  • June 6, 2020, a basic task manager was implemented.
  • June 12, 2020, @SincerelyFaust migrated the codebase to Apache-2.0 rather than the GPLv3, the beginning of dahliaOS' transition to Apache.
  • June 20, 2020, @larsb24 made significant changes to the backend as well as improving the quicksettings.
  • June 22, 2020, @Blake Leonard added support for automatic building.

Please note that these are only the highlights from development, and not indicative of every commit. If you find something left out, please feel free to add it.

Components

Settings application and launcher


Pangolin Desktop, settings and start menu.

Quick settings assists in changing relevant system settings quickly (hence the name), offering an easier and more efficient method of changing settings than opening the app.

Applications and quick search


Pangolin Desktop, Calculator, Terminal, Notes and quick search.

A search bar is also available to sort through apps, find settings, and search the web.

Development

TL;DR for Linux

flutter channel master # Set flutter to master channel
flutter upgrade # Upgrade to master channel
flutter config --enable-linux-desktop # Enable Linux desktop
git clone https://github.com/dahliaos/pangolin_desktop # Clone the repo
cd pangolin_desktop
flutter create . # Optional, updates the embedder code
flutter run -d linux

Developing Pangolin for dahliaOS Linux-Based builds

While pre-compiled builds can be found in the dahliaOS-overlays folder, you can also compile Pangolin and include them in the Buildroot toolchain. Pangolin can also be added as a dependency inside of Buildroot via the 'dahliaOS core applications' section under 'Target Packages'

Prerequisites

To develop for dahliaOS Linux-Based builds, you will need the Flutter tool, and a compiled base config from dahliaOS/Buildroot. Compiling the base config will take about 4 hours. Pangolin will automatically be installed using the x86_64 configuration, but arm64 builds will require a Raspberry Pi 4 with the Flutter tool installed to produce an arm64 Linux-compatible bundle.