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

Overview

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

For the submodules, use

git submodule update --init --recursive && cd backend && git checkout main

Contribute

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

Translate

If you're interested in translating Pangolin, please click this link!

The link above points to Crowdin which we use for translations so please use that for submitting translations!

If your language is not added, let us know and we'll add it!

License

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

This project is licensed under the Apache 2.0 license

Comments
  • supportsWeb property on Apps

    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
    opened by bdlukaa 10
  • adds Easy_locale as main locale/translation manager

    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
    enhancement 
    opened by allansrc 9
  • Improved Quicksettings Look and Feel

    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

    opened by larsb24 8
  • Running on MAC and Windows

    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
    
    
    
    
    enhancement 
    opened by joeblew99 6
  • Update readme with new images of the desktop

    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.

    opened by EnderNightLord-ChromeBook 5
  • Pangolin Window Manager

    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.
    enhancement 
    opened by imreallyliam 5
  • Update developer.dart

    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.

    opened by Laniku 5
  • Add web build & deploy

    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.

    enhancement 
    opened by bleonard252 5
  • Organized files. Added Fonts & Utils.

    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)
    opened by predatorx7 5
  • Fix flutter syntax change in window/window.dart

    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

    opened by Horus125 5
  • inplement terminal fix in app_list.dart

    inplement terminal fix in app_list.dart

    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

    This fixes the terminal code in this file by removing it completely because pangolin would not build otherwise

    • 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
    • [ X] I have performed a self-review of my own code
    • [ X] 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
    • [ 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
    opened by wat9rz 4
  • build(deps): bump lint from 1.10.0 to 2.0.1

    build(deps): bump lint from 1.10.0 to 2.0.1

    Bumps lint from 1.10.0 to 2.0.1.

    Changelog

    Sourced from lint's changelog.

    2.0.1

    • Update changelog

    2.0.0

    Requires Dart sdk: '>=2.18.0'

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump battery_plus from 2.2.2 to 3.0.2

    build(deps): bump battery_plus from 2.2.2 to 3.0.2

    Bumps battery_plus from 2.2.2 to 3.0.2.

    Release notes

    Sourced from battery_plus's releases.

    battery_plus 3.0.2

    What's Changed

    Full Changelog: https://github.com/fluttercommunity/plus_plugins/compare/battery_plus-v3.0.1...battery_plus-v3.0.2

    battery_plus 3.0.1

    What's Changed

    Full Changelog: https://github.com/fluttercommunity/plus_plugins/compare/battery_plus-v3.0.0...battery_plus-v3.0.1

    battery_plus 3.0.0

    What's Changed

    Full Changelog: https://github.com/fluttercommunity/plus_plugins/compare/battery_plus-v2.2.2...battery_plus-v3.0.0

    Commits
    • 37abbf7 chore(release): prepare for release (#1277)
    • 1cb640d fix(all): Increase min Flutter version to fix dartPluginClass registration (#...
    • 8bf6896 chore(deps): bump gradle from 7.3.0 to 7.3.1 in /packages/network_info_plus/n...
    • 57724e3 chore(network_info_plus): Update Kotlin, Gradle and add Dependabot config (#1...
    • 92e183b chore(package_info_plus): Update Kotlin, Gradle and add Dependabot config (#1...
    • 3c52458 chore(share_plus): bump core-ktx from 1.7.0 to 1.9.0, bump compileSDK to 33 (...
    • b7b785d release(connectivity_plus_platform_interface): force release
    • 8fcc106 chore(battery_plus): Update Kotlin, Gradle and add Dependabot config (#1269)
    • 4bd0ccd chore(device_info_plus): Update Kotlin, Gradle and add Dependabot config (#1268)
    • e99b67a chore(deps): bump annotation from 1.3.0 to 1.5.0 in /packages/share_plus/shar...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Zenit UI slider

    Zenit UI slider

    Description

    • This isn't much of an issue more of an improvement, on your website it shows the zenit UI slider for the quick settings, so I added it!
    • new dependencies zenit_ui

    Screenshot

    image

    Type of change

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

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] 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
    • [x] 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
    opened by AwkwardTeenageBoy 0
  • Adding strict linting rules

    Adding strict linting rules

    Description

    To promote a higher quality and readable code, I am trying to introduce strict linting rules. The rules applied were based on Very Good Ventures' rules from the very_good_analysis package repo.

    This is their article about the package.

    First, I removed the lint package from the pubspec.yaml file. Then I took their rules and added them to the analysis_options.yaml file. After running dart fix --apply, I manually fixed other warnings, and removed the rules that would introduce somewhat significant changes to the code.

    No dependencies are required for this change.

    Type of change

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

    I am really not sure what to check here for this.

    • [ ] 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
    • [ ] 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
    opened by HVitureira 4
  • Customization screen:Make Theme,Taskbar Responsive

    Customization screen:Make Theme,Taskbar Responsive

    Description

    • Makes Customisation screen responsive.
      • Makes Theme Section horizontally scrollable
      • Makes Taskbar Section resizable (Changed the widget from Stack > Row)

    Screenshots (if appropriate):

    • Previously Screenshot 2022-08-24 at 4 26 41 PM (2)

    • Now

    Screenshot 2022-08-24 at 5 43 27 PM (2)

    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
    • [x] 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
    bug 
    opened by DattatreyaReddy 0
  • [Settings] Center hint text in search bar and fix padding.

    [Settings] Center hint text in search bar and fix padding.

    Centers search bar hint text by increasing it to 46 pixels high. Will submit an issue to the flutter repo.

    Also fixes some padding to make the search bar more symmetric.

    opened by whiskeyPeak 4
Releases(dap-stable)
Owner
dahliaOS
dahliaOS is a modern, secure, lightweight and responsive operating system, combining the best of GNU/Linux and Fuchsia OS.
dahliaOS
Use Dart to call Shell, complete the work of compiling Golang CGO code into a so, dll, a, WASM, and etc.

Use Dart to call Shell, complete the work of compiling Golang CGO code into a so, dll, a, WASM, and etc. And place it in the corresponding source file directory of each Flutter platform.

Dorain Gray 30 Dec 30, 2022
Sol - an imperative, statically-typed language designed as a tool for learning how to program

SOL: Simple Obvious Language Sol is an imperative, statically-typed language designed as a tool for learning how to program. It is simple, in that it

Christopher Fujino 3 Oct 6, 2022
A Flutter package that makes it easy to customize and work with your Flutter desktop app window.

bitsdojo_window A Flutter package that makes it easy to customize and work with your Flutter desktop app window on Windows, macOS and Linux. Watch the

Bits Dojo 607 Jan 4, 2023
Flutter plugin for Flutter desktop(macOS/Linux/Windows) to change window size.

desktop_window Flutter plugin for Flutter desktop(macOS/Linux/Windows) to change window size. Usage import 'package:desktop_window/desktop_window.dart

ChunKoo Park 72 Dec 2, 2022
A Flutter package that makes it easy to customize and work with your Flutter desktop app's system tray.

system_tray A Flutter package that that enables support for system tray menu for desktop flutter apps. on Windows, macOS and Linux. Features: - Modify

AnTler 140 Dec 30, 2022
File picker plugin for Flutter, compatible with mobile (iOS & Android), Web, Desktop (Mac, Linux, Windows) platforms with Flutter Go support.

A package that allows you to use the native file explorer to pick single or multiple files, with extensions filtering support.

Miguel Ruivo 987 Jan 6, 2023
This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut).

hotkey_manager This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut). hotkey_manager Platform Support Quick Star

LeanFlutter 81 Dec 21, 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

LeanFlutter 27 Dec 6, 2022
This plugin allows Flutter desktop apps to extract text from screen.

screen_text_extractor This plugin allows Flutter desktop apps to extract text from screen. screen_text_extractor Platform Support Quick Start Installa

LeanFlutter 30 Dec 21, 2022
This plugin allows Flutter desktop apps to defines system tray.

tray_manager This plugin allows Flutter desktop apps to defines system tray. tray_manager Platform Support Quick Start Installation ⚠️ Linux requireme

LeanFlutter 122 Dec 22, 2022
This plugin allows Flutter desktop apps to resizing and repositioning the window.

window_manager This plugin allows Flutter desktop apps to resizing and repositioning the window. window_manager Platform Support Quick Start Installat

LeanFlutter 351 Jan 7, 2023
A platform adaptive Flutter app for desktop, mobile and web.

Flutter Folio A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web.

gskinner team 3.5k Jan 2, 2023
Unofficial Ubuntu Desktop Settings App made with Flutter

Unofficial Ubuntu Desktop Settings App made with Flutter - WIP The goal of this project is to build a feature complete settings app for the Ubuntu des

Frederik Feichtmeier 239 Jan 1, 2023
Simple file explorer for desktop made with Flutter, highly inspired by macOS Finder

file_explorer A basic file explorer made with Flutter Getting Started This project is a starting point for a Flutter application. A few resources to g

Valentin 0 Nov 7, 2021
An 🎵 audio playback library for Flutter Desktop. Supports Windows & Linux. Based on miniaudio.

✒ libwinmedia is sequel to this project. It provides network playback, better format support, control & features. An audio playback library for Flutte

Hitesh Kumar Saini 50 Oct 31, 2022
Experimental plugins for Flutter for Desktop

Desktop Embedding for Flutter This project was originally created to develop Windows, macOS, and Linux embeddings of Flutter. That work has since beco

Google 7.1k Jan 7, 2023
Build beautiful desktop apps with flutter and rust. 🌠 (wip)

flutter-rs Build flutter desktop app in dart & rust. Get Started Install requirements Rust flutter sdk Develop install the cargo flutter command cargo

null 2k Dec 26, 2022
Create Desktop app with Flutter

Flutter Desktop Codelab Slides Créer votre première appli Desktop avec Flutter App Design Dribble YoPro Setup Linux MacOs Windows Generate executable

Flutter Togo 24 Nov 18, 2022
Implementation of Flutter Desktop Application

Flashmall Vendor This project is an implementation of a Design i found on Dibble.com by Casprine Assempah Art Light Theme Dark Theme Getting Started T

Etornam Sunu 38 Nov 22, 2022