Pangolin Desktop UI shell, designed for dahliaOS, written in Flutter.

Last update: May 22, 2022

WebsiteDiscordReleasesDonateDocumentation

Pangolin Desktop UI Tweet

Build and Deploy to Web Locale Generator Website Crowdin GitHub

  • Pangolin UI is a Desktop shell for dahliaOS, written in Flutter, runs on Linux and Zircon
  • Pangolin was named after a shelled animal like the Armadillo UI
  • Pangolin Desktop is based on the deprecated Capybara shell, with a custom window management system built from the ground up
  • You can check it online here!

Pangolin Desktop calculator app and quick-settings menu.

Pangolin Desktop app launcher screen.

Build Pangolin Desktop

If you're interested in building Pangolin, you can refer to Building and Running Pangolin

Contribute

If you're wondering how to contribute to the project, please refer to CONTRIBUTING.md

Translate

If you're interested in translating Pangolin, click here for more information on how to do so!

License

Copyright @ 2019-2022 - The dahliaOS Authors - [email protected]

This project is licensed under the Apache 2.0 license

GitHub

https://github.com/dahlia-os/pangolin-desktop
Comments
  • 1. supportsWeb property on Apps

    Description

    Some apps aren't available on the web, such as the Terminal and Files Manager. This PR adds a property that enable apps to tell if they can run on the web or not. If not, they won't show up

    Depends on https://github.com/dahliaOS/backend/pull/5 to be landed first

    Type of change

    Please tick the relevant option by putting an X inside the bracket

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    Checklist:

    • [x] My code follows the guidelines of this project
    • [x] I have performed a self-review of my own code
    • [ ] I have commented my code, particularly in hard-to-understand areas
    • [x] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    • [x] All current GitHub actions pass
    • [ ] Any dependent changes have been merged and published in downstream modules
    • [x] I have checked my code and corrected any misspellings
    • [x] I have read the CONTRIBUTING document
    Reviewed by bdlukaa at 2021-08-21 18:39
  • 2. adds Easy_locale as main locale/translation manager

    • Adds: xml, easy_locale as dependences

    • Replace locale delegates for delegates provided by easy_locale pkg

    • [x] New feature (non-breaking change which adds functionality)

    • [x] This change requires a documentation update

    How was this tested?

    Test Configuration:

    • dahliaOS Build number: 201004
    • Hardware:
    • VM:

    Checklist:

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    • [x] I have checked my code and corrected any misspellings
    Reviewed by allansrc at 2020-11-19 18:31
  • 3. Improved Quicksettings Look and Feel

    Hi, I tried to improve the look and feel of the quicksettings.

    I added a bit padding on the sides, increased the border radius, height and grid size and added bouncing physics. I also moved the featureNotImplemented dialog into its own function to recude unnecessary code. I changed the slider to two sliders, one for brightness and one for volume and made them slidable (but not actually working)

    And btw it looks like I changed much in main.dart but thats only because I auto formatted the code

    Preview: image

    Reviewed by larsb24 at 2020-06-21 17:30
  • 4. Running on MAC and Windows

    Can someone let me know if this is useful.

    I was curious what the UX experience is to run it on a Desktop. Its actually very useful, because you can run it in full screen, and just use the apps and forget about the real desktop behind it.

    also its quick for working on the app because go-flutter has hot reload.

    I only had to make minor mods to the main.dart file and add a main_desktop.dart file and break out the "MyApp" class to a new file called mainapp.dart, and get the new main.dart and main_desktop.dart to call it.

    https://www.youtube.com/watch?v=epoNDPnGjU0&feature=youtu.be

    • its funny how the Text Editor gets a bit confused when i try to select text.

    Makefile:

    # https://github.com/dahlia-os/pangolin-desktop
    
    # The main dev
    # [email protected]
    
    # wow it works on Mobiles
    
    LIB_NAME=pangolin-desktop
    LIB=github.com/dahlia-os/$(LIB_NAME)
    LIB_BRANCH=master
    LIB_FSPATH=$(GOPATH)/src/$(LIB)
    
    print:
    	@echo $(LIB_NAME)
    	@echo $(LIB)
    	@echo $(LIB_BRANCH)
    	@echo $(LIB_FSPATH)
    
    dep:
    	# git clone
    	mkdir -p $(LIB_FSPATH)
    	cd $(LIB_FSPATH) && cd .. && rm -rf $(NAME) && git clone https://$(LIB).git
    	cd $(LIB_FSPATH) && git checkout $(LIB_BRANCH)
    dep-clean:
    	rm -rf $(LIB_FSPATH)
    code:
    	code $(LIB_FSPATH)
    flu-dep:
    	cd $(LIB_FSPATH) && flutter packages get
    hov-dep:
    	go get -u github.com/go-flutter-desktop/hover
    	go get -u github.com/go-flutter-desktop/go-flutter
    
    mob-run:
    	cd $(LIB_FSPATH) && flutter run -d all
    desk-init:
    	# need to manually fix main.dart first DONE
    	cd $(LIB_FSPATH) && hover init $(LIB)
    desk-init-clean:
    	rm -rf $(LIB_FSPATH)/desktop
    desk-buildrun:
    	cd $(LIB_FSPATH) && hover build
    	open $(LIB_FSPATH)/desktop/build/outputs/darwin/Pangolin
    desk-run:
    	cd $(LIB_FSPATH) && hover run
    
    
    
    
    Reviewed by joeblew99 at 2019-08-01 23:23
  • 5. Update readme with new images of the desktop

    This is to show what the current desktop looks like, as the UI overhaul has drastically changed the overall appearance. So it would be a good idea to update the readme images to show the current state of the desktop.\

    Images come from the dahlia documentation website, it just links to them.

    Reviewed by EnderNightLord-ChromeBook at 2021-05-23 01:20
  • 6. Pangolin Window Manager

    Using a custom Xlib binding (with the help of ffigen), I've been able to communicate (somewhat oddly) with Xlib and thus the X-server. Here's what's happening and what needs to be done.

    • [x] Communication with X-server
    • [x] Window Manager Registration
    • [x] Window Management
    • [ ] and finally, making it look pretty.
    Reviewed by imreallyliam at 2020-09-24 02:54
  • 7. Update developer.dart

    Use power off instead of shutdown to completely shutdown kernel and device itself. Also include Bourne shell /bin/sh for making the is even more lightweight.

    Reviewed by Laniku at 2020-07-15 19:16
  • 8. Add web build & deploy

    This will implement a CI system for web demos. AFAIK you have to be on Chrome and a somewhat fast device to use it. I don't know, it's just the way Flutter's set up for some reason.

    Reviewed by bleonard252 at 2020-05-26 17:46
  • 9. Organized files. Added Fonts & Utils.

    • Moved all applications to application/ directory.
    • Added fonts for system wide use. (Not implemented)
    • Created an Inherited Widget for referencing to constants.
    • Developing Application Manager and component widgets.
    • Added Palette Generator (modified to extract colors from ByteArrays)
    Reviewed by predatorx7 at 2019-11-01 23:07
  • 10. Fix flutter syntax change in window/window.dart

    https://github.com/flutter/flutter/commit/4218c0bc38bc74a97b1b03d7b8b7f0ce32e29468

    it was commited on 22 april it must have got to stable flutter channel now

    we'll be having a lot of such situations as @nmcain said it'd be nice to have someone on dev channel of flutter to fix bugs before they even happen

    Reviewed by Horus125 at 2019-07-12 02:34
  • 11. Warning: implicit declaration of function 'waitpid' is invalid in C99

    The following error occurs when building on Linux.

    pangolin_desktop/linux/flutter/ephemeral/.plugin_symlinks/flutter_pty/src/flutter_pty_unix.c:94:5: warning: implicit declaration of function 'waitpid' is invalid in C99 [-Wimplicit-function-declaration]

    But for the record I am building on WSL2 so I'm not sure if it's to do with that, and I used flutter build linux.

    Reviewed by EnderNightLord-ChromeBook at 2022-05-26 23:14
  • 12. web apps in web demo

    Describe the solution you'd like I would like to have web apps in the web demo and have the ability to create web apps locally in the web demo

    Describe alternatives you've considered N/A

    For which platform is this feature request? web demo Do you have an idea of how we would add it? recreate the UI from the full operating system

    Why should we add it? to give people more examples of what the UI looks like in more applications

    Reviewed by glitch128 at 2022-05-24 18:48
  • 13. validate if url is image

    Pull request template

    • Please make sure you read and fill this template out entirely
    • PRs that don't have the template filled out will be ignored

    Description

    • Please include a summary of the change and which issue is fixed
    • Please also include relevant motivation and context (Why is this change required? What problem does it solve?)
    • List any dependencies that are required for this change
    • If it fixes an open issue, plase link to the issue here

    Fixes #(issue)

    Screenshots (if appropriate):

    Type of change

    Please tick the relevant option by putting an X inside the bracket

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    Checklist:

    • [x] My code follows the guidelines of this project
    • [ ] I have performed a self-review of my own code
    • [ ] I have commented my code, particularly in hard-to-understand areas
    • [ ] I have made corresponding changes to the documentation
    • [ ] My changes generate no new warnings
    • [ ] All current GitHub actions pass
    • [ ] Any dependent changes have been merged and published in downstream modules
    • [ ] I have checked my code and corrected any misspellings
    • [ ] I have read the CONTRIBUTING document
    Reviewed by quintenvandamme at 2022-03-17 19:35
  • 14. Fix request needing CORS hotfix#310

    Pull request template

    #310 error looks that a request (bing Images) required CORS headers: about CORS.Look to that related issue stackOverflow

    Description

    W.I.P

    Fixes #310

    Screenshots (if appropriate):

    Type of change

    Please tick the relevant option by putting an X inside the bracket

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    Checklist:

    • [x] My code follows the guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have commented my code, particularly in hard-to-understand areas
    • [ ] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    • [x] All current GitHub actions pass
    • [x] Any dependent changes have been merged and published in downstream modules
    • [x] I have checked my code and corrected any misspellings
    • [x] I have read the CONTRIBUTING document
    Reviewed by allansrc at 2022-03-15 04:09
  • 15. Implement acrylic switch to Searchbar widget

    Description

    Implements acrylic switch to Searchbar widget. This switch prevents that widget from rendering the blur effect unnecessarily.

    In some places, the search bar's position is not fixed and it scrolls within the list. However, it renders the blur effect again and this can affect the performance of this desktop environment. Also, it creates a bug, the blur effect of the settings app's search bar is affected by the selected widget. For example, see the screenshot below:

    Screenshot from 2022-03-12 14-02-22 Screenshot from 2022-03-12 14-02-46

    With this acrylic switch, the search bar's blur effect can be disabled, and also this can improve the general performance of this desktop environment. Also, this switch fixes the bug I mentioned above.

    After this switch, the settings app's search bar looks like this: Screenshot from 2022-03-12 14-06-22

    For now, I disabled the search bar's blur effect in the settings app, launcher overlay, and search overlay as I think it isn't necessary to re-render this effect in these places.

    Type of change

    Please tick the relevant option by putting an X inside the bracket

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    Checklist:

    • [x] My code follows the guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have commented my code, particularly in hard-to-understand areas
    • [ ] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    • [ ] All current GitHub actions pass
    • [ ] Any dependent changes have been merged and published in downstream modules
    • [x] I have checked my code and corrected any misspellings
    • [x] I have read the CONTRIBUTING document
    Reviewed by berkakkaya at 2022-03-14 13:29

