예제 #1
0
파일: focus.py 프로젝트: tronje/dotfiles
def make_unfocused(current_id):
    """Reset the window's property to non-floating.

    This automatically resets size and position as well.
    """

    i3.focus(con_id=current_id)
    i3.floating('disable')
예제 #2
0
파일: focus.py 프로젝트: tronje/dotfiles
def make_focused(current_id):
    """Make the focused window floating, set its dimensions
    and position.
    """

    i3.focus(con_id=current_id)
    i3.floating('enable')
    i3.resize(f'set {WIDTH} {HEIGHT}')
    i3.move('position center')
예제 #3
0
    def dispatch_i3msg_com(
        command: str, data: Location = Location(1189, 652)) -> list:
        """Internal function used to dispatch specific command strings to
        i3-ipc. Data may also be a string."""

        dispatcher = {
            # Dictionary of commands to execute with i3 comx
            "resize":
            lambda *d: i3.resize("set", d[0], d[1]),
            "move":
            lambda *d: i3.move("window", "position", d[0], d[1]),
            "float":
            lambda *d: i3.floating("enable"),
            "reset":
            lambda *d:
            (i3.resize("set", f"{d[0]}ppt", f"{d[0]}ppt") and i3.move(
                "window", " position", "center")),
            "custom": (lambda *d: i3.resize("set", d[0], d[0]) and i3.move(
                "window", "position", "center")),
        }
        if isinstance(data, str):
            return dispatcher[command](data)
        elif isinstance(data, Location):
            w = str(data.width) if data.width > 0 else "0"
            h = str(data.height) if data.height > 0 else "0"
            return dispatcher[command](w, h)
예제 #4
0
#!/usr/bin/env python

import i3
import time

currentWindow = i3.filter(focused=True)[0]
this_id = currentWindow['id']
i3.focus(con_id=this_id)
i3.move('scratchpad')
i3.focus(con_id=this_id)
i3.move('to workspace 10')
i3.floating('disable')

#parentContainer = i3.parent(currentWindow['id'])
#print(parentContainer)
#nodes = parentContainer['nodes']
#print([node['name'] for node in nodes])
#for node in nodes:
#    i3.focus(con_id=node['id'])
#    i3.move('scratchpad')
#
#i3.focus(parentContainer['id'])
#i3.focus(con_id=node['id'])
#i3.move('to workspace 10')

##if parentContainer['layout'] in ['splitv', 'stacked']:
##    direction = 'down'
##else:
##    direction = 'right'
#
#nodes = parentContainer['nodes']
예제 #5
0
def make_unfloat(current_id):
    i3.focus(con_id=current_id)
    i3.floating('disable')
예제 #6
0
def make_float(current_id):
    i3.focus(con_id=current_id)
    i3.floating('enable')
    i3.resize('set 1000 1000')
    i3.move('position center')
예제 #7
0
def revisualize(node, workspace_name):
    i3.focus(con_id=node['id'])
    i3.move('to workspace ' + workspace_name)
    i3.floating('disable')
#!/usr/bin/env python
import i3
import os
import subprocess
import sys
from lib import dmenu, dmenu_cmd


if __name__ == '__main__':
    scratchpad = i3.filter(name="__i3_scratch")[0]
    nodes = scratchpad["floating_nodes"]
    windows = [i for i in i3.filter(tree=nodes, nodes=[])]
    window_titles = ['%s #%s' % (i.get('name'), i.get('window')) for i in windows]
    answer = dmenu(window_titles, dmenu_cmd('select window: '))
    if answer:
        i3.scratchpad("show", id=answer.split('#')[-1])
        if len(sys.argv) > 1 and sys.argv[1] == '1':
            # floating mode, do nothing
            pass
        else:
            i3.floating('disable')

예제 #9
0
파일: focus.py 프로젝트: southqaw/dotfiles
def make_unfloat(current_id):
    i3.focus(con_id=current_id)
    i3.floating('disable')
예제 #10
0
파일: focus.py 프로젝트: southqaw/dotfiles
def make_float(current_id):
    size = get_size()
    i3.focus(con_id=current_id)
    i3.floating('enable')
    i3.resize('set {} {}'.format((size + int(size*.56)), size))
    i3.move('position center')
예제 #11
0
def make_float(current_id):
    size = get_size()
    i3.focus(con_id=current_id)
    i3.floating('enable')
    i3.resize('set {} {}'.format((size + int(size * .56)), size))
    i3.move('position center')