WinJitsu 0.4.2__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {winjitsu-0.4.2/src/WinJitsu.egg-info → winjitsu-0.5.0}/PKG-INFO +53 -119
- {winjitsu-0.4.2 → winjitsu-0.5.0}/README.md +52 -118
- {winjitsu-0.4.2 → winjitsu-0.5.0}/pyproject.toml +1 -1
- {winjitsu-0.4.2 → winjitsu-0.5.0/src/WinJitsu.egg-info}/PKG-INFO +53 -119
- {winjitsu-0.4.2 → winjitsu-0.5.0}/src/WinJitsu.egg-info/SOURCES.txt +9 -1
- winjitsu-0.5.0/src/winjitsu/__init__.py +20 -0
- winjitsu-0.5.0/src/winjitsu/actions.py +180 -0
- winjitsu-0.5.0/src/winjitsu/cache.py +166 -0
- {winjitsu-0.4.2 → winjitsu-0.5.0}/src/winjitsu/cli.py +43 -24
- winjitsu-0.5.0/src/winjitsu/client.py +125 -0
- winjitsu-0.5.0/src/winjitsu/config.py +108 -0
- winjitsu-0.5.0/src/winjitsu/daemon.py +292 -0
- winjitsu-0.5.0/src/winjitsu/screen.py +201 -0
- winjitsu-0.5.0/src/winjitsu/window.py +240 -0
- winjitsu-0.5.0/tests/test_actions.py +224 -0
- winjitsu-0.5.0/tests/test_cache.py +98 -0
- winjitsu-0.5.0/tests/test_client.py +121 -0
- winjitsu-0.5.0/tests/test_config.py +74 -0
- winjitsu-0.5.0/tests/test_daemon.py +137 -0
- winjitsu-0.5.0/tests/test_screen.py +75 -0
- winjitsu-0.5.0/tests/test_window.py +139 -0
- winjitsu-0.4.2/src/winjitsu/__init__.py +0 -10
- winjitsu-0.4.2/src/winjitsu/actions.py +0 -170
- winjitsu-0.4.2/src/winjitsu/cache.py +0 -147
- winjitsu-0.4.2/src/winjitsu/config.py +0 -77
- winjitsu-0.4.2/src/winjitsu/daemon.py +0 -187
- winjitsu-0.4.2/src/winjitsu/screen.py +0 -93
- winjitsu-0.4.2/src/winjitsu/window.py +0 -65
- {winjitsu-0.4.2 → winjitsu-0.5.0}/LICENSE +0 -0
- {winjitsu-0.4.2 → winjitsu-0.5.0}/setup.cfg +0 -0
- {winjitsu-0.4.2 → winjitsu-0.5.0}/src/WinJitsu.egg-info/dependency_links.txt +0 -0
- {winjitsu-0.4.2 → winjitsu-0.5.0}/src/WinJitsu.egg-info/entry_points.txt +0 -0
- {winjitsu-0.4.2 → winjitsu-0.5.0}/src/WinJitsu.egg-info/requires.txt +0 -0
- {winjitsu-0.4.2 → winjitsu-0.5.0}/src/WinJitsu.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: WinJitsu
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Animated window snapping for Linux X11: halves, quarters, center, fullscreen and multi-monitor moves from hotkeys, via a small background daemon
|
|
5
5
|
License-Expression: GPL-3.0-only
|
|
6
6
|
Project-URL: Homepage, https://github.com/Evilchuck666/WinJitsu
|
|
@@ -25,16 +25,27 @@ Dynamic: license-file
|
|
|
25
25
|

