An open API service indexing awesome lists of open source software.

https://github.com/caoyue/WindowResizer

Save and restore your windows size and position with hotkeys
https://github.com/caoyue/WindowResizer

desktop keyboard-shortcuts windows

Last synced: 3 months ago
JSON representation

Save and restore your windows size and position with hotkeys

Awesome Lists containing this project

README

        

# WindowResizer

[![WindowResizer](https://github.com/caoyue/WindowResizer/actions/workflows/WindowsResizer.yml/badge.svg)](https://github.com/caoyue/WindowResizer/actions) [![GitHub all releases](https://img.shields.io/github/downloads/caoyue/WindowResizer/total)](https://github.com/caoyue/WindowResizer/releases) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/caoyue/WindowResizer?sort=semver)](https://github.com/caoyue/WindowResizer/releases/latest)

WindowResizer is a simple tool that gives you a way to use hotkeys to quickly save and restore different window positions and sizes.

## Download
- Github Release
>

require:
- Windows 7+ (x64)
- .NET Framework 4.7.2+

- Microsoft Store
> [Get WindowResizer from Microsoft Store](https://www.microsoft.com/store/apps/9NZ07CQ6WZMB)

The Windows Store version has the same features as the GitHub release version.
You can support development by purchasing it on the Windows Store.

## App
### hotkeys

Change hotkeys in setting window.

- save window position

default hotkey: `ctrl+alt+s`

- save all opened window position

- restore window position

default hotkey: `ctrl+alt+r`


demo

- restore all opened window position

demo


### usage

- how to add an config entry

Focus on the window (eg. Chrome), then press the save window hotkey (`ctrl+alt+s`by default), an entry will be added to the configuration file.

- How does the window matching work?

The process name is matched first.
The title is not required, by default use a wildcard `*` to match all the titles for a process name.
And if you specify the title, it will be matched first.

- Option: Resize by title
Uncheck: Resize based on process
Checked: Resize based on Process and title

- `Auto resize`: restore window position automatically

check the checkbox on `Auto` column.

demo

- Option: Auto resize delay
This option is used with the `Auto Resize` feature.
When `Auto Resize` based on process titles, some titles are not immediately determined, such as Chrome web pages.
If this option is checked, you can set a delay(in millisecond) for the Chrome process, so when a new Chrome window is created, there will be a delay before resize takes effect.

- portable mode
- download portable package
- put `WindowResizer.config.json` in the same folder as the program file `WindowResizer.exe`
## CLI
run ```WindowResizer.CLI.exe resize -h```
> The CLI can run standalone without WindowResizer App running.

```
__ __ _ _ ____ _
\ \ / / (_) _ __ __| | ___ __ __ | _ \ ___ ___ (_) ____ ___ _ __
\ \ /\ / / | | | '_ \ / _` | / _ \ \ \ /\ / / | |_) | / _ \ / __| | | |_ / / _ \ | '__|
\ V V / | | | | | | | (_| | | (_) | \ V V / | _ < | __/ \__ \ | | / / | __/ | |
\_/\_/ |_| |_| |_| \__,_| \___/ \_/\_/ |_| \_\ \___| |___/ |_| /___| \___| |_|

Usage:
WindowResizer.CLI resize [options]

Options:
-c, --config Config file path, use current config file if omitted.
-P, --profile Profile name, use current profile if omitted.
-p, --process Process name, use foreground process if omitted.
-t, --title Process title, all windows of the process will be resized if not specified.
-v, --verbose Show more details.
-?, -h, --help Show help and usage information
```

e.g.,

```shell
# Resize all
WindowResizer.CLI.exe resize

# Specify config file and profile
WindowResizer.CLI.exe resize -c "X:\WindowResizer.config.json" -P "my-profile"

# Show verbose
WindowResizer.CLI.exe resize -v

# Filter windows by process
WindowResizer.CLI.exe resize -p "notepad.exe"

# Filter windows by title regex
WindowResizer.CLI.exe resize -t ".*.txt"

# Combine all options
WindowResizer.CLI.exe resize -c "X:\WindowResizer.config.json" -P "my-profile" -p "notepad.exe" -t ".*.txt" -v
```

## Build
- .NET Framework 4.7.2
- Visual Studio 2019/2022 or JetBrains Rider
- Projects
- WindowResizer: the GUI app
- WindowResizer.CLI: the CLI app

## Stats
![Alt](https://repobeats.axiom.co/api/embed/75ddcde135edf6e28a84cbe8c5fbe2b029f73c8e.svg "Repobeats analytics image")