Related

Flutter-Tasky-App - A Task App Designed With Flutter With Registration & Login Page
Flutter-Tasky-App - A Task App Designed With Flutter With Registration & Login Page

Flutter-Tasky-App- A task app designed with flutter with registration & login pa

May 17, 2022
Flutter form fields designed to take much of the burden of form-related coding off the programmer's back — masks, validations, keyboard type, etc.
Flutter form fields designed to take much of the burden of form-related coding off the programmer's back — masks, validations, keyboard type, etc.

well_formed Contents Overview Getting Started Demo application References Overview Well-Formed Widget Fields - Well-Formed - is a collection of Flutte

Jan 9, 2022
Live portfolio designed using Flutter 2.0 available for android and web.
Live portfolio designed using Flutter 2.0 available for android and web.

DevFolio - Portfolio for Developers Designed live portfolio using Flutter 2.0. Available for Android and Web. ?? How to install? Before these steps ma

May 26, 2022
Custom_Empty widget is flutter plugin which is designed to notify user about some event.
Custom_Empty widget is flutter plugin which is designed to notify user about some event.

Empty Widget Custom_Empty widget is flutter custom widget which is designed to notify user about some event. Screenshots Screenshots Screenshots Scree

Apr 4, 2022
Magpie is a visualized platform which designed to create, develop and compile your standalone flutter module.
Magpie is a visualized platform which designed to create, develop and compile your standalone flutter module.

