Update
This commit is contained in:
parent
b3937e263d
commit
1505a0eef2
|
@ -1,35 +1,18 @@
|
|||
# Copyright (c) 2010 Aldo Cortesi
|
||||
# Copyright (c) 2010, 2014 dequis
|
||||
# Copyright (c) 2012 Randall Mmeasure_mem='G'# Copyright (c) 2012-2014 Tycho Andersen
|
||||
# Copyright (c) 2012 Craig Barnes
|
||||
# Copyright (c) 2013 horsik
|
||||
# Copyright (c) 2013 Tao Sauvage
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
r'''
|
||||
_ _ _ _
|
||||
_ __ ___ ___| |__ __ _ _ __ __ _| |_(_) | ___
|
||||
| '__/ _ \/ __| '_ \ / _` | '__|____ / _` | __| | |/ _ \
|
||||
| | | (_) \__ \ | | | (_| | | |_____| (_| | |_| | | __/
|
||||
|_| \___/|___/_| |_|\__,_|_| \__, |\__|_|_|\___|
|
||||
|_|
|
||||
'''
|
||||
|
||||
from subprocess import run, CalledProcessError
|
||||
from libqtile import bar, layout, widget, extension
|
||||
from libqtile.config import Click, Drag, Group, Key, KeyChord, Match, Screen, ScratchPad, DropDown
|
||||
from libqtile.scripts.main import VERSION
|
||||
from libqtile.lazy import lazy
|
||||
|
||||
from subprocess import run
|
||||
|
||||
mod = 'mod4'
|
||||
terminal = 'alacritty'
|
||||
opaque_config = '--config-file /home/roland/.config/alacritty/alacritty-opaque.yml'
|
||||
|
@ -38,13 +21,11 @@ qtile_config = f'alacritty {opaque_config} -e vim /home/roland/.config/qtile/con
|
|||
ipython = f'alacritty {opaque_config} -e ipython'
|
||||
python = f'alacritty {opaque_config} -e python'
|
||||
vpn_vta = 'alacritty -e /home/roland/.local/bin/vpn'
|
||||
rdp = 'alacritty -e /home/roland/.local/bin/bjendal'
|
||||
bjendal = 'alacritty -e /home/roland/.local/bin/bjendal'
|
||||
rofi = 'rofi -combi-modi window,drun,ssh -theme nord -font "hack 12" -show drun -icon-theme "Papirus" -show-icons'
|
||||
qtile_dir = '/home/roland/.config/qtile/'
|
||||
wallpaper_dir = '/home/roland/.config/qtile/wallpaper/'
|
||||
hotkeys = '/home/roland/.config/qtile/dhk'
|
||||
|
||||
flameshot = '#8800aa'
|
||||
nord = {
|
||||
'nord0':'#2E3440',
|
||||
'nord1':'#3B4252',
|
||||
|
@ -66,7 +47,7 @@ nord = {
|
|||
|
||||
|
||||
def parse_task_text(text):
|
||||
"""
|
||||
'''
|
||||
Removes unwanted text from a given task string.
|
||||
|
||||
Args:
|
||||
|
@ -74,15 +55,15 @@ def parse_task_text(text):
|
|||
|
||||
Returns:
|
||||
str: The cleaned text.
|
||||
"""
|
||||
text = text.replace(" \u2014 Mozilla Firefox", "")
|
||||
text = text.replace(" - qutebrowser", "")
|
||||
text = text.replace(" - Discord", "")
|
||||
'''
|
||||
text = text.replace(' \u2014 Mozilla Firefox', '')
|
||||
text = text.replace(' - qutebrowser', '')
|
||||
text = text.replace(' - Discord', '')
|
||||
return text
|
||||
|
||||
|
||||
def get_wallpaper(screen_number):
|
||||
"""
|
||||
'''
|
||||
Returns the wallpaper path based on the size of the screen.
|
||||
|
||||
Args:
|
||||
|
@ -93,58 +74,65 @@ def get_wallpaper(screen_number):
|
|||
|
||||
Raises:
|
||||
IndexError: If the specified screen number is out of bounds.
|
||||
"""
|
||||
screens = run(
|
||||
'''
|
||||
try:
|
||||
screens_ = run(
|
||||
["xrandr | grep '*' | awk '{ print $1 }'"],
|
||||
shell=True,
|
||||
capture_output=True,
|
||||
encoding="utf-8",
|
||||
)
|
||||
encoding='utf-8',
|
||||
check=True,
|
||||
)
|
||||
except CalledProcessError:
|
||||
screens_ = '1920x1080'
|
||||
|
||||
try:
|
||||
size = screens.stdout.split()[screen_number]
|
||||
size = screens_.stdout.split()[screen_number]
|
||||
except IndexError:
|
||||
size = screens.stdout.split()[0]
|
||||
size = screens_.stdout.split()[0]
|
||||
|
||||
match size:
|
||||
case "3440x1440":
|
||||
wallpaper = f"{wallpaper_dir}gunter_wallpaper3440x1440_fill.png"
|
||||
case "1920x1080":
|
||||
wallpaper = f"{wallpaper_dir}gunter_throne.png"
|
||||
case "3840x1080":
|
||||
wallpaper = f"{wallpaper_dir}gunter_throne.png"
|
||||
case "5760x1080":
|
||||
wallpaper = f"{wallpaper_dir}gunter_throne.png"
|
||||
case "1760x1262":
|
||||
wallpaper = f"{wallpaper_dir}gunter_throne_1760x1262.png"
|
||||
case '3440x1440':
|
||||
wallpaper = f'{wallpaper_dir}gunter_wallpaper3440x1440_fill.png'
|
||||
case '1920x1080':
|
||||
wallpaper = f'{wallpaper_dir}gunter_throne.png'
|
||||
case '3840x1080':
|
||||
wallpaper = f'{wallpaper_dir}gunter_throne.png'
|
||||
case '5760x1080':
|
||||
wallpaper = f'{wallpaper_dir}gunter_throne.png'
|
||||
case '1760x1262':
|
||||
wallpaper = f'{wallpaper_dir}gunter_throne_1760x1262.png'
|
||||
case _:
|
||||
wallpaper = f"{wallpaper_dir}not_supported.png"
|
||||
wallpaper = f'{wallpaper_dir}not_supported.png'
|
||||
|
||||
return wallpaper
|
||||
|
||||
|
||||
# Keys
|
||||
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
|
||||
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"),
|
||||
Key([mod], "space", lazy.layout.next(), desc="Move window focus to other window"),
|
||||
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'),
|
||||
Key([mod], 'space', lazy.layout.next(), desc='Move window focus to other window'),
|
||||
# Move windows between left/right columns or move up/down in current stack.
|
||||
# Moving out of range in Columns layout will create new column.
|
||||
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"),
|
||||
Key([mod, "shift"], "space", lazy.layout.flip(), desc="Flip Layout"),
|
||||
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'),
|
||||
Key([mod, 'shift'], 'space', lazy.layout.flip(), desc='Flip Layout'),
|
||||
# Grow windows. If current window is on the edge of screen and direction
|
||||
# will be to screen edge - window would shrink.
|
||||
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, '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"),
|
||||
# Toggle between split and unsplit sides of stack.
|
||||
# Split = all windows displayed
|
||||
# Unsplit = 1 window displayed, like Max layout, but still with
|
||||
|
@ -163,7 +151,6 @@ keys = [
|
|||
Key([mod, "control"], "r", lazy.reload_config(), desc="Reload the config"),
|
||||
Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"),
|
||||
Key([mod], "r", lazy.spawn(rofi), desc="Launch rofi"),
|
||||
Key([mod], "z", lazy.run_extension(extension.WindowList()), desc="Launch window list"),
|
||||
Key([mod, "shift"], "u", lazy.spawn(hotkeys), desc="Show Hotkeys"),
|
||||
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"),
|
||||
|
@ -175,7 +162,7 @@ keys = [
|
|||
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"),
|
||||
Key([], "x", lazy.group['scratchpad'].dropdown_toggle('xrdp'), desc="Launch xrdp: bjendal"),
|
||||
Key([], "b", lazy.group['scratchpad'].dropdown_toggle('bjendal'), desc="Launch xrdp: bjendal"),
|
||||
Key([], "s", lazy.spawn('passmenu'), desc="Launch pass"),
|
||||
Key([], "r", lazy.run_extension(extension.DmenuRun(dmenu_prompt = "\uf101")), desc="Launch dmenu"),
|
||||
# FLAMESHOT chord
|
||||
|
@ -195,17 +182,19 @@ keys = [
|
|||
# TOGGLE chord
|
||||
KeyChord([mod], "d", [
|
||||
Key([], "s", lazy.hide_show_bar(), desc="Toggle show bar"),
|
||||
Key([], "f", lazy.window.toggle_floating(), desc="Toggle floating mode"),
|
||||
Key([], "z", lazy.window.toggle_fullscreen(), desc="Toggle fullscreen mode"),
|
||||
# BOXES chord
|
||||
KeyChord([], "t", [
|
||||
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"),
|
||||
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(),
|
||||
lazy.widget['media_box_1'].toggle(),
|
||||
lazy.widget['media_box_2'].toggle(),
|
||||
lazy.widget['media_box_3'].toggle(), desc="Toggle Widget Boxes"),
|
||||
lazy.widget['widget_box_3'].toggle(), desc="Toggle Widget Boxes"),
|
||||
],
|
||||
name="boxes",
|
||||
),
|
||||
|
@ -213,8 +202,8 @@ keys = [
|
|||
name="toggle",
|
||||
),
|
||||
# MEDIA chord
|
||||
KeyChord([mod], "s", [
|
||||
Key([], "s", lazy.widget['spotifyd'].play_pause(), desc="Play - Pause"),
|
||||
KeyChord([mod], "v", [
|
||||
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"),
|
||||
],
|
||||
|
@ -223,44 +212,44 @@ keys = [
|
|||
]
|
||||
|
||||
# Groups
|
||||
groups = [Group(i) for i in "123456"]
|
||||
groups = [Group(i) for i in '123456']
|
||||
|
||||
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")
|
||||
groups.extend([Group("7", label='\ue007'),
|
||||
Group("8", matches=[obsidian_match], label='\ue13a'),
|
||||
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)])
|
||||
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')
|
||||
groups.extend([Group('7', label='\ue007'),
|
||||
Group('8', matches=[obsidian_match], label='\ue13a'),
|
||||
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)])
|
||||
|
||||
for i in groups:
|
||||
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}",
|
||||
),
|
||||
]
|
||||
)
|
||||
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}',
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
groups.extend(
|
||||
[ScratchPad("scratchpad", [
|
||||
[ScratchPad('scratchpad', [
|
||||
DropDown(
|
||||
"term",
|
||||
'term',
|
||||
terminal_opaque,
|
||||
config = {
|
||||
'on_focus_lost_hide':False,
|
||||
|
@ -270,7 +259,7 @@ groups.extend(
|
|||
},
|
||||
),
|
||||
DropDown(
|
||||
"ipython",
|
||||
'ipython',
|
||||
ipython,
|
||||
config = {
|
||||
'on_focus_lost_hide':False,
|
||||
|
@ -280,7 +269,7 @@ groups.extend(
|
|||
},
|
||||
),
|
||||
DropDown(
|
||||
"python",
|
||||
'python',
|
||||
python,
|
||||
config = {
|
||||
'on_focus_lost_hide':False,
|
||||
|
@ -290,7 +279,7 @@ groups.extend(
|
|||
},
|
||||
),
|
||||
DropDown(
|
||||
"qtile-config",
|
||||
'qtile-config',
|
||||
qtile_config,
|
||||
config = {
|
||||
'on_focus_lost_hide':False,
|
||||
|
@ -300,7 +289,7 @@ groups.extend(
|
|||
},
|
||||
),
|
||||
DropDown(
|
||||
"vpn",
|
||||
'vpn',
|
||||
vpn_vta,
|
||||
config = {
|
||||
'on_focus_lost_hide':True,
|
||||
|
@ -310,8 +299,8 @@ groups.extend(
|
|||
},
|
||||
),
|
||||
DropDown(
|
||||
"xrdp",
|
||||
rdp,
|
||||
'bjendal',
|
||||
bjendal,
|
||||
config = {
|
||||
'on_focus_lost_hide':True,
|
||||
'opacity':1.0,
|
||||
|
@ -358,21 +347,21 @@ layouts = [
|
|||
#layout.Zoomy(),
|
||||
]
|
||||
|
||||
widget_defaults = dict(
|
||||
font="FontAwesome",
|
||||
fontsize=18,
|
||||
padding=2,
|
||||
)
|
||||
widget_defaults = {
|
||||
'font':"FontAwesome",
|
||||
'fontsize':18,
|
||||
'padding':2,
|
||||
}
|
||||
extension_defaults = widget_defaults.copy()
|
||||
|
||||
# Mirrored widgets
|
||||
chord = widget.Chord(
|
||||
chords_colors={
|
||||
"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']),
|
||||
'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']),
|
||||
},
|
||||
name_transform=lambda name: name.upper())
|
||||
|
||||
|
@ -380,7 +369,7 @@ clock = widget.Clock(
|
|||
background=nord['nord11'],
|
||||
foreground=nord['nord0'],
|
||||
padding=4,
|
||||
format="%Y-%m-%d %a %H:%M")
|
||||
format='%Y-%m-%d %a %H:%M')
|
||||
|
||||
screens = [
|
||||
Screen( #Screen1
|
||||
|
@ -391,7 +380,7 @@ screens = [
|
|||
foreground=nord['nord4'],
|
||||
),
|
||||
widget.GroupBox(
|
||||
font="Font Awesome 6 Brands",
|
||||
font='Font Awesome 6 Brands',
|
||||
background=nord['nord10'],
|
||||
disable_drag=True,
|
||||
block_highlight_text_color=nord['nord8'],
|
||||
|
@ -405,7 +394,7 @@ screens = [
|
|||
length=4,
|
||||
),
|
||||
widget.WindowCount(
|
||||
font="Font Awesome 6 Brands",
|
||||
font='Font Awesome 6 Brands',
|
||||
background=nord['nord0'],
|
||||
foreground=nord['nord4'],
|
||||
),
|
||||
|
@ -446,9 +435,9 @@ screens = [
|
|||
widget.Mpris2(
|
||||
name='spotifyd',
|
||||
#objname=media_player,
|
||||
format = "{xesam:title} - ({xesam:artist})",
|
||||
playing_text = " 契 {track}",
|
||||
paused_text = " {track}",
|
||||
format = '{xesam:title} - ({xesam:artist})',
|
||||
playing_text = ' 契 {track}',
|
||||
paused_text = ' {track}',
|
||||
width = 400,
|
||||
scroll_delay = 5,
|
||||
scroll_interval = 0.25,
|
||||
|
@ -456,8 +445,8 @@ screens = [
|
|||
background=nord['nord10'],
|
||||
foreground=nord['nord0'],
|
||||
),
|
||||
widget.PulseVolume(
|
||||
font="FontAwesome",
|
||||
widget.PulseVolume(
|
||||
font='FontAwesome',
|
||||
fmt='\uf028 {}',
|
||||
background=nord['nord0'],
|
||||
foreground=nord['nord4'],
|
||||
|
@ -564,7 +553,7 @@ screens = [
|
|||
foreground=nord['nord4'],
|
||||
),
|
||||
widget.GroupBox(
|
||||
font="Font Awesome 6 Brands",
|
||||
font='Font Awesome 6 Brands',
|
||||
background=nord['nord10'],
|
||||
disable_drag=True,
|
||||
block_highlight_text_color=nord['nord8'],
|
||||
|
@ -577,7 +566,7 @@ screens = [
|
|||
length=4,
|
||||
),
|
||||
widget.WindowCount(
|
||||
font="Font Awesome 6 Brands",
|
||||
font='Font Awesome 6 Brands',
|
||||
background=nord['nord0'],
|
||||
foreground=nord['nord4'],
|
||||
),
|
||||
|
@ -609,9 +598,9 @@ screens = [
|
|||
widget.Mpris2(
|
||||
name='spotifyd',
|
||||
#objname=media_player,
|
||||
format = "{xesam:title} - ({xesam:artist})",
|
||||
playing_text = " 契 {track}",
|
||||
paused_text = " {track}",
|
||||
format = '{xesam:title} - ({xesam:artist})',
|
||||
playing_text = ' 契 {track}',
|
||||
paused_text = ' {track}',
|
||||
width = 400,
|
||||
scroll_delay = 5,
|
||||
scroll_interval = 0.25,
|
||||
|
@ -619,8 +608,8 @@ screens = [
|
|||
background=nord['nord10'],
|
||||
foreground=nord['nord0'],
|
||||
),
|
||||
widget.PulseVolume(
|
||||
font="FontAwesome",
|
||||
widget.PulseVolume(
|
||||
font='FontAwesome',
|
||||
fmt='\uf028 {}',
|
||||
background=nord['nord0'],
|
||||
foreground=nord['nord4'],
|
||||
|
@ -727,7 +716,7 @@ screens = [
|
|||
foreground=nord['nord4'],
|
||||
),
|
||||
widget.GroupBox(
|
||||
font="Font Awesome 6 Brands",
|
||||
font='Font Awesome 6 Brands',
|
||||
background=nord['nord10'],
|
||||
disable_drag=True,
|
||||
block_highlight_text_color=nord['nord8'],
|
||||
|
@ -740,7 +729,7 @@ screens = [
|
|||
length=4,
|
||||
),
|
||||
widget.WindowCount(
|
||||
font="Font Awesome 6 Brands",
|
||||
font='Font Awesome 6 Brands',
|
||||
background=nord['nord0'],
|
||||
foreground=nord['nord4'],
|
||||
),
|
||||
|
@ -772,9 +761,9 @@ screens = [
|
|||
widget.Mpris2(
|
||||
name='spotifyd',
|
||||
#objname=media_player,
|
||||
format = "{xesam:title} - ({xesam:artist})",
|
||||
playing_text = " 契 {track}",
|
||||
paused_text = " {track}",
|
||||
format = '{xesam:title} - ({xesam:artist})',
|
||||
playing_text = ' 契 {track}',
|
||||
paused_text = ' {track}',
|
||||
width = 400,
|
||||
scroll_delay = 5,
|
||||
scroll_interval = 0.25,
|
||||
|
@ -782,8 +771,8 @@ screens = [
|
|||
background=nord['nord10'],
|
||||
foreground=nord['nord0'],
|
||||
),
|
||||
widget.PulseVolume(
|
||||
font="FontAwesome",
|
||||
widget.PulseVolume(
|
||||
font='FontAwesome',
|
||||
fmt='\uf028 {}',
|
||||
background=nord['nord0'],
|
||||
foreground=nord['nord4'],
|
||||
|
@ -887,9 +876,9 @@ screens = [
|
|||
|
||||
# Drag floating layouts.
|
||||
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()),
|
||||
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()),
|
||||
]
|
||||
|
||||
dgroups_key_binder = None
|
||||
|
@ -902,21 +891,21 @@ floating_layout = layout.Floating(
|
|||
# Run the utility of `xprop` to see the wm class and name of an X client.
|
||||
*layout.Floating.default_float_rules,
|
||||
vm_match,
|
||||
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"),
|
||||
Match(title="branchdialog"), # gitk
|
||||
Match(title="pinentry"), # GPG key password entry
|
||||
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'),
|
||||
Match(title='branchdialog'), # gitk
|
||||
Match(title='pinentry'), # GPG key password entry
|
||||
],
|
||||
border_width=4,
|
||||
border_focus=nord['nord11'],
|
||||
border_normal=nord['nord10'],
|
||||
)
|
||||
auto_fullscreen = False
|
||||
focus_on_window_activation = "smart"
|
||||
focus_on_window_activation = 'smart'
|
||||
reconfigure_screens = True
|
||||
|
||||
# If things like steam games want to auto-minimize themselves when losing
|
||||
|
@ -935,22 +924,22 @@ wl_input_rules = None
|
|||
# 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"
|
||||
wmname = f"qtile {VERSION}"
|
||||
wmname = f'qtile {VERSION}'
|
||||
|
||||
|
||||
def write_hot_keys():
|
||||
"""
|
||||
'''
|
||||
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.
|
||||
"""
|
||||
'''
|
||||
mod_keys = {
|
||||
"mod4": "Super",
|
||||
"shift": "Shift",
|
||||
"control": "Control",
|
||||
"space": "Space",
|
||||
'mod4': 'Super',
|
||||
'shift': 'Shift',
|
||||
'control': 'Control',
|
||||
'space': 'Space',
|
||||
}
|
||||
|
||||
hot_keys = []
|
||||
|
@ -958,33 +947,33 @@ def write_hot_keys():
|
|||
|
||||
for key in keys:
|
||||
if isinstance(key, Key):
|
||||
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])
|
||||
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])
|
||||
if len(key.key) == 1:
|
||||
hot_keys.append(f"{key_modifiers} + {key.key}: {key.desc}\n")
|
||||
hot_keys.append(f'{key_modifiers} + {key.key}: {key.desc}\n')
|
||||
elif len(key.key) > 1:
|
||||
hot_keys.append(f"{key_modifiers} + {key.key.title()}: {key.desc}\n")
|
||||
hot_keys.append(f'{key_modifiers} + {key.key.title()}: {key.desc}\n')
|
||||
|
||||
for key in keys:
|
||||
if isinstance(key, KeyChord):
|
||||
key_modifiers = " + ".join([mod_keys[modifier] for modifier in key.modifiers])
|
||||
key_chords.append(f"{key_modifiers} + {key.key}: {key.name.upper()}\n")
|
||||
key_modifiers = ' + '.join([mod_keys[modifier] for modifier in key.modifiers])
|
||||
key_chords.append(f'{key_modifiers} + {key.key}: {key.name.upper()}\n')
|
||||
for sub in key.submappings:
|
||||
if isinstance(sub, Key):
|
||||
key_chords.append(f" {sub.key}: {sub.desc}\n")
|
||||
key_chords.append(f' {sub.key}: {sub.desc}\n')
|
||||
elif isinstance(key, KeyChord):
|
||||
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")
|
||||
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") as file:
|
||||
file.write("".join(hot_keys))
|
||||
with open(f"{qtile_dir}keychords.txt", "w") as file:
|
||||
file.write("".join(key_chords))
|
||||
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))
|
||||
|
||||
|
||||
write_hot_keys()
|
||||
|
|
Loading…
Reference in New Issue