Git Product home page Git Product logo

azulejo's Introduction

Azulejo

Azulejo was originally a port (an attempt to) of winsplit revolution's functionality to *nix desktop environments. This fork also adds Compiz's Put feature to the functionality. Short: it moves, with or without resizing, windows using keyboard shortcuts.

It has been tested on gnome2, xfce and openbox, but it should work on many other desktop environments.

Rationale

Traditional floating window managers are very intuitive and extremely popular. Most of the people don't even know other kinds of window managers exist, or what a window manager is.
Being able to move and resize windows with a mouse is a killer feature, but for those that spend the whole day in front of a screen switching between windows and resize them every now and then, floating window managers end up standing more on the way than being helpful.
Moving the hands back and forward between the keyboard and the mouse consumes too much time and is rather inefficient. Also, the mouse is not really designed to be a precision device, hitting the right pixel can be an headache.
To mitigate these problems, some users switch to tiling window managers, which take a radically different approach and tend to be notoriously more productive. But the switch is often painful, many acquired workflows are abruptly broken and a fairly big amount of keyboard shortcuts need to be memorized just to achieve basic usage.
This is where Azulejo comes in, it adds some tiling features but leaves your window manager untouched, you can still move and resize your windows with the mouse like you always did.

Installation

C.f. the INSTALL file. Arch Linux users can install Azulejo from AUR: https://aur.archlinux.org/packages/azulejo-git/

Required Packages for manual installation:

Arch Linux

  • Gtk3
  • libkeybinder3
  • python-xlib
  • python-gobject
  • python-notify2

Azulejo works probably also with other Linux distributions, but the packages might be named differently.

Afterwards simply run the ''run.py'' file present on the project's root dir. Make sure that Python 2.7 is used, it will not work with Python 3.

Usage

Azulejo doesn't have a GUI nor a CLI, simply use the keyboard shortcuts, whenever you need. Azulejo comes with two default keymaps. One uses the numpad (keypad), the other not. In the following, "KP" stands for keypad:

Super+C		Switch the keymap

Tile

Super+2		Place two windows side by side
Super+3		Place a window on the left half of the screen and two on the right half
Super+4		Arrange four windows two by two
Super+R		Rotate windows' positions i.e. cycle windows

Move

Super+KP 1	Move current window to left lower corner
(or Super+J)	
Super+KP 2	Move current window to bottom of the screen
(or Super+K)
Super+KP 3	Move current window to right lower corner
(or Super+L)
Super+KP 4	Move current window to the left
(or Super+U)
Super+KP 5	Move current window to center of the screen
(or Super+I)
Super+KP 6	Move current window to the right
(or Super+O)
Super+KP 7	Move current window to left upper corner
(or Super+7)
Super+KP 8	Move current window to top of the screen
(or Super+8)
Super+KP 9	Move current window to right upper corner
(or Super+9)

Move and Resize

Super+Alt+KP 1	Resize and move current window to left lower corner
(or Super+Alt+J)
Super+Alt+KP 2	Resize and move current window to bottom of the screen
(or Super+Alt+K)
Super+Alt+KP 3	Resize and move current window to right lower corner
(or Super+Alt+L)
Super+Alt+KP 4	Resize and move current window to the left
(or Super+Alt+U)
Super+Alt+KP 5	Resize and move current window to center of the screen
(or Super+Alt+I)
Super+Alt+KP 6	Resize and move current window to the right
(or Super+Alt+O)
Super+Alt+KP 7	Resize and move current window to left upper corner
(or Super+Alt+7)
Super+Alt+KP 8	Resize and move current window to top of the screen
(or Super+Alt+8)
Super+Alt+KP 9	Resize and move current window to right upper corner
(or Super+Alt+9)	

Configuration

Azulejo configurations are stored on ''/.azulejo/config.js''. The keymaps are stored in ''/.azulejo/Shortcuts''

To start Azulejo with the 'no numpad' keymap by default, change the shortcut_file_to_load entry in ''~/.azulejo/config.js'' to "~/.azulejo/Shortcuts/no_numpad.js".

Author of the original project

Pedro
HTTP://lame hacks.net
email: Pedro at lame hacks d0t net

azulejo's People

Contributors

gillesb avatar neingeist avatar plainas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

neingeist

azulejo's Issues

Avoid eval

eval() should be avoided. At the moment it is needed to calculate the new position of the window.

Something similar to this could be used: https://levelup.gitconnected.com/3-ways-to-write-a-calculator-in-python-61642f2e4a9a

from operator import pow, truediv, mul, add, sub  

operators = {
  '+': add,
  '-': sub,
  '*': mul,
  '/': truediv
}

def calculate(s):
    if s.isdigit():
        return float(s)
    for c in operators.keys():
        left, operator, right = s.partition(c)
        if operator in operators:
            return operators[operator](calculate(left), calculate(right))

calc = input("Type calculation:\n")
print("Answer: " + str(calculate(calc)))

4 window rotation, the windows do not rotate clockwise

the first time the 4 windows rotate, they do not rotate in the expected way.
Try to put the window with the focus on 11 o'clock, the next on the focus(?) stack on 2 o'clock,the third on 5 o'clock and the last on 7 o'clock.
Like that their initial position is defined and it should be easier to let them rotate clockwise.

Try if install script still works

As mentioned by S4nshi in private mail Azulejo can be install with "sudo python setup.py install", which was introduced originally by Pedro.
I should test it by myself and mention it in the manuel as the package python-setuptools is needed.

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.