this post was submitted on 04 Apr 2024
73 points (95.1% liked)

Linux

48338 readers
475 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
73
submitted 7 months ago* (last edited 7 months ago) by thundermoose@lemmy.world to c/linux@lemmy.ml
 

To preface this, I've used Linux from the CLI for the better part of 15 years. I'm a software engineer and my personal projects are almost always something that runs in a Linux VM or a Docker container somewhere, but I've always used a Mac to work on personal and professional projects. I have a Windows desktop that I use exclusively for gaming and my personal Macbook is finally giving out after about 10 years, so I'm trying out Linux Mint with Cinnamon on my desktop.

So far, it works shockingly well and I absolutely love being able to reach for a real Linux shell anytime I want, with no weird quirks from MacOS or WSL. The fact that Steam works at all on a Linux environment is still a little magical to me.

There are a couple things I really miss from MacOS and Rectangle is one of them. I've spent a couple hours searching and trying out various solutions, but none of them do the specific thing Rectangle did for me. You input something like ctrl+cmd+right and Rectangle fits your current window to the top right quadrant of your screen.

Before I dive into the weeds and make my own Cinnamon Spice, I figured I should just ask: is there an app/extension that functions like Rectangle for Linux? Here's the things I can say do not work:

  • Muffin hotkeys: Muffin only supports moving tiles, not absolutely positioning them. You can kind of mimic Rectangle behavior, but only with multiple keystrokes to move the windows around on the grid.
  • gTile: This is a Cinnamon Spice that I'm pretty sure has the bones of what I want in it, but the UI is the opposite of what I want.
  • gSnap: Very similar to gTile, but for Gnome. The UI for it is actually quite a bit worse, IMO; you are expected to use a mouse to drag windows.
  • zentile: On top of this only working for XFCE, it doesn't actually let me position windows with a keystroke

To be super clear: Rectangle is explicitly not a tiling window manager. It lets you set hotkeys to move/resize windows, it does not reflow your entire screen to a grid. There are a dozen tiling tools/window manager out there I've found and I've begun to think the Linux community has a weird preoccupation with them. Like, they're cool and all, but all I want is to move the current window to specific areas of my screen with a single keystroke. I don't need every window squished into frame at once or some weird artsy layout.

you are viewing a single comment's thread
view the rest of the comments
[–] jbloggs777@discuss.tchncs.de 5 points 7 months ago* (last edited 7 months ago) (1 children)

As a primary Linux user who wrote his own X tool to do exactly this and has been missing this functionality on Mac - thank you!

I'll send my unpublished code your way soon. It's just Go, relying on the WM (run command shortcuts) to call it. Move+Resize and Focus functionality.

It won't work on Wayland, which seems to require native compositor support - labWC is halfway there.

edit: check your PMs

[–] Dirk@lemmy.ml 2 points 7 months ago

I can confirm labwc. You can drag windows to screen edges to trigger a snapping action that visually "tiles" the window to the half of that screen side. It's standard functionality that is set in the default/example configuration.