diff --git a/README.md b/README.md index b9595e5..d2ab1f3 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,19 @@ # scrcpy buddy 🤝 -![](/assets/icon_light_1024.png "scrcpy buddy logo") +![](/media/banner.png "banner") -scrcpy buddy is a clean, minimalist Flutter-based desktop application that provides an intuitive graphical interface for [scrcpy](https://github.com/Genymobile/scrcpy), the popular Android screen mirroring and control tool. Built with Fluent UI design principles, it brings a polished, native desktop experience to managing your Android devices across Windows, Linux, and macOS. +scrcpy buddy is a clean, minimalist Flutter-based desktop application that provides an intuitive graphical interface +for [scrcpy](https://github.com/Genymobile/scrcpy), the popular Android screen mirroring and control tool. Built with +Fluent UI design principles, it brings a polished, native desktop experience to managing your Android devices across +Windows, Linux, and macOS. * [scrcpy buddy 🤝](#scrcpy-buddy-) * [Requirements](#requirements) * [Features](#features) * [Coming next](#coming-next) + * [Supported languages](#supported-languages) * [Screenshots](#screenshots) * [Download & Installation](#download--installation) * [Supported and tested platforms](#supported-and-tested-platforms) @@ -36,11 +40,12 @@ scrcpy buddy is a clean, minimalist Flutter-based desktop application that provi * [Troubleshooting](#troubleshooting) * [ADB / scrcpy not found](#adb--scrcpy-not-found) * [Setting executable path manually in settings](#setting-executable-path-manually-in-settings) - * [License](#license) * [How it works](#how-it-works) * [List of commands used by the app](#list-of-commands-used-by-the-app) * [ADB Commands](#adb-commands) * [scrcpy Commands](#scrcpy-commands) + * [License](#license) + * [Artworks credits](#artworks-credits) ## Requirements @@ -65,8 +70,14 @@ To use this app, you need the following: - Close app to tray ### Coming next + See [milestones](https://github.com/Codertainment/scrcpy_buddy/milestones) +## Supported languages +- Only English for now + +But the app is built with i18n in mind. So, support for more languages can be added gradually. + ## Screenshots (may not be up-to-date) @@ -191,8 +202,8 @@ If you have ADB and/or scrcpy setup and installed in your path: can [set the executable in settings manually](#setting-executable-path-manually-in-settings). - To find out the installation path, run this command in the terminal: - e.g. - - For Windows: `where adb` - - For MacOS/Linux: `which adb` + - For Windows: `where adb` + - For MacOS/Linux: `which adb` ### Setting executable path manually in settings @@ -204,23 +215,39 @@ Verify that the app is able to access the executables by clicking on "Check". It should show the adb or scrcpy version. -## License -Apache-2.0: See [LICENSE](LICENSE) - ## How it works -scrcpy buddy functions as a graphical user interface (GUI) wrapper for command-line tools. The application does not communicate directly with Android devices or access device data itself. Instead, it exclusively interacts with adb and scrcpy. -All device communication and data processing occur through these external tools, which operate under their own respective privacy policies and security models. + +scrcpy buddy functions as a graphical user interface (GUI) wrapper for command-line tools. The application does not +communicate directly with Android devices or access device data itself. Instead, it exclusively interacts with adb and +scrcpy. +All device communication and data processing occur through these external tools, which operate under their own +respective privacy policies and security models. + ### List of commands used by the app + #### ADB Commands -- `adb --version` - Retrieves the installed adb version -- `adb devices -l` - Lists connected Android devices -- `adb start-server` - Starts the ADB server process -- `adb connect` - Connects to Android devices over network -- `adb disconnect` - Disconnects from network-connected devices -- `adb shell ip route show` - Retrieves network routing information from connected devices -- `adb tcpip` - Switches device connection mode to TCP/IP + +- `adb --version` - Retrieves the installed adb version +- `adb devices -l` - Lists connected Android devices +- `adb start-server` - Starts the ADB server process +- `adb connect` - Connects to Android devices over network +- `adb disconnect` - Disconnects from network-connected devices +- `adb shell ip route show` - Retrieves network routing information from connected devices +- `adb tcpip` - Switches device connection mode to TCP/IP #### scrcpy Commands -- `scrcpy` - Launches screen mirroring with user-configured options from the application UI -- `scrcpy --version` - Retrieves the installed scrcpy version -- `scrcpy --list-apps` - Lists applications installed on connected devices + +- `scrcpy` - Launches screen mirroring with user-configured options from the application UI +- `scrcpy --version` - Retrieves the installed scrcpy version +- `scrcpy --list-apps` - Lists applications installed on connected devices + +## License + +Apache-2.0: See [LICENSE](LICENSE) + +## Artworks credits + +> The Android robot is reproduced or modified from work created and shared by Google and used according to terms +> described in the Creative Commons 3.0 Attribution License (https://creativecommons.org/licenses/by/3.0/). + +Thanks to my friend, @SudipRajbanshi for creating the beautiful logo, banner and tray icon ❤️ \ No newline at end of file diff --git a/assets/icon_dark.png b/assets/icon_dark.png index 5f66112..e65cddf 100644 Binary files a/assets/icon_dark.png and b/assets/icon_dark.png differ diff --git a/assets/icon_light.png b/assets/icon_light.png index e26522c..48567dd 100644 Binary files a/assets/icon_light.png and b/assets/icon_light.png differ diff --git a/assets/icon_light_1024.png b/assets/icon_light_1024.png index b948c9e..9c2642f 100644 Binary files a/assets/icon_light_1024.png and b/assets/icon_light_1024.png differ diff --git a/assets/icon_light_256.png b/assets/icon_light_256.png index 18fe235..3a00091 100644 Binary files a/assets/icon_light_256.png and b/assets/icon_light_256.png differ diff --git a/assets/tray/icon.ico b/assets/tray/icon.ico index 90b00e2..10a6c0d 100644 Binary files a/assets/tray/icon.ico and b/assets/tray/icon.ico differ diff --git a/assets/tray/icon.png b/assets/tray/icon.png index fa57ddd..62f9078 100644 Binary files a/assets/tray/icon.png and b/assets/tray/icon.png differ diff --git a/lib/init.dart b/lib/init.dart index fc1a7f6..d89b831 100644 --- a/lib/init.dart +++ b/lib/init.dart @@ -34,12 +34,12 @@ Future init() async { // tray icon init try { - await trayManager.setIcon('assets/tray/icon.png'); - if (!Platform.isMacOS) { + await trayManager.setIcon(Platform.isWindows ? 'assets/tray/icon.ico' : 'assets/tray/icon.png'); + if (Platform.isLinux) { // Don't show title on macOS (takes up more space in menu bar) + // Not supported on Windows await trayManager.setTitle(_appName); - } - if (!Platform.isLinux) { + } else { // tray_manager doesn't support this on linux await trayManager.setToolTip(_appName); } diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png index b948c9e..86da352 100644 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png index 2f42f0d..d50b0bd 100644 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png index e78031e..0c9b196 100644 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png index af457b3..96f74e9 100644 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png index 1d2e7b7..2612013 100644 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png index cd659b0..e786a4f 100644 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png index da3f7e9..7689493 100644 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png differ diff --git a/media/banner.png b/media/banner.png new file mode 100644 index 0000000..4a04491 Binary files /dev/null and b/media/banner.png differ diff --git a/pubspec.yaml b/pubspec.yaml index 5ce6448..f5f3018 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -139,5 +139,5 @@ msix_config: publisher: CN=5EFFC3AA-14FC-4D47-AABD-2F91F482F2F7 identity_name: Codertainment.scrcpybuddy store: true - logo_path: assets/icon_light.png + logo_path: assets/icon_light_1024.png capabilities: privateNetworkClientServer, usb \ No newline at end of file diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico index a9760d9..94a37b4 100644 Binary files a/windows/runner/resources/app_icon.ico and b/windows/runner/resources/app_icon.ico differ