This plugin allows Flutter desktop apps to resizing and repositioning the window.

Overview

window_manager

pub version

This plugin allows Flutter desktop apps to resizing and repositioning the window.

Discord


Platform Support

Linux macOS Windows
✔️ ✔️ ✔️

Quick Start

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  window_manager: ^0.0.4

Or

dependencies:
  window_manager:
    git:
      url: https://github.com/leanflutter/window_manager.git
      ref: main

Usage

import 'package:flutter/material.dart';
import 'package:window_manager/window_manager.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // Must add this line.
  await windowManager.ensureInitialized();

  // Use it only after calling `hiddenWindowAtLaunch`
  windowManager.waitUntilReadyToShow().then((_) async{
    // Set to frameless window
    await windowManager.setAsFrameless();
    await windowManager.setSize(Size(600, 600));
    await windowManager.setPosition(Offset.zero);
    windowManager.show();
  });

  runApp(MyApp());
}

Please see the example app of this plugin for a full example.

Listening events

import 'package:flutter/cupertino.dart';
import 'package:window_manager/window_manager.dart';

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> with WindowListener {
  @override
  void initState() {
    windowManager.addListener(this);
    _init();
    super.initState();
  }

  @override
  void dispose() {
    windowManager.removeListener(this);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    // ...
  }

  @override
  void onWindowEvent(String eventName) {
    print('[WindowManager] onWindowEvent: $eventName');
  }

  @override
  void onWindowFocus() {
    // do something
  }

  @override
  void onWindowBlur() {
    // do something
  }

  @override
  void onWindowMaximize() {
    // do something
  }

  @override
  void onWindowUnmaximize() {
    // do something
  }

  @override
  void onWindowMinimize() {
    // do something
  }

  @override
  void onWindowRestore() {
    // do something
  }

  @override
  void onWindowResize() {
    // do something
  }

  @override
  void onWindowMove() {
    // do something
  }

  @override
  void onWindowEnterFullScreen() {
    // do something
  }

  @override
  void onWindowLeaveFullScreen() {
    // do something
  }
}

Hidden at launch

macOS
import Cocoa
import FlutterMacOS
+import window_manager

class MainFlutterWindow: NSWindow {
    override func awakeFromNib() {
        let flutterViewController = FlutterViewController.init()
        let windowFrame = self.frame
        self.contentViewController = flutterViewController
        self.setFrame(windowFrame, display: true)

        RegisterGeneratedPlugins(registry: flutterViewController)

        super.awakeFromNib()
    }

+    override public func order(_ place: NSWindow.OrderingMode, relativeTo otherWin: Int) {
+        super.order(place, relativeTo: otherWin)
+        hiddenWindowAtLaunch()
+    }
}

Who's using it?

  • AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.
  • Biyi (比译) - A convenient translation and dictionary app written in dart / Flutter.
  • BlueBubbles - BlueBubbles is an ecosystem of apps bringing iMessage to Android, Windows, and Linux
  • Yukino - Yukino lets you read manga or stream anime ad-free from multiple sources.

Discussion

Welcome to join the discussion group to share your suggestions and ideas with me.

API

WindowManager

