Rendered at 11:38:27 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
amadeuspagel 8 minutes ago [-]
This is really an infinite canvas window manager, but only for terminal windows.
I looked for a general infinite canvas window manager and discovered InfiniteGlass[1]. I wasn't able to install it though, even on Ubuntu Mate 18.04, which the installation instructions are supposed to be tested for.
I've switched to KDE recently, using its default terminal, and I feel like I can't miss things like opening the file browser from the terminal or vice versa anymore, so now what I really want is an infinite canvas desktop environment.
This is fun! I switched to https://github.com/manaflow-ai/cmux for a while, but had to switch back to Ghostty due to its unreliability, high memory and CPU usage and a bunch of bugs.
This makes a lot of sense, but... it'd be great to allow pulling out of a canvas into a second canvas for those of us with multiple screens (you at least end up needing one window per screen).
In general it feels like... more structure rather than less feels like it'd be the smoothest experience. I'll play with your Ctrl+K shortcut and see if it ends up feeling like I can get everywhere that I need quickly.
But... nice work!
Note for jj users like me: you need to `git lfs pull` if you want to `cargo run --release`!
Update: No luck creating any 'shell' workspaces (it looks like you use GNU-only flags to script) – I'll push a fix once I find it.
Also: the AGENTS.md is wrong JFYI - it points to portable-pty, when this is using alacritty_terminal's tty (on rustix-openpty)
petersunde 3 days ago [-]
Thanks for trying it! I totally forgot about multiple screens because I use multiple workspaces on an 8K screen.
Splitting across multiple screens shouldn’t be too difficult since Horizon already supports multiple sessions. I’ll try to get it working tomorrow :)
I prefer Terminator, where splitting screens is much easier work flow.
xiconfjs 2 days ago [-]
This is the only reason I stick to Terminator, but none of the othet terminal emulators are coming close. I wouldn‘t even be searching for an alternative if Terminator wouldn‘t crash every other week.
cyanydeez 2 days ago [-]
I've not had any real crashes; but I have to swap between linux and windows, so anything that bridges that gap would get my vote.
derodero24 2 days ago [-]
The infinite canvas approach makes a lot of sense for terminals — I always
end up with a pile of numbered tmux windows I can't keep track of. Having
spatial layout would actually let muscle memory do the work.
One thing I'm curious about: how would this work with ssh sessions? Being
able to spatially arrange and visually group remote sessions on a canvas
could be really useful for managing multiple servers.
ms_menardi 3 days ago [-]
This is great! Two things I noticed immediately:
the settings window overlaps with the minimap.
I think it'd be neat if you could zoom? The reason I'd use this over a tiling window manager is to fit more terminals on a screen at once. I think if there was a capability like the Strategic Zoom in Supreme Commander (video: https://www.youtube.com/watch?v=9hJY7exr9KU) it would be much easier to manage many terminals at once, and take advantage of the infinite canvas.
petersunde 3 days ago [-]
Thanks for letting me know about the settings/minimap overlap, I’ll fix that. And yes, zoom is on the list! I’ll implement it tomorrow. Just wanted to get the core working first without hogging the CPU.
SupCom Zoom was the single greatest UX improvement to strategy games, and it's sad that nothing outside of the TA family picked it up. BAR and TA Escalation of course have it, and are among my favorites across the entire genre.
jauntywundrkind 3 days ago [-]
Feels very Niri like, in a positive way. Niri's "scrollable" interface always has room to the right & down!
One of the Niri tools I built for myself is to let me insert a new row up top, to expand up. Thats afaik not super easy in base Niri, constraints the spatial growth some.
I'm pretty close to having some persistence of terminal windows, tmux, etc in Niri, with some tools to dump current state nicely. Doing an actual restore operation would be a good thing to build towards.
rcarmo 2 days ago [-]
Very nice. I tried to solve this with https://github.com/rcarmo/webterm but without the fancy visuals (although mine works inside the Oculus Quest if you’re so inclined :))
skeledrew 2 days ago [-]
I've been hurting for something like this for a while now. Many tmux windows soon become unwieldy to switch among, same as having a bunch of terminal tabs, and I have an unhealthy mix of both. Hopefully this scratches the itch.
phrmendes 2 days ago [-]
Just use Tmux
cadamsdotcom 3 days ago [-]
Maybe I’m old but this sounds like MDI (multiple-document interface) of the late 90s.
Went the way of the dodo probably because it’s hard for non power users to grok.
But this is a power user tool - seeems like a fit!
bigfishrunning 3 days ago [-]
I think MDI style interfaces went out of fashion because there were a lot of programs that implemented an entire window manager and then only really needed one window. This added a ton of complexity that wasn't needed most of the time, because window management is really a job for a different program.
cadamsdotcom 3 days ago [-]
You’re getting it ;)
hokkos 3 days ago [-]
The last thing I want is the figma experience for my terminal
antonvs 2 days ago [-]
Right?
tamimio 2 days ago [-]
Amazing, I will give it a try!
I played with egui before, I really enjoyed it, but I remember I stumbled across some issues had to use dioxus instead.
fritzo 3 days ago [-]
I was hoping this would be an infinite length terminal view, like the opening backstory in Star Wars
riquito 2 days ago [-]
I love these kind of projects trying out non mainstream approaches! Thanks for sharing
cedws 3 days ago [-]
Spatial memory is really underutilised in computing.
When libghostty[0] releases maybe you could use that so you don't have to build everything from scratch.
Each commit to main also produces downloadable unsigned binaries in the GitHub Actions tab.
iknowstuff 2 days ago [-]
Hmm I guess I’d like my terminal to remember my shell sessions like that and just lef me open them in multiple windows so I can use my window manager to arrange as I please.
And then I’d like my window manager to be infinitely scrollable like a canvas with like 3 fingers on my touchpad. Do any exist like that?
firegodjr 2 days ago [-]
Niri is fantastic for that! Pretty barebones though, I recommend grabbing Noctalia Shell to run alongside
I looked for a general infinite canvas window manager and discovered InfiniteGlass[1]. I wasn't able to install it though, even on Ubuntu Mate 18.04, which the installation instructions are supposed to be tested for.
I've switched to KDE recently, using its default terminal, and I feel like I can't miss things like opening the file browser from the terminal or vice versa anymore, so now what I really want is an infinite canvas desktop environment.
[1]: https://redhog.github.io/InfiniteGlass/
This makes a lot of sense, but... it'd be great to allow pulling out of a canvas into a second canvas for those of us with multiple screens (you at least end up needing one window per screen).
In general it feels like... more structure rather than less feels like it'd be the smoothest experience. I'll play with your Ctrl+K shortcut and see if it ends up feeling like I can get everywhere that I need quickly.
But... nice work!
Note for jj users like me: you need to `git lfs pull` if you want to `cargo run --release`!
Update: No luck creating any 'shell' workspaces (it looks like you use GNU-only flags to script) – I'll push a fix once I find it.
Also: the AGENTS.md is wrong JFYI - it points to portable-pty, when this is using alacritty_terminal's tty (on rustix-openpty)
Splitting across multiple screens shouldn’t be too difficult since Horizon already supports multiple sessions. I’ll try to get it working tomorrow :)
One thing I'm curious about: how would this work with ssh sessions? Being able to spatially arrange and visually group remote sessions on a canvas could be really useful for managing multiple servers.
the settings window overlaps with the minimap.
I think it'd be neat if you could zoom? The reason I'd use this over a tiling window manager is to fit more terminals on a screen at once. I think if there was a capability like the Strategic Zoom in Supreme Commander (video: https://www.youtube.com/watch?v=9hJY7exr9KU) it would be much easier to manage many terminals at once, and take advantage of the infinite canvas.
One of the Niri tools I built for myself is to let me insert a new row up top, to expand up. Thats afaik not super easy in base Niri, constraints the spatial growth some.
I'm pretty close to having some persistence of terminal windows, tmux, etc in Niri, with some tools to dump current state nicely. Doing an actual restore operation would be a good thing to build towards.
Went the way of the dodo probably because it’s hard for non power users to grok.
But this is a power user tool - seeems like a fit!
I played with egui before, I really enjoyed it, but I remember I stumbled across some issues had to use dioxus instead.
When libghostty[0] releases maybe you could use that so you don't have to build everything from scratch.
[0]: https://mitchellh.com/writing/libghostty-is-coming
https://github.com/Uzaaft/awesome-libghostty
This project uses alacritty-terminal, so it's also very much 'not from scratch', just using a Rust library to that effect.
Each commit to main also produces downloadable unsigned binaries in the GitHub Actions tab.
And then I’d like my window manager to be infinitely scrollable like a canvas with like 3 fingers on my touchpad. Do any exist like that?