Magpie Workflow is a visualized platform which is designed to create, develop and compile your standalone flutter module;

Feb 11, 2022
Calculator provides simple and advanced mathematical functions in a beautifully designed app.
Calculator provides simple and advanced mathematical functions in a beautifully designed app.

Hi there, I'm Behruz Hurramov Getting Started $ git clone https://github.com/ariscybertech/aris_calculator.git $ flutter packages get Run the applicat

Mar 13, 2022
Calculator provides simple and advanced mathematical functions in a beautifully designed app.
Calculator provides simple and advanced mathematical functions in a beautifully designed app.

Adv Calculator See LICENSE A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get y

Feb 21, 2022
eDoc mobile application is designed as an example of a medical application that allows doctors to manage appointments
eDoc mobile application is designed as an example of a medical application that allows doctors to manage appointments

eDoc Mobile App (Demo Version) ✨ About The eDoc mobile application is designed a

Jan 10, 2022
The Mashmart mobile app is designed as an example of how to retrieve data from the JSON API
The Mashmart mobile app is designed as an example of how to retrieve data from the JSON API

Mashmart Mobile App (Demo Version) ✨ About The Mashmart mobile app is designed a

Jan 10, 2022
I just designed this within 30 min after watching a video by tech school on YouTube.
I just designed this within 30 min after watching a video by tech school on YouTube.

