Massive change to the structure of the tree.

This commit is contained in:
Bartek Stalewski 2025-03-10 23:59:38 +01:00
parent 2fc5f7a514
commit c71934ed3b
No known key found for this signature in database
137 changed files with 51 additions and 266 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,11 @@
import os
import re
import subprocess
from libqtile import bar, extension, hook, layout, qtile
from libqtile.backend.wayland import InputConfig
from libqtile.config import Click, Drag, Group, Key, KeyChord, Match, Screen
from libqtile.lazy import lazy
from libqtile.utils import guess_terminal
from qtile_extras import widget
mod = "mod4"

View file

@ -0,0 +1,208 @@
from common import *
os.environ["MOZ_DBUS_REMOTE"] = "1"
os.environ["XDG_CURRENT_DESKTOP"] = "qtile:wlroots"
widget_defaults = dict(
background='#272822',
font='Roboto Mono Medium',
fontsize=14,
foreground='#feffff',
)
extension_defaults = widget_defaults.copy()
# see examples/custom.py for example custom file
custom_file=os.getenv('XDG_CONFIG_HOME') + '/qtile/custom.py'
if os.path.exists(custom_file):
from custom import groups, keys, screens, wl_input_rules
else:
terminal = guess_terminal()
keys = [
# app binds
Key([mod], "Return", lazy.spawn(terminal)),
Key([mod], "space", lazy.spawncmd()),
Key([mod], "e", lazy.spawn("selector-chars")),
Key([mod, "control"], "a", lazy.spawn("selector-audio")),
]
groups = [
Group("1", label="1"),
Group("2", label="2"),
Group("3", label="3"),
Group("4", label="4"),
Group("5", label="5"),
Group("6", label="6"),
Group("7", label="7"),
Group("8", label="8"),
Group("9", label="9"),
Group("0", label="10"),
]
screens = [
Screen(
top=bar.Bar(
[
widget.GroupBox(
active='#feffff',
disable_drag=True,
font="Font Awesome 6 Free",
highlight_color='#272822',
highlight_method='block',
mouse_callbacks={"Button1": lambda: None},
rounded=False,
this_current_screen_border='#0094d8',
urgent_alert_method='block',
urgent_border='#770000',
use_mouse_wheel=False,
),
widget.Prompt(
bell_style=None,
prompt='open: ',
record_history=False,
),
widget.Spacer(),
widget.Notify(
foreground='#000000',
background='#e8b923',
foreground_low='#c7c7c7',
background_low='#272822',
foreground_urgent='#feffff',
background_urgent='#770000',
),
widget.GenPollCommand(
foreground='#feffff',
background='#770000',
update_interval=1,
cmd="sb-volume",
),
widget.GenPollCommand(
foreground='#feffff',
background='#770000',
update_interval=1,
cmd="sb-wireguard",
),
widget.Wlan(
foreground='#feffff',
background='#770000',
format='',
disconnected_message="no wifi",
),
widget.GenPollCommand(
update_interval=1,
cmd="sb-battery",
),
widget.Clock(
format='[%d] %H:%M:%S',
),
widget.StatusNotifier(),
],
24,
margin=[5, 5, 0, 5]
),
wallpaper=os.getenv('XDG_CONFIG_HOME') + '/qtile/wallpaper.img',
wallpaper_mode='fill',
),
]
wl_input_rules = {}
@hook.subscribe.startup_once
def autostart():
# see examples/autostart.sh
autostart=os.getenv('XDG_CONFIG_HOME') + '/qtile/autostart.sh'
subprocess.run([autostart])
@hook.subscribe.shutdown
def autostop():
# see examples/autostop.sh
autostop=os.getenv('XDG_CONFIG_HOME') + '/qtile/autostop.sh'
subprocess.run([autostop])
keys.extend([
# switch between windows
Key([mod], "h", lazy.layout.left()),
Key([mod], "l", lazy.layout.right()),
Key([mod], "j", lazy.layout.down()),
Key([mod], "k", lazy.layout.up()),
Key([mod], "Left", lazy.layout.left()),
Key([mod], "Right", lazy.layout.right()),
Key([mod], "Down", lazy.layout.down()),
Key([mod], "Up", lazy.layout.up()),
# move windows
Key([mod, "control"], "h", lazy.layout.shuffle_left()),
Key([mod, "control"], "l", lazy.layout.shuffle_right()),
Key([mod, "control"], "j", lazy.layout.shuffle_down()),
Key([mod, "control"], "k", lazy.layout.shuffle_up()),
# resize windows
Key([mod, "shift"], "h", lazy.layout.grow_left()),
Key([mod, "shift"], "l", lazy.layout.grow_right()),
Key([mod, "shift"], "j", lazy.layout.grow_down()),
Key([mod, "shift"], "k", lazy.layout.grow_up()),
Key([mod, "shift", "control"], "0", lazy.layout.normalize()),
# WM control
Key([mod], "f", lazy.window.toggle_floating()),
Key([mod], "q", lazy.window.kill()),
Key([mod, "control", "shift"], "q", lazy.shutdown()),
Key([mod, "control", "shift"], "r", lazy.reload_config()),
Key([mod], "r", lazy.reload_config()),
# media keys
Key([], "XF86AudioMute", lazy.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")),
Key([], "XF86AudioMicMute", lazy.spawn("sb-volume micmute")),
Key([], "XF86AudioRaiseVolume", lazy.spawn("sb-volume inc")),
Key([], "XF86AudioLowerVolume", lazy.spawn("sb-volume dec")),
Key([], "XF86MonBrightnessUp", lazy.spawn("doas xbacklight -inc 10")),
Key([], "XF86MonBrightnessDown", lazy.spawn("doas xbacklight -dec 10")),
])
for i in groups[:10]:
keys.extend([
Key(
[mod], i.name, lazy.group[i.name].toscreen(),
desc="Switch to group {}".format(i.name),
),
Key([mod, "shift"], i.name, lazy.window.togroup(i.name),
desc="move focused window to group {}".format(i.name)
),
])
if qtile.core.name == "wayland":
for i in range(1,2):
keys.extend([
Key(["control", "mod1"], f"f{i}", lazy.core.change_vt(i), desc=f"Switch to VT{i}")
])
layouts = [
layout.Columns(
border_focus='#0094d8',
border_normal="#272822",
border_on_single = False,
border_width=5,
insert_position=1,
margin=[5, 5, 5, 5]
),
]
floating_layout = layout.Floating(
float_rules=[
*layout.Floating.default_float_rules,
Match(title="File Upload"),
Match(title="Open File"),
Match(title="Open file"),
Match(title="Open Files"),
Match(title="Firefox — Sharing Indicator"),
Match(title="Enter name of file to save to…"),
Match(title="Save Image"),
Match(wm_class="authenticator"),
Match(wm_class="bluetuith"),
Match(wm_class="xdg-desktop-portal-gtk")
],
border_focus='#0094d8',
border_normal="#272822",
border_width=5,
)
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()),
]
focus_on_window_activation = "urgent"
wmname = "qtile"

View file

@ -0,0 +1,2 @@
#!/bin/sh
firefox &

View file

@ -0,0 +1,3 @@
#!/bin/sh
# be sure that processes quit with qtile
killall -9 firefox

View file

@ -0,0 +1,25 @@
from common import *
groups = [
# use icon as group's label - for more icons visit https://fontawesome.com/icons
Group("1", label="\uf292"),
# match window class to a group
Group("2", label="\ue007", matches=[Match(wm_class=["Firefox"])]),
]
keys = [
# example key binding for running a command
Key([mod], "f", lazy.spawn("firefox")),
# example keychord
KeyChord([mod], "Comma", [
Key([], "f", lazy.spawn("firefox")),
])
]
# example input rules for Wayland
wl_input_rules = {
"type:pointer": InputConfig(natural_scroll=True),
"type:touchpad": InputConfig(tap=True,natural_scroll=True),
"type:keyboard": InputConfig(kb_layout="pl",kb_repeat_delay=280,kb_repeat_rate=30),
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 KiB