Sync Changes
This commit is contained in:
parent
a111b0e0a3
commit
96eb100e67
5 changed files with 164 additions and 109 deletions
|
@ -9,10 +9,10 @@ ignoreoutofdateaurupgrades = no
|
|||
keepbuilddir = no
|
||||
keepdevbuilddir = yes
|
||||
skipfailedbuild = no
|
||||
alwaysusedynamicusers = no
|
||||
keepbuilddeps = no
|
||||
ignorearch = no
|
||||
gpgdir =
|
||||
dynamicusers = root
|
||||
|
||||
[colors]
|
||||
version = 10
|
||||
|
|
|
@ -1,106 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import i3
|
||||
import re
|
||||
import subprocess
|
||||
import getopt
|
||||
import sys
|
||||
import os
|
||||
|
||||
|
||||
def find_parent(window_id):
|
||||
"""
|
||||
Find the parent of a given window id
|
||||
"""
|
||||
root_window = i3.get_tree()
|
||||
result = [None]
|
||||
|
||||
def finder(n, p=None):
|
||||
if result[0] is not None:
|
||||
return
|
||||
for node in n:
|
||||
if node['id'] == window_id:
|
||||
result[0] = p
|
||||
return
|
||||
if len(node['nodes']):
|
||||
finder(node['nodes'], node)
|
||||
|
||||
finder(root_window['nodes'])
|
||||
return result[0]
|
||||
|
||||
|
||||
def set_layout():
|
||||
"""
|
||||
Set the layout/split for the currently
|
||||
focused window to either vertical or
|
||||
horizontal, depending on its width/height
|
||||
"""
|
||||
current_win = i3.filter(nodes=[], focused=True)
|
||||
for win in current_win:
|
||||
parent = find_parent(win['id'])
|
||||
|
||||
if (parent and "rect" in parent
|
||||
and parent['layout'] != 'tabbed'
|
||||
and parent['layout'] != 'stacked'):
|
||||
height = parent['rect']['height']
|
||||
width = parent['rect']['width']
|
||||
|
||||
if height > width:
|
||||
new_layout = 'vertical'
|
||||
else:
|
||||
new_layout = 'horizontal'
|
||||
|
||||
i3.split(new_layout)
|
||||
|
||||
|
||||
def print_help():
|
||||
print("Usage: " + sys.argv[0] + " [-p path/to/pid.file]")
|
||||
print("")
|
||||
print("Options:")
|
||||
print(" -p path/to/pid.file Saves the PID for this program in the filename specified")
|
||||
print("")
|
||||
|
||||
|
||||
def main():
|
||||
"""
|
||||
Main function - listen for window focus
|
||||
changes and call set_layout when focus
|
||||
changes
|
||||
"""
|
||||
opt_list, args = getopt.getopt(sys.argv[1:], 'hp:')
|
||||
pid_file = None
|
||||
for opt in opt_list:
|
||||
if opt[0] == "-h":
|
||||
print_help()
|
||||
sys.exit()
|
||||
if opt[0] == "-p":
|
||||
pid_file = opt[1]
|
||||
|
||||
if pid_file:
|
||||
with open(pid_file, 'w') as f:
|
||||
f.write(str(os.getpid()))
|
||||
|
||||
|
||||
process = subprocess.Popen(
|
||||
['xprop', '-root', '-spy'],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE
|
||||
)
|
||||
regex = re.compile(b'^_NET_CLIENT_LIST_STACKING|^_NET_ACTIVE_WINDOW')
|
||||
|
||||
last_line = ""
|
||||
while True:
|
||||
line = process.stdout.readline()
|
||||
if line == b'': #X is dead
|
||||
break
|
||||
if line == last_line:
|
||||
continue
|
||||
if regex.match(line):
|
||||
set_layout()
|
||||
last_line = line
|
||||
|
||||
process.kill()
|
||||
sys.exit()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -266,9 +266,10 @@ exec --no-startup-id test -x ~/.local/bin/i3autostart.sh && ~/.local/bin/i3autos
|
|||
exec --no-startup-id gsettings set org.gtk.Settings.FileChooser sort-directories-first true
|
||||
|
||||
## Spirallayout for new windows
|
||||
exec_always --no-startup-id ~/.i3/alternating_layouts.py
|
||||
exec_always --no-startup-id /usr/bin/autotiling
|
||||
|
||||
## Window Config
|
||||
for_window [class="smplayer"] floating enable
|
||||
for_window [class="Argon"] floating enable
|
||||
for_window [class="Vlc"] floating enable
|
||||
for_window [class="Ghidra"] floating enable
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
become_user: aur_builder
|
||||
aur:
|
||||
name:
|
||||
- autotiling
|
||||
- free42
|
||||
- insync
|
||||
- c-lolcat
|
||||
- python-i3-py
|
||||
- ttf-unifont
|
||||
- ttf-symbola
|
||||
|
||||
|
|
160
tatus
Normal file
160
tatus
Normal file
|
@ -0,0 +1,160 @@
|
|||
[1mdiff --git a/configDots/pikaur.conf b/configDots/pikaur.conf[m
|
||||
[1mindex 53926ca..73635c2 100644[m
|
||||
[1m--- a/configDots/pikaur.conf[m
|
||||
[1m+++ b/configDots/pikaur.conf[m
|
||||
[36m@@ -9,10 +9,10 @@[m [mignoreoutofdateaurupgrades = no[m
|
||||
keepbuilddir = no[m
|
||||
keepdevbuilddir = yes[m
|
||||
skipfailedbuild = no[m
|
||||
[31m-alwaysusedynamicusers = no[m
|
||||
keepbuilddeps = no[m
|
||||
ignorearch = no[m
|
||||
gpgdir = [m
|
||||
[32m+[m[32mdynamicusers = root[m
|
||||
[m
|
||||
[colors][m
|
||||
version = 10[m
|
||||
[1mdiff --git a/simpleDots/i3/alternating_layouts.py b/simpleDots/i3/alternating_layouts.py[m
|
||||
[1mdeleted file mode 100755[m
|
||||
[1mindex d38d2ca..0000000[m
|
||||
[1m--- a/simpleDots/i3/alternating_layouts.py[m
|
||||
[1m+++ /dev/null[m
|
||||
[36m@@ -1,106 +0,0 @@[m
|
||||
[31m-#!/usr/bin/env python[m
|
||||
[31m-[m
|
||||
[31m-import i3[m
|
||||
[31m-import re[m
|
||||
[31m-import subprocess[m
|
||||
[31m-import getopt[m
|
||||
[31m-import sys[m
|
||||
[31m-import os[m
|
||||
[31m-[m
|
||||
[31m-[m
|
||||
[31m-def find_parent(window_id):[m
|
||||
[31m- """[m
|
||||
[31m- Find the parent of a given window id[m
|
||||
[31m- """[m
|
||||
[31m- root_window = i3.get_tree()[m
|
||||
[31m- result = [None][m
|
||||
[31m-[m
|
||||
[31m- def finder(n, p=None):[m
|
||||
[31m- if result[0] is not None:[m
|
||||
[31m- return[m
|
||||
[31m- for node in n:[m
|
||||
[31m- if node['id'] == window_id:[m
|
||||
[31m- result[0] = p[m
|
||||
[31m- return[m
|
||||
[31m- if len(node['nodes']):[m
|
||||
[31m- finder(node['nodes'], node)[m
|
||||
[31m-[m
|
||||
[31m- finder(root_window['nodes'])[m
|
||||
[31m- return result[0][m
|
||||
[31m-[m
|
||||
[31m-[m
|
||||
[31m-def set_layout():[m
|
||||
[31m- """[m
|
||||
[31m- Set the layout/split for the currently[m
|
||||
[31m- focused window to either vertical or[m
|
||||
[31m- horizontal, depending on its width/height[m
|
||||
[31m- """[m
|
||||
[31m- current_win = i3.filter(nodes=[], focused=True)[m
|
||||
[31m- for win in current_win:[m
|
||||
[31m- parent = find_parent(win['id'])[m
|
||||
[31m-[m
|
||||
[31m- if (parent and "rect" in parent[m
|
||||
[31m- and parent['layout'] != 'tabbed'[m
|
||||
[31m- and parent['layout'] != 'stacked'):[m
|
||||
[31m- height = parent['rect']['height'][m
|
||||
[31m- width = parent['rect']['width'][m
|
||||
[31m-[m
|
||||
[31m- if height > width:[m
|
||||
[31m- new_layout = 'vertical'[m
|
||||
[31m- else:[m
|
||||
[31m- new_layout = 'horizontal'[m
|
||||
[31m-[m
|
||||
[31m- i3.split(new_layout)[m
|
||||
[31m-[m
|
||||
[31m-[m
|
||||
[31m-def print_help():[m
|
||||
[31m- print("Usage: " + sys.argv[0] + " [-p path/to/pid.file]")[m
|
||||
[31m- print("")[m
|
||||
[31m- print("Options:")[m
|
||||
[31m- print(" -p path/to/pid.file Saves the PID for this program in the filename specified")[m
|
||||
[31m- print("")[m
|
||||
[31m-[m
|
||||
[31m-[m
|
||||
[31m-def main():[m
|
||||
[31m- """[m
|
||||
[31m- Main function - listen for window focus[m
|
||||
[31m- changes and call set_layout when focus[m
|
||||
[31m- changes[m
|
||||
[31m- """[m
|
||||
[31m- opt_list, args = getopt.getopt(sys.argv[1:], 'hp:')[m
|
||||
[31m- pid_file = None[m
|
||||
[31m- for opt in opt_list:[m
|
||||
[31m- if opt[0] == "-h":[m
|
||||
[31m- print_help()[m
|
||||
[31m- sys.exit()[m
|
||||
[31m- if opt[0] == "-p":[m
|
||||
[31m- pid_file = opt[1][m
|
||||
[31m-[m
|
||||
[31m- if pid_file:[m
|
||||
[31m- with open(pid_file, 'w') as f:[m
|
||||
[31m- f.write(str(os.getpid()))[m
|
||||
[31m-[m
|
||||
[31m-[m
|
||||
[31m- process = subprocess.Popen([m
|
||||
[31m- ['xprop', '-root', '-spy'],[m
|
||||
[31m- stdout=subprocess.PIPE,[m
|
||||
[31m- stderr=subprocess.PIPE[m
|
||||
[31m- )[m
|
||||
[31m- regex = re.compile(b'^_NET_CLIENT_LIST_STACKING|^_NET_ACTIVE_WINDOW')[m
|
||||
[31m-[m
|
||||
[31m- last_line = ""[m
|
||||
[31m- while True:[m
|
||||
[31m- line = process.stdout.readline()[m
|
||||
[31m- if line == b'': #X is dead[m
|
||||
[31m- break[m
|
||||
[31m- if line == last_line:[m
|
||||
[31m- continue[m
|
||||
[31m- if regex.match(line):[m
|
||||
[31m- set_layout()[m
|
||||
[31m- last_line = line[m
|
||||
[31m-[m
|
||||
[31m- process.kill()[m
|
||||
[31m- sys.exit()[m
|
||||
[31m-[m
|
||||
[31m-if __name__ == "__main__":[m
|
||||
[31m- main()[m
|
||||
[1mdiff --git a/simpleDots/i3/config b/simpleDots/i3/config[m
|
||||
[1mindex 3897e90..aff8891 100644[m
|
||||
[1m--- a/simpleDots/i3/config[m
|
||||
[1m+++ b/simpleDots/i3/config[m
|
||||
[36m@@ -266,9 +266,10 @@[m [mexec --no-startup-id test -x ~/.local/bin/i3autostart.sh && ~/.local/bin/i3autos[m
|
||||
exec --no-startup-id gsettings set org.gtk.Settings.FileChooser sort-directories-first true[m
|
||||
[m
|
||||
## Spirallayout for new windows[m
|
||||
[31m-exec_always --no-startup-id ~/.i3/alternating_layouts.py[m
|
||||
[32m+[m[32mexec_always --no-startup-id /usr/bin/autotiling[m
|
||||
[m
|
||||
## Window Config[m
|
||||
[32m+[m[32mfor_window [class="smplayer"] floating enable[m
|
||||
for_window [class="Argon"] floating enable[m
|
||||
for_window [class="Vlc"] floating enable[m
|
||||
for_window [class="Ghidra"] floating enable[m
|
||||
[1mdiff --git a/sysconfig_arch/workstation_aurSoftware.yaml b/sysconfig_arch/workstation_aurSoftware.yaml[m
|
||||
[1mindex 24e594a..d1ef992 100644[m
|
||||
[1m--- a/sysconfig_arch/workstation_aurSoftware.yaml[m
|
||||
[1m+++ b/sysconfig_arch/workstation_aurSoftware.yaml[m
|
||||
[36m@@ -9,10 +9,10 @@[m
|
||||
become_user: aur_builder[m
|
||||
aur:[m
|
||||
name:[m
|
||||
[32m+[m[32m - autotiling[m
|
||||
- free42[m
|
||||
- insync[m
|
||||
- c-lolcat[m
|
||||
[31m- - python-i3-py[m
|
||||
- ttf-unifont[m
|
||||
- ttf-symbola[m
|
||||
[m
|
Reference in a new issue