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.instance.ensureInitialized();

  // Use it only after calling `hiddenWindowAtLaunch`
  WindowManager.instance.waitUntilReadyToShow().then((_) async{
    // Set to frameless window
    await WindowManager.instance.setAsFrameless();
    await WindowManager.instance.setSize(Size(600, 600));
    await WindowManager.instance.setPosition(Offset.zero);
    WindowManager.instance.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.instance.addListener(this);
    _init();
    super.initState();
  }

  @override
  void dispose() {
    WindowManager.instance.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 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.
  • 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. ✔️ ✔️
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 0
  • 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
Releases(v0.2.8)
  • 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
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 606 Dec 27, 2022
Flutter 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 438 Jan 2, 2023
Front-end of multiplayer web3 games implemented with Flutter to run on all platforms (Web, Android, iOS, Linux, Window, macOS, TV-OS)

Front-end of multiplayer web3 games implemented with Flutter to run on all platforms (Web, Android, iOS, Linux, Window, macOS, TV-OS)

R-Team 5 Nov 15, 2022
Flutter basic desktop project. Desktop todo app.

Glory Todo Desktop Basic and Primitive Flutter Desktop Project! Goal My goal is to accept my inexperience without worrying about the plugin shortcomin

Özgür 52 Dec 3, 2022
Utility Manager Flutter Application is made with Flutter and Supabase which allows user to add task, set remainder to the task, set color to separate tasks and it allows to add URL with URL's informations.

Utility Manager Flutter Application! Utility Manager Flutter Application is made with Flutter and Supabase which allows user to add task, set remainde

Kathirvel Chandrasekaran 6 Jan 6, 2022
Learn to build apps that work on Android, iOS, Web, and Desktop

Cross-Platform Development with Flutter Course Learn to build apps that work on Android, iOS, Web, and Desktop Go To Course Flutter is Google’s UI too

Mohamed Ibrahim 11 Oct 24, 2022
A Flutter plugin for handling Connectivity and REAL Connection state in the mobile, web and desktop platforms. Supports iOS, Android, Web, Windows, Linux and macOS.

cross_connectivity A Flutter plugin for handling Connectivity and REAL Connection state in the mobile, web and desktop platforms. Supports iOS, Androi

MarchDev Toolkit 29 Nov 15, 2022
Flutter plugin that allows users to create TextAvatar easily!

Colorize Text Avatar Colorize Text Avatar is a package to generate avatar based on your user initials. It supports to generate avatars based on your s

Deniz Çolak 17 Dec 14, 2022
Community WebView Plugin - Allows Flutter to communicate with a native WebView.

NOTICE We are working closely with the Flutter Team to integrate all the Community Plugin features in the Official WebView Plugin. We will try our bes

Flutter Community 1.4k Dec 22, 2022
gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required.

GUI_AUTOMATION gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required. Install py

Hassan Kanso 34 Oct 30, 2022
A beautiful and cross platform NHentai Client, Support desktop and mobile phone

A beautiful and cross platform NHentai Client. Support desktop and mobile phone (Mac/Windows/Linux/Android/IOS).

null 324 Dec 29, 2022
FileManager is a wonderful widget that allows you to manage files and folders, pick files and folders, and do a lot more. Designed to feel like part of the Flutter framework.

File Manager FileManager is a wonderful widget that allows you to manage files and folders, pick files and folders, and do a lot more. Designed to fee

Devs On Flutter 52 Dec 30, 2022
null 357 Dec 27, 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
Flutter UI Kits for mobile, tablet, desktop and web application

UIKits2 A complete UIs for mobile and tablet, which include 16 categories. Start SignUp & Login Walkthrough Loading Profiles Feed Article Activity Cre

Anuchit Chalothorn 25 Oct 8, 2022
A sample application that allows a user to upload and share images, made with Flutter and Firebase

FlutterFire Gallery A sample Flutter app to upload images and share them via lin

Mais Alheraki 9 Oct 29, 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 Jan 2, 2023
Hybrid App build on flutter SDK able to run on Android, IOS, web, desktop

Codeforces Visualizer APP Ready to use Flutter Application. Uses codeforces API. Useful for codeforces programmers. ScreenShots Single User Page Compa

vikas yadav 13 Dec 31, 2022
Manage desktop space easily with this simple Flutter app.

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

null 0 Nov 12, 2021