Method Description Linux macOS Windows
focus Focuses on the window. ✔️ ✔️
blur Removes focus from the window. ✔️
show Shows and gives focus to the window. ✔️ ✔️ ✔️
hide Hides the window. ✔️ ✔️ ✔️
isVisible Returns bool - Whether the window is visible to the user. ✔️ ✔️ ✔️
isMaximized Returns bool - Whether the window is maximized. ✔️ ✔️ ✔️
maximize Maximizes the window. ✔️ ✔️ ✔️
unmaximize Unmaximizes the window. ✔️ ✔️ ✔️
isMinimized Returns bool - Whether the window is minimized. ✔️ ✔️ ✔️
minimize Minimizes the window. ✔️ ✔️ ✔️
restore Restores the window from minimized state to its previous state. ✔️ ✔️ ✔️
isFullScreen Returns bool - Whether the window is in fullscreen mode. ✔️ ✔️ ✔️
setFullScreen Sets whether the window should be in fullscreen mode. ✔️ ✔️ ✔️
getBounds Returns Rect - The bounds of the window as Object. ✔️ ✔️ ✔️
setBounds Resizes and moves the window to the supplied bounds. ✔️ ✔️ ✔️
getPosition Returns Offset - Contains the window's current position. ✔️ ✔️ ✔️
setPosition Moves window to x and y. ✔️ ✔️ ✔️
getSize Returns Size - Contains the window's width and height. ✔️ ✔️ ✔️
setSize Resizes the window to width and height. ✔️ ✔️ ✔️
setMinimumSize Sets the minimum size of window to width and height. ✔️ ✔️ ✔️
setMaximumSize Sets the maximum size of window to width and height. ✔️ ✔️ ✔️
isResizable Returns bool - Whether the window can be manually resized by the user. ✔️
setResizable Sets whether the window can be manually resized by the user. ✔️
isMovable Returns bool - Whether the window can be moved by user. On Linux always returns true. ✔️
setMovable Sets whether the window can be moved by user. On Linux does nothing. ✔️
isMinimizable Returns bool - Whether the window can be manually minimized by the user. On Linux always returns true. ✔️
setMinimizable Sets whether the window can be manually minimized by user. On Linux does nothing. ✔️
isClosable Returns bool - Whether the window can be manually closed by user. On Linux always returns true. ✔️
setClosable Sets whether the window can be manually closed by user. On Linux does nothing. ✔️
isAlwaysOnTop Returns bool - Whether the window is always on top of other windows. ✔️ ✔️ ✔️
setAlwaysOnTop Sets whether the window should show always on top of other windows. ✔️ ✔️ ✔️
getTitle Returns String - The title of the native window. ✔️ ✔️ ✔️
setTitle Changes the title of native window to title. ✔️ ✔️ ✔️
setSkipTaskbar Makes the window not show in the taskbar / dock. ✔️ ✔️ ✔️
hasShadow Returns bool - Whether the window has a shadow. ✔️
setHasShadow Sets whether the window should have a shadow. ✔️
startDragging - ✔️ ✔️ ✔️
terminate ✔️ ✔️ ✔️

WindowListener

Method Description Linux macOS Windows
onWindowFocus Emitted when the window gains focus. ✔️ ✔️ ✔️
onWindowBlur Emitted when the window loses focus. ✔️ ✔️ ✔️
onWindowMaximize Emitted when window is maximized. ✔️ ✔️ ✔️
onWindowUnmaximize Emitted when the window exits from a maximized state. ✔️ ✔️ ✔️
onWindowMinimize Emitted when the window is minimized. ✔️ ✔️ ✔️
onWindowRestore Emitted when the window is restored from a minimized state. ✔️ ✔️ ✔️
onWindowResize Emitted after the window has been resized. ✔️ ✔️ ✔️
onWindowMove Emitted when the window is being moved to a new position. ✔️ ✔️ ✔️
onWindowEnterFullScreen Emitted when the window enters a full-screen state. ✔️ ✔️ ✔️
onWindowLeaveFullScreen Emitted when the window leaves a full-screen state. ✔️ ✔️ ✔️

License

MIT License

