O script abaixo pode ser usado como uma funcionalidade adicional para a opção "resize-to-quarter" em 14.04. Ele pode ser executado com os argumentos: "left", "right", "up", "down", para cortar ainda mais o quarto em oitos.
O que faz
Se você tiver sua janela movida para o quarto da sua tela:
oscriptcortaráajanelaaomeio,nametadeesquerda,direita,superiorouinferior,dependendodoargumentocomoqualvocêaexecutar(vejaabaixo).
Comousar
Oscriptusa
wmctrl
,quenãoéporpadrãonoseusistema:sudoapt-getinstallwmctrl
Copieoscriptabaixoemumarquivovazio,salve-ocomo
organize_w
nodiretório~/bin
.Torneoscriptexecutável.Provavelmentevocêaindateráquecriarodiretório~/bin
.Temavantagemdepoderexecutaroscriptapenaspelonomedoscript:Adicionequatrocomandosaatalhosdetecladopersonalizados.Abraasconfiguraçõesdosistema>"Teclado" > "Atalhos" > "Atalhos personalizados". Adicione quatro comandos às combinações de teclas.
No meu sistema, encontrei quatro atalhos extremamente adequados ainda disponíveis: sugiro adicionar os comandos nessas combinações de teclas:organize_w left
Shift + Ctrl + Numpad <
efeito:
organize_wright
Shift+Ctrl+Numpad>
efeito:
organize_w up
Shift + Ctrl + Numpad ^
efeito:
organize_wdown
Shift+Ctrl+Numpadv
efeito:
Dessa forma, você pode organizar as janelas abaixo com alguns toques de tecla:
-
Oscript:
#!/usr/bin/env python3
import subprocess
import sys
arg = sys.argv[1]
WA_correction = 28
def get(command):
return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8")
def execute(command):
subprocess.Popen(["/bin/bash", "-c", command])
xprop_data = get("xprop -root").split()
w_id = xprop_data[xprop_data.index("_NET_ACTIVE_WINDOW(WINDOW):")+4].replace(",", "")
frontmost = w_id[:2]+"0"+w_id[2:]
w_data = [l for l in get("wmctrl -lG").splitlines() if frontmost in l][0].split()
new_G = w_data[2:6]
new_G[1] = str(int(int(new_G[1])-WA_correction))
xy_corr = lambda x: -10 if int(x) < 100 else 0
if arg == "left":
new_G[2] = str(int(int(new_G[2])/2 + xy_corr(new_G[0])))
new_G[3] = str(int(int(new_G[3]) + xy_corr(new_G[1])))
elif arg == "right":
new_G[0] = str(int(int(new_G[0])+int(new_G[2])/2))
new_G[2] = str(int(int(new_G[2])/2))
new_G[3] = str(int(int(new_G[3]) + xy_corr(new_G[1])))
elif arg == "up":
new_G[2] = str(int(new_G[2]) + xy_corr(new_G[0]))
new_G[3] = str(int(int(new_G[3])/2 + xy_corr(new_G[1])))
elif arg == "down":
new_G[1] = str(int(int(new_G[1]) + int(new_G[3])/2))
new_G[2] = str(int(new_G[2]) + xy_corr(new_G[0]))
new_G[3] = str(int(int(new_G[3])/2))
execute("wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz")
execute("wmctrl -ir "+frontmost+" -e 0,"+(",").join(new_G))
editar:
versão XFCE
Com algumas pequenas mudanças, o script também pode ser usado para redimensionar wndows em metade / quarto ou oito no XFCE (testado em 14.04).
Use exatamente como a versão do Unity:
#!/usr/bin/env python3
import subprocess
import sys
arg = sys.argv[1]
WA_correction = 48
def get(command):
return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8")
def execute(command):
subprocess.Popen(["/bin/bash", "-c", command])
xprop_data = get("xprop -root").split()
w_id = xprop_data[xprop_data.index("_NET_ACTIVE_WINDOW(WINDOW):")+4].replace(",", "")
frontmost = w_id[:2]+"0"+w_id[2:]
w_data = [l for l in get("wmctrl -lG").splitlines() if frontmost in l][0].split()
new_G = w_data[2:6]
new_G[1] = str(int(int(new_G[1])-WA_correction))
if arg == "left":
new_G[2] = str(int(int(new_G[2])/2))
elif arg == "right":
new_G[0] = str(int(int(new_G[0])+int(new_G[2])/2))
new_G[2] = str(int(int(new_G[2])/2))
elif arg == "up":
new_G[3] = str(int(int(new_G[3])/2))
elif arg == "down":
new_G[1] = str(int(int(new_G[1]) + int(new_G[3])/2))
new_G[3] = str(int(int(new_G[3])/2))
execute("wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz")
execute("wmctrl -ir "+frontmost+" -e 0,"+(",").join(new_G))
(versão XFCE também publicada em gist.gisthub )