diff --git a/README.md b/README.md index 82f4b7f7..7cc6cddd 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,30 @@ Tiling Window Management for Windows. ![screenshot](https://user-images.githubusercontent.com/13164844/184027064-f5a6cec2-2865-4d65-a549-a1f1da589abf.png) +- [About](#about) +- [Charitable Donations](#charitable-donations) +- [GitHub Sponsors](#github-sponsors) +- [Demonstrations](#demonstrations) +- [Description](#description) +- [Design](#design) +- [Getting Started](#getting-started) + - [Quickstart](#quickstart) + - [GitHub Releases](#github-releases) + - [Building from Source](#building-from-source) + - [Running](#running) + - [Configuring](#configuring) + - [Common First-Time Tips](#common-first-time-tips) +- [Development](#development) +- [Logs and Debugging](#logs-and-debugging) + - [Restoring Windows](#restoring-windows) + - [Panics and Deadlocks](#panics-and-deadlocks) +- [Window Manager State and Integrations](#window-manager-state-and-integrations) +- [Window Manager Event Subscriptions](#window-manager-event-subscriptions) + - [Subscription Event Notification Schema](#subscription-event-notification-schema) + - [Communication over TCP](#communication-over-tcp) + - [Socket Message Schema](#socket-message-schema) +- [Appreciations](#appreciations) + ## About _komorebi_ is a tiling window manager that works as an extension to @@ -36,6 +60,10 @@ _komorebi_ allows you to control application windows, virtual workspaces and dis used with third-party software such as [AutoHotKey](https://github.com/Lexikos/AutoHotkey_L) to set user-defined keyboard shortcuts. +_komorebi_ aims to make _as few modifications as possible_ to the operating system and desktop environment by default. +Users are free to make such modifications in their own configuration files for _komorebi_, but these will remain +opt-in and off-by-default for the foreseeable future. + Translations of this document can be found in the project wiki: - [komorebi 中文用户指南](https://github.com/LGUG2Z/komorebi/wiki/README-zh) (by [@crosstyan](https://github.com/crosstyan)) @@ -55,7 +83,16 @@ Articles, blog posts, demos, and videos about _komorebi_ can be added to this li - [Windows 下的现代化平铺窗口管理器 komorebi](https://zhuanlan.zhihu.com/p/455064481) - [komorebi を導入してみる](https://zenn.dev/omochice/articles/50f42a3df8f426) -## GitHub Sponsors Early Access +## Charitable Donations + +_komorebi_ is a free and open-source project, and one that encourages you to make charitable donations if +you find the software to be useful and have the financial means. + +I encourage you to make a charitable donation +to [Fresh Start Refugee](https://www.freshstartrefugee.org/donate) before +you consider sponsoring me on GitHub. + +## GitHub Sponsors [GitHub Sponsors is enabled for this project](https://github.com/sponsors/LGUG2Z). Users who sponsor my work on `komorebi` at any of the predefined monthly tiers will be given access to a private fork of this repository where I @@ -67,15 +104,6 @@ available for free in the public repository once it meets the requisite level of Features-in-progress that are available in early access will be tagged in the issues with an ["early access" label](https://github.com/LGUG2Z/komorebi/issues?q=is%3Aopen+is%3Aissue+label%3A%22early+access%22). -## Charitable Donations - -`komorebi`, like `vim`, is a free and open-source project, and one that encourages you to make charitable donations if -you find the software to be useful and have the financial means. - -I encourage you to make a charitable donation -to [Fresh Start Refugee](https://www.freshstartrefugee.org/donate) before -you consider sponsoring me on GitHub. - ## Demonstrations [@haxibami](https://github.com/haxibami) showing _komorebi_ running on Windows @@ -100,27 +128,19 @@ messages it receives on a dedicated socket. _komorebic_ is a CLI that writes messages on _komorebi_'s socket. -_komorebi_ doesn't handle any keyboard or mouse inputs; a third party program (e.g. AutoHotKey) is needed in order to -translate keyboard and mouse events to _komorebic_ commands. +_komorebi_ doesn't handle any keyboard or mouse inputs; a third party program (e.g. +[whkd](https://github.com/LGUG2Z/whkd)) is needed in order to translate keyboard and mouse events to _komorebic_ commands. This architecture, popularised by [_bspwm_](https://github.com/baskerville/bspwm) on Linux and [_yabai_](https://github.com/koekeishiya/yabai) on macOS, is outlined as follows: ``` - PROCESS SOCKET -ahk --------> komorebic <------> komorebi + PROCESS SOCKET +whkd/ahk --------> komorebic <------> komorebi ``` ## Design -_komorebi_ is the successor to [_yatta_](https://github.com/LGUG2Z/yatta) and as such aims to build on the learnings -from that project. - -While _yatta_ was primary an attempt to learn how to work with and call Windows APIs from Rust, while secondarily -implementing a minimal viable tiling window manager for my own needs (largely single monitor, single workspace), -_komorebi_ has been redesigned from the ground-up to support more complex features that have become standard in tiling -window managers on other platforms. - _komorebi_ holds a list of physical monitors. A monitor is just a rectangle of the available work area which contains one or more virtual workspaces. @@ -138,43 +158,50 @@ This means that: ## Getting Started +### Quickstart + +Make sure that you have either the [Scoop Package Manager](https://scoop.sh) or WinGet installed, then run the following +commands at a PowerShell prompt. + +```powershell +# if using scoop +scoop bucket add extras +scoop install whkd +scoop install komorebi + +# if using winget +winget install LGUG2Z.whkd +winget install LGUG2Z.komorebi + +# save the latest generated app-specific config tweaks and fixes to ~/komorebi.generated.ps1 +iwr https://raw.githubusercontent.com/LGUG2Z/komorebi/master/komorebi.generated.ps1 -OutFile $Env:USERPROFILE\komorebi.generated.ps1 + +# save the sample komorebi configuration file to ~/komorebi.ps1 +iwr https://raw.githubusercontent.com/LGUG2Z/komorebi/master/komorebi.sample.ps1 -OutFile $Env:USERPROFILE\komorebi.ps1 + +# ensure the ~/.config folder exists +mkdir $Env:USERPROFILE\.config -ea 0 + +# save the sample whkdrc file with key bindings to ~/.config/whkdrc +iwr https://raw.githubusercontent.com/LGUG2Z/komorebi/master/whkdrc -OutFile $Env:USERPROFILE\whkdrc + +# start komorebi +komorebic start --await-configuration +``` + +Thanks to [@sitiom](https://github.com/sitiom) for getting _komorebi_ added to both the popular Scoop Extras bucket and +to WinGet. + ### GitHub Releases Prebuilt binaries are available on the [releases page](https://github.com/LGUG2Z/komorebi/releases) in a `zip` archive. Once downloaded, you will need to move the `komorebi.exe` and `komorebic.exe` binaries to a directory in your `Path` ( you can see these directories by running `$Env:Path.split(";")` at a PowerShell prompt). -Alternatively, you may add a new directory to your `Path` -using [`setx`](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) or the Environment -Variables pop up in System Properties Advanced (which can be launched with `SystemPropertiesAdvanced.exe` at a -PowerShell prompt), and then move the binaries to that directory. - -### Winget - -You can use the builtin package manager from Windows to install the latest komorebi release: - -```powershell -winget install LGUG2Z.komorebi -``` - -### Scoop - -If you use the [Scoop](https://scoop.sh/) command line installer, you can run the following commands to install the -binaries from the latest GitHub Release: - -```powershell -scoop bucket add extras -scoop install komorebi -``` - -If you install _komorebi_ using Scoop, the binaries will automatically be added to your `Path`. - -Thanks to [@sitiom](https://github.com/sitiom) for getting _komorebi_ added to the popular Scoop Extras bucket. - ### Building from Source If you prefer to compile _komorebi_ from source, you will need -a [working Rust development environment on Windows 10](https://rustup.rs/). The `x86_64-pc-windows-msvc` toolchain is +a [working Rust development environment on Windows 10/11](https://rustup.rs/). The `x86_64-pc-windows-msvc` toolchain is required, so make sure you have also installed the [Build Tools for Visual Studio 2019](https://stackoverflow.com/a/55603112). @@ -185,28 +212,13 @@ cargo install --path komorebi --locked cargo install --path komorebic --locked ``` -### Using Example Configurations - -To download example configurations from this repository, which will work regardless of your installation method, you may -run the following commands at a PowerShell prompt. - -These commands will download the `komorebi.sample.ahk`, `komorebic.lib.ahk` and `komorebi.generated.ahk` files from the -master branch of this repository and save them to your `$HOME` directory. - -```powershell -iwr https://raw.githubusercontent.com/LGUG2Z/komorebi/master/komorebi.sample.ahk -OutFile $Env:USERPROFILE\komorebi.ahk -iwr https://raw.githubusercontent.com/LGUG2Z/komorebi/master/komorebic.lib.ahk -OutFile $Env:USERPROFILE\komorebic.lib.ahk -iwr https://raw.githubusercontent.com/LGUG2Z/komorebi/master/komorebi.generated.ahk -OutFile $Env:USERPROFILE\komorebi.generated.ahk -``` - ### Running -Once you have either the prebuilt binaries in your `Path`, or have compiled the binaries from source (these will already -be in your `Path` if you installed Rust with [rustup](https://rustup.rs), which you absolutely should), you can -run `komorebic start --await-configuration` at a Powershell prompt, and you will see the following output: +Run `komorebic start --await-configuration` at a Powershell prompt, and you will see the following output: ``` -Start-Process komorebi -WindowStyle hidden +Start-Process komorebi.exe -ArgumentList '--await-configuration' -WindowStyle hidden +Waiting for komorebi.exe to start...Started! ``` This means that `komorebi` is now running in the background, tiling all your windows, and listening for commands sent to @@ -214,20 +226,43 @@ it by `komorebic`. You can similarly stop the process by running `komorebic stop ### Configuring -Once `komorebi` is running, you can execute the `komorebi.sample.ahk` script to set up the default keybindings via AHK -(the file includes comments to help you start building your own configuration). +If you followed the quickstart, `komorebi` will find the sample `komorebi.ps1` file in your `$Env:USERPROFILE` directory +and automatically load it. This file also starts `whkd` using the sample `whkrc` file in your `$Env:USERPROFILE\.config` +directory. -If you have AutoHotKey installed and a `komorebi.ahk` file in your home directory (run `$Env:UserProfile` at a -PowerShell prompt to find your home directory), `komorebi` will automatically try to load it when starting. +Alternatively, if you have AutoHotKey installed and a `komorebi.ahk` file in `$Env:UserProfile` directory, `komorebi` +will automatically try to load it when starting. -There is also tentative support for loading a AutoHotKey v2 files, if the file is named `komorebi.ahk2` and -the `AutoHotKey64.exe` executable for AutoHotKey v2 is in your `Path`. If both `komorebi.ahk` and `komorebi.ahk2` files -exist in your home directory, only `komorebi.ahk` will be loaded. An example of an AutoHotKey v2 configuration file -for _komorebi_ can be found [here](https://gist.github.com/crosstyan/dafacc0778dabf693ce9236c57b201cd). +#### Configuration with `komorebic` + +As previously mentioned, this project does not handle anything related to keybindings and shortcuts directly. I +personally use [`whkd`](https://github.com/LGUG2Z/whkd) to manage my window management shortcuts, and have provided a +sample [whkdrc](whkdrc.sample) configuration that you can use as a starting point for your own. + +You can run `komorebic.exe` to get a full list of the commands that you can use to customise `komorebi` and create +keybindings with. You can run `komorebic.exe --help` to get a full explanation of the arguments required for +each command. + +You can run any configuration command in the `komorebi.ps1` file, and you can bind any action command to your desired +key combinations in the `whkdrc` file. + +#### AutoHotKey Helper Library for `komorebic` + +❗️**NOTE**: This section is only relevant for people who wish to use AutoHotKey instead of [`whkd`](https://github.com/LGUG2Z/whkd). + +❗️**NOTE**: This helper library is only compatible with AutoHotKey v1.1, not with AutoHotKey v2. + +Additionally, you may run `komorebic.exe ahk-library` to generate a helper library for AutoHotKey which wraps +every `komorebic` command in a native AHK function. + +If you include the generated library at the top of your `~/komorebi.ahk` configuration file, you will be able to call +any of the functions that it contains. #### Using Different AHK Executables -The sample configuration and the generated helper library both currently only support AutoHotKey v1.1. +❗️**NOTE**: This section is only relevant for people who wish to use AutoHotKey instead of [`whkd`](https://github.com/LGUG2Z/whkd). + +The generated helper library for AutoHotKey currently only supports AutoHotKey v1.1. The preferred way to install AutoHotKey for use with `komorebi` is to install it via `scoop`: @@ -250,45 +285,9 @@ are still required to be in your `Path`. ### Common First-Time Tips -#### Generating Common Application-Specific Configurations - -A curated selection of application-specific configurations can be generated to -help ease the setup for first-time users. -[`komorebi-application-specific-configuration`](https://github.com/LGUG2Z/komorebi-application-specific-configuration) -contains YAML definitions of settings that are known to make tricky -applications behave as expected. These YAML definitions can be used to generate -an AHK file which you can import at the start of your own `komorebi.ahk` file, -leaving you to focus primarily on your desired keybindings and workspace -configurations. - -If you have settings for an application that you think should be part of this -curated selection, please open a PR on the configuration repository. - -In the event that your PR is not accepted, or if you find there are any -settings that you wish to override, this can easily be done using an override -file. - -```powershell -# Clone and enter the repository -git clone https://github.com/LGUG2Z/komorebi-application-specific-configuration.git -cd komorebi-application-specific-configuration - -# Use komorebic to generate an AHK file -komorebic.exe ahk-app-specific-configuration applications.yaml - -# Application-specific generated configuration written to C:\Users\LGUG2Z\.config\komorebi\komorebi.generated.ahk -# -# You can include the generated configuration at the top of your komorebi.ahk config with this line: -# -# #Include %A_ScriptDir%\komorebi.generated.ahk - -# Optionally, provide an override file that follows the same schema as the second argument -komorebic.exe ahk-app-specific-configuration applications.yaml overrides.yaml -``` - #### Setting a Custom KOMOREBI_CONFIG_HOME Directory -If you do not want to keep _komorebi_-related files in your `$Env:UserProfile` directory, you can specify a custom directory +If you do not want to keep _komorebi_-related files in your `$Env:USERPROFILE` directory, you can specify a custom directory by setting the `$Env:KOMOREBI_CONFIG_HOME` environment variable. For example, to use the `~/.config/komorebi` directory: @@ -312,6 +311,47 @@ If you already have configuration files that you wish to keep, move them to the The next time you run `komorebic start`, any files created by or loaded by _komorebi_ will be placed or expected to exist in this folder. +#### Generating Common Application-Specific Configurations + +A curated selection of application-specific configurations can be generated to +help ease the setup for first-time users. +[`komorebi-application-specific-configuration`](https://github.com/LGUG2Z/komorebi-application-specific-configuration) +contains YAML definitions of settings that are known to make tricky +applications behave as expected. These YAML definitions can be used to generate +a `ps1` or an `ahk` file which you can import at the start of your own `komorebi.ps1` or `komorebi.ahk` files, +leaving you to focus primarily on your desired keybindings and workspace +configurations. + +If you have settings for an application that you think should be part of this +curated selection, please open a PR on the configuration repository. + +In the event that your PR is not accepted, or if you find there are any +settings that you wish to override, this can easily be done using an override +file. + +```powershell +# Clone and enter the repository +git clone https://github.com/LGUG2Z/komorebi-application-specific-configuration.git +cd komorebi-application-specific-configuration + +# Use komorebic to generate a ps1 file +komorebic.exe pwsh-app-specific-configuration applications.yaml + +# Application-specific generated configuration written to C:\Users\LGUG2Z\.config\komorebi\komorebi.generated.ps1 + +# Or use komorebic to generate an ahk file +komorebic.exe ahk-app-specific-configuration applications.yaml + +# Application-specific generated configuration written to C:\Users\LGUG2Z\.config\komorebi\komorebi.generated.ahk +# +# You can include the generated configuration at the top of your komorebi.ahk config with this line: +# +# #Include %A_ScriptDir%\komorebi.generated.ahk + +# Optionally, provide an override file that follows the same schema as the second argument +komorebic.exe pwsh-app-specific-configuration applications.yaml overrides.yaml +``` + #### Adding an Active Window Border If you would like to add a visual border around the currently focused window, two commands are available: @@ -337,6 +377,8 @@ komorebic.exe workspace-padding 0 #### Multiple Layout Changes on Startup +❗️**NOTE**: If you followed the quickstart and are using the sample configurations, this is already the default behaviour. + Depending on what is in your configuration, when `komorebi` is started, you may experience the layout rapidly being adjusted with many retile events. @@ -344,13 +386,16 @@ If you would like to avoid this, you can start `komorebi` with a flag which tell has been loaded before listening to and responding to window manager events: `komorebic start --await-configuration`. If you start `komorebi` with the `--await-configuration` flag, you _must_ send the `komorebic complete-configuration` -command at the end of the configuration section of your `komorebi.ahk` config (before you start defining the key -bindings). The layout will not be updated and `komorebi` will not respond to `komorebic` commands until this command has -been received. +command at the end of the configuration section of your `komorebi.ps1` (or `komorebi.ahk` config, before you start +defining the key bindings). The layout will not be updated and `komorebi` will not respond to `komorebic` commands until +this command has been received. #### Floating Windows -Sometimes you will want a specific application to never be tiled, and instead float all the time. You add add rules to +❗️**NOTE**: A significant number of floating window rules for the most common applications are +[already generated for you](https://github.com/LGUG2Z/komorebi/#generating-common-application-specific-configurations) + +Sometimes you will want a specific application to never be tiled, and instead float all the time. You can add rules to enforce this behaviour: ```powershell @@ -361,6 +406,9 @@ komorebic.exe float-rule title "Control Panel" #### Windows Not Getting Managed +❗️**NOTE**: A significant number of force-manage window rules for the most common applications are +[already generated for you](https://github.com/LGUG2Z/komorebi/#generating-common-application-specific-configurations) + In some rare cases, a window may not automatically be registered to be managed by `komorebi`. When this happens, you can manually add a rule to force `komorebi` to manage it: @@ -372,6 +420,9 @@ komorebic.exe manage-rule exe TIM.exe #### Tray Applications +❗️**NOTE**: A significant number of tray application rules for the most common applications are +[already generated for you](https://github.com/LGUG2Z/komorebi/#generating-common-application-specific-configurations) + If you are experiencing behaviour where [closing a window leaves a blank tile, but minimizing the same window does not](https://github.com/LGUG2Z/komorebi/issues/6) , you have probably enabled a 'close/minimize to tray' option for that application. You can tell _komorebi_ to handle @@ -385,6 +436,9 @@ komorebic.exe identify-tray-application exe Discord.exe #### Microsoft Office Applications +❗️**NOTE**: Microsoft Office-specific application rules are +[already generated for you](https://github.com/LGUG2Z/komorebi/#generating-common-application-specific-configurations) + Microsoft Office applications such as Word and Excel require certain configuration options to be set in order to be managed correctly. Below is an example of configuring Microsoft Word to be managed correctly by _komorebi_. @@ -527,83 +581,6 @@ layout rules for that workspace have been cleared. komorebic clear-workspace-layout-rules 0 0 ``` -## Configuration with `komorebic` - -As previously mentioned, this project does not handle anything related to keybindings and shortcuts directly. I -personally use AutoHotKey to manage my window management shortcuts, and have provided a -sample [komorebi.ahk](komorebi.sample.ahk) AHK script that you can use as a starting point for your own. - -You can run `komorebic.exe` to get a full list of the commands that you can use to customise `komorebi` and create -keybindings with. You can run `komorebic.exe --help` to get a full explanation of the arguments required for -each command. - -### AutoHotKey Helper Library for `komorebic` - -Additionally, you may run `komorebic.exe ahk-library` to -generate [a helper library for AutoHotKey](komorebic.lib.sample.ahk) which wraps every `komorebic` command in a native -AHK function. - -If you include the generated library at the top of your `~/komorebi.ahk` configuration file, you will be able to call -any of the functions that it contains. A sample AHK script that shows how this library can be -used [is available here](komorebi.sample.with.lib.ahk). - -## Features - -- [x] Multi-monitor -- [x] Virtual workspaces -- [x] Window stacks -- [x] Cycle through stacked windows -- [x] Change focused window by direction -- [x] Change focused window by direction across monitor boundary -- [x] Move focused window container in direction -- [x] Move focused window container in direction across monitor boundary -- [x] Move focused window container to monitor and follow -- [x] Move focused window container to workspace follow -- [x] Send focused window container to monitor -- [x] Send focused window container to workspace -- [x] Move focused workspace to monitor -- [x] Mouse follows focused container -- [x] Resize window container in direction -- [x] Resize window container on axis -- [x] Set custom resize delta -- [x] Active window border -- [x] Quicksave and quickload layouts with resize dimensions -- [x] Save and load layouts with resize dimensions to/from specific files -- [x] Mouse drag to swap window container position -- [x] Mouse drag to resize window container -- [x] Configurable workspace and container gaps -- [x] BSP tree layout (`bsp`) -- [x] Flip BSP tree layout horizontally or vertically -- [x] Equal-width, max-height column layout (`columns`) -- [x] Equal-height, max-width row layout (`rows`) -- [x] Main half-height window with vertical stack layout (`horizontal-stack`) -- [x] Main half-width window with horizontal stack layout (`vertical-stack`) -- [x] 2x Main window (half and quarter-width) with horizontal stack layout (`ultrawide-vertical-stack`) -- [x] Load custom layouts from JSON and YAML representations -- [x] Dynamically select layout based on the number of open windows -- [x] Floating rules based on exe name, window title and class -- [x] Workspace rules based on exe name and window class -- [x] Additional manage rules based on exe name and window class -- [x] Identify applications which overflow their borders by exe name and class -- [x] Identify 'close/minimize to tray' applications by exe name and class -- [x] Configure work area offsets to preserve space for custom taskbars -- [x] Configure and compensate for the size of Windows invisible borders -- [x] Toggle floating windows -- [x] Toggle monocle window -- [x] Toggle native maximization -- [x] Toggle mouse follows focus -- [x] Toggle Xmouse/Windows focus follows mouse implementation -- [x] Toggle Komorebi focus follows mouse implementation (desktop and system tray-aware) -- [x] Toggle automatic tiling -- [x] Pause all window management -- [x] Load configuration on startup -- [x] Manually reload configuration -- [x] Watch configuration for changes -- [x] Helper library for AutoHotKey -- [x] View window manager state -- [x] Query window manager state -- [x] Subscribe to event and message notifications - ## Development If you would like to contribute code to this repository, there are a few requests that I have to ensure a foundation of @@ -729,3 +706,15 @@ A [JSON Schema](https://json-schema.org/) of socket messages used to send instru with the `komorebic socket-schema` command. The output of this command can be redirected to the clipboard or a file, which can be used with services such as [Quicktype](https://app.quicktype.io/) to generate type definitions in different programming languages. + +## Appreciations + +- First and foremost, thank you to my wife, both for naming this project and for her patience throughout its never-ending development + +- Thank you to [@sitiom](https://github.com/sitiom) for being [an exemplary open source community leader](https://jeezy.substack.com/p/the-open-source-contributions-i-appreciate) + +- Thank you to the developers of [nog](https://github.com/TimUntersberger/nog) who came before me and whose work taught me more than I can ever hope to repay + +- Thank you to the developers of [GlazeWM](https://github.com/lars-berger/GlazeWM) for pushing the boundaries of tiling window management on Windows with me and having an excellent spirit of collaboration + +- Thank you to [@Ciantic](https://github.com/Ciantic) for helping me bring the [hidden Virtual Desktops cloaking function](https://github.com/Ciantic/AltTabAccessor/issues/1) to `komorebi` diff --git a/justfile b/justfile index 01135f70..d3647765 100644 --- a/justfile +++ b/justfile @@ -1,4 +1,4 @@ -set shell := ["cmd.exe", "/C"] +set windows-shell := ["pwsh.exe", "-NoLogo", "-Command"] export RUST_BACKTRACE := "full" clean: @@ -22,10 +22,7 @@ install-komorebi: install: just install-komorebic just install-komorebi - komorebic ahk-library - cat '%USERPROFILE%\.config\komorebi\komorebic.lib.ahk' > komorebic.lib.ahk - cat '%USERPROFILE%\.config\komorebi\komorebi.generated.ahk' > komorebi.generated.ahk - cat '%USERPROFILE%\.config\komorebi\komorebi.generated.ps1' > komorebi.generated.ps1 + cat '~/.config/komorebi/komorebi.generated.ps1' > komorebi.generated.ps1 run: just install-komorebic diff --git a/komorebi.generated.ahk b/komorebi.generated.ahk deleted file mode 100644 index f8b539bc..00000000 --- a/komorebi.generated.ahk +++ /dev/null @@ -1,465 +0,0 @@ -; Generated by komorebic.exe -; To use this file, add the line below to the top of your komorebi.ahk configuration file -; #Include %A_ScriptDir%\komorebi.generated.ahk - -; 1Password -Run, komorebic.exe float-rule exe "1Password.exe", , Hide - -; Ableton Live -; Targets VST2 windows -Run, komorebic.exe float-rule class "AbletonVstPlugClass", , Hide -; Targets VST3 windows -Run, komorebic.exe float-rule class "Vst3PlugWindow", , Hide - -; Adobe Creative Cloud -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application class "CreativeCloudDesktopWindowClass", , Hide - -; Adobe Photoshop -Run, komorebic.exe identify-border-overflow-application class "Photoshop", , Hide - -; ArmCord -Run, komorebic.exe identify-border-overflow-application exe "ArmCord.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ArmCord.exe", , Hide - -; AutoHotkey -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "AutoHotkeyU64.exe", , Hide -Run, komorebic.exe float-rule title "Window Spy", , Hide - -; Beeper -Run, komorebic.exe identify-border-overflow-application exe "Beeper.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Beeper.exe", , Hide - -; Bitwarden -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Bitwarden.exe", , Hide - -; Bloxstrap -Run, komorebic.exe float-rule exe "Bloxstrap.exe", , Hide - -; Calculator -Run, komorebic.exe float-rule title "Calculator", , Hide - -; Credential Manager UI Host -; Targets the Windows popup prompting you for a PIN instead of a password on 1Password etc. -Run, komorebic.exe float-rule exe "CredentialUIBroker.exe", , Hide - -; Cron -Run, komorebic.exe identify-border-overflow-application exe "Cron.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Cron.exe", , Hide - -; Delphi applications -; Target hidden window spawned by Delphi applications -Run, komorebic.exe float-rule class "TApplication", , Hide -; Target Inno Setup installers -Run, komorebic.exe float-rule class "TWizardForm", , Hide - -; Discord -Run, komorebic.exe identify-border-overflow-application exe "Discord.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Discord.exe", , Hide - -; DiscordCanary -Run, komorebic.exe identify-border-overflow-application exe "DiscordCanary.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "DiscordCanary.exe", , Hide - -; DiscordDevelopment -Run, komorebic.exe identify-border-overflow-application exe "DiscordDevelopment.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "DiscordDevelopment.exe", , Hide - -; DiscordPTB -Run, komorebic.exe identify-border-overflow-application exe "DiscordPTB.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "DiscordPTB.exe", , Hide - -; ElectronMail -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ElectronMail.exe", , Hide - -; Element -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Element.exe", , Hide - -; ElevenClock -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ElevenClock.exe", , Hide - -; Elgato Camera Hub -Run, komorebic.exe float-rule exe "Camera Hub.exe", , Hide - -; Elgato Control Center -Run, komorebic.exe float-rule exe "ControlCenter.exe", , Hide - -; Elgato Wave Link -Run, komorebic.exe float-rule exe "WaveLink.exe", , Hide - -; Epic Games Launcher -Run, komorebic.exe identify-border-overflow-application exe "EpicGamesLauncher.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "EpicGamesLauncher.exe", , Hide - -; Flow Launcher -Run, komorebic.exe identify-border-overflow-application exe "Flow.Launcher.exe", , Hide - -; GOG Galaxy -Run, komorebic.exe identify-border-overflow-application exe "GalaxyClient.exe", , Hide -Run, komorebic.exe manage-rule exe "GalaxyClient.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "GalaxyClient.exe", , Hide -; Targets a hidden window spawned by GOG Galaxy -Run, komorebic.exe float-rule class "Chrome_RenderWidgetHostHWND", , Hide - -; GoPro Webcam -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application class "GoPro Webcam", , Hide - -; Godot Manager -Run, komorebic.exe identify-border-overflow-application exe "GodotManager.exe", , Hide -Run, komorebic.exe manage-rule exe "GodotManager.exe", , Hide -Run, komorebic.exe identify-object-name-change-application exe "GodotManager.exe", , Hide - -; Google Chrome -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "chrome.exe", , Hide - -; Google Drive -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "GoogleDriveFS.exe", , Hide - -; Houdoku -Run, komorebic.exe identify-border-overflow-application exe "Houdoku.exe", , Hide - -; IntelliJ IDEA -Run, komorebic.exe identify-object-name-change-application exe "idea64.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "idea64.exe", , Hide -; Targets JetBrains IDE popups and floating windows -Run, komorebic.exe float-rule class "SunAwtDialog", , Hide - -; Itch.io -Run, komorebic.exe identify-border-overflow-application exe "itch.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "itch.exe", , Hide - -; Keyviz -Run, komorebic.exe float-rule exe "keyviz.exe", , Hide - -; Kleopatra -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "kleopatra.exe", , Hide - -; Kotatogram -Run, komorebic.exe identify-border-overflow-application exe "Kotatogram.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Kotatogram.exe", , Hide - -; LocalSend -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "localsend_app.exe", , Hide - -; Logi Bolt -Run, komorebic.exe float-rule exe "LogiBolt.exe", , Hide - -; LogiTune -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "LogiTune.exe", , Hide -Run, komorebic.exe float-rule exe "LogiTune.exe", , Hide - -; Logitech G HUB -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "lghub.exe", , Hide -Run, komorebic.exe identify-border-overflow-application exe "lghub.exe", , Hide - -; Logitech Options -Run, komorebic.exe float-rule exe "LogiOptionsUI.exe", , Hide - -; Mailspring -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "mailspring.exe", , Hide - -; ManyCam -Run, komorebic.exe identify-border-overflow-application exe "ManyCam.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ManyCam.exe", , Hide - -; Mica For Everyone - -; Microsoft Excel -Run, komorebic.exe identify-border-overflow-application exe "EXCEL.EXE", , Hide -Run, komorebic.exe identify-layered-application exe "EXCEL.EXE", , Hide -; Targets a hidden window spawned by Microsoft Office applications -Run, komorebic.exe float-rule class "_WwB", , Hide - -; Microsoft Outlook -Run, komorebic.exe identify-border-overflow-application exe "OUTLOOK.EXE", , Hide -Run, komorebic.exe identify-layered-application exe "OUTLOOK.EXE", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "OUTLOOK.EXE", , Hide - -; Microsoft PC Manager -Run, komorebic.exe float-rule exe "MSPCManager.exe", , Hide - -; Microsoft PowerPoint -Run, komorebic.exe identify-border-overflow-application exe "POWERPNT.EXE", , Hide -Run, komorebic.exe identify-layered-application exe "POWERPNT.EXE", , Hide - -; Microsoft Teams -Run, komorebic.exe identify-border-overflow-application exe "Teams.exe", , Hide -; Target Teams pop-up notification windows -Run, komorebic.exe float-rule title "Microsoft Teams Notification", , Hide -; Target Teams call in progress windows -Run, komorebic.exe float-rule title "Microsoft Teams Call", , Hide - -; Microsoft Word -Run, komorebic.exe identify-border-overflow-application exe "WINWORD.EXE", , Hide -Run, komorebic.exe identify-layered-application exe "WINWORD.EXE", , Hide - -; Modern Flyouts -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ModernFlyoutsHost.exe", , Hide - -; Mozilla Firefox -Run, komorebic.exe identify-object-name-change-application exe "firefox.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "firefox.exe", , Hide -; Targets invisible windows spawned by Firefox to show tab previews in the taskbar -Run, komorebic.exe float-rule class "MozillaTaskbarPreviewClass", , Hide - -; NVIDIA GeForce Experience -Run, komorebic.exe identify-border-overflow-application exe "NVIDIA GeForce Experience.exe", , Hide - -; NiceHash Miner -Run, komorebic.exe identify-border-overflow-application exe "nhm_app.exe", , Hide -Run, komorebic.exe manage-rule exe "nhm_app.exe", , Hide - -; NohBoard -Run, komorebic.exe float-rule exe "NohBoard.exe", , Hide - -; Notion Enhanced -Run, komorebic.exe identify-border-overflow-application exe "Notion Enhanced.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Notion Enhanced.exe", , Hide - -; OBS Studio (32-bit) -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "obs32.exe", , Hide - -; OBS Studio (64-bit) -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "obs64.exe", , Hide - -; ONLYOFFICE Editors -Run, komorebic.exe identify-border-overflow-application class "DocEditorsWindowClass", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application class "DocEditorsWindowClass", , Hide - -; Obsidian -Run, komorebic.exe identify-border-overflow-application exe "Obsidian.exe", , Hide -Run, komorebic.exe manage-rule exe "Obsidian.exe", , Hide - -; OpenRGB -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "OpenRGB.exe", , Hide - -; Paradox Launcher -Run, komorebic.exe float-rule exe "Paradox Launcher.exe", , Hide - -; PowerToys -; Target color picker dialog -Run, komorebic.exe float-rule exe "PowerToys.ColorPickerUI.exe", , Hide -; Target image resizer dialog -Run, komorebic.exe float-rule exe "PowerToys.ImageResizer.exe", , Hide - -; Process Hacker -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ProcessHacker.exe", , Hide -Run, komorebic.exe float-rule exe "ProcessHacker.exe", , Hide - -; ProtonVPN -Run, komorebic.exe identify-border-overflow-application exe "ProtonVPN.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ProtonVPN.exe", , Hide - -; PyCharm -Run, komorebic.exe identify-object-name-change-application exe "pycharm64.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "pycharm64.exe", , Hide - -; QuickLook -Run, komorebic.exe float-rule exe "QuickLook.exe", , Hide - -; RepoZ -Run, komorebic.exe float-rule exe "RepoZ.exe", , Hide - -; Rider -Run, komorebic.exe identify-object-name-change-application exe "rider64.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "rider64.exe", , Hide - -; Roblox FPS Unlocker -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "rbxfpsunlocker.exe", , Hide - -; RoundedTB -Run, komorebic.exe float-rule exe "RoundedTB.exe", , Hide - -; RoundedTB -Run, komorebic.exe identify-border-overflow-application exe "RoundedTB.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "RoundedTB.exe", , Hide - -; ShareX -Run, komorebic.exe identify-border-overflow-application exe "ShareX.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ShareX.exe", , Hide - -; Sideloadly -Run, komorebic.exe float-rule exe "sideloadly.exe", , Hide - -; Signal -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "signal.exe", , Hide - -; SiriKali -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "sirikali.exe", , Hide - -; Slack -Run, komorebic.exe identify-border-overflow-application exe "Slack.exe", , Hide -Run, komorebic.exe manage-rule exe "Slack.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Slack.exe", , Hide - -; Slack -Run, komorebic.exe identify-border-overflow-application exe "slack.exe", , Hide -Run, komorebic.exe manage-rule exe "slack.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "slack.exe", , Hide - -; Smart Install Maker -; Target hidden window spawned by installer -Run, komorebic.exe float-rule class "obj_App", , Hide -; Target installer -Run, komorebic.exe float-rule class "obj_Form", , Hide - -; SoulseekQt -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "SoulseekQt.exe", , Hide - -; Spotify -Run, komorebic.exe identify-border-overflow-application exe "Spotify.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Spotify.exe", , Hide - -; Steam -Run, komorebic.exe identify-border-overflow-application class "vguiPopupWindow", , Hide - -; Stremio -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "stremio.exe", , Hide - -; System Informer -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "SystemInformer.exe", , Hide -Run, komorebic.exe float-rule exe "SystemInformer.exe", , Hide - -; SystemSettings -Run, komorebic.exe float-rule class "Shell_Dialog", , Hide - -; Task Manager -Run, komorebic.exe float-rule class "TaskManagerWindow", , Hide - -; Telegram -Run, komorebic.exe identify-border-overflow-application exe "Telegram.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "Telegram.exe", , Hide - -; TouchCursor -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "tcconfig.exe", , Hide -Run, komorebic.exe float-rule exe "tcconfig.exe", , Hide - -; TranslucentTB -Run, komorebic.exe float-rule exe "TranslucentTB.exe", , Hide - -; TranslucentTB -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "TranslucentTB.exe", , Hide - -; Unreal Editor -Run, komorebic.exe identify-border-overflow-application exe "UnrealEditor.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "UnrealEditor.exe", , Hide - -; VRCX -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "VRCX.exe", , Hide - -; Visual Studio -Run, komorebic.exe identify-object-name-change-application exe "devenv.exe", , Hide - -; Visual Studio Code -Run, komorebic.exe identify-border-overflow-application exe "Code.exe", , Hide - -; Voice.ai -Run, komorebic.exe identify-border-overflow-application exe "VoiceAI.exe", , Hide -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "VoiceAI.exe", , Hide - -; WebTorrent Desktop -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "WebTorrent.exe", , Hide - -; Windows Console (conhost.exe) -Run, komorebic.exe manage-rule class "ConsoleWindowClass", , Hide - -; Windows Explorer -; Targets copy/move operation windows -Run, komorebic.exe float-rule class "OperationStatusWindow", , Hide -Run, komorebic.exe float-rule title "Control Panel", , Hide - -; Windows Installer -Run, komorebic.exe float-rule exe "msiexec.exe", , Hide - -; WingetUI -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "WingetUI.exe", , Hide - -; WingetUI -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "wingetui.exe", , Hide - -; Wox -; Targets a hidden window spawned by Wox -Run, komorebic.exe float-rule title "Hotkey sink", , Hide - -; XAMPP Control Panel -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "xampp-control.exe", , Hide - -; Zoom -Run, komorebic.exe float-rule exe "Zoom.exe", , Hide - -; mpv.net -Run, komorebic.exe identify-object-name-change-application exe "mpvnet.exe", , Hide - -; paint.net -Run, komorebic.exe float-rule exe "paintdotnet.exe", , Hide - -; pinentry -Run, komorebic.exe float-rule exe "pinentry.exe", , Hide - -; qBittorrent -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "qbittorrent.exe", , Hide - -; ueli -; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line -Run, komorebic.exe identify-tray-application exe "ueli.exe", , Hide -Run, komorebic.exe float-rule exe "ueli.exe", , Hide diff --git a/komorebi.generated.ps1 b/komorebi.generated.ps1 index 60fd888c..35133204 100644 --- a/komorebi.generated.ps1 +++ b/komorebi.generated.ps1 @@ -3,6 +3,12 @@ # 1Password komorebic.exe float-rule exe "1Password.exe" +# Ableton Live +# Targets VST2 windows +komorebic.exe float-rule class "AbletonVstPlugClass" +# Targets VST3 windows +komorebic.exe float-rule class "Vst3PlugWindow" + # Adobe Creative Cloud # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line komorebic.exe identify-tray-application class "CreativeCloudDesktopWindowClass" @@ -151,6 +157,10 @@ komorebic.exe identify-border-overflow-application exe "Kotatogram.exe" # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line komorebic.exe identify-tray-application exe "Kotatogram.exe" +# LocalSend +# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line +komorebic.exe identify-tray-application exe "localsend_app.exe" + # Logi Bolt komorebic.exe float-rule exe "LogiBolt.exe" @@ -258,6 +268,9 @@ komorebic.exe identify-tray-application exe "OpenRGB.exe" # Paradox Launcher komorebic.exe float-rule exe "Paradox Launcher.exe" +# Plexamp +komorebic.exe identify-border-overflow-application exe "Plexamp.exe" + # PowerToys # Target color picker dialog komorebic.exe float-rule exe "PowerToys.ColorPickerUI.exe" @@ -279,12 +292,21 @@ komorebic.exe identify-object-name-change-application exe "pycharm64.exe" # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line komorebic.exe identify-tray-application exe "pycharm64.exe" +# QtScrcpy +# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line +komorebic.exe identify-tray-application exe "QtScrcpy.exe" + # QuickLook komorebic.exe float-rule exe "QuickLook.exe" # RepoZ komorebic.exe float-rule exe "RepoZ.exe" +# Rider +komorebic.exe identify-object-name-change-application exe "rider64.exe" +# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line +komorebic.exe identify-tray-application exe "rider64.exe" + # Roblox FPS Unlocker # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line komorebic.exe identify-tray-application exe "rbxfpsunlocker.exe" @@ -302,6 +324,9 @@ komorebic.exe identify-border-overflow-application exe "ShareX.exe" # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line komorebic.exe identify-tray-application exe "ShareX.exe" +# Sideloadly +komorebic.exe float-rule exe "sideloadly.exe" + # Signal # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line komorebic.exe identify-tray-application exe "signal.exe" @@ -377,12 +402,21 @@ komorebic.exe identify-border-overflow-application exe "UnrealEditor.exe" # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line komorebic.exe identify-tray-application exe "UnrealEditor.exe" +# VRCX +# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line +komorebic.exe identify-tray-application exe "VRCX.exe" + # Visual Studio komorebic.exe identify-object-name-change-application exe "devenv.exe" # Visual Studio Code komorebic.exe identify-border-overflow-application exe "Code.exe" +# Voice.ai +komorebic.exe identify-border-overflow-application exe "VoiceAI.exe" +# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line +komorebic.exe identify-tray-application exe "VoiceAI.exe" + # WebTorrent Desktop # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line komorebic.exe identify-tray-application exe "WebTorrent.exe" @@ -396,8 +430,7 @@ komorebic.exe float-rule class "OperationStatusWindow" komorebic.exe float-rule title "Control Panel" # Windows Installer -# Targets MSI Installers -komorebic.exe float-rule class "MsiDialogCloseClass" +komorebic.exe float-rule exe "msiexec.exe" # WingetUI # If you have disabled minimize/close to tray for this application, you can delete/comment out the next line diff --git a/komorebi.sample.ahk b/komorebi.sample.ahk deleted file mode 100644 index c2e457a5..00000000 --- a/komorebi.sample.ahk +++ /dev/null @@ -1,93 +0,0 @@ -#SingleInstance Force - -; You can generate a fresh version of this file with "komorebic ahk-library" -#Include %A_ScriptDir%\komorebic.lib.ahk -; https://github.com/LGUG2Z/komorebi/#generating-common-application-specific-configurations -#Include %A_ScriptDir%\komorebi.generated.ahk - -; Default to minimizing windows when switching workspaces -WindowHidingBehaviour("minimize") - -; Set cross-monitor move behaviour to insert instead of swap -CrossMonitorMoveBehaviour("insert") - -; Enable hot reloading of changes to this file -WatchConfiguration("enable") - -; Ensure there is 1 workspace created on monitor 0 -EnsureWorkspaces(0, 1) - -; Configure the invisible border dimensions -InvisibleBorders(7, 0, 14, 7) - -; Configure the 1st workspace -WorkspaceName(0, 0, "I") - -; Uncomment the next two lines if you want a visual border drawn around the focused window -; ActiveWindowBorderColour(66, 165, 245, "single") ; this is a nice blue colour -; ActiveWindowBorder("enable") - -; Allow komorebi to start managing windows -CompleteConfiguration() - -; Change the focused window, Alt + Vim direction keys (HJKL) -!h:: -Focus("left") -return - -!j:: -Focus("down") -return - -!k:: -Focus("up") -return - -!l:: -Focus("right") -return - -; Move the focused window in a given direction, Alt + Shift + Vim direction keys (HJKL) -!+h:: -Move("left") -return - -!+j:: -Move("down") -return - -!+k:: -Move("up") -return - -!+l:: -Move("right") -return - -; There are many more commands that you can bind to whatever keys combinations you want! -; -; Have a look at the komorebic.lib.ahk file to see which arguments are required by different commands -; -; If you want more information about a command, you can run every komorebic command with "--help" -; -; For example, if you see this in komorebic.lib.ahk -; -; WorkspaceLayout(monitor, workspace, value) { -; Run, komorebic.exe workspace-layout %monitor% %workspace% %value%, , Hide -; } -; -; Just run "komorebic.exe workspace-layout --help" and you'll get all the information you need to use the command -; -; komorebic.exe-workspace-layout -; Set the layout for the specified workspace -; -; USAGE: -; komorebic.exe workspace-layout -; -; ARGS: -; Monitor index (zero-indexed) -; Workspace index on the specified monitor (zero-indexed) -; [possible values: bsp, columns, rows, vertical-stack, horizontal-stack, ultrawide-vertical-stack] -; -; OPTIONS: -; -h, --help Print help information diff --git a/komorebi.sample.ps1 b/komorebi.sample.ps1 index 7895c304..b4ec08ba 100644 --- a/komorebi.sample.ps1 +++ b/komorebi.sample.ps1 @@ -5,24 +5,35 @@ if (!(Get-Process whkd -ErrorAction SilentlyContinue)) . $PSScriptRoot\komorebi.generated.ps1 +# Send the ALT key whenever changing focus to force focus changes +komorebic alt-focus-hack enable # Default to minimizing windows when switching workspaces -komorebic window-hiding-behaviour minimize +komorebic window-hiding-behaviour cloak # Set cross-monitor move behaviour to insert instead of swap komorebic cross-monitor-move-behaviour insert # Enable hot reloading of changes to this file komorebic watch-configuration enable +# create named workspaces I-V on monitor 0 +komorebic ensure-named-workspaces 0 I II III IV V +# you can do the same thing for secondary monitors too +# komorebic ensure-named-workspaces 1 A B C D E F + +# assign layouts to workspaces, possible values: bsp, columns, rows, vertical-stack, horizontal-stack, ultrawide-vertical-stack +komorebic named-workspace-layout I bsp + +# set the gaps around the edge of the screen for a workspace +komorebic named-workspace-padding I 20 + +# set the gaps between the containers for a workspace +komorebic named-workspace-container-padding I 20 + +# you can assign specific apps to named workspaces +# komorebic named-workspace-rule exe "Firefox.exe" III + # Configure the invisible border dimensions komorebic invisible-borders 7 0 14 7 -# Ensure there is 1 workspace created on monitor 0 -komorebic ensure-workspaces 0 1 - -# Configure the 1st workspace on the 1st monitor -komorebic workspace-name 0 0 "I" -komorebic workspace-layout 0 0 bsp -komorebic container-padding 0 0 bsp - # Uncomment the next lines if you want a visual border around the active window # komorebic active-window-border-colour 66 165 245 --window-kind single # komorebic active-window-border-colour 256 165 66 --window-kind stack diff --git a/komorebic.lib.ahk b/komorebic.lib.ahk deleted file mode 100644 index 37f4ff3b..00000000 --- a/komorebic.lib.ahk +++ /dev/null @@ -1,445 +0,0 @@ -; Generated by komorebic.exe - -Start(ffm, await_configuration, tcp_port) { - RunWait, komorebic.exe start %ffm% --await-configuration %await_configuration% --tcp-port %tcp_port%, , Hide -} - -Stop() { - RunWait, komorebic.exe stop, , Hide -} - -State() { - RunWait, komorebic.exe state, , Hide -} - -Query(state_query) { - RunWait, komorebic.exe query %state_query%, , Hide -} - -Subscribe(named_pipe) { - RunWait, komorebic.exe subscribe %named_pipe%, , Hide -} - -Unsubscribe(named_pipe) { - RunWait, komorebic.exe unsubscribe %named_pipe%, , Hide -} - -Log() { - RunWait, komorebic.exe log, , Hide -} - -QuickSaveResize() { - RunWait, komorebic.exe quick-save-resize, , Hide -} - -QuickLoadResize() { - RunWait, komorebic.exe quick-load-resize, , Hide -} - -SaveResize(path) { - RunWait, komorebic.exe save-resize %path%, , Hide -} - -LoadResize(path) { - RunWait, komorebic.exe load-resize %path%, , Hide -} - -Focus(operation_direction) { - RunWait, komorebic.exe focus %operation_direction%, , Hide -} - -Move(operation_direction) { - RunWait, komorebic.exe move %operation_direction%, , Hide -} - -Minimize() { - RunWait, komorebic.exe minimize, , Hide -} - -Close() { - RunWait, komorebic.exe close, , Hide -} - -ForceFocus() { - RunWait, komorebic.exe force-focus, , Hide -} - -CycleFocus(cycle_direction) { - RunWait, komorebic.exe cycle-focus %cycle_direction%, , Hide -} - -CycleMove(cycle_direction) { - RunWait, komorebic.exe cycle-move %cycle_direction%, , Hide -} - -Stack(operation_direction) { - RunWait, komorebic.exe stack %operation_direction%, , Hide -} - -Resize(edge, sizing) { - RunWait, komorebic.exe resize %edge% %sizing%, , Hide -} - -ResizeAxis(axis, sizing) { - RunWait, komorebic.exe resize-axis %axis% %sizing%, , Hide -} - -Unstack() { - RunWait, komorebic.exe unstack, , Hide -} - -CycleStack(cycle_direction) { - RunWait, komorebic.exe cycle-stack %cycle_direction%, , Hide -} - -MoveToMonitor(target) { - RunWait, komorebic.exe move-to-monitor %target%, , Hide -} - -MoveToWorkspace(target) { - RunWait, komorebic.exe move-to-workspace %target%, , Hide -} - -MoveToNamedWorkspace(workspace) { - RunWait, komorebic.exe move-to-named-workspace %workspace%, , Hide -} - -CycleMoveToWorkspace(cycle_direction) { - RunWait, komorebic.exe cycle-move-to-workspace %cycle_direction%, , Hide -} - -SendToMonitor(target) { - RunWait, komorebic.exe send-to-monitor %target%, , Hide -} - -SendToWorkspace(target) { - RunWait, komorebic.exe send-to-workspace %target%, , Hide -} - -SendToNamedWorkspace(workspace) { - RunWait, komorebic.exe send-to-named-workspace %workspace%, , Hide -} - -CycleSendToWorkspace(cycle_direction) { - RunWait, komorebic.exe cycle-send-to-workspace %cycle_direction%, , Hide -} - -SendToMonitorWorkspace(target_monitor, target_workspace) { - RunWait, komorebic.exe send-to-monitor-workspace %target_monitor% %target_workspace%, , Hide -} - -FocusMonitor(target) { - RunWait, komorebic.exe focus-monitor %target%, , Hide -} - -FocusWorkspace(target) { - RunWait, komorebic.exe focus-workspace %target%, , Hide -} - -FocusMonitorWorkspace(target_monitor, target_workspace) { - RunWait, komorebic.exe focus-monitor-workspace %target_monitor% %target_workspace%, , Hide -} - -FocusNamedWorkspace(workspace) { - RunWait, komorebic.exe focus-named-workspace %workspace%, , Hide -} - -CycleMonitor(cycle_direction) { - RunWait, komorebic.exe cycle-monitor %cycle_direction%, , Hide -} - -CycleWorkspace(cycle_direction) { - RunWait, komorebic.exe cycle-workspace %cycle_direction%, , Hide -} - -MoveWorkspaceToMonitor(target) { - RunWait, komorebic.exe move-workspace-to-monitor %target%, , Hide -} - -NewWorkspace() { - RunWait, komorebic.exe new-workspace, , Hide -} - -ResizeDelta(pixels) { - RunWait, komorebic.exe resize-delta %pixels%, , Hide -} - -InvisibleBorders(left, top, right, bottom) { - RunWait, komorebic.exe invisible-borders %left% %top% %right% %bottom%, , Hide -} - -GlobalWorkAreaOffset(left, top, right, bottom) { - RunWait, komorebic.exe global-work-area-offset %left% %top% %right% %bottom%, , Hide -} - -MonitorWorkAreaOffset(monitor, left, top, right, bottom) { - RunWait, komorebic.exe monitor-work-area-offset %monitor% %left% %top% %right% %bottom%, , Hide -} - -AdjustContainerPadding(sizing, adjustment) { - RunWait, komorebic.exe adjust-container-padding %sizing% %adjustment%, , Hide -} - -AdjustWorkspacePadding(sizing, adjustment) { - RunWait, komorebic.exe adjust-workspace-padding %sizing% %adjustment%, , Hide -} - -ChangeLayout(default_layout) { - RunWait, komorebic.exe change-layout %default_layout%, , Hide -} - -LoadCustomLayout(path) { - RunWait, komorebic.exe load-custom-layout %path%, , Hide -} - -FlipLayout(axis) { - RunWait, komorebic.exe flip-layout %axis%, , Hide -} - -Promote() { - RunWait, komorebic.exe promote, , Hide -} - -PromoteFocus() { - RunWait, komorebic.exe promote-focus, , Hide -} - -Retile() { - RunWait, komorebic.exe retile, , Hide -} - -MonitorIndexPreference(index_preference, left, top, right, bottom) { - RunWait, komorebic.exe monitor-index-preference %index_preference% %left% %top% %right% %bottom%, , Hide -} - -EnsureWorkspaces(monitor, workspace_count) { - RunWait, komorebic.exe ensure-workspaces %monitor% %workspace_count%, , Hide -} - -EnsureNamedWorkspaces(monitor, names) { - RunWait, komorebic.exe ensure-named-workspaces %monitor% %names%, , Hide -} - -ContainerPadding(monitor, workspace, size) { - RunWait, komorebic.exe container-padding %monitor% %workspace% %size%, , Hide -} - -NamedWorkspaceContainerPadding(workspace, size) { - RunWait, komorebic.exe named-workspace-container-padding %workspace% %size%, , Hide -} - -WorkspacePadding(monitor, workspace, size) { - RunWait, komorebic.exe workspace-padding %monitor% %workspace% %size%, , Hide -} - -NamedWorkspacePadding(workspace, size) { - RunWait, komorebic.exe named-workspace-padding %workspace% %size%, , Hide -} - -WorkspaceLayout(monitor, workspace, value) { - RunWait, komorebic.exe workspace-layout %monitor% %workspace% %value%, , Hide -} - -NamedWorkspaceLayout(workspace, value) { - RunWait, komorebic.exe named-workspace-layout %workspace% %value%, , Hide -} - -WorkspaceCustomLayout(monitor, workspace, path) { - RunWait, komorebic.exe workspace-custom-layout %monitor% %workspace% %path%, , Hide -} - -NamedWorkspaceCustomLayout(workspace, path) { - RunWait, komorebic.exe named-workspace-custom-layout %workspace% %path%, , Hide -} - -WorkspaceLayoutRule(monitor, workspace, at_container_count, layout) { - RunWait, komorebic.exe workspace-layout-rule %monitor% %workspace% %at_container_count% %layout%, , Hide -} - -NamedWorkspaceLayoutRule(workspace, at_container_count, layout) { - RunWait, komorebic.exe named-workspace-layout-rule %workspace% %at_container_count% %layout%, , Hide -} - -WorkspaceCustomLayoutRule(monitor, workspace, at_container_count, path) { - RunWait, komorebic.exe workspace-custom-layout-rule %monitor% %workspace% %at_container_count% %path%, , Hide -} - -NamedWorkspaceCustomLayoutRule(workspace, at_container_count, path) { - RunWait, komorebic.exe named-workspace-custom-layout-rule %workspace% %at_container_count% %path%, , Hide -} - -ClearWorkspaceLayoutRules(monitor, workspace) { - RunWait, komorebic.exe clear-workspace-layout-rules %monitor% %workspace%, , Hide -} - -ClearNamedWorkspaceLayoutRules(workspace) { - RunWait, komorebic.exe clear-named-workspace-layout-rules %workspace%, , Hide -} - -WorkspaceTiling(monitor, workspace, value) { - RunWait, komorebic.exe workspace-tiling %monitor% %workspace% %value%, , Hide -} - -NamedWorkspaceTiling(workspace, value) { - RunWait, komorebic.exe named-workspace-tiling %workspace% %value%, , Hide -} - -WorkspaceName(monitor, workspace, value) { - RunWait, komorebic.exe workspace-name %monitor% %workspace% %value%, , Hide -} - -ToggleWindowContainerBehaviour() { - RunWait, komorebic.exe toggle-window-container-behaviour, , Hide -} - -TogglePause() { - RunWait, komorebic.exe toggle-pause, , Hide -} - -ToggleTiling() { - RunWait, komorebic.exe toggle-tiling, , Hide -} - -ToggleFloat() { - RunWait, komorebic.exe toggle-float, , Hide -} - -ToggleMonocle() { - RunWait, komorebic.exe toggle-monocle, , Hide -} - -ToggleMaximize() { - RunWait, komorebic.exe toggle-maximize, , Hide -} - -RestoreWindows() { - RunWait, komorebic.exe restore-windows, , Hide -} - -Manage() { - RunWait, komorebic.exe manage, , Hide -} - -Unmanage() { - RunWait, komorebic.exe unmanage, , Hide -} - -ReloadConfiguration() { - RunWait, komorebic.exe reload-configuration, , Hide -} - -WatchConfiguration(boolean_state) { - RunWait, komorebic.exe watch-configuration %boolean_state%, , Hide -} - -CompleteConfiguration() { - RunWait, komorebic.exe complete-configuration, , Hide -} - -AltFocusHack(boolean_state) { - RunWait, komorebic.exe alt-focus-hack %boolean_state%, , Hide -} - -WindowHidingBehaviour(hiding_behaviour) { - RunWait, komorebic.exe window-hiding-behaviour %hiding_behaviour%, , Hide -} - -CrossMonitorMoveBehaviour(move_behaviour) { - RunWait, komorebic.exe cross-monitor-move-behaviour %move_behaviour%, , Hide -} - -ToggleCrossMonitorMoveBehaviour() { - RunWait, komorebic.exe toggle-cross-monitor-move-behaviour, , Hide -} - -UnmanagedWindowOperationBehaviour(operation_behaviour) { - RunWait, komorebic.exe unmanaged-window-operation-behaviour %operation_behaviour%, , Hide -} - -FloatRule(identifier, id) { - RunWait, komorebic.exe float-rule %identifier% "%id%", , Hide -} - -ManageRule(identifier, id) { - RunWait, komorebic.exe manage-rule %identifier% "%id%", , Hide -} - -WorkspaceRule(identifier, id, monitor, workspace) { - RunWait, komorebic.exe workspace-rule %identifier% "%id%" %monitor% %workspace%, , Hide -} - -NamedWorkspaceRule(identifier, id, workspace) { - RunWait, komorebic.exe named-workspace-rule %identifier% "%id%" %workspace%, , Hide -} - -IdentifyObjectNameChangeApplication(identifier, id) { - RunWait, komorebic.exe identify-object-name-change-application %identifier% "%id%", , Hide -} - -IdentifyTrayApplication(identifier, id) { - RunWait, komorebic.exe identify-tray-application %identifier% "%id%", , Hide -} - -IdentifyLayeredApplication(identifier, id) { - RunWait, komorebic.exe identify-layered-application %identifier% "%id%", , Hide -} - -IdentifyBorderOverflowApplication(identifier, id) { - RunWait, komorebic.exe identify-border-overflow-application %identifier% "%id%", , Hide -} - -ActiveWindowBorder(boolean_state) { - RunWait, komorebic.exe active-window-border %boolean_state%, , Hide -} - -ActiveWindowBorderColour(r, g, b, window_kind) { - RunWait, komorebic.exe active-window-border-colour %r% %g% %b% --window-kind %window_kind%, , Hide -} - -ActiveWindowBorderWidth(width) { - RunWait, komorebic.exe active-window-border-width %width%, , Hide -} - -ActiveWindowBorderOffset(offset) { - RunWait, komorebic.exe active-window-border-offset %offset%, , Hide -} - -FocusFollowsMouse(boolean_state, implementation) { - RunWait, komorebic.exe focus-follows-mouse %boolean_state% --implementation %implementation%, , Hide -} - -ToggleFocusFollowsMouse(implementation) { - RunWait, komorebic.exe toggle-focus-follows-mouse --implementation %implementation%, , Hide -} - -MouseFollowsFocus(boolean_state) { - RunWait, komorebic.exe mouse-follows-focus %boolean_state%, , Hide -} - -ToggleMouseFollowsFocus() { - RunWait, komorebic.exe toggle-mouse-follows-focus, , Hide -} - -AhkLibrary() { - RunWait, komorebic.exe ahk-library, , Hide -} - -AhkAppSpecificConfiguration(path, override_path) { - RunWait, komorebic.exe ahk-app-specific-configuration %path% %override_path%, , Hide -} - -PwshAppSpecificConfiguration(path, override_path) { - RunWait, komorebic.exe pwsh-app-specific-configuration %path% %override_path%, , Hide -} - -FormatAppSpecificConfiguration(path) { - RunWait, komorebic.exe format-app-specific-configuration %path%, , Hide -} - -NotificationSchema() { - RunWait, komorebic.exe notification-schema, , Hide -} - -SocketSchema() { - RunWait, komorebic.exe socket-schema, , Hide -} \ No newline at end of file diff --git a/komorebic/src/main.rs b/komorebic/src/main.rs index f37c2a34..5d2190d2 100644 --- a/komorebic/src/main.rs +++ b/komorebic/src/main.rs @@ -1276,6 +1276,8 @@ fn main() -> Result<()> { let stdout = String::from_utf8(output.stdout)?; match stdout.trim() { stdout if stdout.is_empty() => None, + // It's possible that a komorebi.ps1 config will be in %USERPROFILE% - ignore this + stdout if !stdout.contains("scoop") => None, stdout => { buf = PathBuf::from(stdout); buf.pop(); // %USERPROFILE%\scoop\shims @@ -1705,9 +1707,10 @@ fn main() -> Result<()> { println!("\n#Include %A_ScriptDir%\\komorebi.generated.ahk"); } SubCommand::PwshAppSpecificConfiguration(arg) => { - let content = fs::read_to_string(resolve_windows_path(&arg.path)?)?; + let content = std::fs::read_to_string(resolve_windows_path(&arg.path)?)?; let lines = if let Some(override_path) = arg.override_path { - let override_content = fs::read_to_string(resolve_windows_path(&override_path)?)?; + let override_content = + std::fs::read_to_string(resolve_windows_path(&override_path)?)?; ApplicationConfigurationGenerator::generate_pwsh( &content, diff --git a/swhkdrc.sample b/whkdrc.sample similarity index 77% rename from swhkdrc.sample rename to whkdrc.sample index d4f55fbb..a0f6b707 100644 --- a/swhkdrc.sample +++ b/whkdrc.sample @@ -15,9 +15,8 @@ alt + h : komorebic focus left alt + j : komorebic focus down alt + k : komorebic focus up alt + l : komorebic focus right -alt + oem_1 : komorebic force-focus # oem_1 is ; -alt + u : komorebic cycle-focus previous -alt + i : komorebic cycle-focus next +alt + shift + oem_4 : komorebic cycle-focus previous # oem_4 is [ +alt + shift + oem_6 : komorebic cycle-focus next # oem_6 is ] # move windows alt + shift + h : komorebic move left @@ -27,13 +26,13 @@ alt + shift + l : komorebic move right alt + shift + return : komorebic promote # stack windows -alt + shift + left : komorebic stack left -alt + shift + down : komorebic stack down -alt + shift + up : komorebic stack up -alt + shift + right : komorebic stack right -alt + shift + d : komorebic unstack -alt + i : komorebic cycle-stack next -alt + u : komorebic cycle-stack previous +alt + left : komorebic stack left +alt + down : komorebic stack down +alt + up : komorebic stack up +alt + right : komorebic stack right +alt + oem_1 : komorebic unstack # oem_1 is ; +alt + oem_4 : komorebic cycle-stack previous # oem_4 is [ +alt + oem_6 : komorebic cycle-stack next # oem_6 is ] # resize alt + oem_plus : komorebic resize-axis horizontal increase @@ -58,10 +57,8 @@ alt + y : komorebic flip-layout vertical alt + 1 : komorebic focus-workspace 0 alt + 2 : komorebic focus-workspace 1 alt + 3 : komorebic focus-workspace 2 -alt + 4 : komorebic focus-workspace 3 # move windows across workspaces alt + shift + 1 : komorebic move-to-workspace 0 alt + shift + 2 : komorebic move-to-workspace 1 alt + shift + 3 : komorebic move-to-workspace 2 -alt + shift + 4 : komorebic move-to-workspace 3