Flutter library for window blur & transparency effects for on Windows & Linux. πŸ’™

Overview

flutter_acrylic

Window blur & transparency effects for Flutter on Windows & Linux

Installation

Mention in your pubspec.yaml.

dependencies:
  ...
  flutter_acrylic: ^0.0.2

Example

You can download & try out the example application.

Documentation

Acrylic

Initialize the plugin inside the main method.

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  Acrylic.initialize();
  runApp(MyApp());
}

Apply the effect to Flutter window.

Acrylic.setEffect(
  effect: AcrylicEffect.aero,
  gradientColor: this.color
);

Following effects are available.

  • AcrylicEffect.disabled.
  • AcrylicEffect.solid.
  • AcrylicEffect.transparent.
  • AcrylicEffect.aero.
  • AcrylicEffect.acrylic.

Window

Other utility features offered by the plugin.

Enter fullscreen.

Window.enterFullscreen();

Exit fullscreen.

Window.exitFullscreen();

More features coming soon.

Notes

Linux

Additional setup for Linux.

Find my_application.cc inside the linux directory of your Flutter project & remove following lines from it.

gtk_widget_show(GTK_WIDGET(window));
gtk_widget_show(GTK_WIDGET(view));

Adding blur to the Window.

Since current Flutter embedder on Linux uses GTK 3.0, so there is no official API available for backdrop blur of the window.

However, some desktop environments like KDE Plasma (with KWin compositor) have some third party scripts like kwin-forceblur from Eon S. Jeon, which allow to add blur to GTK 3.0 windows aswell, when the window is transparent (which you can certainly achieve using the plugin). Thus, this setup can be used to obtain result as shown in the picture.

Blur on Linux is more dependent on the compositor, some compositors like compiz or wayfire also seem to support blur effects.

Windows

This plugin exposes the undocumented SetWindowCompositionAttribute API from user32.dll on Windows 10. Learn more at Rafael Rivera's amazing blog post about this here.

In most cases, you might wanna render custom window frame because the blur effect might leak outside the window boundary. You can use bitsdojo_window to make a custom window for your Flutter application.

Currently AcrylicEffect.acrylic causes lag on window drag, this is a bug in Windows itself. Latest Windows 11 build appears to be fixing this issue.

You can see the example application for further details.

License

MIT License. Contributions welcomed.

More

Checkout other awesome projects for Flutter on Windows

(Irrespective of order)

  • bitsdojo_window
    • A Flutter package that makes it easy to customize and work with your Flutter desktop app window.
  • fluent_ui
    • Implements Microsoft's Fluent Design System in Flutter.

Aero blur effect.

Transparent Flutter window.

