Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
02ba2bb
Merge pull request #15 from antonbarchukov/main
am-will Mar 24, 2026
27cdefe
plan: record shortcut inventory
am-will Mar 24, 2026
6b5828a
host: add shortcut metadata registry
am-will Mar 24, 2026
d87d40d
host: add shortcut config contract
am-will Mar 24, 2026
c53622b
plan: record shortcut inventory
am-will Mar 24, 2026
84caabd
host: wire shortcuts through runtime registry
am-will Mar 24, 2026
7b3441a
plan: verify shortcut config groundwork
am-will Mar 24, 2026
3f17cba
host: route shortcut capture through registry
am-will Mar 24, 2026
4917045
host: derive shortcut tooltips from registry
am-will Mar 24, 2026
32099c5
host: finalize configurable shortcut registry
am-will Mar 24, 2026
60572ca
host: add shortcut persistence primitives
am-will Mar 25, 2026
54df740
host: harden shortcut config persistence
am-will Mar 25, 2026
eac64c1
host: add terminal keybind editor
am-will Mar 25, 2026
ecbce1f
docs: cover keybind editor verification
am-will Mar 25, 2026
4dde46a
docs: fix keybind testing checklist numbering
am-will Mar 25, 2026
9172da3
host: stabilize keybind editor opening
am-will Mar 25, 2026
90198ee
host: capture shortcuts on first non-modifier key
am-will Mar 25, 2026
5fc304f
host: fix first-click keybind capture
am-will Mar 25, 2026
b33bbda
host: focus keybind editor on popup
am-will Mar 25, 2026
bfb1243
host: focus keybind popover capture
am-will Mar 25, 2026
52d5bd9
host: open keybinds in pane tab
am-will Mar 25, 2026
2b50e9e
host: let keybind tab fill pane height
am-will Mar 25, 2026
6c76328
host: avoid restore borrow conflict for keybind tabs
am-will Mar 25, 2026
88fc948
chore: checkpoint before keybind editor fixes
am-will Mar 25, 2026
14a4636
host: escape dropped terminal control bytes
am-will Mar 25, 2026
fffa41b
fix keybind editor shortcut capture gaps
am-will Mar 25, 2026
6841290
add super key support for shortcuts
am-will Mar 25, 2026
586b1f2
Add fullscreen and top bar toggles
am-will Mar 25, 2026
71643a3
Fix GTK F11 accelerator mapping
am-will Mar 25, 2026
4ae4427
host: fix rust quality for surface shortcut refactor
am-will Mar 25, 2026
03425df
Make sidebar title strip draggable
am-will Mar 25, 2026
ac70080
Add pane and workspace tab drag and drop
am-will Mar 25, 2026
57d1d80
Fix tab drag workspace cleanup
am-will Mar 25, 2026
34d9e02
fix: reduce split_pane arguments
am-will Mar 25, 2026
299fe75
Adjust shortcuts and sidebar resize behavior
am-will Mar 25, 2026
fafb470
Fix shortcut config formatting
am-will Mar 25, 2026
cc0de75
Handle Codex OSC 9 notifications
am-will Mar 25, 2026
825a105
Handle Ghostty desktop notifications in host
am-will Mar 25, 2026
c902ec4
Release 0.1.8
am-will Mar 26, 2026
a8a6fb2
Fix workspace save reentrancy and cut 0.1.9 release
am-will Mar 26, 2026
e1ddec2
Remove accidental plan docs
am-will Mar 26, 2026
388ef5e
Add opt-in terminal hover focus setting
IgorWarzocha Mar 26, 2026
b35205f
Release 0.1.10
am-will Mar 26, 2026
ba00da8
Add browser action to terminal context menu
IgorWarzocha Mar 26, 2026
1af8dfb
host: split settings and shortcut config files
am-will Mar 26, 2026
e63ab31
Merge pull request #22 from IgorWarzocha/feat/hover-focus
am-will Mar 26, 2026
d6d79b9
Focus first pane when switching workspaces
am-will Mar 27, 2026
6e2e58d
Fix light theme entry contrast
am-will Mar 30, 2026
930adef
fix: handle localhost URLs in browser pane
threehymns Mar 31, 2026
a997efd
Support Ghostty background opacity
am-will Apr 1, 2026
aa5226c
fix browser localhost URL normalization
am-will Apr 1, 2026
f1e9174
Merge pull request #33 from am-will/issue-30-background-opacity
am-will Apr 1, 2026
536e6e9
Fix search activation for IME and dead keys
am-will Apr 1, 2026
ac4d3e3
Merge pull request #32 from threehymns/fix/localhost-url-handling
am-will Apr 1, 2026
ecc35e7
Merge pull request #23 from IgorWarzocha/feat/terminal-context-open-b…
am-will Apr 1, 2026
742befa
fix: format host window test imports
am-will Mar 29, 2026
54b17ff
Add a settings dialog with persisted appearance controls
turbineBMW Mar 28, 2026
66445b4
In rust/limux-host-linux/src/window.rs:1456, portal value 0 now map…
turbineBMW Mar 28, 2026
da71572
The startup theme path in rust/limux-host-linux/src/window.rs:669 n…
turbineBMW Mar 28, 2026
fd12902
• New first-run config creation now writes both appearance defaults a…
turbineBMW Mar 28, 2026
db53d10
tests: fix rebased window imports
am-will Apr 1, 2026
3186578
Merge pull request #26 from turbineBMW/appearance-settings
am-will Apr 1, 2026
0929e8a
Fix 10+ second freeze on pane split/close
mvbmir Apr 1, 2026
ead50d3
Update app icon to dark mode variant
mvbmir Apr 1, 2026
6a28d75
Merge pull request #37 from mvbmir/mvbmir/dark-mode-icon
am-will Apr 1, 2026
47c7903
Fix wrapped workspace root pane resolution
am-will Apr 1, 2026
5b013f4
Merge pull request #34 from mvbmir/fix/split-freeze-upstream
am-will Apr 1, 2026
49e8422
host: coalesce ghostty wakeup idles
am-will Apr 1, 2026
b47475f
Reject Debug builds of libghostty in packaging script
mvbmir Apr 2, 2026
abad76e
Build libghostty with ReleaseFast automatically in package.sh
mvbmir Apr 2, 2026
e89d8e5
host: reconcile render throttling with main
am-will Apr 1, 2026
63a30df
Clarify packaging prerequisites
am-will Apr 2, 2026
585da0a
Merge pull request #38 from mvbmir/fix/libghostty-release-build
am-will Apr 2, 2026
93a7fd7
Wire control socket to GTK UI (#35)
mvbmir Apr 2, 2026
d892ea0
release: bump version to 0.1.11
am-will Apr 2, 2026
3aacc9c
Change default tab cycling shortcuts to Ctrl+Tab / Ctrl+Shift+Tab
mvbmir Apr 2, 2026
125ae5e
Persist zoom level across sessions
mvbmir Apr 3, 2026
e28fa84
Fix split pane sizes resetting on workspace switch
mvbmir Apr 3, 2026
5e341c8
Rework zoom persistence to avoid ghostty submodule change
mvbmir Apr 3, 2026
5194d03
Guard position_notify handlers against unmapped pane events
mvbmir Apr 3, 2026
b517365
Broadcast font size changes to all terminals
mvbmir Apr 3, 2026
ba1cb16
Fix split ratio corruption during workspace switches
mvbmir Apr 3, 2026
5e8f4f0
Fix Ctrl+= keybinding for zoom in and broadcast to all terminals
mvbmir Apr 3, 2026
6a032fb
Remove is_mapped() guards that broke initial split layout
mvbmir Apr 3, 2026
61c680b
Fix new split rendering by capturing initial ratio by value
mvbmir Apr 3, 2026
78e5414
Handle mouse shape and config change Ghostty actions
mvbmir Apr 16, 2026
6d386be
Redesign top bar and sidebar to match cmux UX (#5)
mvbmir Apr 16, 2026
83a2384
Settings: Top bar toggle, controls side, spacing and split fixes
mvbmir Apr 16, 2026
727cbb1
Revert Ctrl+W tab-close behavior (moved to separate PR)
mvbmir Apr 17, 2026
3da0e76
Settings: toggle workspace indicators on the top bar
mvbmir Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 15 additions & 6 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ resolver = "2"
authors = ["limux contributors"]
edition = "2021"
license = "MIT"
version = "0.1.6"
version = "0.1.11"

[workspace.dependencies]
anyhow = "1.0"
Expand Down
68 changes: 60 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ Download the latest release from [GitHub Releases](https://github.com/am-will/li

**Debian/Ubuntu (.deb)** — recommended:
```bash
sudo dpkg -i ./limux_0.1.6_amd64.deb
sudo dpkg -i ./limux_0.1.7_amd64.deb
```

**AppImage** — portable, no install needed:
```bash
chmod +x Limux-0.1.6-x86_64.AppImage
./Limux-0.1.6-x86_64.AppImage
chmod +x Limux-0.1.7-x86_64.AppImage
./Limux-0.1.7-x86_64.AppImage
```

**Tarball** — manual install:
Expand Down Expand Up @@ -67,14 +67,19 @@ sudo apt install libgtk-4-1 libadwaita-1-0 libwebkitgtk-6.0-4
### Prerequisites

- Rust toolchain (stable)
- Zig
- GTK4, libadwaita, WebKitGTK dev packages
- Pre-built `libghostty.so` (included in releases, or build from the Ghostty submodule with Zig)
- Initialized Ghostty submodule

```bash
# Install dev dependencies (Ubuntu/Debian)
sudo apt install libgtk-4-dev libadwaita-1-dev libwebkitgtk-6.0-dev pkg-config build-essential

# Build
# Initialize the Ghostty submodule and build the embedded library
git submodule update --init --recursive
(cd ghostty && zig build -Dapp-runtime=none -Doptimize=ReleaseFast)

# Build limux
cargo build --release

# Run (point to libghostty.so location)
Expand All @@ -88,6 +93,7 @@ LD_LIBRARY_PATH=../ghostty/zig-out/lib:$LD_LIBRARY_PATH ./target/release/limux
```

This builds the binary, bundles `libghostty.so`, icons, and an install script into a tarball.
`package.sh` also rebuilds `libghostty.so` with `ReleaseFast`, so Zig and the initialized Ghostty submodule must be present.

## Development

Expand All @@ -101,19 +107,65 @@ Repository maintainability rules live in [`docs/maintainability.md`](docs/mainta

## Keyboard shortcuts

Most default shortcuts use `Ctrl`. Fullscreen defaults to `F11`. Custom remaps may also use `Cmd`, which Limux maps to either the Linux `Meta` or `Super` modifier. `Opt` maps to `Alt`.

### App

| Shortcut | Action |
|---|---|
| `Ctrl+Q` | Quit Limux |
| `Ctrl+Alt+N` | Open a new Limux instance |
| `F11` | Toggle fullscreen |

### Browser

| Shortcut | Action |
|---|---|
| `Ctrl+Shift+L` | Open the focused browser page in a new split |
| `Ctrl+L` | Focus browser address bar |
| `Ctrl+[` | Browser back |
| `Ctrl+]` | Browser forward |
| `Ctrl+R` | Browser reload |
| `Ctrl+Alt+I` | Open Web Inspector |
| `Ctrl+Alt+C` | Open Web Inspector (console-only targeting is not exposed by WebKitGTK) |

### Find

| Shortcut | Action |
|---|---|
| `Ctrl+F` | Open find on the focused terminal or browser |
| `Ctrl+G` | Find next |
| `Ctrl+Shift+G` | Find previous |
| `Ctrl+Shift+F` | Hide find |
| `Ctrl+E` | Use selection for find |

### Terminal

| Shortcut | Action |
|---|---|
| `Ctrl+K` | Clear scrollback |
| `Ctrl+Shift+C` | Copy selection |
| `Ctrl+Shift+V` | Paste |
| `Ctrl++` | Increase font size |
| `Ctrl+-` | Decrease font size |
| `Ctrl+Shift+0` | Reset font size |

### Workspace And Pane

| Shortcut | Action |
|---|---|
| `Ctrl+Shift+N` | New workspace (folder picker) |
| `Ctrl+Shift+W` | Close workspace |
| `Ctrl+Shift+Left/Right` | Cycle tabs in focused pane |
| `Ctrl+Shift+D` | Split down |
| `Ctrl+Shift+T` | New terminal tab |
| `Ctrl+Shift+T` | New terminal tab in the focused pane |
| `Ctrl+D` | Split right |
| `Ctrl+W` | Close focused pane |
| `Ctrl+B` | Toggle sidebar |
| `Ctrl+M` | Toggle sidebar |
| `Ctrl+Shift+M` | Toggle top bar |
| `Ctrl+T` | New terminal tab |
| `Ctrl+Arrow` | Focus pane in direction |
| `Ctrl+PageDown/Up` | Next/prev workspace |
| `Ctrl+PageDown/Up` | Next or previous workspace |
| `Ctrl+1-9` | Switch to workspace by number |

## Architecture
Expand Down
Loading