Continue work on qtile
This commit is contained in:
		
							parent
							
								
									f5d6e3dae1
								
							
						
					
					
						commit
						6d2124c882
					
				
							
								
								
									
										182
									
								
								qtile/config.py
								
								
								
								
							
							
						
						
									
										182
									
								
								qtile/config.py
								
								
								
								
							|  | @ -1,178 +1,4 @@ | ||||||
| from libqtile import bar, layout | try: | ||||||
| from qtile_extras import widget |     from main import * | ||||||
| from libqtile.config import Click, Drag, Group, Key, Match, Screen | except Exception as e: | ||||||
| from libqtile.lazy import lazy |     print(e) | ||||||
| from libqtile.utils import guess_terminal |  | ||||||
| from qtile_extras.widget.decorations import PowerLineDecoration |  | ||||||
| 
 |  | ||||||
| class Colors: |  | ||||||
|     background = "#1f2430" |  | ||||||
|     accent = "#002F5F" |  | ||||||
| 
 |  | ||||||
| panel_height = 27 |  | ||||||
| panel_font_size = 12 |  | ||||||
| font = "Ubuntu" |  | ||||||
| widget_defaults = dict( |  | ||||||
|     font=font, padding=0, fontsize=panel_font_size, borderwidth=0 |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| powerline_left = { |  | ||||||
|     "decorations": [ |  | ||||||
|         PowerLineDecoration(path="arrow_right") |  | ||||||
|     ] |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| screens = [ |  | ||||||
|     Screen( |  | ||||||
|         top=bar.Bar( |  | ||||||
|             widgets = [ |  | ||||||
|                 widget.TaskList(), |  | ||||||
|                 widget.GroupBox( |  | ||||||
|                     rounded=False, |  | ||||||
|                     inactive="#ffffff", |  | ||||||
|                     active=Colors.background, |  | ||||||
|                     highlight_method="block", |  | ||||||
|                     highlight_color=Colors.accent, |  | ||||||
|                     this_current_screen_border=Colors.accent, |  | ||||||
|                     font="Ubuntu bold", |  | ||||||
|                     padding=9, |  | ||||||
|                 ), |  | ||||||
|                 widget.Spacer(), |  | ||||||
|                 widget.Systray(icon_size=24, background=Colors.background, padding=5, **powerline), |  | ||||||
|                 widget.CPU(background=Colors.background, format="CPU {load_percent}%", **powerline), |  | ||||||
|                 widget.CPU(background=Colors.accent, format="{freq_max}GHz", **powerline), |  | ||||||
|                 widget.Volume(borderwidth=0, background=Colors.background, emoji=False, **powerline), |  | ||||||
|                 widget.Clock( |  | ||||||
|                     foreground="#ffffff", |  | ||||||
|                     background=Colors.accent, |  | ||||||
|                     format="%a %b %d, %H:%M:%S", |  | ||||||
|                     **powerline |  | ||||||
|                 ), |  | ||||||
|                 widget.Sep(padding=7, linewidth=0, background=Colors.accent), |  | ||||||
|             ], |  | ||||||
|             size=panel_height, background=Colors.background, opacity=0.9 |  | ||||||
|         ), |  | ||||||
|         wallpaper="/home/user/.config/qtile/wallpaper.png", |  | ||||||
|         wallpaper_mode="stretch" |  | ||||||
|     ) |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| mod = "mod4" |  | ||||||
| terminal = guess_terminal() |  | ||||||
| 
 |  | ||||||
| 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"), |  | ||||||
|     # 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"), |  | ||||||
|     # 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], "n", lazy.layout.normalize(), desc="Reset all window sizes"), |  | ||||||
|     # 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 |  | ||||||
|     Key( |  | ||||||
|         [mod, "shift"], |  | ||||||
|         "Return", |  | ||||||
|         lazy.layout.toggle_split(), |  | ||||||
|         desc="Toggle between split and unsplit sides of stack", |  | ||||||
|     ), |  | ||||||
|     Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"), |  | ||||||
|     # Toggle between different layouts as defined below |  | ||||||
|     Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"), |  | ||||||
|     Key([mod], "q", lazy.window.kill(), desc="Kill focused window"), |  | ||||||
|     Key([mod, "shift"], "r", lazy.reload_config(), desc="Reload the config"), |  | ||||||
|     Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"), |  | ||||||
|     Key([mod], "r", lazy.spawncmd(), desc="Spawn a command using a prompt widget"), |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| groups = [Group(i) for i in "123456789"] |  | ||||||
| 
 |  | ||||||
| for i in groups: |  | ||||||
|     keys.extend( |  | ||||||
|         [ |  | ||||||
|             # mod1 + letter of group = switch to group |  | ||||||
|             Key( |  | ||||||
|                 [mod], |  | ||||||
|                 i.name, |  | ||||||
|                 lazy.group[i.name].toscreen(), |  | ||||||
|                 desc="Switch to group {}".format(i.name), |  | ||||||
|             ), |  | ||||||
|             # mod1 + shift + letter of group = switch to & move focused window to group |  | ||||||
|             Key( |  | ||||||
|                 [mod, "shift"], |  | ||||||
|                 i.name, |  | ||||||
|                 lazy.window.togroup(i.name, switch_group=True), |  | ||||||
|                 desc="Switch to & move focused window to group {}".format(i.name), |  | ||||||
|             ), |  | ||||||
|             # Or, use below if you prefer not to switch to that group. |  | ||||||
|             # # mod1 + shift + letter of group = move focused window to group |  | ||||||
|             # Key([mod, "shift"], i.name, lazy.window.togroup(i.name), |  | ||||||
|             #     desc="move focused window to group {}".format(i.name)), |  | ||||||
|         ] |  | ||||||
|     ) |  | ||||||
| 
 |  | ||||||
| layouts = [ |  | ||||||
|     layout.Columns(border_focus_stack=["#d75f5f", "#8f3d3d"], border_width=4), |  | ||||||
|     layout.Max(), |  | ||||||
|     # Try more layouts by unleashing below layouts. |  | ||||||
|     # layout.Stack(num_stacks=2), |  | ||||||
|     # layout.Bsp(), |  | ||||||
|     # layout.Matrix(), |  | ||||||
|     # layout.MonadTall(), |  | ||||||
|     # layout.MonadWide(), |  | ||||||
|     # layout.RatioTile(), |  | ||||||
|     # layout.Tile(), |  | ||||||
|     # layout.TreeTab(), |  | ||||||
|     # layout.VerticalTile(), |  | ||||||
|     # layout.Zoomy(), |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| # 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()), |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| 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, |  | ||||||
|         Match(wm_class="confirmreset"),  # gitk |  | ||||||
|         Match(wm_class="makebranch"),  # gitk |  | ||||||
|         Match(wm_class="maketag"),  # gitk |  | ||||||
|         Match(wm_class="ssh-askpass"),  # ssh-askpass |  | ||||||
|         Match(title="branchdialog"),  # gitk |  | ||||||
|         Match(title="pinentry"),  # GPG key password entry |  | ||||||
|     ] |  | ||||||
| ) |  | ||||||
| auto_fullscreen = True |  | ||||||
| focus_on_window_activation = "smart" |  | ||||||
| reconfigure_screens = True |  | ||||||
| 
 |  | ||||||
| # If things like steam games want to auto-minimize themselves when losing |  | ||||||
| # focus, should we respect this or not? |  | ||||||
| auto_minimize = False |  | ||||||
| wmname = "LG3D" |  | ||||||
|  |  | ||||||
|  | @ -0,0 +1,201 @@ | ||||||
|  | from libqtile import bar, layout, hook | ||||||
|  | from qtile_extras import widget | ||||||
|  | from libqtile.config import Click, Drag, Group, Key, Match, Screen | ||||||
|  | from libqtile.lazy import lazy | ||||||
|  | from libqtile.utils import guess_terminal | ||||||
|  | from qtile_extras.widget.decorations import PowerLineDecoration | ||||||
|  | from widgets.volume import Volume | ||||||
|  | 
 | ||||||
|  | class Colors: | ||||||
|  |     background = "#1f2430" | ||||||
|  |     accent = "#002F5F" | ||||||
|  | 
 | ||||||
|  | panel_height = 28 | ||||||
|  | panel_font_size = 13 | ||||||
|  | font = "Ubuntu" | ||||||
|  | 
 | ||||||
|  | powerline_right= { | ||||||
|  |     "decorations": [ | ||||||
|  |         PowerLineDecoration(path="arrow_right", size=10) | ||||||
|  |     ], | ||||||
|  |     "padding": 6 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | screens = [ | ||||||
|  |     Screen( | ||||||
|  |         top=bar.Bar( | ||||||
|  |             widgets = [ | ||||||
|  |                 widget.TaskList(theme_path="/user/share/icons/Papirus/16x16/"), | ||||||
|  |                 widget.Sep(padding=10, linewidth=0), | ||||||
|  |                 widget.GroupBox( | ||||||
|  |                     rounded=False, | ||||||
|  |                     inactive="#ffffff", | ||||||
|  |                     active="#ffffff", | ||||||
|  |                     highlight_method="block", | ||||||
|  |                     highlight_color=Colors.accent, | ||||||
|  |                     this_current_screen_border=Colors.accent, | ||||||
|  |                     font="Ubuntu bold", | ||||||
|  |                     padding=9, | ||||||
|  |                     hide_unused=True | ||||||
|  |                 ), | ||||||
|  |                 widget.Spacer(), | ||||||
|  |                 widget.Sep(linewidth=0, background=None, **powerline_right), # Workaround for having the last arrow | ||||||
|  |                 widget.Systray(icon_size=24, background=Colors.accent, **powerline_right), | ||||||
|  |                 widget.Memory(format="{MemUsed: .2f}{mm}", measure_mem="G", background=Colors.background, **powerline_right), | ||||||
|  |                 widget.ThermalSensor(tag_sensor='Tctl', background=Colors.accent, **powerline_right), | ||||||
|  |                 widget.CPU(background=Colors.background, format="CPU {load_percent}%", **powerline_right), | ||||||
|  |                 widget.CPU(background=Colors.accent, format="{freq_max}GHz", **powerline_right), | ||||||
|  |                 Volume(size=12, background=Colors.background, theme_path="/usr/share/icons/Papirus/16x16/"), | ||||||
|  |                 Volume(background=Colors.background, **powerline_right), | ||||||
|  |                 widget.Image(filename="/usr/share/icons/Papirus/48x48/apps/org.kde.archUpdate.svg", background=Colors.accent, margin_y=6), | ||||||
|  |                 widget.CheckUpdates(background=Colors.accent, distro="Arch_yay", initial_text="0", no_update_string="0", execute='WINIT_X11_SCALE_FACTOR=1 alacritty -e bash -c "yay ; echo \'\nDone, press any key to exit...\' ; read"', **powerline_right), | ||||||
|  |                 widget.CurrentLayout(background=Colors.background, **powerline_right), | ||||||
|  |                 widget.Clock( | ||||||
|  |                     foreground="#ffffff", | ||||||
|  |                     background=Colors.accent, | ||||||
|  |                     format="%a %b %d, %H:%M:%S", | ||||||
|  |                     **powerline_right | ||||||
|  |                 ), | ||||||
|  |                 widget.Sep(padding=2, linewidth=0, background=Colors.accent), | ||||||
|  |             ], | ||||||
|  |             size=panel_height, background=Colors.background + "99" | ||||||
|  |         ), | ||||||
|  |         wallpaper="/home/user/.config/qtile/wallpaper.png", | ||||||
|  |         wallpaper_mode="stretch" | ||||||
|  |     ), | ||||||
|  |     Screen(wallpaper="/home/user/.config/qtile/wallpaper.png", wallpaper_mode="stretch"), | ||||||
|  |     Screen(wallpaper="/home/user/.config/qtile/wallpaper.png", wallpaper_mode="stretch"), | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | mod = "mod4" | ||||||
|  | terminal = guess_terminal() | ||||||
|  | 
 | ||||||
|  | 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], "f", lazy.window.toggle_floating(), desc="Move focus up"), | ||||||
|  |     Key([mod], "m", lazy.window.toggle_fullscreen(), 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"), | ||||||
|  |     # 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], "n", lazy.layout.normalize(), desc="Reset all window sizes"), | ||||||
|  |     # 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 | ||||||
|  |     Key( | ||||||
|  |         [mod, "shift"], | ||||||
|  |         "Return", | ||||||
|  |         lazy.layout.toggle_split(), | ||||||
|  |         desc="Toggle between split and unsplit sides of stack", | ||||||
|  |     ), | ||||||
|  |     Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"), | ||||||
|  |     Key([mod], "b", lazy.spawn("firefox"), desc="Launch browser"), | ||||||
|  |     # Toggle between different layouts as defined below | ||||||
|  |     Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"), | ||||||
|  |     Key([mod], "q", lazy.window.kill(), desc="Kill focused window"), | ||||||
|  |     Key([mod, "shift"], "r", lazy.reload_config(), desc="Reload the config"), | ||||||
|  |     Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"), | ||||||
|  |     Key([mod], "r", lazy.spawncmd(), desc="Spawn a command using a prompt widget"), | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | groups = [] | ||||||
|  | for s in screens: | ||||||
|  |     for i in list(range(1, 10)) + [0]: | ||||||
|  |         groups.append(Group(str(i), screen_affinity=s)) | ||||||
|  | 
 | ||||||
|  | for i in groups[:10]: | ||||||
|  |     keys.extend( | ||||||
|  |         [ | ||||||
|  |             # mod1 + letter of group = switch to group | ||||||
|  |             Key( | ||||||
|  |                 [mod], | ||||||
|  |                 i.name, | ||||||
|  |                 lazy.group[i.name].toscreen(0), | ||||||
|  |                 desc="Switch to group {}".format(i.name), | ||||||
|  |             ), | ||||||
|  |             # mod1 + shift + letter of group = switch to & move focused window to group | ||||||
|  |             Key( | ||||||
|  |                 [mod, "shift"], | ||||||
|  |                 i.name, | ||||||
|  |                 lazy.window.togroup(i.name, switch_group=True), | ||||||
|  |                 desc="Switch to & move focused window to group {}".format(i.name), | ||||||
|  |             ), | ||||||
|  |             # Or, use below if you prefer not to switch to that group. | ||||||
|  |             # # mod1 + shift + letter of group = move focused window to group | ||||||
|  |             # Key([mod, "shift"], i.name, lazy.window.togroup(i.name), | ||||||
|  |             #     desc="move focused window to group {}".format(i.name)), | ||||||
|  |         ] | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  | layout_settings = { | ||||||
|  |     "border_focus": Colors.accent, | ||||||
|  |     "border_normal": "#050f43", | ||||||
|  |     # "border_normal_stack": "#00000000", | ||||||
|  |     # "border_focus_stack": "#00000000", | ||||||
|  |     "border_width": 2, | ||||||
|  |     "margin": 3 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | mouse = [ | ||||||
|  |     Drag([mod], "Button1", lazy.window.set_position(), start=lazy.window.get_position()), | ||||||
|  |     Drag([mod], "Button3", lazy.window.set_position(), start=lazy.window.get_size()) | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | layouts = [ | ||||||
|  |     layout.Tile(**layout_settings), | ||||||
|  |     layout.Columns(**layout_settings), | ||||||
|  |     layout.Max(), | ||||||
|  |     # Try more layouts by unleashing below layouts. | ||||||
|  |     # layout.Stack(num_stacks=2), | ||||||
|  |     # layout.Bsp(), | ||||||
|  |     # layout.Matrix(), | ||||||
|  |     # layout.MonadTall(), | ||||||
|  |     # layout.MonadWide(), | ||||||
|  |     # layout.RatioTile(), | ||||||
|  |     # layout.TreeTab(), | ||||||
|  |     # layout.VerticalTile(), | ||||||
|  |     # layout.Zoomy(), | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | 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=[ | ||||||
|  |         *layout.Floating.default_float_rules, | ||||||
|  |         Match(wm_class="confirmreset"),  # gitk | ||||||
|  |         Match(wm_class="makebranch"),  # gitk | ||||||
|  |         Match(wm_class="maketag"),  # gitk | ||||||
|  |         Match(wm_class="ssh-askpass"),  # ssh-askpass | ||||||
|  |         Match(title="branchdialog"),  # gitk | ||||||
|  |         Match(title="pinentry"),  # GPG key password entry | ||||||
|  |     ] | ||||||
|  | ) | ||||||
|  | auto_fullscreen = True | ||||||
|  | focus_on_window_activation = "smart" | ||||||
|  | reconfigure_screens = True | ||||||
|  | 
 | ||||||
|  | # If things like steam games want to auto-minimize themselves when losing | ||||||
|  | # focus, should we respect this or not? | ||||||
|  | auto_minimize = False | ||||||
|  | wmname = "LG3D" | ||||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 961 KiB | 
										
											Binary file not shown.
										
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | from qtile_extras.widget import Volume as QVolume | ||||||
|  | from libqtile import images | ||||||
|  | 
 | ||||||
|  | class Volume(QVolume): | ||||||
|  |     def __init__(self, size=None, **kwargs): | ||||||
|  |         super().__init__(**kwargs) | ||||||
|  |         self.size = size | ||||||
|  | 
 | ||||||
|  |     def setup_images(self): | ||||||
|  |         names = ( | ||||||
|  |             "audio-volume-high", | ||||||
|  |             "audio-volume-low", | ||||||
|  |             "audio-volume-medium", | ||||||
|  |             "audio-volume-muted", | ||||||
|  |         ) | ||||||
|  |         d_images = images.Loader(self.theme_path)(*names) | ||||||
|  |         for name, img in d_images.items(): | ||||||
|  |             new_height = self.size if self.size else self.bar.height - 1 | ||||||
|  |             img.resize(height=new_height) | ||||||
|  |             if img.width > self.length: | ||||||
|  |                 self.length = img.width + self.actual_padding * 2 | ||||||
|  | 
 | ||||||
|  |             if self.size: | ||||||
|  |                 matrix = img.pattern.get_matrix() | ||||||
|  |                 matrix.translate(tx=0, ty=-1 * (self.bar.height -1 - self.size) / 2 - 1) | ||||||
|  |                 img.pattern.set_matrix(matrix) | ||||||
|  | 
 | ||||||
|  |             self.surfaces[name] = img.pattern | ||||||
		Loading…
	
		Reference in New Issue