Skip to content

Commit 8602a2d

Browse files
committed
Merge remote-tracking branch 'origin/master'
# Conflicts: # CMakeLists.txt # src/app/main.cpp # src/lin/linux_test.c # src/lin/linux_test.cpp # src/linux/linux_test.c
2 parents 60ae003 + b3a5cee commit 8602a2d

23 files changed

+296
-131
lines changed

.idea/editor.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,82 @@
11
<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>
33
Split Loaf - Keyboard Rerouter
44
</h1>
55

6-
**Status:** Somehow working?
6+
**Status:** Version 1.0.0 – Fully Released 🎉
7+
8+
[![Microsoft Store Page](https://get.microsoft.com/images/en-us%20light.svg)](https://apps.microsoft.com/detail/9nfhj4ptjxkv?hl=en-GB&gl=GB)
79

810
[![Windows Build Status](https://github.com/AustinATTS/split_loaf/actions/workflows/build.yml/badge.svg)](https://github.com/AustinATTS/split_loaf/actions/workflows/build.yml) [![Linux Build Status](https://github.com/AustinATTS/split_loaf/actions/workflows/build_linux.yml/badge.svg)](https://github.com/AustinATTS/split_loaf/actions/workflows/build_linux.yml)
911

1012
Overview
1113
--------
1214

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.
1518

1619
Features
1720
--------
1821

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.
2729

2830
Current Development Status
2931
--------------------------
3032

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:
3834

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.
3938

4039
How It Works
4140
------------
4241

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.
4446

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.
5048

49+
Linux Versions
50+
--------------
5151

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.
5353

5454
Future Improvements
5555
-------------------
5656

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.
5861

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+
------------
6764

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.
6970

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.
7175

7276
Contact
7377
-------
7478

7579
For questions, bug reports, or feature suggestions:
7680

77-
**Austin Welsh-Graham**
78-
81+
**Austin Welsh-Graham**
7982

assets/Icon/Split Loaf.ico

139 KB
Binary file not shown.
657 KB
Loading

assets/Logo/Split Loaf 150x150.png

16.4 KB
Loading
1.75 MB
Loading

assets/Logo/Split Loaf 300x300.png

64.6 KB
Loading

assets/Logo/Split Loaf 71x71.png

4.23 KB
Loading
10.5 KB
Loading
10.5 KB
Loading

0 commit comments

Comments
 (0)