Application-specific configuration request for PDFgear (pdfeditor.exe) – composite rules cause entire app to be ignored
bug
### Summary
This issue is about PDFgear
[https://www.pdfgear.com/](https://www.pdfgear.com/?utm_source=chatgpt.com)
I’m trying to create an application-specific configuration so that only the main document windows of PDFgear are tiled, while menu / popup windows (e.g. “Create Signature”, Print dialogs, etc.) are ignored or floated.
While working on this, I referenced the following issue discussing composite (AND) rules:
[https://github.com/LGUG2Z/komorebi/issues/1106](https://github.com/LGUG2Z/komorebi/issues/1106?utm_source=chatgpt.com)
Based on that discussion, I tried several approaches using composite rules to selectively manage PDFgear windows.
My intention was:
Tile only windows whose title ends with - PDFgear
Ignore other PDFgear windows, such as popup/menu dialogs (e.g. Create Signature)
I tested configurations like the following:
```
...
"ignore_rules": [
[
{ "kind": "Exe", "id": "pdfeditor.exe", "matching_strategy": "Equals" },
{ "kind": "Title", "id": " - PDFgear", "matching_strategy": "DoesNotEndWith" }
]
],
"manage_rules": [
[
{ "kind": "Exe", "id": "pdfeditor.exe", "matching_strategy": "Equals" },
{ "kind": "Title", "id": " - PDFgear", "matching_strategy": "EndsWith" }
]
]
```
This is `komorebic visible-windows`.
```
{ "title": "test.pdf - PDFgear", "exe": "pdfeditor.exe", "class": "HwndWrapper[pdfeditor.exe;;00b7c04f-435e-46aa-8b26-2901e47349e7]" }, { "title": "Create Signature", "exe": "pdfeditor.exe", "class": "HwndWrapper[pdfeditor.exe;;56b491af-be31-44cd-aa90-1c4269cbcf40]" }
```
In practice, the entire application (pdfeditor.exe) ends up being ignored, including windows that should clearly match the manage_rules.
From my experiments:
Popup windows like “Create Signature” are difficult to exclude cleanly
Attempts to use composite rules result in PDFgear being effectively unmanaged as a whole
Restarting komorebi and reopening windows does not change this outcome
Goal / intent
My goal is not to report a bug, but to ask for guidance on where this should be handled:
Should this be solved via an update to applications.json in the application-specific configuration repository?
Is there a recommended pattern for apps like PDFgear, where:
main document windows are long-lived and should be tiled
menu / tool / dialog windows should be ignored or floated?
At the moment, I’m unsure where this kind of behavior should be addressed, so I’m raising it here for advice.
Currently, I use only a rule of ignoring "pdfeditor.exe".
### Version Information
komorebic 0.1.39
tag:v0.1.39
commit_hash:8f982e45
build_time:2025-12-11 01:24:19 +00:00
build_env:rustc 1.91.1 (ed61e7d7e 2025-11-07),stable-x86_64-pc-windows-msvc
### Komorebi Configuration
```json
{
"$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.39/schema.json",
"app_specific_configuration_path": "$Env:KOMOREBI_CONFIG_HOME/applications.json",
"window_hiding_behaviour": "Cloak",
"cross_monitor_move_behaviour": "Insert",
"default_workspace_padding": 3,
"default_container_padding": 3,
"floating_window_aspect_ratio": "Ultrawide",
"mouse_follows_focus": true,
"border": true,
"border_width": 7,
"border_offset": -1,
"theme": {
"palette": "Base16",
"name": "GruvboxDarkHard",
"unfocused_border": "Base03",
"bar_accent": "Base09",
"stack_border": "Base0E",
"single_border": "Base0A"
},
"monitors": [
{
"workspaces": [
{
"name": "A",
"layout": "BSP"
},
{
"name": "B",
"layout": "BSP"
}
]
},
{
"workspaces": [
{
"name": "C",
"layout": "UltrawideVerticalStack"
},
{
"name": "D",
"layout": "UltrawideVerticalStack"
}
]
}
],
"ignore_rules": [
[
{
"kind": "Exe",
"id": "pdfeditor.exe",
"matching_strategy": "Equals"
}
]
],
"bar_configurations": [
"C:\\Users\\user\\.config\\komorebi\\komorebi.bar_0.json",
"C:\\Users\\user\\.config\\komorebi\\komorebi.bar_1.json"
]
}
```
### Hotkey Configuration
```shell
.shell pwsh
# Reload whkd configuration
# alt + o : taskkill /f /im whkd.exe && start /b whkd # if shell is cmd
alt + shift + q : taskkill /f /im whkd.exe; Start-Process whkd -WindowStyle hidden # if shell is pwsh / powershell
alt + shift + r : komorebic reload-configuration
alt + shift + i : komorebic toggle-shortcuts
# App shortcuts - these require shell to be pwsh / powershell
# The apps will be focused if open, or launched if not open
# alt + f : if ($wshell.AppActivate('Firefox') -eq $False) { start firefox }
# alt + b : if ($wshell.AppActivate('Chrome') -eq $False) { start chrome }
alt + q : komorebic close
alt + m : komorebic minimize
# Focus windows
alt + h : komorebic focus left
alt + j : komorebic focus down
alt + k : komorebic focus up
alt + l : komorebic focus right
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
alt + shift + j : komorebic move down
alt + shift + k : komorebic move up
alt + shift + l : komorebic move right
alt + shift + return : komorebic promote
# Stack windows
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 + p : komorebic resize-axis horizontal increase
alt + u : komorebic resize-axis horizontal decrease
alt + o : komorebic resize-axis vertical increase
alt + i : komorebic resize-axis vertical decrease
# Manipulate windows
alt + t : komorebic toggle-float
alt + f : komorebic toggle-monocle
alt + shift + f : komorebic toggle-maximize
# Window manager options
alt + r : komorebic retile
alt + p : komorebic toggle-pause
# Layouts
alt + c : komorebic flip-layout horizontal
alt + shift + c : komorebic flip-layout vertical
alt + w : komorebic cycle-layout next
# Workspaces
alt + 1 : komorebic focus-workspace 0
alt + 2 : komorebic focus-workspace 1
alt + 3 : komorebic focus-workspace 2
alt + 4 : komorebic focus-workspace 3
alt + 5 : komorebic focus-workspace 4
alt + 6 : komorebic focus-workspace 5
alt + 7 : komorebic focus-workspace 6
alt + 8 : komorebic focus-workspace 7
# 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
alt + shift + 5 : komorebic move-to-workspace 4
alt + shift + 6 : komorebic move-to-workspace 5
alt + shift + 7 : komorebic move-to-workspace 6
alt + shift + 8 : komorebic move-to-workspace 7
# Focus workspaces
alt + a : komorebic cycle-workspace previous
alt + s : komorebic cycle-workspace next
```
### Output of komorebic check
```shell
KOMOREBI_CONFIG_HOME detected: C:\Users\user\.config\komorebi
Looking for configuration files in C:\Users\user\.config\komorebi
Found komorebi.json; this file can be passed to the start command with the --config flag
Found C:\Users\user\.config\komorebi\whkdrc; key bindings will be loaded from here when whkd is started, and you can start it automatically using the --whkd flag
```
3 条评论