2023-03-15 11:22:16 -04:00
|
|
|
r'''
|
|
|
|
_ _ _ _
|
|
|
|
_ __ ___ ___| |__ __ _ _ __ __ _| |_(_) | ___
|
|
|
|
| '__/ _ \/ __| '_ \ / _` | '__|____ / _` | __| | |/ _ \
|
|
|
|
| | | (_) \__ \ | | | (_| | | |_____| (_| | |_| | | __/
|
|
|
|
|_| \___/|___/_| |_|\__,_|_| \__, |\__|_|_|\___|
|
|
|
|
|_|
|
|
|
|
'''
|
|
|
|
from subprocess import run, CalledProcessError
|
2022-12-11 11:07:30 -05:00
|
|
|
from libqtile import bar, layout, widget, extension
|
2023-02-08 11:16:16 -05:00
|
|
|
from libqtile.config import Click, Drag, Group, Key, KeyChord, Match, Screen, ScratchPad, DropDown
|
|
|
|
from libqtile.scripts.main import VERSION
|
2022-12-11 11:07:30 -05:00
|
|
|
from libqtile.lazy import lazy
|
|
|
|
|
2023-02-08 11:16:16 -05:00
|
|
|
mod = 'mod4'
|
|
|
|
terminal = 'alacritty'
|
|
|
|
opaque_config = '--config-file /home/roland/.config/alacritty/alacritty-opaque.yml'
|
|
|
|
terminal_opaque = f'alacritty {opaque_config}'
|
2023-06-24 11:09:28 -04:00
|
|
|
qtile_config = f'alacritty {opaque_config} -e nvim /home/roland/.config/qtile/config.py'
|
2023-02-08 11:16:16 -05:00
|
|
|
ipython = f'alacritty {opaque_config} -e ipython'
|
|
|
|
python = f'alacritty {opaque_config} -e python'
|
|
|
|
vpn_vta = 'alacritty -e /home/roland/.local/bin/vpn'
|
2023-03-15 11:22:16 -04:00
|
|
|
bjendal = 'alacritty -e /home/roland/.local/bin/bjendal'
|
2023-04-03 12:17:15 -04:00
|
|
|
lumar = 'alacritty -e /home/roland/.local/bin/lumar'
|
2023-06-29 14:14:27 -04:00
|
|
|
set_audio_sink = '/home/roland/.local/bin/set_audio_sink'
|
2023-04-03 23:36:56 -04:00
|
|
|
cmatrix = 'alacritty -e cmatrix'
|
2023-02-18 13:04:10 -05:00
|
|
|
rofi = 'rofi -combi-modi window,drun,ssh -theme nord -font "hack 12" -show drun -icon-theme "Papirus" -show-icons'
|
2023-02-08 11:16:16 -05:00
|
|
|
qtile_dir = '/home/roland/.config/qtile/'
|
2023-03-04 20:49:27 -05:00
|
|
|
wallpaper_dir = '/home/roland/.config/qtile/wallpaper/'
|
2023-02-20 10:23:43 -05:00
|
|
|
hotkeys = '/home/roland/.config/qtile/dhk'
|
2023-02-08 11:16:16 -05:00
|
|
|
nord = {
|
|
|
|
'nord0':'#2E3440',
|
|
|
|
'nord1':'#3B4252',
|
|
|
|
'nord2':'#434C5E',
|
|
|
|
'nord3':'#4C566A',
|
|
|
|
'nord4':'#D8DEE9',
|
|
|
|
'nord5':'#E5E9F0',
|
|
|
|
'nord6':'#ECEFF4',
|
|
|
|
'nord7':'#8FBCBB',
|
|
|
|
'nord8':'#88C0D0',
|
|
|
|
'nord9':'#81A1C1',
|
|
|
|
'nord10':'#5E81AC',
|
|
|
|
'nord11':'#BF616A',
|
|
|
|
'nord12':'#D08770',
|
|
|
|
'nord13':'#EBCB8B',
|
|
|
|
'nord14':'#A3BE8C',
|
|
|
|
'nord15':'#B48EAD',
|
|
|
|
}
|
2023-02-11 18:11:34 -05:00
|
|
|
|
2023-03-02 22:05:15 -05:00
|
|
|
|
|
|
|
def parse_task_text(text):
|
2023-03-15 11:22:16 -04:00
|
|
|
'''
|
2023-03-02 22:05:15 -05:00
|
|
|
Removes unwanted text from a given task string.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
text (str): The text to be cleaned.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
str: The cleaned text.
|
2023-03-15 11:22:16 -04:00
|
|
|
'''
|
|
|
|
text = text.replace(' \u2014 Mozilla Firefox', '')
|
|
|
|
text = text.replace(' - qutebrowser', '')
|
|
|
|
text = text.replace(' - Discord', '')
|
2023-04-20 09:04:44 -04:00
|
|
|
text = text.replace(' - Chromium', '')
|
2023-06-07 16:06:11 -04:00
|
|
|
text = text.replace(' - Obsidian v1.3.5', '')
|
2023-03-02 22:05:15 -05:00
|
|
|
return text
|
|
|
|
|
|
|
|
|
|
|
|
def get_wallpaper(screen_number):
|
2023-03-15 11:22:16 -04:00
|
|
|
'''
|
2023-03-02 22:05:15 -05:00
|
|
|
Returns the wallpaper path based on the size of the screen.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
screen_number (int): Index of the screen to get the wallpaper for.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
str: The wallpaper path for the specified screen size.
|
|
|
|
|
|
|
|
Raises:
|
|
|
|
IndexError: If the specified screen number is out of bounds.
|
2023-03-15 11:22:16 -04:00
|
|
|
'''
|
|
|
|
try:
|
|
|
|
screens_ = run(
|
2023-03-02 22:05:15 -05:00
|
|
|
["xrandr | grep '*' | awk '{ print $1 }'"],
|
|
|
|
shell=True,
|
|
|
|
capture_output=True,
|
2023-03-15 11:22:16 -04:00
|
|
|
encoding='utf-8',
|
|
|
|
check=True,
|
|
|
|
)
|
|
|
|
except CalledProcessError:
|
|
|
|
screens_ = '1920x1080'
|
|
|
|
|
2023-03-02 22:05:15 -05:00
|
|
|
try:
|
2023-03-15 11:22:16 -04:00
|
|
|
size = screens_.stdout.split()[screen_number]
|
2023-03-02 22:05:15 -05:00
|
|
|
except IndexError:
|
2023-03-15 11:22:16 -04:00
|
|
|
size = screens_.stdout.split()[0]
|
2023-03-02 22:05:15 -05:00
|
|
|
|
|
|
|
match size:
|
2023-03-15 11:22:16 -04:00
|
|
|
case '3440x1440':
|
2023-03-19 00:44:55 -04:00
|
|
|
wallpaper = f'{wallpaper_dir}p3_3440x1440.png'
|
2023-03-15 11:22:16 -04:00
|
|
|
case '1920x1080':
|
2023-05-26 10:34:14 -04:00
|
|
|
wallpaper = f'{wallpaper_dir}p3_1920x1080.png'
|
2023-03-15 11:22:16 -04:00
|
|
|
case '3840x1080':
|
|
|
|
wallpaper = f'{wallpaper_dir}gunter_throne.png'
|
2023-04-14 12:48:43 -04:00
|
|
|
case '5120x1440':
|
2023-05-26 10:34:14 -04:00
|
|
|
wallpaper = f'{wallpaper_dir}p5_5120x1440.png'
|
2023-03-15 11:22:16 -04:00
|
|
|
case '5760x1080':
|
|
|
|
wallpaper = f'{wallpaper_dir}gunter_throne.png'
|
|
|
|
case '1760x1262':
|
|
|
|
wallpaper = f'{wallpaper_dir}gunter_throne_1760x1262.png'
|
2023-03-02 22:05:15 -05:00
|
|
|
case _:
|
2023-03-15 11:22:16 -04:00
|
|
|
wallpaper = f'{wallpaper_dir}not_supported.png'
|
2023-03-02 22:05:15 -05:00
|
|
|
|
|
|
|
return wallpaper
|
|
|
|
|
2023-03-15 11:22:16 -04:00
|
|
|
|
2023-02-08 11:16:16 -05:00
|
|
|
# Keys
|
2022-12-11 11:07:30 -05:00
|
|
|
keys = [
|
|
|
|
# A list of available commands that can be bound to keys can be found
|
|
|
|
# at https://docs.qtile.org/en/latest/manual/config/lazy.html
|
|
|
|
# Switch between windows
|
2023-03-15 11:22:16 -04:00
|
|
|
Key([mod], 'h', lazy.layout.left(), desc='Move focus to left'),
|
|
|
|
Key([mod], 'l', lazy.layout.right(), desc='Move focus to right'),
|
|
|
|
Key([mod], 'j', lazy.layout.down(), desc='Move focus down'),
|
|
|
|
Key([mod], 'k', lazy.layout.up(), desc='Move focus up'),
|
2023-04-27 17:08:09 -04:00
|
|
|
Key([mod], 'space', lazy.layout.next(), desc='Move window focus to next window'),
|
|
|
|
Key([mod, 'shift'], 'space', lazy.layout.previous(), desc='Move window focus to previous window'),
|
2022-12-11 11:07:30 -05:00
|
|
|
# Move windows between left/right columns or move up/down in current stack.
|
|
|
|
# Moving out of range in Columns layout will create new column.
|
2023-03-15 11:22:16 -04:00
|
|
|
Key([mod, 'shift'], 'h', lazy.layout.shuffle_left(), desc='Move window to the left'),
|
|
|
|
Key([mod, 'shift'], 'l', lazy.layout.shuffle_right(), desc='Move window to the right'),
|
|
|
|
Key([mod, 'shift'], 'j', lazy.layout.shuffle_down(), desc='Move window down'),
|
|
|
|
Key([mod, 'shift'], 'k', lazy.layout.shuffle_up(), desc='Move window up'),
|
2023-04-27 17:08:09 -04:00
|
|
|
Key([mod, 'shift'], 'i', lazy.layout.swap_column_left(), desc='Swap window left'),
|
|
|
|
Key([mod, 'shift'], 'u', lazy.layout.swap_column_right(), desc='Swap window right'),
|
2022-12-11 11:07:30 -05:00
|
|
|
# Grow windows. If current window is on the edge of screen and direction
|
|
|
|
# will be to screen edge - window would shrink.
|
2023-03-15 11:22:16 -04:00
|
|
|
Key([mod, 'control'], 'h', lazy.layout.grow_left(), desc='Grow window to the left'),
|
|
|
|
Key([mod, 'control'], 'l', lazy.layout.grow_right(), desc='Grow window to the right'),
|
|
|
|
Key([mod, 'control'], 'j', lazy.layout.grow_down(), desc='Grow window down'),
|
|
|
|
Key([mod, 'control'], 'k', lazy.layout.grow_up(), desc='Grow window up'),
|
|
|
|
Key([mod], 's', lazy.layout.normalize(), desc='Reset all window sizes'),
|
|
|
|
Key([mod], "a", lazy.run_extension(extension.WindowList()), desc="Launch window list"),
|
2022-12-11 11:07:30 -05:00
|
|
|
# Toggle between split and unsplit sides of stack.
|
|
|
|
# Split = all windows displayed
|
|
|
|
# Unsplit = 1 window displayed, like Max layout, but still with
|
|
|
|
# multiple stack panes
|
2023-02-08 11:16:16 -05:00
|
|
|
#Key(
|
|
|
|
#[mod, "shift"],
|
|
|
|
#"Return",
|
|
|
|
#lazy.layout.toggle_split(),
|
|
|
|
#desc="Toggle between split and unsplit sides of stack",
|
|
|
|
#),
|
2022-12-11 11:07:30 -05:00
|
|
|
Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"),
|
2023-03-01 23:48:39 -05:00
|
|
|
|
2022-12-11 11:07:30 -05:00
|
|
|
# Toggle between different layouts as defined below
|
|
|
|
Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
|
|
|
|
Key([mod], "w", lazy.window.kill(), desc="Kill focused window"),
|
|
|
|
Key([mod, "control"], "r", lazy.reload_config(), desc="Reload the config"),
|
2023-06-29 14:14:27 -04:00
|
|
|
Key([mod, "control"], "s", lazy.spawn(set_audio_sink), desc="Reset Audio Sink"),
|
2022-12-11 11:07:30 -05:00
|
|
|
Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"),
|
2023-06-29 00:13:36 -04:00
|
|
|
Key([mod], "p", lazy.spawn('xset s activate'), desc="Lock Session"),
|
2023-02-08 11:16:16 -05:00
|
|
|
Key([mod], "r", lazy.spawn(rofi), desc="Launch rofi"),
|
2023-04-27 17:08:09 -04:00
|
|
|
Key([mod, "shift"], "y", lazy.spawn(hotkeys), desc="Show Hotkeys"),
|
2023-03-01 23:54:07 -05:00
|
|
|
Key([mod], "n", lazy.screen.next_group(skip_empty=True), desc="Switch to next group"),
|
|
|
|
Key([mod, "shift"], "n", lazy.screen.prev_group(skip_empty=True), desc="Switch to previous group"),
|
2023-03-01 23:48:39 -05:00
|
|
|
|
2023-02-08 11:16:16 -05:00
|
|
|
# LAUNCH chord
|
|
|
|
KeyChord([mod], "e", [
|
|
|
|
Key([], "e", lazy.group['scratchpad'].dropdown_toggle('term'), desc="Launch Scratchpad Terminal"),
|
|
|
|
Key([], "i", lazy.group['scratchpad'].dropdown_toggle('ipython'), desc="Launch IPython"),
|
|
|
|
Key([], "p", lazy.group['scratchpad'].dropdown_toggle('python'), desc="Launch python"),
|
|
|
|
Key([], "q", lazy.group['scratchpad'].dropdown_toggle('qtile-config'), desc="Launch qtile config"),
|
|
|
|
Key([], "v", lazy.group['scratchpad'].dropdown_toggle('vpn'), desc="Launch vpn"),
|
2023-03-15 11:22:16 -04:00
|
|
|
Key([], "b", lazy.group['scratchpad'].dropdown_toggle('bjendal'), desc="Launch xrdp: bjendal"),
|
2023-04-03 12:17:15 -04:00
|
|
|
Key([], "l", lazy.group['scratchpad'].dropdown_toggle('lumar'), desc="Launch xrdp: lumar"),
|
2023-02-08 11:16:16 -05:00
|
|
|
Key([], "s", lazy.spawn('passmenu'), desc="Launch pass"),
|
|
|
|
Key([], "r", lazy.run_extension(extension.DmenuRun(dmenu_prompt = "\uf101")), desc="Launch dmenu"),
|
2023-04-03 23:36:56 -04:00
|
|
|
Key([], "m", lazy.spawn(cmatrix), desc="Launch matrix"),
|
2023-02-08 11:16:16 -05:00
|
|
|
],
|
|
|
|
#mode=True,
|
|
|
|
name="launch",
|
|
|
|
),
|
|
|
|
# TOGGLE chord
|
|
|
|
KeyChord([mod], "d", [
|
|
|
|
Key([], "s", lazy.hide_show_bar(), desc="Toggle show bar"),
|
2023-03-15 11:22:16 -04:00
|
|
|
Key([], "f", lazy.window.toggle_floating(), desc="Toggle floating mode"),
|
|
|
|
Key([], "z", lazy.window.toggle_fullscreen(), desc="Toggle fullscreen mode"),
|
2023-03-21 22:36:35 -04:00
|
|
|
Key([], "e", lazy.widget['media_box_1'].toggle(),
|
|
|
|
lazy.widget['media_box_2'].toggle(),
|
|
|
|
lazy.widget['media_box_3'].toggle(), desc="Toggle Media Boxes"),
|
|
|
|
Key([], "t", lazy.widget['widget_box_1'].toggle(),
|
|
|
|
lazy.widget['widget_box_2'].toggle(),
|
|
|
|
lazy.widget['widget_box_3'].toggle(), desc="Toggle Widget Boxes"),
|
|
|
|
Key([], "1", lazy.widget['widget_box_1'].toggle(), desc="Toggle Widget Box 1"),
|
|
|
|
Key([], "2", lazy.widget['widget_box_2'].toggle(), desc="Toggle Widget Box 2"),
|
|
|
|
Key([], "3", lazy.widget['widget_box_3'].toggle(), desc="Toggle Widget Box 3"),
|
2023-02-08 11:16:16 -05:00
|
|
|
],
|
|
|
|
name="toggle",
|
|
|
|
),
|
|
|
|
# MEDIA chord
|
2023-03-15 11:22:16 -04:00
|
|
|
KeyChord([mod], "v", [
|
2023-03-21 22:36:35 -04:00
|
|
|
Key([], "v", lazy.widget['spotifyd'].play_pause(), desc="Play - Pause"),
|
|
|
|
Key([], "h", lazy.widget['spotifyd'].previous(), desc="Previous"),
|
|
|
|
Key([], "l", lazy.widget['spotifyd'].next(), desc="Next"),
|
2023-02-08 11:16:16 -05:00
|
|
|
],
|
|
|
|
name="media",
|
|
|
|
),
|
2023-03-21 22:36:35 -04:00
|
|
|
# FLAMESHOT chord
|
|
|
|
KeyChord([mod], "f", [
|
|
|
|
Key([], "f", lazy.spawn('flameshot'), desc="Launch flameshot"),
|
|
|
|
Key([], "s", lazy.spawn('flameshot gui'), desc="Launch gui with option to select region"),
|
|
|
|
Key([], "a", lazy.spawn('flameshot full'), desc="Screenshot all monitors"),
|
|
|
|
Key([], "c", lazy.spawn('flameshot full --clipboard'), desc="Save capture to clipboard"),
|
|
|
|
Key([], "l", lazy.spawn('flameshot launcher'), desc="Launch launcher"),
|
|
|
|
],
|
|
|
|
name='flameshot',
|
|
|
|
),
|
2022-12-11 11:07:30 -05:00
|
|
|
]
|
|
|
|
|
2023-02-08 11:16:16 -05:00
|
|
|
# Groups
|
2023-07-14 09:45:00 -04:00
|
|
|
groups = [Group(i) for i in '12345']
|
2023-03-15 11:22:16 -04:00
|
|
|
|
|
|
|
discord_match = Match(wm_class='discord')
|
|
|
|
obsidian_match = Match(wm_class='obsidian')
|
|
|
|
xrdp_match = Match(wm_class='xfreerdp')
|
|
|
|
vm_match = Match(wm_class='VirtualBox Machine')
|
2023-07-14 09:45:00 -04:00
|
|
|
groups.extend([Group('6', label='\uf6cc'),
|
|
|
|
Group('7', label='\ue007'),
|
|
|
|
Group('8', matches=[obsidian_match], label='\uf42e'),
|
2023-03-15 11:22:16 -04:00
|
|
|
Group('9', matches=[discord_match], label='\uf392'),
|
|
|
|
Group('0', matches=[xrdp_match], label='\uf512', init=False, persist=False),
|
|
|
|
Group('o', matches=[vm_match], label='\uf511', init=False, persist=False)])
|
2022-12-11 11:07:30 -05:00
|
|
|
|
|
|
|
for i in groups:
|
2023-03-15 11:22:16 -04:00
|
|
|
keys.extend(
|
|
|
|
[
|
|
|
|
# mod1 + letter of group = switch to group
|
|
|
|
# toggle=True switches current group to last group
|
|
|
|
Key(
|
|
|
|
[mod],
|
|
|
|
i.name,
|
|
|
|
lazy.group[i.name].toscreen(toggle=True),
|
|
|
|
desc=f'Switch to group {i.name}',
|
|
|
|
),
|
|
|
|
# mod1 + shift + letter of group = move focused window to group
|
|
|
|
# switch_group=False stays with current group
|
|
|
|
Key(
|
|
|
|
[mod, 'shift'],
|
|
|
|
i.name,
|
|
|
|
lazy.window.togroup(i.name, switch_group=False),
|
|
|
|
desc=f'Move focused window to group {i.name}',
|
|
|
|
),
|
|
|
|
]
|
|
|
|
)
|
2022-12-11 11:07:30 -05:00
|
|
|
|
2023-02-08 11:16:16 -05:00
|
|
|
groups.extend(
|
2023-03-15 11:22:16 -04:00
|
|
|
[ScratchPad('scratchpad', [
|
2023-02-08 11:16:16 -05:00
|
|
|
DropDown(
|
2023-03-15 11:22:16 -04:00
|
|
|
'term',
|
2023-02-08 11:16:16 -05:00
|
|
|
terminal_opaque,
|
2023-04-03 12:17:15 -04:00
|
|
|
on_focus_lost_hide=False,
|
|
|
|
opacity=.9,
|
|
|
|
height=0.8,
|
|
|
|
y=0.1,
|
2023-02-08 11:16:16 -05:00
|
|
|
),
|
|
|
|
DropDown(
|
2023-03-15 11:22:16 -04:00
|
|
|
'ipython',
|
2023-02-08 11:16:16 -05:00
|
|
|
ipython,
|
2023-04-03 12:17:15 -04:00
|
|
|
on_focus_lost_hide=False,
|
|
|
|
opacity=.9,
|
|
|
|
height=0.8,
|
|
|
|
y=0.1,
|
2023-02-08 11:16:16 -05:00
|
|
|
),
|
|
|
|
DropDown(
|
2023-03-15 11:22:16 -04:00
|
|
|
'python',
|
2023-02-08 11:16:16 -05:00
|
|
|
python,
|
2023-04-03 12:17:15 -04:00
|
|
|
on_focus_lost_hide=False,
|
|
|
|
opacity=.9,
|
|
|
|
height=0.8,
|
|
|
|
y=0.1,
|
2023-02-08 11:16:16 -05:00
|
|
|
),
|
|
|
|
DropDown(
|
2023-03-15 11:22:16 -04:00
|
|
|
'qtile-config',
|
2023-02-08 11:16:16 -05:00
|
|
|
qtile_config,
|
2023-04-03 12:17:15 -04:00
|
|
|
on_focus_lost_hide=False,
|
|
|
|
opacity=1.0,
|
|
|
|
height=0.9,
|
2023-04-27 17:08:09 -04:00
|
|
|
width=0.5,
|
2023-04-03 12:17:15 -04:00
|
|
|
y=0.05,
|
2023-04-27 17:08:09 -04:00
|
|
|
x=0.25,
|
2023-02-08 11:16:16 -05:00
|
|
|
),
|
|
|
|
DropDown(
|
2023-03-15 11:22:16 -04:00
|
|
|
'vpn',
|
2023-02-08 11:16:16 -05:00
|
|
|
vpn_vta,
|
2023-04-03 12:17:15 -04:00
|
|
|
on_focus_lost_hide=True,
|
|
|
|
opacity=1.0,
|
|
|
|
height=0.5,
|
|
|
|
y=0.1,
|
2023-02-08 11:16:16 -05:00
|
|
|
),
|
|
|
|
DropDown(
|
2023-03-15 11:22:16 -04:00
|
|
|
'bjendal',
|
|
|
|
bjendal,
|
2023-04-03 12:17:15 -04:00
|
|
|
on_focus_lost_hide=True,
|
|
|
|
opacity=1.0,
|
|
|
|
height=0.5,
|
|
|
|
y=0.1,
|
|
|
|
),
|
|
|
|
DropDown(
|
|
|
|
'lumar',
|
|
|
|
lumar,
|
|
|
|
on_focus_lost_hide=True,
|
|
|
|
opacity=1.0,
|
|
|
|
height=0.5,
|
|
|
|
y=0.1,
|
2023-02-08 11:16:16 -05:00
|
|
|
),
|
|
|
|
])
|
|
|
|
])
|
|
|
|
|
2022-12-11 11:07:30 -05:00
|
|
|
layouts = [
|
2023-04-20 09:04:44 -04:00
|
|
|
layout.MonadThreeCol(
|
|
|
|
main_centered=True,
|
|
|
|
new_client_position='after_current',
|
2023-02-08 11:16:16 -05:00
|
|
|
border_focus=nord['nord11'],
|
|
|
|
border_normal=nord['nord10'],
|
|
|
|
border_width=4,
|
2022-12-11 11:07:30 -05:00
|
|
|
margin=4
|
2023-04-20 09:04:44 -04:00
|
|
|
),
|
2023-04-27 17:08:09 -04:00
|
|
|
layout.Columns(
|
|
|
|
num_columns=5,
|
|
|
|
border_focus_stack=nord['nord11'],
|
2023-02-08 11:16:16 -05:00
|
|
|
border_focus=nord['nord11'],
|
2023-04-27 17:08:09 -04:00
|
|
|
border_normal_stack=nord['nord10'],
|
2023-02-08 11:16:16 -05:00
|
|
|
border_normal=nord['nord10'],
|
2023-04-27 17:08:09 -04:00
|
|
|
border_on_single=True,
|
2023-02-08 11:16:16 -05:00
|
|
|
border_width=4,
|
2023-04-27 17:08:09 -04:00
|
|
|
margin=[4,2,4,2],
|
|
|
|
margin_on_single=[4,2,4,2],
|
2023-04-20 09:04:44 -04:00
|
|
|
),
|
2023-07-14 09:45:00 -04:00
|
|
|
layout.Max(),
|
2023-04-27 17:08:09 -04:00
|
|
|
# layout.MonadTall(
|
|
|
|
# border_focus=nord['nord11'],
|
|
|
|
# border_normal=nord['nord10'],
|
|
|
|
# border_width=4,
|
|
|
|
# margin=4
|
|
|
|
# ),
|
2022-12-11 11:07:30 -05:00
|
|
|
]
|
|
|
|
|
2023-03-15 11:22:16 -04:00
|
|
|
widget_defaults = {
|
|
|
|
'font':"FontAwesome",
|
|
|
|
'fontsize':18,
|
|
|
|
'padding':2,
|
|
|
|
}
|
2022-12-11 11:07:30 -05:00
|
|
|
extension_defaults = widget_defaults.copy()
|
|
|
|
|
2023-02-08 11:16:16 -05:00
|
|
|
# Mirrored widgets
|
|
|
|
chord = widget.Chord(
|
|
|
|
chords_colors={
|
2023-03-15 11:22:16 -04:00
|
|
|
'launch': (nord['nord13'], nord['nord0']),
|
|
|
|
'flameshot': (nord['nord15'], nord['nord0']),
|
|
|
|
'toggle': (nord['nord11'], nord['nord0']),
|
|
|
|
'boxes': (nord['nord12'], nord['nord0']),
|
|
|
|
'media': (nord['nord14'], nord['nord0']),
|
2023-02-08 11:16:16 -05:00
|
|
|
},
|
|
|
|
name_transform=lambda name: name.upper())
|
|
|
|
|
|
|
|
clock = widget.Clock(
|
|
|
|
background=nord['nord11'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
padding=4,
|
2023-03-15 11:22:16 -04:00
|
|
|
format='%Y-%m-%d %a %H:%M')
|
2023-02-08 11:16:16 -05:00
|
|
|
|
2022-12-11 11:07:30 -05:00
|
|
|
screens = [
|
2023-02-08 11:16:16 -05:00
|
|
|
Screen( #Screen1
|
2022-12-11 11:07:30 -05:00
|
|
|
bottom=bar.Bar(
|
|
|
|
[
|
2023-02-08 11:16:16 -05:00
|
|
|
widget.CurrentLayoutIcon(
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
2022-12-11 11:07:30 -05:00
|
|
|
widget.GroupBox(
|
2023-03-15 11:22:16 -04:00
|
|
|
font='Font Awesome 6 Brands',
|
2023-02-08 11:16:16 -05:00
|
|
|
background=nord['nord10'],
|
2022-12-11 11:07:30 -05:00
|
|
|
disable_drag=True,
|
2023-02-08 11:16:16 -05:00
|
|
|
block_highlight_text_color=nord['nord8'],
|
|
|
|
this_screen_border=nord['nord13'],
|
|
|
|
this_current_screen_border=nord['nord11'],
|
|
|
|
padding=4,
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=4,
|
|
|
|
),
|
|
|
|
widget.WindowCount(
|
2023-03-15 11:22:16 -04:00
|
|
|
font='Font Awesome 6 Brands',
|
2023-02-08 11:16:16 -05:00
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
|
|
|
widget.TaskList(
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
border=nord['nord11'],
|
|
|
|
highlight_method='block',
|
|
|
|
markup_focused='<span foreground="#2E3440">{}</span>',
|
|
|
|
parse_text=parse_task_text,
|
|
|
|
margin=2,
|
|
|
|
padding=2,
|
|
|
|
),
|
|
|
|
chord,
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=4,
|
|
|
|
),
|
2022-12-11 11:07:30 -05:00
|
|
|
widget.Systray(
|
2023-02-08 11:16:16 -05:00
|
|
|
background=nord['nord0'],
|
|
|
|
icon_size=26,
|
|
|
|
padding=4,
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=6,
|
|
|
|
),
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='media_box_1',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord13'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
2023-03-11 00:29:43 -05:00
|
|
|
widget.Mpris2(
|
2023-02-08 11:16:16 -05:00
|
|
|
name='spotifyd',
|
|
|
|
#objname=media_player,
|
2023-03-15 11:22:16 -04:00
|
|
|
format = '{xesam:title} - ({xesam:artist})',
|
|
|
|
playing_text = ' 契 {track}',
|
|
|
|
paused_text = ' {track}',
|
2023-02-08 11:16:16 -05:00
|
|
|
width = 400,
|
|
|
|
scroll_delay = 5,
|
|
|
|
scroll_interval = 0.25,
|
|
|
|
scroll_step = 15,
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
),
|
2023-03-15 11:22:16 -04:00
|
|
|
widget.PulseVolume(
|
|
|
|
font='FontAwesome',
|
2023-02-08 11:16:16 -05:00
|
|
|
fmt='\uf028 {}',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=4,
|
|
|
|
),
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='widget_box_1',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord13'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
|
|
|
widget.OpenWeather(
|
|
|
|
background=nord['nord15'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
cityid='4198514',
|
|
|
|
app_key='*****',
|
|
|
|
metric=False),
|
|
|
|
widget.Net(
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
interface='net0'),
|
|
|
|
widget.Memory(
|
|
|
|
background=nord['nord14'],
|
|
|
|
foreground=nord['nord0']),
|
|
|
|
widget.CPU(
|
|
|
|
background=nord['nord13'],
|
|
|
|
foreground=nord['nord0']),
|
|
|
|
widget.ThermalSensor(
|
|
|
|
background=nord['nord13'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
tag_sensor='Package id 0',
|
|
|
|
format='{temp:.0f}{unit}'),
|
|
|
|
widget.DF(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
warn_space=40,
|
|
|
|
visible_on_warn=True),
|
|
|
|
widget.DF(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
partition='/home',
|
|
|
|
warn_space=40,
|
|
|
|
visible_on_warn=True),
|
|
|
|
widget.ThermalSensor(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
tag_sensor='Composite',
|
|
|
|
format='NVME: {temp:.0f}{unit}'),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=8
|
|
|
|
),
|
|
|
|
]
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=6
|
|
|
|
),
|
|
|
|
clock,
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='shutdown',
|
|
|
|
background=nord['nord11'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
|
|
|
widget.QuickExit(
|
|
|
|
background=nord['nord11'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
fontsize=24,
|
|
|
|
default_text='\uf1e2'
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord11'],
|
|
|
|
length=4
|
|
|
|
),
|
|
|
|
],
|
|
|
|
size=32,
|
|
|
|
border_width=[0, 0, 0, 0],
|
|
|
|
border_color=[nord['nord10'], nord['nord10'], nord['nord10'], nord['nord10']],
|
|
|
|
margin=4,
|
|
|
|
),
|
2023-02-12 13:12:48 -05:00
|
|
|
wallpaper = get_wallpaper(0),
|
2023-02-08 11:16:16 -05:00
|
|
|
wallpaper_mode='fill',
|
|
|
|
),
|
|
|
|
Screen( # Screen2
|
|
|
|
bottom=bar.Bar([
|
|
|
|
widget.CurrentLayoutIcon(
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
|
|
|
widget.GroupBox(
|
2023-03-15 11:22:16 -04:00
|
|
|
font='Font Awesome 6 Brands',
|
2023-02-08 11:16:16 -05:00
|
|
|
background=nord['nord10'],
|
|
|
|
disable_drag=True,
|
|
|
|
block_highlight_text_color=nord['nord8'],
|
|
|
|
this_screen_border=nord['nord13'],
|
|
|
|
this_current_screen_border=nord['nord11'],
|
|
|
|
padding=4,
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=4,
|
|
|
|
),
|
|
|
|
widget.WindowCount(
|
2023-03-15 11:22:16 -04:00
|
|
|
font='Font Awesome 6 Brands',
|
2023-02-08 11:16:16 -05:00
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
|
|
|
widget.TaskList(
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
border=nord['nord11'],
|
|
|
|
highlight_method='block',
|
|
|
|
markup_focused='<span foreground="#2E3440">{}</span>',
|
|
|
|
parse_text=parse_task_text,
|
|
|
|
margin=2,
|
|
|
|
padding=2,
|
|
|
|
),
|
|
|
|
chord,
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=6,
|
|
|
|
),
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='media_box_2',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord13'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
|
|
|
widget.Mpris2(
|
|
|
|
name='spotifyd',
|
|
|
|
#objname=media_player,
|
2023-03-15 11:22:16 -04:00
|
|
|
format = '{xesam:title} - ({xesam:artist})',
|
|
|
|
playing_text = ' 契 {track}',
|
|
|
|
paused_text = ' {track}',
|
2023-02-08 11:16:16 -05:00
|
|
|
width = 400,
|
|
|
|
scroll_delay = 5,
|
|
|
|
scroll_interval = 0.25,
|
|
|
|
scroll_step = 15,
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
),
|
2023-03-15 11:22:16 -04:00
|
|
|
widget.PulseVolume(
|
|
|
|
font='FontAwesome',
|
2023-02-08 11:16:16 -05:00
|
|
|
fmt='\uf028 {}',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=4,
|
|
|
|
),
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='widget_box_2',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord13'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
|
|
|
widget.OpenWeather(
|
|
|
|
background=nord['nord15'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
cityid='4198514',
|
|
|
|
app_key='*****',
|
|
|
|
metric=False),
|
|
|
|
widget.Net(
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
interface='net0'),
|
|
|
|
widget.Memory(
|
|
|
|
background=nord['nord14'],
|
|
|
|
foreground=nord['nord0']),
|
|
|
|
widget.CPU(
|
|
|
|
background=nord['nord13'],
|
|
|
|
foreground=nord['nord0']),
|
|
|
|
widget.ThermalSensor(
|
|
|
|
background=nord['nord13'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
tag_sensor='Package id 0',
|
|
|
|
format='{temp:.0f}{unit}'),
|
|
|
|
widget.DF(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
warn_space=40,
|
|
|
|
visible_on_warn=True),
|
|
|
|
widget.DF(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
partition='/home',
|
|
|
|
warn_space=40,
|
|
|
|
visible_on_warn=True),
|
|
|
|
widget.ThermalSensor(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
tag_sensor='Composite',
|
|
|
|
format='NVME: {temp:.0f}{unit}'),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=8
|
|
|
|
),
|
|
|
|
]
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=6
|
|
|
|
),
|
|
|
|
clock,
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='shutdown',
|
|
|
|
background=nord['nord11'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
|
|
|
widget.QuickExit(
|
|
|
|
background=nord['nord11'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
fontsize=24,
|
|
|
|
default_text='\uf1e2'
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord11'],
|
|
|
|
length=4
|
|
|
|
),
|
2022-12-11 11:07:30 -05:00
|
|
|
],
|
2023-02-08 11:16:16 -05:00
|
|
|
size=32,
|
|
|
|
border_width=[0, 0, 0, 0],
|
|
|
|
border_color=[nord['nord10'], nord['nord10'], nord['nord10'], nord['nord10']],
|
2022-12-11 11:07:30 -05:00
|
|
|
margin=4,
|
|
|
|
),
|
2023-02-12 13:12:48 -05:00
|
|
|
wallpaper = get_wallpaper(1),
|
2023-02-08 11:16:16 -05:00
|
|
|
wallpaper_mode='fill',
|
|
|
|
),
|
|
|
|
Screen( # Screen3
|
|
|
|
bottom=bar.Bar([
|
|
|
|
widget.CurrentLayoutIcon(
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
|
|
|
widget.GroupBox(
|
2023-03-15 11:22:16 -04:00
|
|
|
font='Font Awesome 6 Brands',
|
2023-02-08 11:16:16 -05:00
|
|
|
background=nord['nord10'],
|
|
|
|
disable_drag=True,
|
|
|
|
block_highlight_text_color=nord['nord8'],
|
|
|
|
this_screen_border=nord['nord13'],
|
|
|
|
this_current_screen_border=nord['nord11'],
|
|
|
|
padding=4,
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=4,
|
|
|
|
),
|
|
|
|
widget.WindowCount(
|
2023-03-15 11:22:16 -04:00
|
|
|
font='Font Awesome 6 Brands',
|
2023-02-08 11:16:16 -05:00
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
|
|
|
widget.TaskList(
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
border=nord['nord11'],
|
|
|
|
highlight_method='block',
|
|
|
|
markup_focused='<span foreground="#2E3440">{}</span>',
|
|
|
|
parse_text=parse_task_text,
|
|
|
|
margin=2,
|
|
|
|
padding=2,
|
|
|
|
),
|
|
|
|
chord,
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=6,
|
|
|
|
),
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='media_box_3',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord13'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
|
|
|
widget.Mpris2(
|
|
|
|
name='spotifyd',
|
|
|
|
#objname=media_player,
|
2023-03-15 11:22:16 -04:00
|
|
|
format = '{xesam:title} - ({xesam:artist})',
|
|
|
|
playing_text = ' 契 {track}',
|
|
|
|
paused_text = ' {track}',
|
2023-02-08 11:16:16 -05:00
|
|
|
width = 400,
|
|
|
|
scroll_delay = 5,
|
|
|
|
scroll_interval = 0.25,
|
|
|
|
scroll_step = 15,
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
),
|
2023-03-15 11:22:16 -04:00
|
|
|
widget.PulseVolume(
|
|
|
|
font='FontAwesome',
|
2023-02-08 11:16:16 -05:00
|
|
|
fmt='\uf028 {}',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord4'],
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=4,
|
|
|
|
),
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='widget_box_3',
|
|
|
|
background=nord['nord0'],
|
|
|
|
foreground=nord['nord13'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
|
|
|
widget.OpenWeather(
|
|
|
|
background=nord['nord15'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
cityid='4198514',
|
|
|
|
app_key='*****',
|
|
|
|
metric=False),
|
|
|
|
widget.Net(
|
|
|
|
background=nord['nord10'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
interface='net0'),
|
|
|
|
widget.Memory(
|
|
|
|
background=nord['nord14'],
|
|
|
|
foreground=nord['nord0']),
|
|
|
|
widget.CPU(
|
|
|
|
background=nord['nord13'],
|
|
|
|
foreground=nord['nord0']),
|
|
|
|
widget.ThermalSensor(
|
|
|
|
background=nord['nord13'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
tag_sensor='Package id 0',
|
|
|
|
format='{temp:.0f}{unit}'),
|
|
|
|
widget.DF(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
warn_space=40,
|
|
|
|
visible_on_warn=True),
|
|
|
|
widget.DF(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
partition='/home',
|
|
|
|
warn_space=40,
|
|
|
|
visible_on_warn=True),
|
|
|
|
widget.ThermalSensor(
|
|
|
|
background=nord['nord12'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
tag_sensor='Composite',
|
|
|
|
format='NVME: {temp:.0f}{unit}'),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=8
|
|
|
|
),
|
|
|
|
]
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord0'],
|
|
|
|
length=6
|
|
|
|
),
|
|
|
|
clock,
|
|
|
|
widget.WidgetBox(
|
|
|
|
name='shutdown',
|
|
|
|
background=nord['nord11'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
fontsize=30,
|
|
|
|
close_button_location='right',
|
|
|
|
text_closed='\uf100',
|
|
|
|
text_open='\uf101',
|
|
|
|
padding=15,
|
|
|
|
widgets=[
|
|
|
|
widget.QuickExit(
|
|
|
|
background=nord['nord11'],
|
|
|
|
foreground=nord['nord0'],
|
|
|
|
fontsize=24,
|
|
|
|
default_text='\uf1e2'
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
widget.Spacer(
|
|
|
|
background=nord['nord11'],
|
|
|
|
length=4
|
|
|
|
),
|
|
|
|
],
|
|
|
|
size=32,
|
|
|
|
border_width=[0, 0, 0, 0],
|
|
|
|
border_color=[nord['nord10'], nord['nord10'], nord['nord10'], nord['nord10']],
|
|
|
|
margin=4,
|
|
|
|
),
|
2023-02-12 13:12:48 -05:00
|
|
|
wallpaper = get_wallpaper(2),
|
2022-12-11 11:07:30 -05:00
|
|
|
wallpaper_mode='fill',
|
|
|
|
),
|
|
|
|
]
|
|
|
|
|
|
|
|
# Drag floating layouts.
|
|
|
|
mouse = [
|
2023-03-15 11:22:16 -04:00
|
|
|
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()),
|
2022-12-11 11:07:30 -05:00
|
|
|
]
|
|
|
|
|
|
|
|
dgroups_key_binder = None
|
|
|
|
dgroups_app_rules = [] # type: list
|
|
|
|
follow_mouse_focus = True
|
|
|
|
bring_front_click = False
|
|
|
|
cursor_warp = False
|
|
|
|
floating_layout = layout.Floating(
|
|
|
|
float_rules=[
|
|
|
|
# Run the utility of `xprop` to see the wm class and name of an X client.
|
|
|
|
*layout.Floating.default_float_rules,
|
2023-02-11 18:11:34 -05:00
|
|
|
vm_match,
|
2023-03-15 11:22:16 -04:00
|
|
|
Match(wm_class='confirmreset'), # gitk
|
|
|
|
Match(wm_class='makebranch'), # gitk
|
|
|
|
Match(wm_class='maketag'), # gitk
|
|
|
|
Match(wm_class='ssh-askpass'), # ssh-askpass
|
|
|
|
Match(wm_class='display_hotkeys'),
|
|
|
|
Match(wm_class='dhk'),
|
2023-06-24 19:27:42 -04:00
|
|
|
Match(wm_class='pinentry-gtk-2'), # pin entry gpg
|
2023-03-15 11:22:16 -04:00
|
|
|
Match(title='branchdialog'), # gitk
|
|
|
|
Match(title='pinentry'), # GPG key password entry
|
2023-07-14 09:45:00 -04:00
|
|
|
Match(title='Friends List'), # Steam Friends List
|
2023-02-08 11:16:16 -05:00
|
|
|
],
|
|
|
|
border_width=4,
|
|
|
|
border_focus=nord['nord11'],
|
|
|
|
border_normal=nord['nord10'],
|
2022-12-11 11:07:30 -05:00
|
|
|
)
|
2023-02-08 11:16:16 -05:00
|
|
|
auto_fullscreen = False
|
2023-03-15 11:22:16 -04:00
|
|
|
focus_on_window_activation = 'smart'
|
2022-12-11 11:07:30 -05:00
|
|
|
reconfigure_screens = True
|
|
|
|
|
|
|
|
# If things like steam games want to auto-minimize themselves when losing
|
|
|
|
# focus, should we respect this or not?
|
|
|
|
auto_minimize = True
|
|
|
|
|
|
|
|
# When using the Wayland backend, this can be used to configure input devices.
|
|
|
|
wl_input_rules = None
|
|
|
|
|
|
|
|
# XXX: Gasp! We're lying here. In fact, nobody really uses or cares about this
|
|
|
|
# string besides java UI toolkits; you can see several discussions on the
|
|
|
|
# mailing lists, GitHub issues, and other WM documentation that suggest setting
|
|
|
|
# this string if your java app doesn't work correctly. We may as well just lie
|
|
|
|
# and say that we're a working one by default.
|
|
|
|
#
|
|
|
|
# We choose LG3D to maximize irony: it is a 3D non-reparenting WM written in
|
|
|
|
# java that happens to be on java's whitelist.
|
|
|
|
# wmname = "LG3D"
|
2023-03-15 11:22:16 -04:00
|
|
|
wmname = f'qtile {VERSION}'
|
2023-02-08 11:16:16 -05:00
|
|
|
|
2023-03-02 22:05:15 -05:00
|
|
|
|
|
|
|
def write_hot_keys():
|
2023-03-15 11:22:16 -04:00
|
|
|
'''
|
2023-03-02 22:05:15 -05:00
|
|
|
Generates two text files containing the list of hot keys and key chords.
|
|
|
|
|
|
|
|
Writes the list of hot keys and key chords to two separate text files
|
|
|
|
named "hotkeys.txt" and "keychords.txt", respectively. The text files are
|
|
|
|
saved in the directory specified by the qtile_dir variable.
|
2023-03-15 11:22:16 -04:00
|
|
|
'''
|
2023-03-02 22:05:15 -05:00
|
|
|
mod_keys = {
|
2023-03-15 11:22:16 -04:00
|
|
|
'mod4': 'Super',
|
|
|
|
'shift': 'Shift',
|
|
|
|
'control': 'Control',
|
|
|
|
'space': 'Space',
|
2023-03-02 22:05:15 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
hot_keys = []
|
|
|
|
key_chords = []
|
|
|
|
|
|
|
|
for key in keys:
|
|
|
|
if isinstance(key, Key):
|
2023-03-15 11:22:16 -04:00
|
|
|
if key.desc == 'Launch terminal':
|
|
|
|
hot_keys.append('0000\n')
|
|
|
|
if key.desc == 'Switch to group 1':
|
|
|
|
hot_keys.append('0000\n')
|
|
|
|
key_modifiers = ' + '.join([mod_keys[modifier] for modifier in key.modifiers])
|
2023-03-02 22:05:15 -05:00
|
|
|
if len(key.key) == 1:
|
2023-03-15 11:22:16 -04:00
|
|
|
hot_keys.append(f'{key_modifiers} + {key.key}: {key.desc}\n')
|
2023-03-02 22:05:15 -05:00
|
|
|
elif len(key.key) > 1:
|
2023-03-15 11:22:16 -04:00
|
|
|
hot_keys.append(f'{key_modifiers} + {key.key.title()}: {key.desc}\n')
|
2023-03-02 22:05:15 -05:00
|
|
|
|
|
|
|
for key in keys:
|
|
|
|
if isinstance(key, KeyChord):
|
2023-03-15 11:22:16 -04:00
|
|
|
key_modifiers = ' + '.join([mod_keys[modifier] for modifier in key.modifiers])
|
|
|
|
key_chords.append(f'{key_modifiers} + {key.key}: {key.name.upper()}\n')
|
2023-03-02 22:05:15 -05:00
|
|
|
for sub in key.submappings:
|
|
|
|
if isinstance(sub, Key):
|
2023-03-15 11:22:16 -04:00
|
|
|
key_chords.append(f' {sub.key}: {sub.desc}\n')
|
2023-03-02 22:05:15 -05:00
|
|
|
elif isinstance(key, KeyChord):
|
2023-03-15 11:22:16 -04:00
|
|
|
key_chords.append(f' {sub.key}: {sub.name.upper()}\n')
|
|
|
|
for map_ in sub.submappings:
|
|
|
|
key_chords.append(f' {map_.key}: {map_.desc}\n')
|
|
|
|
key_chords.append('0000\n')
|
|
|
|
|
|
|
|
with open(f'{qtile_dir}hotkeys.txt', 'w', encoding='utf-8') as file:
|
|
|
|
file.write(''.join(hot_keys))
|
|
|
|
with open(f'{qtile_dir}keychords.txt', 'w', encoding='utf-8') as file:
|
|
|
|
file.write(''.join(key_chords))
|
2023-03-02 22:05:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
write_hot_keys()
|