|
1 | 1 | <h1 align="center"> |
2 | | - <img src="https://github.com/AustinATTS/split_loaf/blob/master/assets/splitloaf.png" width="" height="250" alt="Logo"/></br> |
| 2 | + <img src="https://github.com/AustinATTS/split_loaf/blob/master/assets/Logo/Split%20Loaf%202160x2160.png" width="" height="250" alt="Logo"/></br> |
3 | 3 | Split Loaf - Keyboard Rerouter |
4 | 4 | </h1> |
5 | 5 |
|
6 | | -**Status:** Somehow working? |
| 6 | +**Status:** Version 1.0.0 – Fully Released 🎉 |
| 7 | + |
| 8 | +[](https://apps.microsoft.com/detail/9nfhj4ptjxkv?hl=en-GB&gl=GB) |
7 | 9 |
|
8 | 10 | [](https://github.com/AustinATTS/split_loaf/actions/workflows/build.yml) [](https://github.com/AustinATTS/split_loaf/actions/workflows/build_linux.yml) |
9 | 11 |
|
10 | 12 | Overview |
11 | 13 | -------- |
12 | 14 |
|
13 | | -Split Loaf is a Windows utility designed to reroute keyboard input to a specific target window. Once a target window is chosen, the keyboard can be “locked” to that window, so that all typed keys are sent directly to it regardless of which window is currently focused. This is useful for scenarios where you want input to always go to a particular application without manually switching focus. |
14 | | -For example if you'd like to keep browsing through Google while still typing in a text editor without the need to move your mouse around. |
| 15 | +Split Loaf is a Windows utility designed to reroute keyboard input to a specific target window. Once a target window is chosen, the keyboard can be **“locked”** to that window, so all typed keys are sent directly to it regardless of which window is currently focused. This is perfect for scenarios where you want input to always go to a particular application without manually switching focus—for example, browsing the web while typing into a text editor without moving your mouse. |
| 16 | + |
| 17 | +Version 1.0.0 marks the first full Windows release, with a stable executable, system tray integration, and persistent keybind and startup settings via the Windows Registry. |
15 | 18 |
|
16 | 19 | Features |
17 | 20 | -------- |
18 | 21 |
|
19 | | -* **Select Target Window**: Press **F8** to pick a window under your cursor as the target. |
20 | | - |
21 | | -* **Lock Keyboard**: Press **F6** to lock all keyboard input to the selected window. |
22 | | - |
23 | | -* **Unlock Keyboard**: Press **F7** to release the lock and restore normal keyboard behaviour. |
24 | | - |
25 | | -* **Direct Input Injection**: Keys are sent directly to the target window automatically. |
26 | | - |
| 22 | +* **Select Target Window**: Press **F8** to pick a window under your cursor as the target. |
| 23 | +* **Lock Keyboard**: Press **F6** to lock all keyboard input to the selected window. |
| 24 | +* **Unlock Keyboard**: Press **F7** to release the lock and restore normal keyboard behaviour. |
| 25 | +* **Direct Input Injection**: Keys are sent directly to the target window automatically. |
| 26 | +* **Custom Keybinds**: Reassign the default function keys to any keys you like via the settings. |
| 27 | +* **System Tray Integration**: Live tooltips show your current target and lock state. |
| 28 | +* **Persistent Settings**: Run on startup and keybind configurations are stored in the Windows Registry, surviving restarts and updates. |
27 | 29 |
|
28 | 30 | Current Development Status |
29 | 31 | -------------------------- |
30 | 32 |
|
31 | | -Split Loaf is still under active development. The current version works but has a few known limitations: |
32 | | - |
33 | | -* Non-standard input (like Unicode or multi-character inputs) may not be fully supported. |
34 | | - |
35 | | -* Currently limited to Windows; cross-platform support is not implemented. |
36 | | - |
37 | | -* Some applications may behave unexpectedly due to how they handle low-level keyboard messages. |
| 33 | +Split Loaf 1.0.0 is now a stable release for Windows. Some limitations still exist: |
38 | 34 |
|
| 35 | +* Non-standard input (like Unicode or multi-character sequences) may not be fully supported. |
| 36 | +* Currently Windows-only; cross-platform support is still in development. |
| 37 | +* Some applications may behave unexpectedly depending on how they handle low-level keyboard messages. |
39 | 38 |
|
40 | 39 | How It Works |
41 | 40 | ------------ |
42 | 41 |
|
43 | | -1. Press **F8** to select a target window. |
| 42 | +1. Press **F8** to select a target window. |
| 43 | +2. Press **F6** to lock the keyboard to that window. |
| 44 | +3. All typed keys are sent directly to the target window. |
| 45 | +4. Press **F7** to unlock the keyboard and return to normal input behaviour. |
44 | 46 |
|
45 | | -2. Press **F6** to lock the keyboard to that window. |
46 | | - |
47 | | -3. All typed keys are sent directly to the target window. |
48 | | - |
49 | | -4. Press **F7** to unlock the keyboard and return to normal input behaviour. |
| 47 | +Internally, Split Loaf uses a **low-level keyboard hook** and sends messages directly to the target window. Modifier keys are preserved while locked. |
50 | 48 |
|
| 49 | +Linux Versions |
| 50 | +-------------- |
51 | 51 |
|
52 | | -Internally, the program uses a **low-level keyboard hook** and sends messages directly to the target window. It ignores key up so modifier keys can still be used. |
| 52 | +Split Loaf currently relies on Windows APIs, so Linux support requires a different method for keyboard input and window detection. Early testing on Wayland (Hyprland with Arch) shows partial functionality, but challenges exist with active window detection and input security protocols. Further exploration is ongoing. |
53 | 53 |
|
54 | 54 | Future Improvements |
55 | 55 | ------------------- |
56 | 56 |
|
57 | | -* Unicode and symbol input handling. |
| 57 | +* Full Unicode and symbol input handling. |
| 58 | +* Optional visual indicator for lock state. |
| 59 | +* Cross-platform support for Linux and other OSes. |
| 60 | +* Windows notifications for lock/unlock events. |
58 | 61 |
|
59 | | -* Optional visual indicator for lock state. |
60 | | - |
61 | | -Linux Versions |
62 | | -------------- |
63 | | - |
64 | | -Currently, the version of Split Loaf relies on Windows API for handling the keyboard redirection and so a new method will be needed for accessing keyboard input on linux or other devices to be able to handle them as well as for finding the window ID of what is being used. A possible issue could be in environments like hyprland which bases the active window solely on where the mouse is, instead of having a separate active window and so might be hard to do, but I'll give it a go because why not. |
65 | | - |
66 | | -Different linux distros might handle this differently as well, currently using wayland for arch so that will be what I develop for first. |
| 62 | +Installation |
| 63 | +------------ |
67 | 64 |
|
68 | | -The test file given for linux has shown to somewhat work when used on hyprland (wayland) with arch however doesn't with crosinti penguin so they might handle inputs in different ways. It does this based on a given command to output space where if you are quick enough to move to a different window, it will send the space to that window and so it will need to be modified such that it can also switch to the target window automatically as well as give the output based on what the user tpes in. |
| 65 | +GitHub |
| 66 | +1. Download the latest [Windows executable](https://github.com/AustinATTS/split_loaf/releases/latest). |
| 67 | +2. Move it to your preferred location. |
| 68 | +3. Run it. |
| 69 | +4. (Optional) Enable **Run on Startup** to have Split Loaf launch automatically with Windows. |
69 | 70 |
|
70 | | -Wayland has some weird security protocols in the way it handles windows so it may be difficult to work, a scripting languages that can execute terminal xommands might be better suited so I'll need to look into this and see if it could be a suitable suggestion. |
| 71 | +Microsoft Store |
| 72 | +1. Download from the [Microsoft Store](https://apps.microsoft.com/detail/9nfhj4ptjxkv?referrer=appbadge&mode=direct). |
| 73 | +2. Run it. |
| 74 | +3. (Optional) Enable **Run on Startup** to have Split Loaf launch automatically with Windows. |
71 | 75 |
|
72 | 76 | Contact |
73 | 77 | ------- |
74 | 78 |
|
75 | 79 | For questions, bug reports, or feature suggestions: |
76 | 80 |
|
77 | | -**Austin Welsh-Graham** |
78 | | - |
| 81 | +**Austin Welsh-Graham** |
79 | 82 | |
0 commit comments