Code Monkey home page Code Monkey logo

zentile's Introduction

zentile logo

On-demand tiling for Openbox, Xfce and other EWMH Compliant Window Managers.

Table of Contents

Features

  • Workspace based tiling. You can enable tiling in one workspace and leave others untouched.
  • Ships with two simple tiling layouts (Vertical & Horizontal)
  • Customizable gap between tiling windows.
  • Autodetection of panels and docks.

Installation

Download the pre-compiled binary from releases page and set executable permission.

$ chmod a+x zentile-linux-amd64
$ ./zentile-linux-amd64

Or compile from source

$ go get -u github.com/blrsn/zentile
$ go install github.com/blrsn/zentile

Arch Linux

With an AUR helper such as yay installed:

$ yay -S zentile

Config

Default Keybinding Description
Ctrl+Shift+t Tile current workspace
Ctrl+Shift+u Untile current workspace
Ctrl+Shift+s Cycle through layouts
Ctrl+Shift+n Goto next window
Ctrl+Shift+p Goto previous window
Ctrl+Shift+m Make the active window as master
Ctrl+] Increase size of master windows
Ctrl+[ Decrease size of master windows
Ctrl+Shift+i Increase number of master windows
Ctrl+Shift+d Decrease number of master windows

The config file is located at ~/.config/zentile/config.toml

Credits

Inspired by BurntSushi's pytyle.
This project would not have been possible without xgbutil.
Logo was made with Logomakr

License

zentile is licensed under the MIT License. See the full license text in LICENSE.

zentile's People

Contributors

blrsn avatar leonardvertighel avatar r8s6 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zentile's Issues

Multi monitor setup

On multi-head systems tiling spans across all monitors. Option to limit tiling to only one monitor would be great.

zentile crashing in GNOME 41

zentile runs without problems until the tiling shortcut is run Ctrl+Shift+t, Windows move, and some of the windows from my secondary screen are also dragged to my primary one.

Not only the tiling is completely scuffed, but after this happens, zentile seems to crash and tiling is no longer respected, the process remains alive though, and needs to be killed for this to happen again.

Video showcasing the problem:
https://user-images.githubusercontent.com/28309837/146045233-0c0b1fd0-e5db-4232-ba59-4563f012531c.mp4

change go installing method

image
readme needs to be updated.
I thought go get gonna clone the repo for me lol

add git clone command before those two. (just to avoid confusion)

Issue with 2nd layout

The second layout (moves the master window to the top moves the others at the bottom) does not resize my leftmost window correctly. Sorry for being a noob!

Edit: I am using arch xfce (btw)

Screenshot_2021-01-05_15-17-53

Tiling desktop by default

On my OpenBox system I run xdotool key ctrl+shift+t at startup in order to have my desktop tiled by default. Is it possible to set the same thing with the zentile configuration file?

The tiling overlaps my panel xfce

So if i tile a window it overlaps my panel, is there anyway to fix this. Sorry if im just dumb that i just can't find a way to fix this
image

Request for Pacstall Support

Pacstall is a community-driven AUR-like package manager for Ubuntu. We have an ongoing pull request to add Zentile to our repository.

We have a few questions for you:

  • Would you like to maintain the pacscript (similar to a PKGBUILD) yourself? We can maintain it for you if you decide not to.
  • Could you include a section in your documentation showing Pacstall as a valid method of installation for Zentile for Debian/Ubuntu users? We could make a pull request for that if you want.

Ghost window & suggested improvement

Ghost windows occur quite often. At this point there is only an empty space that cannot be filled with another window. The error is not reproducible for me to date and very annoying. The error also does not go away by itself, so you have to at least log off and log on.
2.
Nice would be an autostart for all workspaces.

Apart from that, "thumbs up" for zentile.

Thanks in advance for a tip or for the removal of the bug.
ghost

Firefox leaves gaps when tiling.

I have gaps set to zero, but Firefox still has gaps, or rather a border around it. This seems to only be an issue with Firefox and its forks, Brave tiles perfectly. I am on Xubuntu 20.04 using Xfce 4.14. I have included a screenshot of the behaviour.

https://i.imgur.com/ST4nhOm.png

Check if the current desktop is tiled or not

I like to have/write some indicator showing current desktop status: tiled or untiled.
It is possible to check that with some command?

I know it sounds like stupid idea, but I like to have zentile autostarted on 3-desktop (for example) and could be nice to have some status indicator maybe as an executor in tint2 panel.
So I need the way to check if current desktop is tiled or untiled.

Thanks for zentile :)

