aboutsummaryrefslogtreecommitdiff
path: root/qtile/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'qtile/config.py')
-rw-r--r--qtile/config.py351
1 files changed, 0 insertions, 351 deletions
diff --git a/qtile/config.py b/qtile/config.py
deleted file mode 100644
index c764f2a..0000000
--- a/qtile/config.py
+++ /dev/null
@@ -1,351 +0,0 @@
-from libqtile.config import (Group, Key, Click, Drag, Screen, Match)
-from libqtile.command import lazy
-from libqtile import (layout, bar, widget, hook)
-import libqtile
-import libqtile.widget.launchbar
-import subprocess
-import os.path
-import itertools
-import functools
-import contextlib
-
-
-screens_count = str(
- subprocess.Popen(
- ['xrandr'],
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE).communicate()[0]
- ).count(" connected ")
-
-
-touchpad_id = None
-with contextlib.suppress(Exception):
- result = subprocess.run(['xinput'], capture_output=True)
- stdout = result.stdout.decode('utf-8')
- for i in stdout.split('\n'):
- if 'TouchPad' in i:
- touchpad_id = int(i.split('id=')[1].split('[')[0].strip())
-
-
-wlan_dev = None
-with contextlib.suppress(Exception):
- result = subprocess.run(['ip', 'l'], capture_output=True)
- stdout = result.stdout.decode('utf-8')
- for i in stdout.split('\n'):
- if not i or i[0] in (' ', '\t'):
- continue
- temp_wlan_dev = i.split(':')[1].strip()
- if temp_wlan_dev and temp_wlan_dev[0] == 'w':
- wlan_dev = temp_wlan_dev
- break
-
-
-mod = 'mod4'
-
-
-groups = [
- Group('1', screen_affinity=0),
- Group('2', screen_affinity=0),
- Group('3', screen_affinity=0),
- Group('4', screen_affinity=0),
- Group('a', screen_affinity=1 % screens_count),
- Group('s', screen_affinity=1 % screens_count),
- Group('d', screen_affinity=1 % screens_count),
- Group('f', screen_affinity=1 % screens_count),
- # Group('z', screen_affinity=2),
- # Group('x', screen_affinity=2),
- # Group('c', screen_affinity=2),
- # Group('v', screen_affinity=2),
- Group('term', layout='max',
- matches=[Match(wm_instance_class=['tmux_term'])])
-]
-
-
-bar_background = ['#000000', '#000000', '#333333']
-
-
-def get_icon_path(name):
- return os.path.expanduser('~/.dotfiles/pictures/icons/' + name + '.png')
-
-
-def create_launch_bar():
- return libqtile.widget.launchbar.LaunchBar([
- (get_icon_path('chromium'), 'chromium'),
- (get_icon_path('falkon'), 'falkon'),
- (get_icon_path('qutebrowser'), 'qutebrowser'),
- (get_icon_path('dolphin'), 'dolphin'),
- (get_icon_path('atom'), 'atom'),
- (get_icon_path('claws-mail'), 'claws-mail'),
- (get_icon_path('kmix'), 'pavucontrol'),
- (get_icon_path('network'), 'connman-gtk'),
- (get_icon_path('keepassxc'), 'keepassxc'),
- (get_icon_path('clementine'), 'clementine'),
- ], pading=5)
-
-
-def create_top_bar(screen_index):
- return bar.Bar([
- widget.CurrentLayoutIcon(scale=0.7),
- widget.CurrentLayout(),
- widget.Sep(),
- widget.WindowName(),
- widget.Prompt(name='prompt' + str(screen_index)),
- widget.Sep(),
- widget.TextBox('Cpu:'),
- widget.CPUGraph(),
- widget.Sep(),
- widget.TextBox('Memory:'),
- widget.MemoryGraph(),
- widget.Sep(),
- widget.TextBox('Net:'),
- widget.NetGraph(),
- widget.Sep(),
- widget.TextBox('Wlan:'),
- widget.Wlan(interface=wlan_dev),
- widget.Sep(),
- widget.TextBox('Battery:'),
- widget.Battery(),
- widget.Sep(),
- widget.TextBox('Volume:'),
- widget.Volume(),
- widget.Sep(),
- widget.Clock(format='%Y-%m-%d %H:%M:%S')
- ], 30, background=bar_background)
-
-
-def create_bottom_bar(screen_index):
- return bar.Bar([
- widget.GroupBox(disable_drag=True,
- fontsize=22,
- visible_groups={g.name for g in groups
- if g.screen_affinity is None
- or g.screen_affinity == screen_index}),
- widget.Sep(),
- create_launch_bar(),
- widget.Sep(),
- widget.TaskList(fontsize=20)
- ] + ([widget.Systray(icon_size=35)] if screen_index == 0 else []), 35,
- background=list(reversed(bar_background)))
-
-
-def create_screen(screen_index):
- return Screen(
- top=create_top_bar(screen_index),
- bottom=create_bottom_bar(screen_index))
-
-
-screens = [create_screen(i) for i in range(screens_count)]
-
-
-layouts = [
- layout.MonadTall(),
- layout.MonadWide(),
- layout.Max(),
- layout.VerticalTile(),
- layout.Zoomy()
-]
-
-
-mouse = [
- Drag([mod], "Button1", lazy.window.set_position_floating(),
- start=lazy.window.get_position()),
- Drag([mod], "Button3", lazy.window.set_size_floating(),
- start=lazy.window.get_size()),
- Click([mod], "Button2", lazy.window.bring_to_front())
-]
-
-
-def act_focus_group(group, qtile):
- qtile.groups_map[group.name].cmd_toscreen(group.screen_affinity)
- qtile.cmd_to_screen(group.screen_affinity)
-
-
-def act_move_to_group(group, qtile):
- qtile.current_window.cmd_togroup(group.name)
-
-
-def act_F12(qtile):
- if qtile.current_group.name != 'term':
- for screen in qtile.cmd_screens():
- if screen['group'] == 'term':
- qtile.cmd_to_screen(screen['index'])
- return
- qtile.current_screen.cmd_togglegroup('term')
- if qtile.current_group.name == 'term' and not qtile.current_group.windows:
- subprocess.Popen(['alacritty', '-e', 'tmux', 'new-session', '-A',
- '-s', 'default'])
-
-
-def act_enable_touchpad(qtile):
- subprocess.Popen(['xinput', 'enable', str(touchpad_id)])
-
-
-def act_disable_touchpad(qtile):
- subprocess.Popen(['xinput', 'disable', str(touchpad_id)])
-
-
-def act_left(qtile):
- lay = qtile.current_group.layout
- scr = qtile.current_screen
- scr_next = qtile.screens[(scr.index + 1) % len(qtile.screens)]
- change_screen = False
- if isinstance(lay, layout.Max):
- change_screen = True
- elif isinstance(lay, layout.MonadTall):
- try:
- lay.cmd_left()
- except ValueError:
- change_screen = True
- else:
- lay.cmd_previous()
- if change_screen:
- qtile.cmd_to_screen(scr_next.index)
-
-
-def act_right(qtile):
- lay = qtile.current_group.layout
- scr = qtile.current_screen
- scr_next = qtile.screens[(scr.index + 1) % len(qtile.screens)]
- change_screen = False
- if isinstance(lay, layout.Max):
- change_screen = True
- elif isinstance(lay, layout.MonadTall):
- try:
- lay.cmd_right()
- except ValueError:
- change_screen = True
- else:
- lay.cmd_next()
- if change_screen:
- qtile.cmd_to_screen(scr_next.index)
-
-
-def act_up(qtile):
- qtile.current_group.layout.cmd_up()
-
-
-def act_down(qtile):
- qtile.current_group.layout.cmd_down()
-
-
-def act_move_left(qtile):
- qtile.current_group.layout.cmd_swap_left()
-
-
-def act_move_right(qtile):
- qtile.current_group.layout.cmd_swap_right()
-
-
-def act_move_up(qtile):
- qtile.current_group.layout.cmd_move_up()
-
-
-def act_move_down(qtile):
- qtile.current_group.layout.cmd_move_down()
-
-
-def act_spawncmd(qtile):
- qtile.cmd_spawncmd(widget='prompt' + str(qtile.current_screen.index))
-
-
-keys = list(itertools.chain(
- [Key([mod, 'shift'], 'q', lazy.window.kill()),
- Key([mod], 'w', lazy.next_layout()),
- Key([mod, 'shift'], 'e', lazy.shutdown()),
- Key([mod, 'shift'], 'r', lazy.restart()),
-
- Key([mod], 'Return', lazy.spawn('urxvt')),
- Key([mod], 'space', lazy.function(act_spawncmd)),
-
-
- Key([mod], 'Tab', lazy.layout.next()),
- Key([mod, 'shift'], 'space', lazy.window.toggle_floating()),
- Key([mod, 'shift'], 'Return', lazy.window.toggle_fullscreen()),
-
- Key([mod], 'h', lazy.function(act_left)),
- Key([mod], 'l', lazy.function(act_right)),
- Key([mod], 'j', lazy.function(act_down)),
- Key([mod], 'k', lazy.function(act_up)),
- Key([mod, 'shift'], "h", lazy.function(act_move_left)),
- Key([mod, 'shift'], "l", lazy.function(act_move_right)),
- Key([mod, 'shift'], "j", lazy.function(act_move_down)),
- Key([mod, 'shift'], "k", lazy.function(act_move_up)),
- Key([mod], "m", lazy.layout.grow()),
- Key([mod], "n", lazy.layout.shrink()),
- Key([mod, 'shift'], "m", lazy.layout.maximize()),
- Key([mod, 'shift'], "n", lazy.layout.normalize()),
-
-
- Key([], 'F12', lazy.function(act_F12)),
- # Key([], 'PrintScreen', lazy.spawn('spectacle')),
-
-
- Key([mod], 't', lazy.function(act_enable_touchpad)),
- Key([mod, 'shift'], 't', lazy.function(act_disable_touchpad)),
- ],
-
-
- [Key([mod], group.name,
- lazy.function(functools.partial(act_focus_group, group)))
- for group in groups if group.name != 'term'],
-
- [Key([mod, 'shift'], group.name,
- lazy.function(functools.partial(act_move_to_group, group)))
- for group in groups if group.name != 'term'],
-
-))
-
-
-@hook.subscribe.current_screen_change
-def hook_current_screen_change():
- change_border_focus()
-
-
-@hook.subscribe.setgroup
-def hook_setgroup():
- change_border_focus()
-
-
-def change_border_focus():
- qtile = hook.qtile
- for i in qtile.screens:
- if qtile.current_screen == i:
- if isinstance(i.group.layout, layout.MonadTall):
- if i.group.layout.border_focus != "#ff0000":
- i.group.layout.border_focus = "#ff0000"
- i.group.layout_all()
- else:
- if isinstance(i.group.layout, layout.MonadTall):
- if i.group.layout.border_focus != "#000000":
- i.group.layout.border_focus = "#000000"
- i.group.layout_all()
-
-
-@hook.subscribe.startup
-def hook_startup():
- qtile = hook.qtile
- screens_set = set()
- for g in groups:
- if g.screen_affinity is not None and g.screen_affinity not in screens_set:
- qtile.groups_map[g.name].cmd_toscreen(g.screen_affinity)
- screens_set.add(g.screen_affinity)
- with contextlib.suppress(Exception):
- subprocess.Popen(['feh', '--bg-scale',
- os.path.expanduser('~/.dotfiles/pictures/bg1.jpg'),
- os.path.expanduser('~/.dotfiles/pictures/bg2.jpg')])
-
-
-@hook.subscribe.startup_once
-def hook_startup_once():
- #with contextlib.suppress(Exception):
- # subprocess.Popen(['dropbox'])
- #with contextlib.suppress(Exception):
- # subprocess.Popen(['megasync'])
- with contextlib.suppress(Exception):
- subprocess.Popen(['kuiserver5'])
-
-
-@hook.subscribe.client_new
-def float_modal(window):
- if 383 in window.window.get_property('_NET_WM_STATE', unpack=int):
- window.floating = True