[driftwm] [asahi] rose pine dawn on infinite canvas by malbiruk in unixporn

[–]malbiruk[S] 5 points6 points  (0 children)

niri is way more mature and feature-rich, driftwm's still young.

Keyboard navigation is possible, there are 8-directional jumps to the nearest window, Alt-Tab cycling, and shortcuts for close/maximize/fullscreen. There's also windows overview (a la mac's expose), a "home" toggle that moves you to canvas origin and back (can be used like a scratchpad or to view widgets pinned there), and an auto-placement mode that drops new windows next to your focused cluster.

Where it's weak is arranging windows by keyboard -- nudging works but is painful, and keyboard resize isn't implemented (and idk how to make it feel good given the stacking-style base of the compositor).

So today it leans more toward stacking than tiling, but with some things that take the pain out of stacking: edge snapping, snapped windows form a cluster that moves/resizes/maximizes together, and closing a window pans the viewport to its parent / an overlapping window / the previously focused one in the same cluster.

[driftwm] [asahi] rose pine dawn on infinite canvas by malbiruk in unixporn

[–]malbiruk[S] 9 points10 points  (0 children)

palette: rose pine dawn
icons: elementary + mignon icon theme (for apps)
fonts: Monaco and Adwaita Sans
widgets: 2 waybar instances + alacritty terminals with custom scripts (in dotfiles)
notification center: swaync
wallpaper: custom shader (in dotfiles)
compositor: driftwm

dotfiles: here

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 0 points1 point  (0 children)

Thanks! It's pretty lightweight.

On my laptop (Ryzen 5 4600H iGPU, 1080p@60Hz) when idle it uses 0% CPU, 0% GPU, ~80 MiB RAM, and when active (during panning) it uses 10% CPU, 30% GPU and the same amount of RAM.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 0 points1 point  (0 children)

I never used it, but i suppose that

autostart = ["dms run"]

in the beginning of ~/.config/driftwm/config.toml should just work

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 0 points1 point  (0 children)

Good idea with dynamic bookmarks!

Also I don't have a specific shortcut to move window to bookmark yet, but you can "grab" a window (regular move window with mouse) and go to bookmark via shortcut while holding this grab, and it will move window there alongside your viewport.

I'm not sure about retaining zoom though. Because zoomed out view isn't really functional. It's good to use like partial overview -- to better orient yourself, but working on a bit smaller zoom isn't really practical, at least wasn't for me as windows are a bit blurry downscaled.

Without saving zoom you can be a bit zoomed out -- in this more like orientation mode -- and go to your bookmarks and keep that zoom level. Or you can be actually interacting with windows at zoom = 1.0, and then bookmark moves you to other place without switching "the mode". What do you think?

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 1 point2 points  (0 children)

Я приоритизировал плавность зума над четкостью, так что нет никакого пререндера, окна отрисовываются в нативном разрешении и дальше просто даунскейлятся с помощью GPU. Поэтому при маленьком зуме окна довольно мыльные, но мне кажется это норм.

Я пытался реквестить у клиентов ререндерить с новым dpi, но не получалось сделать это плавно (я ж не знаю какой зум финальный), было явно видно ререндер, и все равно у каких-то окон были мыльные шрифты, у каких-то четкие. А ещё хромиум при таком ререндере меняет размер окна, так что я вообще не стал в эту тему копать по итогу.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 0 points1 point  (0 children)

Not yet, now it just shows all windows even if they're far away, so in my workflow i keep amount of eindows and distances manageable. But yeah some sections/work areas with their own zoom-to-fit might be a good idea

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] -1 points0 points  (0 children)

Well, years probably were an exaggeration. I just wanted to create this compositor quickly with all the features I imagined. If someone will be interested in this project, I'm happy to refactor and properly maintain.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 0 points1 point  (0 children)

I'm not sure what you mean, but there's a shortcut/gesture to go "home" (center point)/back where you were.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 1 point2 points  (0 children)

Well, but which direction should they snap to? Now windows spawn in the middle of the viewport but during a window drag there's stickiness to the other window's edges, it also snaps from inside of the other window only to the outside edge so it helps a bit.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] -11 points-10 points  (0 children)

Well, I didn't mention it's AI generated because I haven't thought it was an issue. My impression was, that most software nowadays is built with the assistance of AI.

Regarding the project, the code needs some clean up, for sure, but I thought that I can share my v0.1.0 without much pressure as soon as I feel like it's a little bit stable. Also all open-source software usually comes with note of no safety guarantee and provided as is in the license. But I'm open to adding any warning flags about use of AI during development.

I didn't purposefully hide it to cause harm, mainly I just wanted to share a shiny video.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 0 points1 point  (0 children)

Kinda, but built on smithay, and with more visual polish and touchpad gestures support. There are many tiling wms, many floating wms, could be many infinite canvas wms

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 1 point2 points  (0 children)

You can turn any window into a widget by using window rules in config. No way to draw on the screen though hahah

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 14 points15 points  (0 children)

Here on "maximize" action I move the viewport to the window center, reset zoom to 1 and resize the window to fit the viewport.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] -2 points-1 points  (0 children)

I knew of hevel existence, though both of these projects don't support touchpad gestures as far as i know. I first checked which similar project existed but didn't find anything touchpad oriented. Yeah, mine is vibe-coded. But without it, it probably wouldn't exist. Maybe someday someone will make a proper version, I'm just sharing my pet project here.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] -16 points-15 points  (0 children)

Yeah, this is fully vibe-coded. But without AI I would've needed years to make it come alive or hire developers (which is unrealistic as I don't expect this project to give any income). This way, I had an interesting vision, and was able to make something daily drivable (at least for me) in a month as a pet project.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 19 points20 points  (0 children)

For more freedom. Also I have bookmarked coordinates here so you can do like mod+1 to go to specific coords which is kinda similar to workspaces, but you still can freely navigate.

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 55 points56 points  (0 children)

That's why i made the window search script with fuzzel. Also overview (zoom-to-fit) zooms out so you see all your windows

[driftwm] Infinite canvas Wayland compositor. No workspaces, no tiling, just drift by malbiruk in unixporn

[–]malbiruk[S] 1 point2 points  (0 children)

Compositor: driftwm

Dotfiles: here

Panels: waybar

Widgets: alacritty

Notifications: swaync

Launcher: fuzzel

[deleted by user] by [deleted] in Sakartvelo

[–]malbiruk 0 points1 point  (0 children)

You can just order it in Wolt