keyboard shortcut: using Super_L as a modifier failed

  • changess to ~/.config/zentile/config.toml:
    tile = "Super_L-t"
  • expected behaviour: tile when pressed Super and t together
  • result: tile when Super is pressed
  • thoughts: It looks like zentile only accepts Super as a individual key
  • desired fix: recognize Super_L as a modifier?

Notes:

  • Combinations like Super_L-H works fine in my desktop environment (xfce4). So perhaps this is not a wider xmodmap issue?
  • When changing untile = "Super_L-u", pressing Super key causes flashing of the windows perhaps due to the conflict that Super_L-u and Super_L-t are the same to zentile.

ALT not working?

Hi, i love your tool! I played a little with the config file and I am not able to put Alt_L as a modifier. Even the keycode 0xffe9 does not work.

Can somebody help me out? :)

multiple layouts

zentile can have other layouts like bspwm's binary tree layout , fibonacii layout etc to make it more awesome :D!

Config file wrong folder

I found my config file in ~/.config/config.toml, the folder zentile wasn't created. $XDG_CONFIG_HOME is properly set. Ubuntu 20.04 using LXDE/OpenBox.
Also could you please add info like this (path to config) to the verbose output? I hate it when programs don't do it, makes searching for the files more difficult than it has to be.

FEATUE_REQUEST - Rules and Socket

#Feature

Hey Dev,
I use this software on daily basis.
I love it very much.
I used to use https://github.com/baskerville/bspwm and that project is also amazing.
Zentile just lack Rules so that it can be decided manually to how to deal with a window.
And a socket would be amazing to make scripts with zentile like ricers do in bspwm.

Using with XFCE love a llot

Small typo: "EWMH Compliant" not "EWMH Complaint"

Currently the about says:
"Automatic Tiling for EWMH Complaint Window Managers"
and the readme says:
"On-demand tiling for Openbox, Xfce and other EWMH Complaint Window Managers."
I think both should read Compliant not Complaint if I'm not mistaken.

Thank you :)

incorrect vertical tiling [Openbox 3.6.1]

If switched to vertical tiling the bottom row will have shifted to the right, leaving a space on the left.

screenshot_20191002-203344_1920x1080

screenshot_20191002-204027_1920x1080

On latest stable Nvidia driver, zentile build from latest commit or binary release both have this problem.

Cannot install

I got a "WARN[0000] Got a bad access error when trying to bind 'Control-Shift-t'. This usually means another client has already grabbed this keybinding." but for every single keybinding.

Can't bind Right Alt

For some reason I can't bind Right Alt key as a modifier, already checked xmodmap and xev if I got the correct key. Supposedly Mod5 is also the Right Alt key, but that also doesn't work.

What I tried:

- Mod5
- Alt_R
- 0xFFEA
- AltGR

Make more clear which window is in focus

As a user, I would like to see more clearly which window is currently active/in focus. Right now there is too little visual feedback to accomplish this in my opinion. For example: the Pop!_OS tiling window manager achieves this by placing a thin, brightly colored border around the active window.

Method to skip tiling on a popup window

For example an application launcher popup, in my case Ulauncher or xfce4-appfinder, both open and are tiled into the bottom right corner and other tiles resized accordingly. Not a huge deal and everything else works great but is there a way to ignore a popup window such as these?

xgbutil error not handled => crash

time="2023-04-06T07:29:26-04:00" level=warning msg="GetProperty: No such property 'WM_CLASS' on window ca00003."
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x5868df]

goroutine 1 [running]:
main.shouldIgnore(0xc00ca00003, 0xc006c00000)
	/home/mdg/src/zentile/client.go:154 +0xdf
main.(*tracker).populateClients(0xc0000574f0)
	/home/mdg/src/zentile/tracker.go:32 +0x98
main.(*tracker).handleClientUpdates(0xc0000574f0, 0xc00015c140, 0xc0000ee440)
	/home/mdg/src/zentile/tracker.go:92 +0x86
github.com/BurntSushi/xgbutil/xevent.PropertyNotifyFun.Run(0xc000057500, 0xc00015c140, 0x5c3560, 0xc0000ee440)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.