Copyright (c) 2021 LiJianying <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Comments
  • About an error over overflow after hidden SystemTitleBar

    About an error over overflow after hidden SystemTitleBar

    If we hide the system title bar

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
    
      await windowManager.ensureInitialized();
    
      windowManager.waitUntilReadyToShow().then((_) async {
        await windowManager.setTitle('Hello World');
        await windowManager.setTitleBarStyle(TitleBarStyle.hidden,
            windowButtonVisibility: false);
        // windowManager.center();
        await windowManager.maximize();
        await windowManager.setMinimumSize(const Size(800, 800));
        await windowManager.show();
        await windowManager.setSkipTaskbar(false);
      });
      runApp(const MyApp());
    }
    

    and create your own, we usually use Column

    class MyApp extends StatelessWidget {
      const MyApp({Key? key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home:  HomePage(),
        );
      }
    }
    
    class HomePage extends StatelessWidget {
      const HomePage({Key? key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Column(
            children: const [
              // DragToMoveArea(child: Container(height: 20.8, color: Colors.red)),
              AppTitleBar(),
              Expanded(child: Center(child: Text('Hello World'))),
            ],
          ),
        );
      }
    }
    
    class AppTitleBar extends StatelessWidget {
      const AppTitleBar({
        Key? key,
      }) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return DragToMoveArea(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.start,
            children: const [
              Spacer(),
              SizedBox(
                width: 138,
                height: 50 - 29.2,
                child: WindowCaption(),
              )
            ],
          ),
        );
      }
    }
    

    If we do not set the height of the first child element to 20.8, we will have a bottom overflow error If we don't set the width of WindowCaption to 138, we will have a right overflow error Why is this? Since I tried bitsdojo_window, I didn't have this problem

    opened by ilgnefz 10
  • [Feature Request] onChangeTheme method

    [Feature Request] onChangeTheme method

    Hello, thank you for this useful package.

    Is it possible to add an event method that fire when the windows theme is changed:

    1. dark mode activated/turn off
    2. color theme changed

    Anyway, thanks again! 👍

    opened by YehudaKremer 10
  • Feature request: confirm window close

    Feature request: confirm window close

    It would be useful for desktop applications to be able to intercept a window close event and either accept or reject it.

    For example, in pseudo:

    onWindowClose: (event) async {
      if (hasUnsavedChanges && !await showConfirmationDialog()) {
        // the user canceled i.e. does not want to close the window
        event.reject();
      }
    }
    

    Screenshot from 2022-02-14 10-34-18

    opened by jpnurmi 9
  • [Suggestion] [Windows] Use a Flutter widget for top resizing region overlay

    [Suggestion] [Windows] Use a Flutter widget for top resizing region overlay

    If anything else fail, I suggest we make a widget that simulates the original behavior for the top region of the app in titleBarStyle hidden. When said widget is hovered, change the cursor to SystemMouseCursors.resizeUp or resizeUpLeftDownRight or resizeUpRightDownLeft. When said widget is clicked, call native event for resizing like in the now discontinued window_utils package, there exist a function startResize(DragPosition position).

    opened by damywise 9
  • setSize but to the left and top

    setSize but to the left and top

    The current setSize resizes only to the right and bottom direction, so I'm asking if it is possible or is there a plan for a setSize that resizes to the left and/or to the top direction?

    opened by damywise 9
  • window overflow

    window overflow

    calling

          windowManager.setFullScreen(true);
    

    then going back to normal callling

      windowManager.setFullScreen(false);
          windowManager.restore();
    

    cases window to go out of boundry in the bottom part

    normal view image

    after calling the commands image

    using window_manager 0.2.2

    and it was happening on 0.2.1 too

    opened by zezo357 8
  • Add method to activate app without showing the main window

    Add method to activate app without showing the main window

    Similar to focus but without showing the main window. On macOS this would only call NSApp.activate(ignoringOtherApps: true). Our app is mostly just the menu in the system tray (using https://github.com/leanflutter/tray_manager). Therefore it would be nice to be able to activate it without showing the main window which currently is only its settings. Activating is for example needed before showing an alert window.

    Maybe there could also be an optional parameter showWindow on the focus method which defaults to true?

    opened by cbenhagen 7
  • Bug on windowManager.setSize method

    Bug on windowManager.setSize method

    Hi everyone and thanks for this useful package! I've got a little problem with my app because I noticed a weird behaviour with the windowManager.setSize method.

    When my app starts I want the size of the window to Size(385, 835) but when I first run the app it stars much larger (I think at 800x600) and only if I re-run it with the green rounded arrow on VSCode it resizes correctly.

    Schermata del 2022-02-05 08-52-07

    I also tried to use windowManager.setResizable(false), windowManager.setMinimumSize(const Size(385, 835)) and windowManager.setMaximumSize(const Size(385, 835)) but the behavior is similar.

    In particular I noticed that if I use the setResizable() method the window is never at Size(385, 835), it starts big and, obviously, I cannot resize it.

    This is the minimum reproducible code:

    import 'dart:io';
    
    import 'package:flutter/material.dart';
    import 'package:window_manager/window_manager.dart';
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      // Must add this line.
      await windowManager.ensureInitialized();
    
      // Use it only after calling `hiddenWindowAtLaunch`
      windowManager.waitUntilReadyToShow().then((_) async {
        // Hide window title bar
        if (!Platform.isLinux) {
          await windowManager.setTitleBarStyle('hidden');
        }
        
        /*The weird behaviour is here*/
            await windowManager.setResizable(false);
            await windowManager.setSize(const Size(385, 835));
            await windowManager.setMinimumSize(const Size(385, 835));
            await windowManager.setMaximumSize(const Size(385, 835));
        /*The weird behaviour is here*/
        
        await windowManager.center();
        await windowManager.show();
        await windowManager.focus();
        await windowManager.setSkipTaskbar(false);
      });
    
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({Key? key}) : super(key: key);
    
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Container(),
        );
      }
    }
    

    This is my flutter doctor

    [✓] Flutter (Channel stable, 2.10.0, on Fedora Linux 35 (Workstation Edition)
        5.15.18-200.fc35.x86_64, locale it_IT.UTF-8)
    [✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    [✓] Chrome - develop for the web
    [✓] Linux toolchain - develop for Linux desktop
    [!] Android Studio (not installed)
    [✓] VS Code (version 1.63.2)
    [✓] Connected device (2 available)
    [✓] HTTP Host Availability
    

    Thanks, Alberto

    opened by polilluminato 7
  • [Windows] Removing WS_CAPTION (titleBarStyle = 'hidden') Disables Animation

    [Windows] Removing WS_CAPTION (titleBarStyle = 'hidden') Disables Animation

    No animation during maximize, minimize, close, etc. Need to find a workaround or another method to remove title bar while still enabling border and resize and retaining animation (like chromium, electron, etc)

    opened by damywise 7
  • example里跑起来的项目setResizeble不起作用

    example里跑起来的项目setResizeble不起作用

    [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method setResizable on channel window_manager)
    #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:154:7)
    <asynchronous suspension>
    
    [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method isResizable on channel window_manager)
    #0      MethodChannel._invokeMethod (package:f
    
    

    无法调整窗口大小

    opened by fefz 7
  • Proposal: system menu

    Proposal: system menu

    Could there be API to show the window system menu on Linux and Windows?

    • https://docs.gtk.org/gdk3/method.Window.show_window_menu.html
    • https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getsystemmenu

    image

    opened by jpnurmi 6
  • Fullscreen/Set as frameless bugs mediaQuery screen sizes

    Fullscreen/Set as frameless bugs mediaQuery screen sizes

    Setting fullscreen or frameless causes mediaquery to report back incorrect screen sizes.

    To Test: Set frameless. Call mediaQuery.of(context).size to get screen dimensions Create transparent container with a thin coloured border of 0.5 based on mediaquery results

    • The coloured perimeter line disappears on certain sides, usually the bottom, suggesting the mediaquery is not reporting the actual visible window size.
    opened by sidetraxaudio 0
  • Lost connection to device. (on ubuntu 22.04 LTS)

    Lost connection to device. (on ubuntu 22.04 LTS)

    when i want to use window_manager package in my flutter app in ubuntu 22.04 os, i got this message: Lost connection to device. and suddenly the opened app windows close!

    my code is here:

    import 'package:get/get.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter_screenutil/flutter_screenutil.dart';
    import 'package:window_manager/window_manager.dart';
    import 'src/core/core.dart';
    import 'src/view/view.dart';
    
    
    void main() async {
      // ====================== new ========================
      WidgetsFlutterBinding.ensureInitialized();
      await windowManager.ensureInitialized();
    
      WindowOptions windowOptions = WindowOptions(
        size: Size(800, 600),
        center: true,
        backgroundColor: Colors.transparent,
        skipTaskbar: false,
        titleBarStyle: TitleBarStyle.hidden,
      );
    
      windowManager.waitUntilReadyToShow(windowOptions, () async {
        await windowManager.show();
        await windowManager.focus();
      });
    
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({Key? key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        //Set the fit size (Find your UI design, look at the dimensions of the device screen and fill it in,unit in dp)
        return ScreenUtilInit(
          designSize: designSize,
          minTextAdapt: true,
          splitScreenMode: true,
          builder: (context, _) {
            return GetMaterialApp(
              debugShowCheckedModeBanner: false,
              initialRoute: RoutesName.portConfigScreen,
              getPages: AppPages.pages,
            );
          },
        );
      }
    }
    

    but if i comment this part, the app run healthy without setting my size properly:

     windowManager.waitUntilReadyToShow(windowOptions, () async {
        await windowManager.show();
        await windowManager.focus();
      })
    

    and finally this is my flutter doctor result:

    user@I1081:~/dev/work/with-ssh/panel$ flutter doctor
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 3.3.9, on Ubuntu 22.04.1 LTS 5.15.0-56-generic, locale en_US.UTF-8)
    [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    [✓] Chrome - develop for the web
    [✓] Linux toolchain - develop for Linux desktop
    [✓] Android Studio (version 2021.3)
    [✓] VS Code
    [✓] Connected device (2 available)
    HTTP Host availability check is taking a long time...[✓] HTTP Host Availability
    
    • No issues found!
    
    opened by hosseinvejdani 2
  • Window render bugged on windows 11

    Window render bugged on windows 11

    Hello, to render my window in the code i've put that in my main function :

    WidgetsFlutterBinding.ensureInitialized();
    
      await windowManager.ensureInitialized();
    
      String feedURL = 'https://update.gregsvc.fr/WinSpeakerSwitcher.xml';
      await autoUpdater.setFeedURL(feedURL);
      await autoUpdater.checkForUpdates();
    
      // For hot reload, `unregisterAll()` needs to be called.
      WindowOptions windowOptions = const WindowOptions(
        size: Size(800, 600),
        center: false,
        backgroundColor: Colors.transparent,
        skipTaskbar: false,
        titleBarStyle: TitleBarStyle.normal,
        title: 'WinSpeakerSwitcher',
      );
      windowManager.waitUntilReadyToShow(windowOptions, () async {
        await windowManager.show();
        await windowManager.focus();
      });
    
      await hotKeyManager.unregisterAll();
      runApp(const ProviderScope(child: MyApp()));
    

    But the toolbar in the window is bugged it's render like that : image The title in the titlebar is blank only when the window is in focus state otherwise when the window is in the background the title renders correctly : image

    opened by greggameplayer 0
  • The WindowCaptionButtonIcon's icon appears to be flawed

    The WindowCaptionButtonIcon's icon appears to be flawed

    I noticed some blurring of the icons in the window buttons in the title bar, which affected the look and feel.

    • Icons in system windows (in Windows 11) image
    • Icons in Flutter (using WindowCaption in window_manager) image

    If you look closely at it, you will see that WindowCation using window_manager is much more blurry than the icons in the system, and the icons in the system are relatively clear (because the screenshot are compressed, it may be difficult to see the difference, you can compare these icons in your windows).

    Is there a solution for this?

    opened by KasumiNova 0
  • [Windows]  can not run project on Windows11

    [Windows] can not run project on Windows11

    got this error:

    Launching lib\main.dart on Windows in debug mode...
    lib\main.dart:1
    Exception: ERROR_ACCESS_DENIED file system exception thrown while trying to create a symlink from source to dest
    Exited (sigterm)
    

    win11 always has this kind of error ,could you help me?

    opened by wtus 0
  • Window will show blank after call window_manager.show()

    Window will show blank after call window_manager.show()

    After window_manager.hide() called, I use window_manager.show(), then display a empty window. Is there some function to refresh the window render like window rerender function ? image

    opened by AaronW-BE 0
Releases(v0.2.9)
  • v0.2.9(Jan 3, 2023)

    • [windows] Fix set maximizable throwing an error (#267)
    • [linux] clean up unused includes (#260)
    • [linux] fix window geometry hints (#257)
    • [linux] pass the plugin instance around as user data (#256)
    • [linux] fix getOpacity() (#255)
    • [Linux] use g_strcmp0() (#254)
    • [Linux] remove misleading C++-style default values (#253)
    • [Linux] implement setBrightness() (#252)
    • [Linux] fix frameless window & background color (#250)
    • [Linux] make setTitleBarStyle() GTK/HDY/CSD/SSD compatible (#249)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.8(Dec 1, 2022)

    • Bump screen_retriever from 0.1.2 to 0.1.4
    • WindowOptions supports backgroundColor
    • [linux] fix: offset lost after invoking gtk hide on linux #241
    • [macos] Fix Unable to bridge NSNumber to Float #236
    • [linux] Introduce grabKeyboard() and ungrabKeyboard() #229
    Source code(tar.gz)
    Source code(zip)
  • v0.2.7(Aug 27, 2022)

  • v0.2.6(Aug 20, 2022)

    • [windows] Added vertically param to the maximize method.
    • [Linux] implementation of methods: setIcon, isFocused (#186)
    • [macos] fix crash lead by fast clicks (#198)
    • Remove decoration for maximized window (#191)
    • [linux] fix: cannot drag again after startDragging (#203)
    • [windows] Implement isMaximizable and setMaximizable (#200)
    • [windows] Implement SetResizable for windows (#204)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.5(Jun 2, 2022)

    • [linux] fix method response memory leaks (#159)
    • [linux] Implement destroy #158
    • [linux] Implement getOpacity & setOpacity #157
    • [macos] Reimplement setBounds & getBounds method. #156
    • Make WindowOptions constructor to const constructor. #147
    • [windows] fix window overflow #131
    • [macos] Add the animate parameter to setBounds method #142
    • [linux] fix popUpWindowMenu() on Wayland #145
    Source code(tar.gz)
    Source code(zip)
  • v0.2.3(May 8, 2022)

  • v0.2.2(Apr 24, 2022)

    • Fixed overflow error after minimize #55, #119, #125
    • Implement isSkipTaskbar method #117
    • [windows] Implement setIcon method #129
    • The waitUntilReadyToShow method adds options, callback parameters #111
    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(Apr 2, 2022)

    • Compatible with lower versions of dart #98
    • [macos & windows] Add resized, moved events. #28
    • [linux] Implement getTitleBarHeight metnod #49
    • [linux] Implement getOpacity metnod #44
    • Add TitleBarStyle enum #99
    • [linux] Implement setAlwaysOnBottom method #100
    • [windows] Removes crazy jittering when resizing window #103
    • [windows] Fix overflow on fullscreen and maximize #105
    • [windows] Implement setHasShadow and hasShadow methods #110
    • [windows] Fix setAlignment(Alignment.bottomRight) display position is not correct #112 #113
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Mar 11, 2022)

    • [linux] Implement setTitleBarStyle method
    • [linux] Implement startResizing method
    • [windows] Implement setProgressBar method #42
    • [macos & windows] Implement setIgnoreMouseEvents metnod #89
    • Update DragToResizeArea widget
    • Add VirtualWindowFrame widget
    • Update WindowCaption widget
    Source code(tar.gz)
    Source code(zip)
  • v0.1.9(Mar 7, 2022)

  • v0.1.8(Feb 26, 2022)

  • v0.1.7(Feb 22, 2022)

    • Implement setAspectRatio method #74
    • [windows] Reimplement getTitleBarHeight method #33
    • [windows] Implement startResizing method
    • [windows] Add DragToResizeArea widget
    • [windows] Fix maximize and minimize animation not working when there is title bar hidden
    Source code(tar.gz)
    Source code(zip)
  • v0.1.6(Feb 19, 2022)

    • Implement isPreventClose & setPreventClose methods #69
    • Implement close event
    • [macos & windows] Reimplement close method
    • [windows] Fix Horizontal resizing not working on secondary display. #71
    • [macos] Implement isFocused method
    • Implement setAlignment method #52
    Source code(tar.gz)
    Source code(zip)
  • v0.1.5(Jan 28, 2022)

  • v0.1.4(Jan 17, 2022)

    • [macos & windows] Implemented getOpacity & setOpacity methods #37 #45
    • [macos] Implement setProgressBar method #40
    • [windows] Fix focus, blur event not responding
    • [windows] Implement focus & blur methods
    • [macos & windows] Implement getTitleBarHeight methods #34
    Source code(tar.gz)
    Source code(zip)
  • v0.1.3(Jan 9, 2022)

  • v0.1.2(Jan 5, 2022)

    • [macos] Add setTitleBarStyle method.
    • [windows] Add setTitleBarStyle method (Experiment).
    • [windows] #24 Updated windows fullscreen handling.
    • [windows] #26 Make maximize, unmaximize, minimize, restore methods have native animation effects.
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Nov 28, 2021)

  • v0.1.0(Nov 27, 2021)

    • Implemented isResizable, setResizable Methods.
    • Implemented isClosable, setClosable Methods.
    • Removed terminate Method.
    • [windows] Implemented isMinimizable, setMinimizable Methods.
    Source code(tar.gz)
    Source code(zip)
Owner
LeanFlutter
To make the flutter even simpler
LeanFlutter
This plugin allows Flutter desktop apps to register and handle custom protocols

protocol_handler This plugin allows Flutter desktop apps to register and handle custom protocols (i.e. deep linking). English | 简体中文 protocol_handler

LeanFlutter 57 Dec 22, 2022
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
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 library for window blur & transparency effects for on Windows & Linux. 💙

flutter_acrylic Window blur & transparency effects for Flutter on Windows & Linux Installation Mention in your pubspec.yaml. dependencies: ... flu

Hitesh Kumar Saini 437 Dec 31, 2022
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 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
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
Build beautiful desktop apps with flutter and rust. 🌠

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
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
An krunner plugin for changing kde plasma accent color from directly desktop

An krunner plugin for changing kde plasma accent color from directly desktop

Tanbir Jishan 3 Feb 21, 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
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
TinyPNG4Flutter - A TinyPNG Compress Image Desktop GUI For Flutter. Support macOS and windows

TinyPNG4Flutter A TinyPNG Compress Image Desktop GUI For Flutter. Support macOS

逸风 20 Dec 8, 2022
Ubuntu Yaru Style - Distinct look and feel of the Ubuntu Desktop

Ubuntu Yaru Style - Distinct look and feel of the Ubuntu Desktop Using Yaru To be able to use this package follow this steps: Installation Make you su

Ubuntu 226 Dec 28, 2022
An open source desktop application for creating set-plans for TV and movie productions

lyghts_desktop An open source (Windows) desktop application for creating set-plans for TV and movie productions. Getting Started This application uses

MindStudio 1 Feb 15, 2022
A web dashboard that allows you to monitor your Chia farm and sends notifications when blocks are found and new plots are completed through a discord bot. It can link multiple farmers/harvesters to your account.

farmr A web dashboard that allows you to monitor your Chia farm and sends notifications when blocks are found and new plots are completed through a di

Gil Nobrega 261 Nov 10, 2022