nft_app A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if t

Dec 25, 2021
Login-page-ui - An animated login page, designed with dart
Login-page-ui - An animated login page, designed with dart

Beautiful Login Page UI Design and Animation ScreenShots This is one of my best

Apr 25, 2022
A cryptocurrency, crypto-currency, or crypto is a digital currency designed to work as a medium of exchange through a computer network that is not reliant on any central authority

?? Crypto Trackers ?? Crypto Currency ?? A cryptocurrency, crypto-currency, or crypto is a digital currency designed to work as a medium of exchange t

May 6, 2022
Flutter Slides utilizes Flutter Desktop Embedding to provide a simple slide presentation app
Flutter Slides utilizes Flutter Desktop Embedding to provide a simple slide presentation app

Flutter Slides Flutter Slides utilizes Flutter Desktop Embedding to provide a simple slide presentation app. Presentations are data driven from files

Jan 30, 2022
Simple tool to open WhatsApp chat without saving the number, developed using Google's Flutter Framework. for Android/ IOS/ Desktop/ Web
Simple tool to open WhatsApp chat without saving the number, developed using Google's Flutter Framework. for Android/ IOS/ Desktop/ Web

OpenWp Simple tool to open WhatsApp chat without saving the number Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About

Mar 5, 2022
An Ubuntu desktop settings app made with Flutter
An Ubuntu desktop settings app made with Flutter

unofficial Ubuntu Desktop Settings App made with Flutter - WIP TODO use real yaru icons - thanks to @Jupi007 improve layout implement settings search

May 20, 2022
Trying out Flutter for desktop Web app development as an alternative to SPA frameworks (such as React and Angular) by recreating one of the pages of an existing CV Management web app

HTML Renderer Demo CanvasKit Renderer Demo Reddit discussion This repo contains a PoC of using Flutter as a traditional SPA framework for creating a d

Jan 18, 2022
A curated list of awesome things related to Flutter desktop.

awesome-flutter-desktop A curated list of awesome things related to Flutter desktop. Table of Contents awesome-flutter-desktop Packages Open Source Ap

May 19, 2022
This plugin allows Flutter desktop apps to Retrieve information about screen size, displays, cursor position, etc.

screen_retriever This plugin allows Flutter desktop apps to Retrieve information about screen size, displays, cursor position, etc. screen_retriever P

May 5, 2022
A Flutter application running on mobile, web and desktop. Stay tuned to see who will win the stars race!
A Flutter application running on mobile, web and desktop. Stay tuned to see who will win the stars race!

The live stars race Access this project running at jhbitencourt.github.io/stars-race An app running on mobile, web and desktop. How long do you think

Apr 27, 2021