Code Monkey home page Code Monkey logo

xf-tile's Introduction

xf-tile

Pseudo Tiling window manager for Xfce DE



What it is?

A script to auto-tile up to 4 windows on your current workspace. It Supports 9 workspaces. After the 4th window, it will automatically enter full screen mode.
Features:
Tiling based on window type detection
Auto tiling without key bindings
Move windows to different workspaces
Full screen and tiling mode
Config file

I tried to make it as integrated with XFCE as possible. For example, most shortcuts are configurable directly in the xfce settings manager without the need to edit any script or config file.

Why?

If you like XFCE, but you want a more keyboard-driven experience or some basic tiling manager functionality without the hassle to install a different WM, then this script may be a good bet.

Dependencies

wmctrl
devilspie2
pynput (install with pip)
xorg-xev
xorg-xrandr
xorg-xprop

Installation

Install dependencies. Put xf-tile.py and xf-tile_config.json (edit with right values) inside your home directory. Put devilspie2 folder inside your .config folder. Add xf-tile.py to your startup. (easisiest way: go to settings -> session and startup -> application autostart -> add -> Name: xf-tile | Command: python /home/$user/xf-tile.py | Trigger: on login) $replace user with your username
Launch script or reboot.

Configuration

max_windows_before_fullscreen = how many windows before activating full screen mode. MAX 4
border = single border px of your decoration window
gaps = gaps in px between windows
upper_panel_height
upper panel height in px lower_panel_height
lower panel height in px dynamic_resolution = in case you have a 2 in 1 laptop where resolution changes continuously
app_to_exclude = applications to exclude from the tiling manager
app_to_mod = some applications don't detect decorations correctly (for example kitty and vlc), if thats the case put the app name here (to see app names run on a terminal "devilspie2 --debug")

Shortcuts

These shortcuts must be edited inside the script (line 156) and removed from XFCE settings to avoids conflicts.
Super+e = Set Mode (Tiled/Fullscreen)
Super+CTRL=e = Tiling Manager On/Off
Super+CTRL+r = Reload Config File
Super+CTRL+l = Move active window right
Super+CTRL+h = Move active window left
Super+CTRL+0-9 = Move active window to x workspace

Other shortcuts can be configured directly with XFCE

Suggestions

Theme

Not Supported/Tested

Multiscreen setups *not tested
Vertical panels *not supported
Themes with not equal window border size *not supported

Bugs

Not really a bug, but some apps (like Gimp) set a hardcoded minimum window size, so depending on your monitor resolution and number of windows opened, you could get a window going beyond the limits of your screen. Not much i can do, move it to another workspace to have fullscreen mode. (you can also put the app in the exclude list)

Questions

Why only 4 windows?
Because thats where i want my windows to go fullscreen. I dont like to work on micro spaces and on my current monitor(1920x1080) i dont see the reason to go beyond that limit considering i have 8 workspaces running.
That doesn't mean i will not update the script in the future to support more windows.

xf-tile's People

Contributors

eraserhead1897 avatar

Watchers

 avatar

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.