|
|
26
26
|
[](LICENSE)
|
|
27
27
|
[](https://github.com/Evilchuck666/WinJitsu/releases/latest)
|
|
28
|
-
[](https://github.com/Evilchuck666/WinJitsu/actions/workflows/release.yaml)
|
|
29
29
|
|
|
30
|
-
**
|
|
30
|
+
**Snap your windows into place, with smooth animations.**
|
|
31
|
+
|
|
32
|
+
WinJitsu is a slick, animated window management tool for Linux (X11).
|
|
31
33
|
It allows you to effortlessly snap your active windows to various positions
|
|
32
34
|
on your screen with smooth animations, making your workflow feel more organic and responsive. ✨
|
|
33
35
|
|
|
36
|
+
🌐 **Website:** https://evilchuck666.github.io/WinJitsu/
|
|
37
|
+
|
|
38
|
+
<!-- SCREENSHOTS:START -->
|
|
39
|
+
## 🎬 Demo
|
|
40
|
+
|
|
41
|
+
[](https://evilchuck666.github.io/WinJitsu/assets/screenshots/winjitsu-demo.mp4)
|
|
34
42
|
|
|
35
|
-
|
|
43
|
+
Recorded on a two-monitor X11 desktop, with each action subtitled as it runs.
|
|
44
|
+
Click the preview to watch the full-resolution video ([MP4](site/assets/screenshots/winjitsu-demo.mp4), 48 s).
|
|
36
45
|
|
|
37
|
-
|
|
46
|
+
<!-- SCREENSHOTS:END -->
|
|
47
|
+
|
|
48
|
+
## ✨ Features
|
|
38
49
|
|
|
39
50
|
- **Smooth Animations**: Windows glide to their new positions instead of just jumping there. 🌬️
|
|
40
51
|
- **Grid Snapping**: Position windows easily to the North, South, East, West, corners, or center. 🧭
|
|
@@ -44,97 +55,69 @@ on your screen with smooth animations, making your workflow feel more organic an
|
|
|
44
55
|
- **Config File**: Persist your preferences in `~/.config/winjitsu/config.ini`. ⚙️
|
|
45
56
|
- **CLI Overrides**: Override config values when starting the daemon — no file editing needed. 🎛️
|
|
46
57
|
|
|
58
|
+
## 📥 Download
|
|
47
59
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
60
|
+
| Channel | Package |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| Arch Linux (AUR) | [winjitsu](https://aur.archlinux.org/packages/winjitsu) |
|
|
63
|
+
| PyPI | [WinJitsu](https://pypi.org/project/WinJitsu/) |
|
|
64
|
+
| GitHub release | [Wheel and source archive](https://github.com/Evilchuck666/WinJitsu/releases/latest) |
|
|
51
65
|
|
|
52
|
-
|
|
66
|
+
[Release notes](https://github.com/Evilchuck666/WinJitsu/releases/latest) · [SHA256SUMS.txt](https://github.com/Evilchuck666/WinJitsu/releases/latest/download/SHA256SUMS.txt)
|
|
53
67
|
|
|
54
|
-
|
|
55
|
-
- `xdotool` (for window manipulation)
|
|
56
|
-
- `python-xlib` / `python3-xlib` (for screen detection via RandR)
|
|
68
|
+
## 🚀 Getting started
|
|
57
69
|
|
|
58
|
-
###
|
|
70
|
+
### 🏹 On Arch‑based systems
|
|
59
71
|
|
|
60
|
-
|
|
72
|
+
WinJitsu is available in the AUR. You can install it using your favorite AUR helper (e.g., `yay`):
|
|
61
73
|
|
|
62
74
|
```bash
|
|
63
|
-
|
|
75
|
+
yay -S winjitsu
|
|
64
76
|
```
|
|
65
77
|
|
|
66
|
-
###
|
|
78
|
+
### 🐍 From PyPI
|
|
67
79
|
|
|
68
80
|
```bash
|
|
69
|
-
|
|
81
|
+
pip install WinJitsu
|
|
70
82
|
```
|
|
71
83
|
|
|
72
|
-
|
|
84
|
+
`xdotool` still has to come from your distribution (see Requirements below).
|
|
85
|
+
|
|
86
|
+
### ▶️ First run
|
|
73
87
|
|
|
74
88
|
```bash
|
|
75
|
-
|
|
89
|
+
winjitsu --daemon # start the daemon once per session
|
|
90
|
+
winjitsu E # snap the active window to the right half
|
|
76
91
|
```
|
|
77
92
|
|
|
93
|
+
## 📋 Requirements
|
|
78
94
|
|
|
79
|
-
|
|
95
|
+
Make sure you have the following installed on your system:
|
|
80
96
|
|
|
81
|
-
|
|
97
|
+
- Python 3.10+ 🐍
|
|
98
|
+
- `xdotool` (for window manipulation)
|
|
99
|
+
- `python-xlib` / `python3-xlib` (for screen detection via RandR)
|
|
82
100
|
|
|
83
|
-
###
|
|
101
|
+
### Installing Dependencies
|
|
84
102
|
|
|
85
|
-
|
|
103
|
+
### 🐧 Arch‑based distributions (Arch Linux, EndeavourOS, Manjaro, etc.)
|
|
86
104
|
|
|
87
105
|
```bash
|
|
88
|
-
|
|
106
|
+
sudo pacman -S python xdotool python-xlib
|
|
89
107
|
```
|
|
90
108
|
|
|
91
|
-
###
|
|
109
|
+
### 🐧 Debian‑based distributions (Debian, Ubuntu, Linux Mint, etc.)
|
|
92
110
|
|
|
93
111
|
```bash
|
|
94
|
-
|
|
112
|
+
sudo apt install python3 xdotool python3-xlib
|
|
95
113
|
```
|
|
96
114
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
### Building and Installing Wheel
|
|
100
|
-
|
|
101
|
-
To install WinJitsu as a package, you can build a wheel and install it.
|
|
102
|
-
This uses the standard `pyproject.toml` configuration to build the package.
|
|
103
|
-
This allows you to run `winjitsu` from anywhere.
|
|
104
|
-
|
|
105
|
-
1. **Install build tools**:
|
|
106
|
-
```bash
|
|
107
|
-
pip install build
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
2. **Build the package**:
|
|
111
|
-
```bash
|
|
112
|
-
python3 -m build
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
3. **Install the wheel**:
|
|
116
|
-
```bash
|
|
117
|
-
pip install dist/winjitsu-*-py3-none-any.whl --force-reinstall
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
4. **Run WinJitsu**:
|
|
121
|
-
```bash
|
|
122
|
-
winjitsu --help
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Manual Installation (From Source)
|
|
126
|
-
|
|
127
|
-
Clone the repository and install using `pip`:
|
|
115
|
+
### 🐧 Fedora‑based distributions (Fedora, CentOS, etc.)
|
|
128
116
|
|
|
129
117
|
```bash
|
|
130
|
-
|
|
131
|
-
cd WinJitsu
|
|
132
|
-
pip install .
|
|
118
|
+
sudo dnf install python3 xdotool python3-xlib
|
|
133
119
|
```
|
|
134
120
|
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
121
|
## 🎮 Usage
|
|
139
122
|
|
|
140
123
|
Run the command with an action argument to control the active window:
|
|
@@ -165,61 +148,9 @@ winjitsu [ACTION] [OPTIONS]
|
|
|
165
148
|
| `TD` | Move to the next monitor | 📺 |
|
|
166
149
|
| `CC` | Clear the window state cache | 🧹 |
|
|
167
150
|
|
|
168
|
-
The **home position** is where a window was before WinJitsu first moved it. It is kept per window in `~/.cache/winjitsu/state.db` and reset whenever the daemon starts or you move the window yourself.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## ⚙️ Configuration
|
|
174
|
-
|
|
175
|
-
WinJitsu can be configured via a file or directly from the command line. CLI flags always take priority over the config file. 🏆
|
|
176
|
-
|
|
177
|
-
### Config File
|
|
178
|
-
|
|
179
|
-
The config file lives at `~/.config/winjitsu/config.ini` (respects `$XDG_CONFIG_HOME`).
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
winjitsu --write-config # 📝 Save current settings to the config file
|
|
183
|
-
winjitsu --see-config # 👀 Show the active config file path and values
|
|
184
|
-
winjitsu --read-config PATH # 📂 Use a different config file for this run
|
|
185
|
-
```
|
|
151
|
+
The **home position** is where a window was before WinJitsu first moved it. It is kept per window in `~/.cache/winjitsu/state.db` (respects `$XDG_CACHE_HOME`) and reset whenever the daemon starts or you move the window yourself.
|
|
186
152
|
|
|
187
|
-
###
|
|
188
|
-
|
|
189
|
-
| Flag | Config key | Default | Description |
|
|
190
|
-
|:----------------|:--------------------|:--------|:------------------------------------------------------|
|
|
191
|
-
| `--steps N` | `[animation] steps` | `25` | Animation steps — higher is smoother but slower 🎞️ |
|
|
192
|
-
| `--padding PX` | `[display] padding` | `0` | Gap in pixels around the window when fullscreening 📐 |
|
|
193
|
-
| `--delay-ms MS` | `[daemon] delay_ms` | `250` | Delay in ms before an action fires in daemon mode ⏱️ |
|
|
194
|
-
|
|
195
|
-
### Examples
|
|
196
|
-
|
|
197
|
-
```bash
|
|
198
|
-
winjitsu --daemon --steps 10 # Start daemon with snappy animation 💨
|
|
199
|
-
winjitsu --daemon --padding 8 # Start daemon with a cozy fullscreen gap 🖼️
|
|
200
|
-
winjitsu --write-config --steps 15 --padding 4 # Save these as your defaults 💾
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## ⚡ Daemon Mode
|
|
207
|
-
|
|
208
|
-
Running WinJitsu as a background daemon makes hotkey responses feel instant and prevents duplicate actions from key repeat. 🚀
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
winjitsu --daemon # Start the daemon in the background
|
|
212
|
-
winjitsu --reload-daemon # Restart the daemon 🔄
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
When the daemon is running, any `winjitsu [ACTION]` command is sent to it over a Unix socket. The daemon waits a short delay (configurable with `--delay-ms`) and only runs the last action of a rapid burst, so key repeat collapses into a single, clean move. ✨
|
|
216
|
-
|
|
217
|
-
> 💡 **Tip:** Start the daemon on login and bind your hotkeys to `winjitsu [ACTION]` — you'll barely notice the tool is even there.
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## 🎹 Binding Keys
|
|
153
|
+
### Binding keys
|
|
223
154
|
|
|
224
155
|
For the best experience, bind these commands to keyboard shortcuts in your window manager configuration
|
|
225
156
|
(e.g., i3, creating custom shortcuts in GNOME/KDE).
|
|
@@ -230,8 +161,11 @@ Example:
|
|
|
230
161
|
|
|
231
162
|
Happy tiling! 🎉
|
|
232
163
|
|
|
233
|
-
|
|
164
|
+
## 📚 Learn more
|
|
165
|
+
|
|
166
|
+
- [Technical guide](TECHNICAL_GUIDE.md): configuration file and options,
|
|
167
|
+
daemon mode, and installing from a wheel or from source.
|
|
234
168
|
|
|
235
169
|
## ⚖️ License
|
|
236
170
|
|
|
237
|
-
|
|
171
|
+
WinJitsu is free software released under the **GNU General Public License v3.0** (GPL-3.0). See [LICENSE](LICENSE).
|
|
@@ -5,16 +5,27 @@
|
|
|
5
5
|

|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://github.com/Evilchuck666/WinJitsu/releases/latest)
|
|
8
|
-
[](https://github.com/Evilchuck666/WinJitsu/actions/workflows/release.yaml)
|
|
9
9
|
|
|
10
|
-
**
|
|
10
|
+
**Snap your windows into place, with smooth animations.**
|
|
11
|
+
|
|
12
|
+
WinJitsu is a slick, animated window management tool for Linux (X11).
|
|
11
13
|
It allows you to effortlessly snap your active windows to various positions
|
|
12
14
|
on your screen with smooth animations, making your workflow feel more organic and responsive. ✨
|
|
13
15
|
|
|
16
|
+
🌐 **Website:** https://evilchuck666.github.io/WinJitsu/
|
|
17
|
+
|
|
18
|
+
<!-- SCREENSHOTS:START -->
|
|
19
|
+
## 🎬 Demo
|
|
20
|
+
|
|
21
|
+
[](https://evilchuck666.github.io/WinJitsu/assets/screenshots/winjitsu-demo.mp4)
|
|
14
22
|
|
|
15
|
-
|
|
23
|
+
Recorded on a two-monitor X11 desktop, with each action subtitled as it runs.
|
|
24
|
+
Click the preview to watch the full-resolution video ([MP4](site/assets/screenshots/winjitsu-demo.mp4), 48 s).
|
|
16
25
|
|
|
17
|
-
|
|
26
|
+
<!-- SCREENSHOTS:END -->
|
|
27
|
+
|
|
28
|
+
## ✨ Features
|
|
18
29
|
|
|
19
30
|
- **Smooth Animations**: Windows glide to their new positions instead of just jumping there. 🌬️
|
|
20
31
|
- **Grid Snapping**: Position windows easily to the North, South, East, West, corners, or center. 🧭
|
|
@@ -24,97 +35,69 @@ on your screen with smooth animations, making your workflow feel more organic an
|
|
|
24
35
|
- **Config File**: Persist your preferences in `~/.config/winjitsu/config.ini`. ⚙️
|
|
25
36
|
- **CLI Overrides**: Override config values when starting the daemon — no file editing needed. 🎛️
|
|
26
37
|
|
|
38
|
+
## 📥 Download
|
|
27
39
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
40
|
+
| Channel | Package |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| Arch Linux (AUR) | [winjitsu](https://aur.archlinux.org/packages/winjitsu) |
|
|
43
|
+
| PyPI | [WinJitsu](https://pypi.org/project/WinJitsu/) |
|
|
44
|
+
| GitHub release | [Wheel and source archive](https://github.com/Evilchuck666/WinJitsu/releases/latest) |
|
|
31
45
|
|
|
32
|
-
|
|
46
|
+
[Release notes](https://github.com/Evilchuck666/WinJitsu/releases/latest) · [SHA256SUMS.txt](https://github.com/Evilchuck666/WinJitsu/releases/latest/download/SHA256SUMS.txt)
|
|
33
47
|
|
|
34
|
-
|
|
35
|
-
- `xdotool` (for window manipulation)
|
|
36
|
-
- `python-xlib` / `python3-xlib` (for screen detection via RandR)
|
|
48
|
+
## 🚀 Getting started
|
|
37
49
|
|
|
38
|
-
###
|
|
50
|
+
### 🏹 On Arch‑based systems
|
|
39
51
|
|
|
40
|
-
|
|
52
|
+
WinJitsu is available in the AUR. You can install it using your favorite AUR helper (e.g., `yay`):
|
|
41
53
|
|
|
42
54
|
```bash
|
|
43
|
-
|
|
55
|
+
yay -S winjitsu
|
|
44
56
|
```
|
|
45
57
|
|
|
46
|
-
###
|
|
58
|
+
### 🐍 From PyPI
|
|
47
59
|
|
|
48
60
|
```bash
|
|
49
|
-
|
|
61
|
+
pip install WinJitsu
|
|
50
62
|
```
|
|
51
63
|
|
|
52
|
-
|
|
64
|
+
`xdotool` still has to come from your distribution (see Requirements below).
|
|
65
|
+
|
|
66
|
+
### ▶️ First run
|
|
53
67
|
|
|
54
68
|
```bash
|
|
55
|
-
|
|
69
|
+
winjitsu --daemon # start the daemon once per session
|
|
70
|
+
winjitsu E # snap the active window to the right half
|
|
56
71
|
```
|
|
57
72
|
|
|
73
|
+
## 📋 Requirements
|
|
58
74
|
|
|
59
|
-
|
|
75
|
+
Make sure you have the following installed on your system:
|
|
60
76
|
|
|
61
|
-
|
|
77
|
+
- Python 3.10+ 🐍
|
|
78
|
+
- `xdotool` (for window manipulation)
|
|
79
|
+
- `python-xlib` / `python3-xlib` (for screen detection via RandR)
|
|
62
80
|
|
|
63
|
-
###
|
|
81
|
+
### Installing Dependencies
|
|
64
82
|
|
|
65
|
-
|
|
83
|
+
### 🐧 Arch‑based distributions (Arch Linux, EndeavourOS, Manjaro, etc.)
|
|
66
84
|
|
|
67
85
|
```bash
|
|
68
|
-
|
|
86
|
+
sudo pacman -S python xdotool python-xlib
|
|
69
87
|
```
|
|
70
88
|
|
|
71
|
-
###
|
|
89
|
+
### 🐧 Debian‑based distributions (Debian, Ubuntu, Linux Mint, etc.)
|
|
72
90
|
|
|
73
91
|
```bash
|
|
74
|
-
|
|
92
|
+
sudo apt install python3 xdotool python3-xlib
|
|
75
93
|
```
|
|
76
94
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
### Building and Installing Wheel
|
|
80
|
-
|
|
81
|
-
To install WinJitsu as a package, you can build a wheel and install it.
|
|
82
|
-
This uses the standard `pyproject.toml` configuration to build the package.
|
|
83
|
-
This allows you to run `winjitsu` from anywhere.
|
|
84
|
-
|
|
85
|
-
1. **Install build tools**:
|
|
86
|
-
```bash
|
|
87
|
-
pip install build
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
2. **Build the package**:
|
|
91
|
-
```bash
|
|
92
|
-
python3 -m build
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
3. **Install the wheel**:
|
|
96
|
-
```bash
|
|
97
|
-
pip install dist/winjitsu-*-py3-none-any.whl --force-reinstall
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
4. **Run WinJitsu**:
|
|
101
|
-
```bash
|
|
102
|
-
winjitsu --help
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Manual Installation (From Source)
|
|
106
|
-
|
|
107
|
-
Clone the repository and install using `pip`:
|
|
95
|
+
### 🐧 Fedora‑based distributions (Fedora, CentOS, etc.)
|
|
108
96
|
|
|
109
97
|
```bash
|
|
110
|
-
|
|
111
|
-
cd WinJitsu
|
|
112
|
-
pip install .
|
|
98
|
+
sudo dnf install python3 xdotool python3-xlib
|
|
113
99
|
```
|
|
114
100
|
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
101
|
## 🎮 Usage
|
|
119
102
|
|
|
120
103
|
Run the command with an action argument to control the active window:
|
|
@@ -145,61 +128,9 @@ winjitsu [ACTION] [OPTIONS]
|
|
|
145
128
|
| `TD` | Move to the next monitor | 📺 |
|
|
146
129
|
| `CC` | Clear the window state cache | 🧹 |
|
|
147
130
|
|
|
148
|
-
The **home position** is where a window was before WinJitsu first moved it. It is kept per window in `~/.cache/winjitsu/state.db` and reset whenever the daemon starts or you move the window yourself.
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## ⚙️ Configuration
|
|
154
|
-
|
|
155
|
-
WinJitsu can be configured via a file or directly from the command line. CLI flags always take priority over the config file. 🏆
|
|
156
|
-
|
|
157
|
-
### Config File
|
|
158
|
-
|
|
159
|
-
The config file lives at `~/.config/winjitsu/config.ini` (respects `$XDG_CONFIG_HOME`).
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
winjitsu --write-config # 📝 Save current settings to the config file
|
|
163
|
-
winjitsu --see-config # 👀 Show the active config file path and values
|
|
164
|
-
winjitsu --read-config PATH # 📂 Use a different config file for this run
|
|
165
|
-
```
|
|
131
|
+
The **home position** is where a window was before WinJitsu first moved it. It is kept per window in `~/.cache/winjitsu/state.db` (respects `$XDG_CACHE_HOME`) and reset whenever the daemon starts or you move the window yourself.
|
|
166
132
|
|
|
167
|
-
###
|
|
168
|
-
|
|
169
|
-
| Flag | Config key | Default | Description |
|
|
170
|
-
|:----------------|:--------------------|:--------|:------------------------------------------------------|
|
|
171
|
-
| `--steps N` | `[animation] steps` | `25` | Animation steps — higher is smoother but slower 🎞️ |
|
|
172
|
-
| `--padding PX` | `[display] padding` | `0` | Gap in pixels around the window when fullscreening 📐 |
|
|
173
|
-
| `--delay-ms MS` | `[daemon] delay_ms` | `250` | Delay in ms before an action fires in daemon mode ⏱️ |
|
|
174
|
-
|
|
175
|
-
### Examples
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
winjitsu --daemon --steps 10 # Start daemon with snappy animation 💨
|
|
179
|
-
winjitsu --daemon --padding 8 # Start daemon with a cozy fullscreen gap 🖼️
|
|
180
|
-
winjitsu --write-config --steps 15 --padding 4 # Save these as your defaults 💾
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## ⚡ Daemon Mode
|
|
187
|
-
|
|
188
|
-
Running WinJitsu as a background daemon makes hotkey responses feel instant and prevents duplicate actions from key repeat. 🚀
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
winjitsu --daemon # Start the daemon in the background
|
|
192
|
-
winjitsu --reload-daemon # Restart the daemon 🔄
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
When the daemon is running, any `winjitsu [ACTION]` command is sent to it over a Unix socket. The daemon waits a short delay (configurable with `--delay-ms`) and only runs the last action of a rapid burst, so key repeat collapses into a single, clean move. ✨
|
|
196
|
-
|
|
197
|
-
> 💡 **Tip:** Start the daemon on login and bind your hotkeys to `winjitsu [ACTION]` — you'll barely notice the tool is even there.
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## 🎹 Binding Keys
|
|
133
|
+
### Binding keys
|
|
203
134
|
|
|
204
135
|
For the best experience, bind these commands to keyboard shortcuts in your window manager configuration
|
|
205
136
|
(e.g., i3, creating custom shortcuts in GNOME/KDE).
|
|
@@ -210,8 +141,11 @@ Example:
|
|
|
210
141
|
|
|
211
142
|
Happy tiling! 🎉
|
|
212
143
|
|
|
213
|
-
|
|
144
|
+
## 📚 Learn more
|
|
145
|
+
|
|
146
|
+
- [Technical guide](TECHNICAL_GUIDE.md): configuration file and options,
|
|
147
|
+
daemon mode, and installing from a wheel or from source.
|
|
214
148
|
|
|
215
149
|
## ⚖️ License
|
|
216
150
|
|
|
217
|
-
|
|
151
|
+
WinJitsu is free software released under the **GNU General Public License v3.0** (GPL-3.0). See [LICENSE](LICENSE).
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "WinJitsu"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.5.0"
|
|
8
8
|
description = "Animated window snapping for Linux X11: halves, quarters, center, fullscreen and multi-monitor moves from hotkeys, via a small background daemon"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|