Comments
  • Not fully transparent on MacOS

    Not fully transparent on MacOS

    System

    • MacOS Monterey Pro, V12.2, M1 Chip

    Flutter

    Flutter 2.10.3 β€’ channel stable β€’ https://github.com/flutter/flutter.git
    Framework β€’ revision 7e9793dee1 (13 days ago) β€’ 2022-03-02 11:23:12 -0600
    Engine β€’ revision bd539267b4
    Tools β€’ Dart 2.16.1 β€’ DevTools 2.9.2
    

    Issue

    • Same code on MacOS and a windows PC. The Windows machine shows the background as it should when transparency is set but the MacOS machine doesn't show with 100% transparency. It's like 20% transparent maybe.
    • I did follow the extra steps for MacOS found here: https://alexmercerind.github.io/docs/flutter_acrylic/#macos but still no luck

    Any advice? Thanks

    enhancement macOS 
    opened by dlewis2017 14
  • [macOS] Is It Possible To Have Multiple Effect In One Window?

    [macOS] Is It Possible To Have Multiple Effect In One Window?

    Since macOS window's color could change with desktop background, is it possible or is there a workaround to have multiple effect on one window? Like the Email app or Apple Music app on macOS?

    ζˆͺ屏2022-10-01 00 13 25 ζˆͺ屏2022-10-01 00 13 41
    opened by meike02 9
  • Continuous Frame creation

    Continuous Frame creation

    Hi, When using flutter_acrylic I see a continuous frame creation and a CPU load of ~10% even if no rebuild happens. The moment I remove flutter_acrylic the issue is gone.

    I can also reproduce this with the example app from this repository.

    Is this intended / needed / known?

    CleanShot 2022-05-18 at 23 30 02

    flutter doctor -v                                        
    [βœ“] Flutter (Channel stable, 3.0.0, on macOS 12.3.1 21E258 darwin-arm, locale en-DE)
        β€’ Flutter version 3.0.0 at /Users/mlamers/fvm/versions/stable
        β€’ Upstream repository https://github.com/flutter/flutter.git
        β€’ Framework revision ee4e09cce0 (9 days ago), 2022-05-09 16:45:18 -0700
        β€’ Engine revision d1b9a6938a
        β€’ Dart version 2.17.0
        β€’ DevTools version 2.12.2
    
    [βœ“] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
        β€’ Android SDK at /Users/mlamers/Library/Android/sdk
        β€’ Platform android-31, build-tools 31.0.0
        β€’ Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
        β€’ Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
        β€’ All Android licenses accepted.
    
    [βœ“] Xcode - develop for iOS and macOS (Xcode 13.3.1)
        β€’ Xcode at /Applications/Xcode.app/Contents/Developer
        β€’ CocoaPods version 1.11.3
    
    [βœ“] Android Studio (version 2021.2)
        β€’ Android Studio at /Applications/Android Studio.app/Contents
        β€’ Flutter plugin can be installed from:
          πŸ”¨ https://plugins.jetbrains.com/plugin/9212-flutter
        β€’ Dart plugin can be installed from:
          πŸ”¨ https://plugins.jetbrains.com/plugin/6351-dart
        β€’ Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    
    [βœ“] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
        β€’ IntelliJ at /Users/mlamers/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
        β€’ Flutter plugin can be installed from:
          πŸ”¨ https://plugins.jetbrains.com/plugin/9212-flutter
        β€’ Dart plugin can be installed from:
          πŸ”¨ https://plugins.jetbrains.com/plugin/6351-dart
    
    [βœ“] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
        β€’ IntelliJ at /Users/mlamers/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app
        β€’ Flutter plugin can be installed from:
          πŸ”¨ https://plugins.jetbrains.com/plugin/9212-flutter
        β€’ Dart plugin can be installed from:
          πŸ”¨ https://plugins.jetbrains.com/plugin/6351-dart
    
    [βœ“] IntelliJ IDEA Ultimate Edition (version 2021.3.1)
        β€’ IntelliJ at /Users/mlamers/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6461.79/IntelliJ IDEA.app
        β€’ Flutter plugin can be installed from:
          πŸ”¨ https://plugins.jetbrains.com/plugin/9212-flutter
        β€’ Dart plugin can be installed from:
          πŸ”¨ https://plugins.jetbrains.com/plugin/6351-dart
    
    [βœ“] VS Code (version 1.67.2)
        β€’ VS Code at /Applications/Visual Studio Code.app/Contents
        β€’ Flutter extension version 3.40.0
    
    [βœ“] Connected device (1 available)
        β€’ macOS (desktop) β€’ macos β€’ darwin-arm64 β€’ macOS 12.3.1 21E258 darwin-arm
    
    [βœ“] HTTP Host Availability
        β€’ All required HTTP hosts are available
    
    β€’ No issues found!
    

    PS I had to do flutter pub upgrade in order to get rid of some problems in the win32 package in combination with Flutter 3

    opened by devmil 8
  • [Question] got flutter_acrylic/FlutterAcrylicPlugin.swift:471: Fatal error: Unexpectedly found nil while unwrapping an Optional value when intergate in a not-nullsafety project

    [Question] got flutter_acrylic/FlutterAcrylicPlugin.swift:471: Fatal error: Unexpectedly found nil while unwrapping an Optional value when intergate in a not-nullsafety project

    Hi, my project not fully using nullsafety. when intergate to my project, the window appear a second and crash, error:

    flutter_acrylic/FlutterAcrylicPlugin.swift:471: Fatal error: Unexpectedly found nil while unwrapping an Optional value
    

    do u know why?

    I have init it:

    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Window.initialize();
      if (Platform.isWindows) {
        await Window.hideWindowControls();
      }
    
      initializeDateFormatting().then((_) => runApp(MyApp()));
    
      if (Platform.isWindows) {
        doWhenWindowReady(() {
          appWindow
            ..minSize = Size(640, 360)
            ..size = Size(720, 540)
            ..alignment = Alignment.center
            ..show();
        });
      }
    }
    
    
    

    the rest of the thing are exactly same on example app, the example app I can run it sucess.

    opened by jinfagang 4
  • Window effects look strange on Windows 7 & 8.1

    Window effects look strange on Windows 7 & 8.1

    I rewrote the example with the window_manager library (because bitsdojo_window doesn't work on these systems) and ran it on virtual machines with Windows 7 and 8.1. And it looks... weird.

    https://user-images.githubusercontent.com/46501450/166160284-5e5e42f6-f0b6-45a9-b89b-b89125074325.mp4

    (I also ran an example from fluent_ui library.)

    In Windows 8.1 (and in Windows 8, I guess) the effect is the same as in the video

    opened by tangenx 4
  • [BUG] Window shadows and window preview bugs

    [BUG] Window shadows and window preview bugs

    I have found two bugs:

    1. When mica is enabled and set to dark mode, the window shadow is twice as thick as it would be if it was disabled or set to light mode.
    2. The window preview (hovering the mouse over the app icon) is transparent where the mica effect should be shown, this is especially noticeable in light mode:

    image ^ Actual window

    image ^ Window preview

    wontfix 
    opened by alesimula 4
  • macos transparency and effects only when focused

    macos transparency and effects only when focused

    Seems like the macos effects are only available when the window focused. Is there some way around this? The Mac Terminal Silver Aero does this kind of...

    (I was hoping for a see-thru window)

    enhancement 
    opened by tofutim 4
  • Release 1.1.0 on pub.dev

    Release 1.1.0 on pub.dev

    The latest release is nearly a year old. Would it be possible for the contributors to release a new version to pub.dev since there have been some changes which would really justify a new version?

    opened by krjw-eyev 3
  • Error with `Window.addToolbar()`

    Error with `Window.addToolbar()`

    When building the app that has the code Window.addToolbar() in it, it fails to build with the following message:

    /Users/USR1132/flutter/.pub-cache/git/flutter_acrylic-49776d5078b2c482e552fa090a8db948c66b3ec6/macos/Classes/MainFlutterWindowManipulator.swift:391:26: error: 'init()' is only available in macOS 10.13 or newer
            let newToolbar = NSToolbar()
                             ^
            let newToolbar = NSToolbar()
                             ^
        public static func addToolbar() {
                           ^
    public class MainFlutterWindowManipulator {
    

    This can be fixed by wrapping the code within addToolbar() function with this:

    if #available(macOS 10.13, *) {
    	//...
    }
    
    opened by damywise 3
  • Mica does not react to window blurring when title bar is hidden

    Mica does not react to window blurring when title bar is hidden

    Hi, I'm using flutter_acrylic together with window_manager. My main() function writes as shown below.

    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
    
      await Window.initialize();
    
      await windowManager.ensureInitialized();
      const windowOptions = WindowOptions(
        title: _appName,
        size: Size(800, 600),
        center: true,
        // titleBarStyle: TitleBarStyle.hidden, // <- this line is the case
      );
      await windowManager.waitUntilReadyToShow(windowOptions, () async {
        await windowManager.show();
        await windowManager.focus();
      });
    
      runApp(const GalleryApp());
    }
    

    And in my app widget's initState():

      @override
      void initState() {
        super.initState();
    
        Window.setEffect(
          effect: WindowEffect.mica,
          dark: FluffApp.dark,
        );
      }
    

    With titleBarStyle: TitleBarStyle.normal (the default value), mica works perfectly and turns solid properly when the window is blurred (losing focus).

    • Focused image
    • Blurred image

    However after I set titleBarStyle: TitleBarStyle.hidden, the mica background does not react to focus changes any more.

    • Focused image
    • Blurred. The focus is in the terminal app, but tbe mica background is still transparent. image

    Please help to look into this problem, and let me know if I'm doing anything wrong. Thanks in advance.

    opened by beta 3
  • Windows 11 title bar customization

    Windows 11 title bar customization

    As explained in Microsoft's Docs, in Windows 11 the title bar can be customized to fit the design language of the application. For example, the settings app now does this. It would be nice to have this feature in this plugin so that having a custom window isn't necessary. I can implement it myself if anyone is willing to explain to me how I can edit the windows module with lining(for some reason it doesn't work)

    opened by Auties00 3
  • cold start still shows white background color before acrylic loaded

    cold start still shows white background color before acrylic loaded

    When the application starts for the first time on Windows, there is a white background color show first then change to acrylic after 1 sec.

    How can I prevent this??

    I try to set MaterialApp to transparent, but no hope

    import 'package:flutter/material.dart';
    import 'package:flutter_acrylic/flutter_acrylic.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Window.initialize();
      await Window.setEffect(
        effect: WindowEffect.acrylic,
        color: const Color(0xCC222222),
      );
      // await Window.enterFullscreen();
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            // This is the theme of your application.
            //
            // Try running your application with "flutter run". You'll see the
            // application has a blue toolbar. Then, without quitting the app, try
            // changing the primarySwatch below to Colors.green and then invoke
            // "hot reload" (press "r" in the console where you ran "flutter run",
            // or simply save your changes to "hot reload" in a Flutter IDE).
            // Notice that the counter didn't reset back to zero; the application
            // is not restarted.
            primarySwatch: Colors.blue,
            visualDensity: VisualDensity.adaptivePlatformDensity,
            backgroundColor: Colors.transparent
          ),
          home: const MyHomePage(title: 'Flutter Demo Home Page')
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      const MyHomePage({super.key, required this.title});
    
      // This widget is the home page of your application. It is stateful, meaning
      // that it has a State object (defined below) that contains fields that affect
      // how it looks.
    
      // This class is the configuration for the state. It holds the values (in this
      // case the title) provided by the parent (in this case the App widget) and
      // used by the build method of the State. Fields in a Widget subclass are
      // always marked "final".
    
      final String title;
    
      @override
      State<MyHomePage> createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      int _counter = 0;
    
      void _incrementCounter() {
        setState(() {
          // This call to setState tells the Flutter framework that something has
          // changed in this State, which causes it to rerun the build method below
          // so that the display can reflect the updated values. If we changed
          // _counter without calling setState(), then the build method would not be
          // called again, and so nothing would appear to happen.
          _counter++;
        });
      }
    
      @override
      Widget build(BuildContext context) {
        // This method is rerun every time setState is called, for instance as done
        // by the _incrementCounter method above.
        //
        // The Flutter framework has been optimized to make rerunning build methods
        // fast, so that you can just rebuild anything that needs updating rather
        // than having to individually change instances of widgets.
        return Scaffold(
          // appBar: AppBar(
          //   // Here we take the value from the MyHomePage object that was created by
          //   // the App.build method, and use it to set our appbar title.
          //   title: Text(widget.title),
          // ),
          body: Center(
            // Center is a layout widget. It takes a single child and positions it
            // in the middle of the parent.
            child: Column(
              // Column is also a layout widget. It takes a list of children and
              // arranges them vertically. By default, it sizes itself to fit its
              // children horizontally, and tries to be as tall as its parent.
              //
              // Invoke "debug painting" (press "p" in the console, choose the
              // "Toggle Debug Paint" action from the Flutter Inspector in Android
              // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
              // to see the wireframe for each widget.
              //
              // Column has various properties to control how it sizes itself and
              // how it positions its children. Here we use mainAxisAlignment to
              // center the children vertically; the main axis here is the vertical
              // axis because Columns are vertical (the cross axis would be
              // horizontal).
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                const Text(
                  'You have pushed the button this many times:',
                ),
                Text(
                  '$_counter',
                  style: Theme.of(context).textTheme.headline4,
                ),
              ],
            ),
          ),
          floatingActionButton: FloatingActionButton(
            onPressed: _incrementCounter,
            tooltip: 'Increment',
            child: const Icon(Icons.add),
          ),
          backgroundColor: Colors.transparent,
        );
      }
    }
    
    
    opened by sattha 0
  • Highlight still visible after calling `Window.makeWindowFullyTransparent()`

    Highlight still visible after calling `Window.makeWindowFullyTransparent()`

    Calling Window.makeWindowFullyTransparent() (introduced in #48) is supposed to make the window fully transparent (with only flutter-drawn widgets, the title, and the traffic light buttons remaining visible), however, a thin, white line, which is supposed to represent a highlight on top of the window, still remains visible:

    image

    Since this is unintended, it is currently considered a bug. Ideally, there would be methods called Window.enableHighlight() and Window.disableHighlight() which could be called by Window.makeWindowFullyTransparent() to remove the line, however, I could not find a way to achieve this.

    For this reason, I am opening this issue with a β€œhelp wanted” label. If anybody knows of a way to disable the highlight of an NSWindow within Swift, please reach out to me.

    bug help wanted macOS 
    opened by Adrian-Samoticha 2
  • Weird performance issues while dragging app's window

    Weird performance issues while dragging app's window

    Hi there.

    First of all, thank you for tackling on the issue of translucent windows in desktop apps.

    As stated in the title, I get really poor and weird performance when dragging my window: it is very laggy and depending on the effect, it behaves erratically.

    I have tested Windows only for now.

    Using the following effects:

    • Transparent: no issue, perfectly smooth
    • Areo: quite laggy (definitely around 30 FPS, possily less)
    • Acrylic: somewhat not that laggy, but slow as hell and erratic. When I drag the window, it lags behind my mouse. There is an after-effect where the mouse is stuck in the app. When I release my mouse, it re-appears and a few seconds later the app's window arrives at final position.
    • Mica: cannot test (not using Windows 11).

    Obviously I tried in profile & release mode but there is no effect. My computer is now slow:

    • i don't get the same behavior with other Windows apps
    • It sports a 7th Gen i7 Intel Core and a RTX 2070.

    Does anyone get that issue ?

    opened by ricard-v 0
  • How to dynamic set effect based on system version?

    How to dynamic set effect based on system version?

    Hello, I using this to dynamic set window effect, but have no reasponse:

    
      DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
    
      void getWindowEffect() async {
        if (Platform.isWindows) {
          var sysProductName = await deviceInfo.windowsInfo;
          var pn = sysProductName.productName;
          print("--- windows information:::: ${pn}");
          if (pn.contains("Windows 10")) {
            setState(() {
              this.effect = WindowEffect.disabled;
            });
    
            print("effect set to: ${this.effect}");
          } else {
            this.effect = WindowEffect.acrylic;
          }
        } else {
          this.effect = WindowEffect.acrylic;
        }
      }
    

    Am using Windowefffect.acrylic as default, but this should change if on windows 10, since it has bug when mouse dragging on window.

    How should I do properly? thanks

    opened by jinfagang 1
  • can not get windows dark -> light switch, but macOS is OK

    can not get windows dark -> light switch, but macOS is OK

    Hi, I have a same logic like this:

    if (brightness == InterfaceBrightness.dark) {
                                brightness = InterfaceBrightness.light;
                              } else if (brightness == InterfaceBrightness.light) {
                                brightness = InterfaceBrightness.dark;
                              } else {
                                brightness = InterfaceBrightness.dark;
                              }
                              bool v = brightness == InterfaceBrightness.dark;
                              // aboutBloc.setForceDark(v);
                              if (v) {
                                Get.changeTheme(themeDataDark);
                              } else {
                                Get.changeTheme(themeData);
                              }
                              print('[brightness] crt brightness: ${brightness}');
                              this.setWindowEffect(WindowEffect.acrylic,
                                  brightness == InterfaceBrightness.dark);
    
    ...
    
    void setWindowEffect(WindowEffect value, bool dark) {
        Window.setEffect(
          effect: value,
          color: this.color,
          dark: dark,
        );
        if (Platform.isMacOS) {
          if (brightness != InterfaceBrightness.auto) {
            Window.overrideMacOSBrightness(
                dark: brightness == InterfaceBrightness.dark);
          }
        }
        this.setState(() => this.effect = value);
      }
    
    
    
    

    the printed out brightness is dark and light when switch.

    But the setWindowEffect can not make window to bright. While same code on macOS is ok.

    what'sthe problem here?

    opened by jinfagang 7
Releases(v1.1.0)
  • v1.1.0(Dec 30, 2022)

    • Added methods to add a toolbar to the window on macOS and change its style.
    • Added methods to enable/disable the window's shadow on macOS.
    • Added method to make the window fully transparent on macOS.
    • Added methods to ignore mouse events on macOS.
    • Added method to set the window's subtitle on macOS.
    • Added methods and widgets to create visual effect subviews on macOS.
    • Improved documentation of various widgets and classes.

    Breaking change: Migrated to macos_window_utils. See the migration guide for more information.

    Source code(tar.gz)
    Source code(zip)
    flutter_acrylic_example_macos.app.zip(19.05 MB)
    flutter_acrylic_example_windows_x64.7z(6.03 MB)
  • v1.0.0(Jan 28, 2022)

    • Fixed WindowEffect.mica not working on Windows 11 builds higher or equal to 22523 (@alexmercerind).
    • Fixed compatibility with bitsdojo_window (@alexmercerind).
    • Added macOS support (@Adrian-Samoticha).
    • Added new WindowEffect.tabbed entry for newer Windows 11 builds (@alexmercerind).
    • Address issues #10, #11, and #12 and add extra utility features for macOS (@Adrian-Samoticha).

    [v1.0.0+1]

    • Updated Linux method call handler to match new channel & method names.
    Source code(tar.gz)
    Source code(zip)
    flutter_acrylic_example_windows_x64.7z(6.03 MB)
  • v0.1.0(Oct 25, 2021)

    • πŸŽ‰ Implement WindowEffect.mica for Windows 11 or greater.
    • BREAKING: Rename AcrylicEffect enum to WindowEffect.
    • BREAKING: Rename gradientColor argument to color.
    • BREAKING: Remove Acrylic class & move all static methods to Window class itself.
    • Add Window.showWindowControls & Window.hideWindowControls.
    Source code(tar.gz)
    Source code(zip)
  • v0.0.2(Jul 29, 2021)

  • v0.0.1(Jun 22, 2021)

    This release of flutter_acrylic adds:

    • Added Acrylic class to use aero or acrylic blur effects on Flutter Windows.
    • Added following effects to the plugin:
      • AcrylicEffect.disabled.
      • AcrylicEffect.solid.
      • AcrylicEffect.transparent.
      • AcrylicEffect.aero.
      • AcrylicEffect.acrylic.
    • Other features.
      • Added Window.enterFullscreen & Window.exitFullscreen methods to make Flutter Window fullscreen.
    Source code(tar.gz)
    Source code(zip)
    flutter_acrylic_example.zip(7.87 MB)
Owner
Hitesh Kumar Saini
Flutter & React.js developer. Writes C++, Dart, JS & Python. Maintains few utility libraries. Designs beautiful UIs.
Hitesh Kumar Saini
A package which provides most of the window decorations from linux themes.

Window Decorations A package which provides most of the window decorations from linux themes. Features Easier to use and implement Native looking wind

Prateek SU 20 Dec 21, 2022
🎞 Flutter media playback, broadcast & recording library for Windows, Linux & macOS. Written in C++ using libVLC & libVLC++. (Both audio & video)

dart_vlc Flutter media playback, broadcast, recording & chromecast library for Windows, Linux & macOS. Written in C++ using libVLC & libVLC++. Install

Hitesh Kumar Saini 417 Dec 29, 2022
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
🎡 A cross-platform media playback library for C/C++ with good number of features (only Windows & Linux).

libwinmedia A cross-platform media playback library for C/C++ & Flutter with good number of features. Example A very simple example can be as follows.

Harmonoid 38 Nov 2, 2022
Flutter on Windows, MacOS and Linux - based on Flutter Embedding, Go and GLFW.

go-flutter - A package that brings Flutter to the desktop Purpose Flutter allows you to build beautiful native apps on iOS and Android from a single c

null 5.5k Jan 6, 2023
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
A Flutter plugin to read πŸ”– metadata of 🎡 media files. Supports Windows, Linux & Android.

flutter_media_metadata A Flutter plugin to read metadata of media files. A part of Harmonoid open source project ?? Install Add in your pubspec.yaml.

Harmonoid 60 Dec 2, 2022
A cross-platform (Android/Windows/macOS/Linux) USB plugin for Flutter

quick_usb A cross-platform (Android/Windows/macOS/Linux) USB plugin for Flutter Usage List devices List devices with additional description Get device

Woodemi Co., Ltd 39 Oct 1, 2022
A simple-to-use flutter update package for Windows, MacOS, and Linux.

Updat - The simple-to-use, flutter-based desktop update package Updat is a simple-to-use reliable flutter-native updater that handles your application

Eduardo M. 14 Dec 21, 2022
A cross-platform app ecosystem, bringing iMessage to Android, PC (Windows, Linux, & even macOS), and Web!

BlueBubbles Android App BlueBubbles is an open-source and cross-platform ecosystem of apps aimed to bring iMessage to Android, Windows, Linux, and mor

BlueBubbles 318 Jan 8, 2023
A pure Dart implementation of Firebase with initial support aimed at FlutterFire for Linux & Windows.

FlutterFire Desktop A work in progress pure Dart implementation of Firebase with initial support aimed at FlutterFire for Linux & Windows. A FlutterFi

Invertase 293 Jan 4, 2023
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
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
Flutter date range pickers use a dialog window to select a range of date on mobile.

[Deprecated] Date Range Picker Currently Flutter has supported date range picker, so I think my mission is done. Thanks for using my lib. Link: https:

null 225 Dec 28, 2022
A clean front-end plugin to Volumio, the Linux distribution for music playback. Volumio Touch Display Lite is written in Flutter and runs on flutter-pi.

EN | δΈ­ζ–‡ Touch Display Lite plugin for Volumio 3 Feng Zhou, 2021-12 Touch Display Lite is a clean and fast user interface for Volumio 3, the Linux dist

Feng Zhou 5 Jul 26, 2022
A tutorial for creating an Ubuntu Linux Flutter app, using the yaru theme

Building a Yaru app with Flutter Summary URL https://github.com/ubuntu/user_manager Category Environment Linux Status Feedback Link Author Frederik Fe

Ubuntu 22 Dec 21, 2022
Embedded Linux embedding for Flutter

Embedded Linux (eLinux) embedding for Flutter This project was created to develop non-official embedded Linux embeddings of Flutter. This embedder is

Sony 918 Dec 30, 2022
A flutter application to monitor your Linux PC statistic.

Linux Stats App A flutter application to monitor your Linux PC statistic. Screenshots Installation Download or clone the repository: $ git clone https

Malte2036 7 Dec 17, 2022
Embedded Flutter runtime targeting Embedded Linux with Wayland

ivi-homescreen IVI Homescreen for Wayland Strongly Typed (C++) Lightweight Clang 11 Release Stripped = 151k GCC 9.3 Release Stripped = 168k Source run

null 172 Jan 6, 2023