Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 47 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<!-- TOC -->
* [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)
Expand All @@ -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)
<!-- TOC -->

## Requirements
Expand All @@ -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)
Expand Down Expand Up @@ -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

Expand All @@ -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 ❤️
Binary file modified assets/icon_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icon_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icon_light_1024.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icon_light_256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/icon.ico
Binary file not shown.
Binary file modified assets/tray/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions lib/init.dart
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ Future<void> 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);
}
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Binary file modified windows/runner/resources/app_icon.ico
Binary file not shown.
Loading