Compare commits
9 Commits
05b485b924
...
54d01ddad3
| Author | SHA1 | Date | |
|---|---|---|---|
| 54d01ddad3 | |||
| 875c80027d | |||
| aa9831601b | |||
| cf9b9c55dc | |||
| d9ada5d500 | |||
| fae84a6856 | |||
| e3b1f3518f | |||
| cb76a60e98 | |||
| d90d0e4a12 |
3
.gitignore
vendored
@@ -1,6 +1,6 @@
|
||||
# ---> Python
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
**/__pycache__/**
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
@@ -174,3 +174,4 @@ cython_debug/
|
||||
# PyPI configuration file
|
||||
.pypirc
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 488 B After Width: | Height: | Size: 488 B |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
@@ -3,11 +3,12 @@ import subprocess
|
||||
from libqtile import qtile
|
||||
|
||||
from qtile_extras import widget
|
||||
from qtile_extras.popup.toolkit import (PopupRelativeLayout,
|
||||
from qtile_extras.popup.toolkit import (
|
||||
PopupRelativeLayout,
|
||||
PopupWidget,
|
||||
)
|
||||
|
||||
from res.themes.colors import gruvbox_dark
|
||||
from colors import gruvbox_dark
|
||||
|
||||
# https://discord.com/channels/955163559086665728/1166312212223250482/1322614846155657370
|
||||
# check for this PR to change back the code with the message contents to the prev code of the widget:
|
||||
@@ -63,10 +64,7 @@ def calendar(qtile):
|
||||
width=0.9,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
widget=widget.Wttr(
|
||||
fontsize=40,
|
||||
format='%c'
|
||||
)
|
||||
widget=widget.Wttr(fontsize=40, format="%c"),
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.3,
|
||||
@@ -76,21 +74,15 @@ def calendar(qtile):
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
widget=widget.Wttr(
|
||||
font='Open Sans Bold',
|
||||
fontsize=18,
|
||||
format='Actual: %t'
|
||||
)
|
||||
font="Open Sans Bold", fontsize=18, format="Actual: %t"
|
||||
),
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.3,
|
||||
pos_y=0.12,
|
||||
height=0.05,
|
||||
width=0.9,
|
||||
widget=widget.Wttr(
|
||||
font='Open Sans',
|
||||
fontsize=14,
|
||||
format='Feels: %f'
|
||||
)
|
||||
widget=widget.Wttr(font="Open Sans", fontsize=14, format="Feels: %f"),
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.05,
|
||||
@@ -98,10 +90,8 @@ def calendar(qtile):
|
||||
height=0.05,
|
||||
width=0.9,
|
||||
widget=widget.Wttr(
|
||||
font='Open Sans',
|
||||
fontsize=14,
|
||||
format='Wind: %w Prec: %p'
|
||||
)
|
||||
font="Open Sans", fontsize=14, format="Wind: %w Prec: %p"
|
||||
),
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.05,
|
||||
@@ -109,10 +99,10 @@ def calendar(qtile):
|
||||
height=0.11,
|
||||
width=0.9,
|
||||
widget=widget.Wttr(
|
||||
font='Open Sans Bold',
|
||||
font="Open Sans Bold",
|
||||
fontsize=14,
|
||||
format='City: %l', # \nFeel;%f Wind: %w'
|
||||
)
|
||||
format="City: %l", # \nFeel;%f Wind: %w'
|
||||
),
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.051,
|
||||
@@ -121,15 +111,17 @@ def calendar(qtile):
|
||||
width=0.9,
|
||||
widget=widget.GenPollText(
|
||||
func=parse_cal,
|
||||
font='mono',
|
||||
font="mono",
|
||||
fontsize=20,
|
||||
markup=False,
|
||||
)
|
||||
),
|
||||
]
|
||||
),
|
||||
],
|
||||
)
|
||||
layout.show(relative_to=3,
|
||||
layout.show(
|
||||
relative_to=3,
|
||||
relative_to_bar=True,
|
||||
y=3,
|
||||
x=-3,
|
||||
)
|
||||
|
||||
@@ -6,7 +6,7 @@ from qtile_extras.popup.toolkit import (
|
||||
PopupWidget,
|
||||
)
|
||||
|
||||
from res.themes.colors import gruvbox_dark
|
||||
from colors import gruvbox_dark
|
||||
|
||||
|
||||
def monitor(qtile):
|
||||
@@ -1,11 +1,12 @@
|
||||
from res.themes.colors import gruvbox_dark
|
||||
from colors import gruvbox_dark
|
||||
from qtile_extras.popup.toolkit import (
|
||||
PopupRelativeLayout,
|
||||
PopupImage,
|
||||
PopupText,
|
||||
PopupSlider
|
||||
PopupSlider,
|
||||
)
|
||||
image='/home/cerberus/.config/qtile/res/images/no_cover.svg'
|
||||
|
||||
image = "/home/cerberus/.config/qtile/assets/images/no_cover.svg"
|
||||
|
||||
MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
None,
|
||||
@@ -18,7 +19,7 @@ MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
PopupText(
|
||||
"",
|
||||
name="title",
|
||||
font='Open Sans Bold',
|
||||
font="Open Sans Bold",
|
||||
fontsize=18,
|
||||
pos_x=0.35,
|
||||
pos_y=0.1,
|
||||
@@ -30,7 +31,7 @@ MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
PopupText(
|
||||
"",
|
||||
name="artist",
|
||||
font='Open Sans Medium',
|
||||
font="Open Sans Medium",
|
||||
fontsize=14,
|
||||
pos_x=0.35,
|
||||
pos_y=0.24,
|
||||
@@ -42,7 +43,7 @@ MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
PopupText(
|
||||
"",
|
||||
name="album",
|
||||
font='Open Sans',
|
||||
font="Open Sans",
|
||||
fontsize=14,
|
||||
pos_x=0.35,
|
||||
pos_y=0.38,
|
||||
@@ -59,10 +60,12 @@ MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
width=0.21,
|
||||
height=0.42,
|
||||
),
|
||||
PopupSlider(name="progress", pos_x=0.1, pos_y=0.6, width=0.8, height=0.1, marker_size=0),
|
||||
PopupSlider(
|
||||
name="progress", pos_x=0.1, pos_y=0.6, width=0.8, height=0.1, marker_size=0
|
||||
),
|
||||
PopupText(
|
||||
name="previous",
|
||||
text='',
|
||||
text="",
|
||||
fontsize=30,
|
||||
mask=True,
|
||||
pos_x=0.125,
|
||||
@@ -71,13 +74,13 @@ MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
height=0.1,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
highlight_method='text',
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
),
|
||||
PopupText(
|
||||
name="play_pause",
|
||||
text='',
|
||||
text="",
|
||||
fontsize=30,
|
||||
mask=True,
|
||||
pos_x=0.325,
|
||||
@@ -86,13 +89,13 @@ MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
height=0.1,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
highlight_method='text',
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
),
|
||||
PopupText(
|
||||
name="stop",
|
||||
text='',
|
||||
text="",
|
||||
fontsize=30,
|
||||
mask=True,
|
||||
pos_x=0.525,
|
||||
@@ -101,13 +104,13 @@ MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
height=0.1,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
highlight_method='text',
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
),
|
||||
PopupText(
|
||||
name="next",
|
||||
text='',
|
||||
text="",
|
||||
fontsize=30,
|
||||
mask=True,
|
||||
pos_x=0.725,
|
||||
@@ -116,10 +119,11 @@ MPRIS2_LAYOUT = PopupRelativeLayout(
|
||||
height=0.1,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
highlight_method='text',
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
),
|
||||
],
|
||||
close_on_click=False,
|
||||
)
|
||||
|
||||
50
assets/popups/network.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from libqtile import qtile
|
||||
from libqtile.lazy import lazy
|
||||
|
||||
from colors import gruvbox_dark
|
||||
|
||||
from qtile_extras.popup.menu import (
|
||||
PopupMenu,
|
||||
PopupMenuItem,
|
||||
PopupMenuSeparator,
|
||||
)
|
||||
|
||||
items = [
|
||||
PopupMenuItem(
|
||||
show_icon=False,
|
||||
text=" Network Manager",
|
||||
font="Open Sans",
|
||||
fontsize=16,
|
||||
can_focus=True,
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("nm-connection-editor")},
|
||||
),
|
||||
PopupMenuSeparator(),
|
||||
PopupMenuItem(
|
||||
show_icon=False,
|
||||
text=" Wireguard",
|
||||
font="Open Sans",
|
||||
fontsize=16,
|
||||
highlight_method="text",
|
||||
can_focus=True,
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("wireguird")},
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
def network_menu(qtile):
|
||||
layout = PopupMenu.generate(
|
||||
qtile,
|
||||
pos_x=100,
|
||||
pos_y=100,
|
||||
width=225,
|
||||
opacity=0.7,
|
||||
menuitems=items,
|
||||
background=gruvbox_dark["bg0_soft"],
|
||||
)
|
||||
layout.show(relative_to=1, relative_to_bar=True, y=136, x=220)
|
||||
|
||||
71
assets/popups/powermenu.py
Normal file
@@ -0,0 +1,71 @@
|
||||
from libqtile.lazy import lazy
|
||||
from colors import gruvbox_dark
|
||||
from qtile_extras.popup.toolkit import (
|
||||
PopupRelativeLayout,
|
||||
PopupText,
|
||||
)
|
||||
|
||||
|
||||
# qtile/resources/themes/colors.py
|
||||
def power_menu(qtile):
|
||||
layout = PopupRelativeLayout(
|
||||
qtile,
|
||||
width=800,
|
||||
height=250,
|
||||
opacity=0.7,
|
||||
# border=gruvbox_dark["red"],
|
||||
# border_width=3,
|
||||
background=gruvbox_dark["bg0_soft"],
|
||||
initial_focus=None,
|
||||
controls=[
|
||||
PopupText(
|
||||
# Lock betterlockscreen --lock blur
|
||||
text="",
|
||||
fontsize=80,
|
||||
pos_y=0,
|
||||
pos_x=0.1,
|
||||
width=0.2,
|
||||
height=1,
|
||||
mouse_callbacks={"Button1": lazy.spawn("betterlockscreen --lock blur")},
|
||||
highlight_method="text",
|
||||
highlight=gruvbox_dark["green"],
|
||||
),
|
||||
PopupText(
|
||||
# Hybrid Sleep systemctl hybrid-sleep
|
||||
text="",
|
||||
fontsize=80,
|
||||
pos_y=0,
|
||||
pos_x=0.32,
|
||||
width=0.2,
|
||||
height=1,
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl hybrid-sleep")},
|
||||
highlight_method="text",
|
||||
highlight=gruvbox_dark["yellow"],
|
||||
),
|
||||
PopupText(
|
||||
# Hibernate systemctl hibernate
|
||||
text="",
|
||||
fontsize=80,
|
||||
pos_y=0,
|
||||
pos_x=0.55,
|
||||
width=0.2,
|
||||
height=1,
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl hibernate")},
|
||||
highlight_method="text",
|
||||
highlight=gruvbox_dark["orange"],
|
||||
),
|
||||
PopupText(
|
||||
# Power off systemctl poweroff
|
||||
text="",
|
||||
fontsize=80,
|
||||
pos_y=0,
|
||||
pos_x=0.8,
|
||||
width=0.2,
|
||||
height=1,
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl poweroff")},
|
||||
highlight_method="text",
|
||||
highlight=gruvbox_dark["red"],
|
||||
),
|
||||
],
|
||||
)
|
||||
layout.show(relative_to=5, relative_to_bar=True, hide_on_timeout=5)
|
||||
@@ -2,7 +2,7 @@ from pydoc import importfile
|
||||
from libqtile import qtile
|
||||
from libqtile.lazy import lazy
|
||||
|
||||
from res.themes.colors import gruvbox_dark
|
||||
from colors import gruvbox_dark
|
||||
|
||||
from qtile_extras.popup.toolkit import (
|
||||
PopupRelativeLayout,
|
||||
@@ -10,6 +10,7 @@ from qtile_extras.popup.toolkit import (
|
||||
PopupText,
|
||||
)
|
||||
|
||||
|
||||
def powermenu_2(qtile):
|
||||
layout = PopupRelativeLayout(
|
||||
qtile,
|
||||
@@ -23,7 +24,7 @@ def powermenu_2(qtile):
|
||||
controls=[
|
||||
PopupText(
|
||||
# Lock
|
||||
text='',
|
||||
text="",
|
||||
fontsize=22,
|
||||
pos_x=0.07,
|
||||
pos_y=0.05,
|
||||
@@ -32,14 +33,14 @@ def powermenu_2(qtile):
|
||||
can_focus=True,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
highlight_method='text',
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("betterlockscreen --lock blur")},
|
||||
),
|
||||
PopupText(
|
||||
# Reboot
|
||||
text='',
|
||||
text="",
|
||||
fontsize=22,
|
||||
pos_x=0.3,
|
||||
pos_y=0.05,
|
||||
@@ -48,14 +49,14 @@ def powermenu_2(qtile):
|
||||
can_focus=True,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
highlight_method='text',
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl reboot")},
|
||||
),
|
||||
PopupText(
|
||||
# Suspend
|
||||
text='',
|
||||
text="",
|
||||
fontsize=22,
|
||||
pos_x=0.54,
|
||||
pos_y=0.05,
|
||||
@@ -64,14 +65,14 @@ def powermenu_2(qtile):
|
||||
can_focus=True,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
highlight_method='text',
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl suspend")},
|
||||
),
|
||||
PopupText(
|
||||
# Shutdown
|
||||
text='',
|
||||
text="",
|
||||
fontsize=22,
|
||||
pos_x=0.78,
|
||||
pos_y=0.05,
|
||||
@@ -80,11 +81,12 @@ def powermenu_2(qtile):
|
||||
can_focus=True,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
highlight_method='text',
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl poweroff")},
|
||||
),
|
||||
]
|
||||
],
|
||||
)
|
||||
layout.show(relative_to=1, relative_to_bar=True, y=136, x=30)
|
||||
|
||||
61
assets/popups/settings.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from libqtile import qtile
|
||||
from libqtile.lazy import lazy
|
||||
|
||||
from colors import gruvbox_dark
|
||||
|
||||
from qtile_extras.popup.menu import (
|
||||
PopupMenu,
|
||||
PopupMenuItem,
|
||||
PopupMenuSeparator,
|
||||
)
|
||||
|
||||
items = [
|
||||
PopupMenuItem( # Wallpaper setting
|
||||
show_icon=False,
|
||||
text=" Nitrogen Wallpaper",
|
||||
font="Open Sans",
|
||||
fontsize=16,
|
||||
can_focus=True,
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("nitrogen")},
|
||||
),
|
||||
PopupMenuSeparator(),
|
||||
PopupMenuItem( # Arandr
|
||||
show_icon=False,
|
||||
text=" Arandr Display",
|
||||
font="Open Sans",
|
||||
fontsize=16,
|
||||
can_focus=True,
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("arandr")},
|
||||
),
|
||||
PopupMenuSeparator(),
|
||||
PopupMenuItem( # VS-Code qtile config
|
||||
show_icon=False,
|
||||
text=" Qtile Config",
|
||||
font="Open Sans",
|
||||
fontsize=16,
|
||||
can_focus=True,
|
||||
highlight_method="text",
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("code /home/cerberus/.config/")},
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
def settings(qtile):
|
||||
layout = PopupMenu.generate(
|
||||
qtile,
|
||||
pos_x=100,
|
||||
pos_y=100,
|
||||
width=225,
|
||||
opacity=0.7,
|
||||
menuitems=items,
|
||||
background=gruvbox_dark["bg0_soft"],
|
||||
)
|
||||
layout.show(relative_to=1, relative_to_bar=True, y=75, x=325)
|
||||
@@ -9,11 +9,11 @@ from qtile_extras.popup.toolkit import (
|
||||
PopupWidget,
|
||||
)
|
||||
|
||||
from res.themes.colors import gruvbox_dark
|
||||
from popups.settings import settings
|
||||
from popups.network import network_menu
|
||||
from popups.powermenu_sub import powermenu_2
|
||||
from popups.monitor import monitor
|
||||
from colors import gruvbox_dark
|
||||
from assets.popups.settings import settings
|
||||
from assets.popups.network import network_menu
|
||||
from assets.popups.powermenu_sub import powermenu_2
|
||||
from assets.popups.monitor import monitor
|
||||
|
||||
|
||||
def start_menu(qtile):
|
||||
@@ -36,7 +36,7 @@ def start_menu(qtile):
|
||||
width=0.3,
|
||||
mask=True,
|
||||
colour=gruvbox_dark["blue"],
|
||||
filename="/home/cerberus/.config/qtile/res/images/standby_rotated.png",
|
||||
filename="/home/cerberus/.config/qtile/assets/images/standby_rotated_.png",
|
||||
),
|
||||
PopupWidget(
|
||||
# Welcome banner, fetching user name from $USER
|
||||
@@ -183,4 +183,3 @@ def start_menu(qtile):
|
||||
],
|
||||
)
|
||||
layout.show(relative_to=1, relative_to_bar=True, y=3, x=3)
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
from res.themes.colors import gruvbox_dark
|
||||
from colors import gruvbox_dark
|
||||
|
||||
from qtile_extras.popup.toolkit import (
|
||||
PopupRelativeLayout,
|
||||
PopupText,
|
||||
PopupSlider
|
||||
)
|
||||
from qtile_extras.popup.toolkit import PopupRelativeLayout, PopupText, PopupSlider
|
||||
|
||||
|
||||
VOL_POPUP = PopupRelativeLayout(
|
||||
@@ -38,3 +34,4 @@ VOL_POPUP = PopupRelativeLayout(
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
70
colors.py
Normal file
@@ -0,0 +1,70 @@
|
||||
# --------------------------------------------------------
|
||||
# Gruvbox Dark Theme Colors
|
||||
# --------------------------------------------------------
|
||||
gruvbox_dark = {
|
||||
"bg0_hard": "#1d2021", # Background, hard
|
||||
"bg0_soft": "#32302f", # Background, soft
|
||||
"bg0_normal": "#282828", # Background, normal
|
||||
"bg1": "#3c3836", # Secondary background
|
||||
"bg2": "#504945", # Background, darker
|
||||
"bg3": "#665c54", # Background, lighter
|
||||
"bg4": "#7c6f64", # Background, lightest
|
||||
"fg0": "#fbf1c7", # Foreground, light
|
||||
"fg1": "#ebdbb2", # Foreground, normal
|
||||
"fg2": "#d5c4a1", # Foreground, slightly dark
|
||||
"fg3": "#bdae93", # Foreground, dark
|
||||
"red": "#cc241d", # Red
|
||||
"orange": "#d65d0e", # Orange
|
||||
"yellow": "#d79921", # Yellow
|
||||
"green": "#98971a", # Green
|
||||
"aqua": "#689d6a", # Aqua
|
||||
"blue": "#458588", # Blue
|
||||
"purple": "#b16286", # Purple
|
||||
}
|
||||
gruvbox_light = {
|
||||
# Backgrounds (Helle Töne)
|
||||
"bg0_hard": "#f9f5d7", # Background, hard (sehr helles Beige)
|
||||
"bg0_soft": "#f2e5bc", # Background, soft
|
||||
"bg0_normal": "#fbf1c7", # Background, normal (der Standard-Look)
|
||||
"bg1": "#ebdbb2", # Secondary background
|
||||
"bg2": "#d5c4a1", # Background, darker (UI Elemente)
|
||||
"bg3": "#bdae93", # Background, lighter
|
||||
"bg4": "#a89984", # Background, lightest
|
||||
# Foregrounds (Dunkle Töne für Text)
|
||||
"fg0": "#282828", # Foreground, light (eigentlich dunkelster Text)
|
||||
"fg1": "#3c3836", # Foreground, normal
|
||||
"fg2": "#504945", # Foreground, slightly dark
|
||||
"fg3": "#665c54", # Foreground, dark
|
||||
# Colors (Angepasst für Kontrast auf hellem Grund)
|
||||
"red": "#9d0006", # Red
|
||||
"orange": "#af3a03", # Orange
|
||||
"yellow": "#b57614", # Yellow
|
||||
"green": "#79740e", # Green
|
||||
"aqua": "#427b58", # Aqua
|
||||
"blue": "#076678", # Blue
|
||||
"purple": "#8f3f71", # Purple
|
||||
}
|
||||
everforest_dark = {
|
||||
# Backgrounds
|
||||
"bg0_hard": "#272e33", # Background, hard
|
||||
"bg0_soft": "#333c43", # Background, soft
|
||||
"bg0_normal": "#2d353b", # Background, normal
|
||||
"bg1": "#3d484d", # Secondary background
|
||||
"bg2": "#475258", # Background, darker (UI elements)
|
||||
"bg3": "#4f585e", # Background, lighter
|
||||
"bg4": "#56635f", # Background, lightest
|
||||
# Foregrounds
|
||||
"fg0": "#d3c6aa", # Foreground, light
|
||||
"fg1": "#e6e2cc", # Foreground, normal
|
||||
"fg2": "#dbd6bd", # Foreground, slightly dark
|
||||
"fg3": "#9da9a0", # Foreground, dark
|
||||
# Colors
|
||||
"red": "#e67e80", # Red
|
||||
"orange": "#e69875", # Orange
|
||||
"yellow": "#dbbc7f", # Yellow
|
||||
"green": "#a7c080", # Green
|
||||
"aqua": "#83c092", # Aqua
|
||||
"blue": "#7fbbb3", # Blue
|
||||
"purple": "#d699b6", # Purple
|
||||
}
|
||||
|
||||
10
config.py
@@ -1,8 +1,8 @@
|
||||
from modules.screens import screens, widget_defaults
|
||||
from modules.keys import keys, mouse
|
||||
from modules.layouts import layouts, floating_layout
|
||||
from modules.groups import groups
|
||||
from modules.hooks import *
|
||||
from screens import screens, widget_defaults
|
||||
from keys import keys, mouse
|
||||
from layouts import layouts, floating_layout
|
||||
from groups import groups
|
||||
from hooks import *
|
||||
|
||||
from libqtile import qtile
|
||||
from libqtile.backend.wayland.inputs import InputConfig
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from libqtile.config import Group, Key, Match, DropDown, ScratchPad
|
||||
from libqtile.lazy import lazy
|
||||
from .keys import keys, mod
|
||||
from keys import keys, mod
|
||||
import re
|
||||
|
||||
group_screen_map = {
|
||||
@@ -14,6 +14,7 @@ from libqtile import hook, qtile
|
||||
import subprocess
|
||||
import os.path
|
||||
from libqtile.config import Match
|
||||
import asyncio
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# HOOK startup
|
||||
@@ -24,7 +25,7 @@ FULLSCREEN_RULES = [Match(wm_class="flameshot")]
|
||||
|
||||
@hook.subscribe.startup_once
|
||||
def autostart():
|
||||
autostartscript = "~/.config/qtile/res/scripts/autostart.sh"
|
||||
autostartscript = "~/.config/qtile/assets/scripts/autostart.sh"
|
||||
home = os.path.expanduser(autostartscript)
|
||||
subprocess.Popen([home])
|
||||
|
||||
@@ -44,3 +45,28 @@ def force_fullscreen(client) -> None:
|
||||
|
||||
if any(client.match(rule) for rule in FULLSCREEN_RULES):
|
||||
client.fullscreen = True
|
||||
|
||||
|
||||
@hook.subscribe.client_new
|
||||
def tile_mpv(client):
|
||||
if client.name == "mpv" or "mpvk":
|
||||
client.floating = False
|
||||
|
||||
|
||||
# @hook.subscribe.client_new
|
||||
# def tile_mpv(client):
|
||||
# # wm_class gibt oft eine liste zurück, z.b. ['mpv', 'mpv']
|
||||
# if "mpv" in client.get_wm_class():
|
||||
# client.floating = false
|
||||
|
||||
|
||||
# @hook.subscribe.client_new
|
||||
# def tile_mpv(client):
|
||||
# if client.name == "mpv":
|
||||
# # Wartet 0.1 Sekunden, bevor das Floating deaktiviert wird
|
||||
# asyncio.create_task(set_tile(client))
|
||||
#
|
||||
#
|
||||
# async def set_tile(client):
|
||||
# await asyncio.sleep(0.1)
|
||||
# client.floating = False
|
||||
@@ -1,48 +0,0 @@
|
||||
from libqtile import qtile
|
||||
from libqtile.lazy import lazy
|
||||
|
||||
from res.themes.colors import gruvbox_dark
|
||||
|
||||
from qtile_extras.popup.menu import (
|
||||
PopupMenu,
|
||||
PopupMenuItem,
|
||||
PopupMenuSeparator,
|
||||
)
|
||||
|
||||
items=[
|
||||
PopupMenuItem(
|
||||
show_icon=False,
|
||||
text=' Network Manager',
|
||||
font='Open Sans',
|
||||
fontsize=16,
|
||||
can_focus=True,
|
||||
highlight_method='text',
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("nm-connection-editor")},
|
||||
),
|
||||
PopupMenuSeparator(),
|
||||
PopupMenuItem(
|
||||
show_icon=False,
|
||||
text=' Wireguard',
|
||||
font='Open Sans',
|
||||
fontsize=16,
|
||||
highlight_method='text',
|
||||
can_focus=True,
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("wireguird")},
|
||||
)
|
||||
]
|
||||
|
||||
def network_menu(qtile):
|
||||
layout = PopupMenu.generate(
|
||||
qtile,
|
||||
pos_x=100,
|
||||
pos_y=100,
|
||||
width=225,
|
||||
opacity=0.7,
|
||||
menuitems=items,
|
||||
background=gruvbox_dark["bg0_soft"]
|
||||
)
|
||||
layout.show(relative_to=1, relative_to_bar=True, y=136, x=220)
|
||||
@@ -1,70 +0,0 @@
|
||||
from libqtile.lazy import lazy
|
||||
from res.themes.colors import gruvbox_dark
|
||||
from qtile_extras.popup.toolkit import (
|
||||
PopupRelativeLayout,
|
||||
PopupText,
|
||||
)
|
||||
# qtile/resources/themes/colors.py
|
||||
def power_menu(qtile):
|
||||
layout = PopupRelativeLayout(
|
||||
qtile,
|
||||
width=800,
|
||||
height=250,
|
||||
opacity=0.7,
|
||||
# border=gruvbox_dark["red"],
|
||||
# border_width=3,
|
||||
background=gruvbox_dark["bg0_soft"],
|
||||
initial_focus=None,
|
||||
controls=[
|
||||
|
||||
PopupText(
|
||||
# Lock betterlockscreen --lock blur
|
||||
text="",
|
||||
fontsize=80,
|
||||
pos_y=0,
|
||||
pos_x=0.1,
|
||||
width=0.2,
|
||||
height=1,
|
||||
mouse_callbacks={"Button1": lazy.spawn("betterlockscreen --lock blur")},
|
||||
highlight_method='text',
|
||||
highlight=gruvbox_dark["green"],
|
||||
),
|
||||
PopupText(
|
||||
# Hybrid Sleep systemctl hybrid-sleep
|
||||
text="",
|
||||
fontsize=80,
|
||||
pos_y=0,
|
||||
pos_x=0.32,
|
||||
width=0.2,
|
||||
height=1,
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl hybrid-sleep")},
|
||||
highlight_method='text',
|
||||
highlight=gruvbox_dark["yellow"],
|
||||
),
|
||||
PopupText(
|
||||
# Hibernate systemctl hibernate
|
||||
text="",
|
||||
fontsize=80,
|
||||
pos_y=0,
|
||||
pos_x=0.55,
|
||||
width=0.2,
|
||||
height=1,
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl hibernate")},
|
||||
highlight_method='text',
|
||||
highlight=gruvbox_dark["orange"],
|
||||
),
|
||||
PopupText(
|
||||
# Power off systemctl poweroff
|
||||
text="",
|
||||
fontsize=80,
|
||||
pos_y=0,
|
||||
pos_x=0.8,
|
||||
width=0.2,
|
||||
height=1,
|
||||
mouse_callbacks={"Button1": lazy.spawn("systemctl poweroff")},
|
||||
highlight_method='text',
|
||||
highlight=gruvbox_dark["red"],
|
||||
),
|
||||
],
|
||||
)
|
||||
layout.show(relative_to=5, relative_to_bar=True, hide_on_timeout=5)
|
||||
@@ -1,59 +0,0 @@
|
||||
from libqtile import qtile
|
||||
from libqtile.lazy import lazy
|
||||
|
||||
from res.themes.colors import gruvbox_dark
|
||||
|
||||
from qtile_extras.popup.menu import (
|
||||
PopupMenu,
|
||||
PopupMenuItem,
|
||||
PopupMenuSeparator,
|
||||
)
|
||||
|
||||
items = [
|
||||
PopupMenuItem(# Wallpaper setting
|
||||
show_icon=False,
|
||||
text=' Nitrogen Wallpaper',
|
||||
font='Open Sans',
|
||||
fontsize=16,
|
||||
can_focus=True,
|
||||
highlight_method='text',
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("nitrogen")},
|
||||
),
|
||||
PopupMenuSeparator(),
|
||||
PopupMenuItem(# Arandr
|
||||
show_icon=False,
|
||||
text=' Arandr Display',
|
||||
font='Open Sans',
|
||||
fontsize=16,
|
||||
can_focus=True,
|
||||
highlight_method='text',
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("arandr")},),
|
||||
PopupMenuSeparator(),
|
||||
PopupMenuItem(# VS-Code qtile config
|
||||
show_icon=False,
|
||||
text=' Qtile Config',
|
||||
font='Open Sans',
|
||||
fontsize=16,
|
||||
can_focus=True,
|
||||
highlight_method='text',
|
||||
foreground=gruvbox_dark["fg0"],
|
||||
highlight=gruvbox_dark["green"],
|
||||
mouse_callbacks={"Button1": lazy.spawn("code /home/cerberus/.config/")},),
|
||||
]
|
||||
|
||||
def settings(qtile):
|
||||
layout = PopupMenu.generate(
|
||||
qtile,
|
||||
pos_x=100,
|
||||
pos_y=100,
|
||||
width=225,
|
||||
opacity=0.7,
|
||||
menuitems=items,
|
||||
background=gruvbox_dark["bg0_soft"]
|
||||
)
|
||||
layout.show(relative_to=1, relative_to_bar=True, y=75, x=325)
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
# --------------------------------------------------------
|
||||
# Gruvbox Dark Theme Colors
|
||||
# --------------------------------------------------------
|
||||
gruvbox_dark = {
|
||||
"bg0_hard": "#1d2021", # Background, hard
|
||||
"bg0_soft": "#32302f", # Background, soft
|
||||
"bg0_normal": "#282828", # Background, normal
|
||||
"bg1": "#3c3836", # Secondary background
|
||||
"bg2": "#504945", # Background, darker
|
||||
"bg3": "#665c54", # Background, lighter
|
||||
"bg4": "#7c6f64", # Background, lightest
|
||||
|
||||
"fg0": "#fbf1c7", # Foreground, light
|
||||
"fg1": "#ebdbb2", # Foreground, normal
|
||||
"fg2": "#d5c4a1", # Foreground, slightly dark
|
||||
"fg3": "#bdae93", # Foreground, dark
|
||||
|
||||
"red": "#cc241d", # Red
|
||||
"orange": "#d65d0e", # Orange
|
||||
"yellow": "#d79921", # Yellow
|
||||
"green": "#98971a", # Green
|
||||
"aqua": "#689d6a", # Aqua
|
||||
"blue": "#458588", # Blue
|
||||
"purple": "#b16286" # Purple
|
||||
}
|
||||
@@ -9,21 +9,20 @@
|
||||
# --------------------------------------------------------------------
|
||||
from libqtile.config import Screen
|
||||
from libqtile import bar
|
||||
from libqtile.widget import mpd2widget
|
||||
from libqtile.lazy import lazy
|
||||
from qtile_extras import widget
|
||||
from qtile_extras.widget.groupbox2 import GroupBoxRule
|
||||
|
||||
# from plugins.notifications import Notifier
|
||||
from plugins.graphical_notifications import Notifier
|
||||
from assets.plugins.graphical_notifications import Notifier
|
||||
|
||||
from popups.powermenu import power_menu
|
||||
from popups.start_menu import start_menu
|
||||
from popups.calendar import calendar
|
||||
from popups.mpris2_layout import MPRIS2_LAYOUT
|
||||
from popups.volume_notification import VOL_POPUP
|
||||
from assets.popups.powermenu import power_menu
|
||||
from assets.popups.start_menu import start_menu
|
||||
from assets.popups.calendar import calendar
|
||||
from assets.popups.mpris2_layout import MPRIS2_LAYOUT
|
||||
from assets.popups.volume_notification import VOL_POPUP
|
||||
|
||||
from res.themes.colors import gruvbox_dark
|
||||
from colors import gruvbox_dark as THEME
|
||||
|
||||
|
||||
# --------------------------------------------------------
|
||||
@@ -32,14 +31,10 @@ from res.themes.colors import gruvbox_dark
|
||||
def get_groupbox_rules(monitor_specific=True):
|
||||
# Base rules applied to all GroupBoxes
|
||||
rules = [
|
||||
GroupBoxRule(text_colour=gruvbox_dark["bg3"]).when(
|
||||
focused=False, occupied=True
|
||||
),
|
||||
GroupBoxRule(text_colour=gruvbox_dark["aqua"]).when(
|
||||
focused=False, occupied=False
|
||||
),
|
||||
GroupBoxRule(text_colour=gruvbox_dark["fg3"]).when(focused=True),
|
||||
GroupBoxRule(text_colour=gruvbox_dark["red"]).when(
|
||||
GroupBoxRule(text_colour=THEME["bg3"]).when(focused=False, occupied=True),
|
||||
GroupBoxRule(text_colour=THEME["aqua"]).when(focused=False, occupied=False),
|
||||
GroupBoxRule(text_colour=THEME["fg3"]).when(focused=True),
|
||||
GroupBoxRule(text_colour=THEME["red"]).when(
|
||||
focused=False, occupied=True, urgent=True
|
||||
),
|
||||
GroupBoxRule(visible=False).when(focused=False, occupied=False),
|
||||
@@ -57,23 +52,35 @@ def get_groupbox_rules(monitor_specific=True):
|
||||
widget_defaults = dict(
|
||||
font="Roboto Flex",
|
||||
fontsize=20,
|
||||
foreground=gruvbox_dark["fg1"],
|
||||
foreground=THEME["fg1"],
|
||||
)
|
||||
extension_defaults = widget_defaults.copy()
|
||||
|
||||
# --------------------------------------------------------
|
||||
# Screens
|
||||
# --------------------------------------------------------
|
||||
bar.Bar
|
||||
|
||||
# All across defaults:
|
||||
|
||||
BACKGROUND = THEME["bg0_hard"]
|
||||
OPACITY = 0.7
|
||||
SIZE = 32
|
||||
MARGIN = [3, 3, 0, 3]
|
||||
# screens = [
|
||||
# Screen(top=bar.Bar([widget.Spacer()], size=SIZE)),
|
||||
# Screen(top=bar.Bar([widget.Spacer()], size=SIZE)),
|
||||
# Screen(top=bar.Bar([widget.Spacer()], size=SIZE)),
|
||||
# ]
|
||||
screens = [
|
||||
Screen(
|
||||
# Center Screen
|
||||
serial="0000000000001",
|
||||
top=bar.Bar(
|
||||
[
|
||||
widget.TextBox(
|
||||
text="",
|
||||
fontsize=24,
|
||||
foreground=gruvbox_dark["blue"],
|
||||
foreground=THEME["blue"],
|
||||
mouse_callbacks={"Button1": lazy.function(start_menu)},
|
||||
),
|
||||
widget.GroupBox2(
|
||||
@@ -116,20 +123,21 @@ screens = [
|
||||
popup_show_args={"relative_to": 8, "y": -70},
|
||||
),
|
||||
],
|
||||
background=gruvbox_dark["bg0_hard"],
|
||||
opacity=0.75,
|
||||
size=32,
|
||||
margin=[3, 3, 0, 3],
|
||||
background=BACKGROUND,
|
||||
opacity=OPACITY,
|
||||
size=SIZE,
|
||||
margin=MARGIN,
|
||||
),
|
||||
),
|
||||
Screen(
|
||||
serial="25175B003924",
|
||||
# Right Screen
|
||||
top=bar.Bar(
|
||||
[
|
||||
widget.TextBox(
|
||||
text="",
|
||||
fontsize=24,
|
||||
foreground=gruvbox_dark["blue"],
|
||||
foreground=THEME["blue"],
|
||||
mouse_callbacks={"Button1": lazy.function(start_menu)},
|
||||
),
|
||||
widget.GroupBox2(
|
||||
@@ -142,7 +150,7 @@ screens = [
|
||||
hide_unused=True,
|
||||
rules=get_groupbox_rules(monitor_specific=False),
|
||||
),
|
||||
widget.Spacer(status_format="{play_status} {artist}/{title}"),
|
||||
widget.Spacer(),
|
||||
widget.WidgetBox(
|
||||
fontsize=22,
|
||||
text_closed="",
|
||||
@@ -168,20 +176,21 @@ screens = [
|
||||
mouse_callbacks={"Button1": lazy.function(power_menu)},
|
||||
),
|
||||
],
|
||||
background=gruvbox_dark["bg0_hard"],
|
||||
opacity=0.75,
|
||||
size=32,
|
||||
margin=[3, 3, 0, 3],
|
||||
background=BACKGROUND,
|
||||
opacity=OPACITY,
|
||||
size=SIZE,
|
||||
margin=MARGIN,
|
||||
),
|
||||
),
|
||||
Screen(
|
||||
# Left Screen
|
||||
serial="25175B004131",
|
||||
top=bar.Bar(
|
||||
[
|
||||
widget.TextBox(
|
||||
text="",
|
||||
fontsize=24,
|
||||
foreground=gruvbox_dark["blue"],
|
||||
foreground=THEME["blue"],
|
||||
mouse_callbacks={"Button1": lazy.function(start_menu)},
|
||||
),
|
||||
widget.GroupBox2(
|
||||
@@ -206,7 +215,7 @@ screens = [
|
||||
width=350,
|
||||
scroll=True,
|
||||
scroll_clear=True,
|
||||
foreground=gruvbox_dark["fg1"],
|
||||
foreground=THEME["fg1"],
|
||||
format="{xesam:title} - {xesam:artist}",
|
||||
paused_text="{track} ",
|
||||
popup_layout=MPRIS2_LAYOUT,
|
||||
@@ -223,10 +232,10 @@ screens = [
|
||||
mouse_callbacks={"Button1": lazy.function(power_menu)},
|
||||
),
|
||||
],
|
||||
background=gruvbox_dark["bg0_hard"],
|
||||
opacity=0.75,
|
||||
size=32,
|
||||
margin=[3, 3, 0, 3],
|
||||
background=BACKGROUND,
|
||||
opacity=OPACITY,
|
||||
size=SIZE,
|
||||
margin=MARGIN,
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -237,11 +246,11 @@ notifier = Notifier(
|
||||
height=80,
|
||||
format="<b>{summary}</b>\n{app_name}\n{body}",
|
||||
# file_name='/home/cerberus/.config/qtile/normal.png', # Not working
|
||||
foreground=gruvbox_dark["fg1"],
|
||||
foreground=THEME["fg1"],
|
||||
background=(
|
||||
gruvbox_dark["bg0_hard"],
|
||||
gruvbox_dark["bg0_hard"],
|
||||
gruvbox_dark["orange"],
|
||||
THEME["bg0_hard"],
|
||||
THEME["bg0_hard"],
|
||||
THEME["orange"],
|
||||
),
|
||||
horizontal_padding=10,
|
||||
vertical_padding=10,
|
||||