wallpaper = "/home/daniel/Pictures/Wallpapers/manjaro.png", wallpaper_mode = 'fill', top = bar.Bar(widgets=init_widgets_screen1(), size=30) ), Screen(top=bar.Bar(widgets=init_widgets_screen2(), size=30)) ] screens = init_screens() # MOUSE CONFIGURATION mouse = [ Drag([KeyboardKey.SUPER.value], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag([KeyboardKey.SUPER.value], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click([KeyboardKey.SUPER.value], "Button2", lazy.window.toggle_floating()) ] dgroups_key_binder = None dgroups_app_rules = [] # Hooks @hook.subscribe.client_new def assign_app_group(client): programs_for_groups = { GroupName.GAMING.value: ['steam', 'Minecraft Launcher', 'minecraft-launcher'] } wm_class = client.window.get_wm_class()[0]
], 40, ), ), ] # 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.disable_floating()) ] # Controls whether or not focus follows the mouse around as it moves across windows in a layout. follow_mouse_focus = False # When clicked, should the window be brought to the front or not. (This sets the X Stack Mode to Above.) bring_front_click = False # If true, the cursor follows the focus as directed by the keyboard, warping to the center of the focused window. cursor_warp = False # Prevent focus stealing focus_on_window_activation = "never" @hook.subscribe.client_new def dialogs(window): if (window.window.get_wm_type() == "dialog"
def init_mouse(): mouse = [Click([mod], "Button2", lazy.window.bring_to_front())] return mouse
]) mouse = [ Drag( [MODKEY], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position(), ), Drag( [MODKEY], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size(), ), Click([MODKEY], "Button2", lazy.window.bring_to_front()), Click([MODKEY, "shift"], "Button2", lazy.window.bring_to_front()), ] # Window swallowing SWALLOW_PARENT = { Match(wm_class="urxvt"), Match(wm_class="Alacritty"), } NO_SWALLOW_CHILD = { Match(title="Event Tester"), Match(wm_class="qutebrowser"), Match(wm_class="urxvt"), Match(wm_class="Alacritty"), }
), ), ] # This bit tells qtile what to do with mouse input. As is usual for window managers, by clicking and dragging a window #while also pressing the mod button, the window becomes floating, and moves with the mouse. You can resize floating #windows using the right click, and bring windows to front with the wheel 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()), Click(["shift"], "Button3", lazy.spawn("rofi -show drun"), desc="Launch rofi"), ] #The first bit tells Qtile to run the autostart file when it is started. The autostart file does the wallpaper, activates the compositor, #and sets the keymap on my build the rest is the final options for qtile. Most of this stuff is pretty obvious, and doesn't really need to be #messed with. The floating layout section is a list of window types that should automatically spawn as floating. If an app you're trying to #glitches when spawned normally, try adding it to the list below, using the same match syntax as with the group section. Finally at the bottom, #the clever people who coded Qtile lie to the computer and say that Qtile is a Java window manager so it'll work correctly. @hook.subscribe.startup def autostart(): home = os.path.expanduser('~/.config/qtile/scripts/autostart.sh')
] # Drag floating layouts. mouse = [ Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position(), desc="Move window"), Drag([mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size(), desc="Resize window"), Click([mod], "Button2", lazy.window.bring_to_front(), desc="Bring to front"), # Click([], "Button3", lazy.function(open_menu), desc="Bring to front"), ] dgroups_key_binder = None dgroups_app_rules = [] # type: List main = None 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='makebranch'),
screens = init_screens() widgets_list = init_widgets_list() widgets_screen1 = init_widgets_screen1() widgets_screen2 = init_widgets_screen2() # 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], "Button4", lazy.window.bring_to_front()), Click([mod], "Button2", lazy.window.toggle_floating()), ] dgroups_key_binder = None dgroups_app_rules = [] # type: List main = None follow_mouse_focus = True bring_front_click = False auto_fullscreen = True focus_on_window_activation = "smart" reconfigure_screens = True cursor_warp = False floating_layout = layout.Floating( **layout_theme, float_rules=[
keys.extend( Key('M-' + str(idx), lazy.group[group.name].toscreen()) for idx, group in enumerate(groups, start=1)) keys.extend( Key('M-S-' + str(idx), lazy.window.togroup(group.name)) for idx, group in enumerate(groups, start=1)) mouse = [ Drag('M-<Button1>', lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag('M-<Button3>', lazy.window.set_size_floating(), start=lazy.window.get_size()), Click('M-<Button2>', lazy.window.bring_to_front()) ] dgroups_key_binder = None dgroups_app_rules = [] main = None follow_mouse_focus = True bring_front_click = False cursor_warp = False floating_layout = layout.Floating() auto_fullscreen = True @hook.subscribe.startup def setwallpaper(): subprocess.check_call(
# Drag floating layouts. mouse = [ Drag( [k.SUPER], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position(), ), Drag( [k.SUPER], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size(), ), Click([k.SUPER], "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_types = [ "notification", "toolbar", "splash", "dialog", "utility", "menu",
widgets_screen1 = init_widgets_screen1() widgets_screen2 = init_widgets_screen2() def init_screens(): return [ Screen(top=bar.Bar(widgets=init_widgets_screen2(), size=26, opacity=0.8)), Screen(top=bar.Bar(widgets=init_widgets_screen1(), size=26, opacity=0.8)), ] screens = init_screens() # MOUSE CONFIGURATION mouse = [ Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Click([mod], "Button2", lazy.window.toggle_floating(), start=lazy.window.get_size()), # Click([mod], "Button3", lazy.window.bring_to_front()), Click([mod], "Button8", lazy.prev_layout()), Click([mod], "Button9", lazy.next_layout()) ] dgroups_key_binder = None dgroups_app_rules = [] main = None @hook.subscribe.startup_once def start_once(): home = os.path.expanduser('~')
# mod + letter of group = switch to group keys.append(Key([mod], i.name, lazy.group[i.name].toscreen())) # mod + shift + letter of group = switch to & move focused window to group keys.append(Key([mod, "shift"], i.name, lazy.window.togroup(i.name))) ##-> Mouse 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.toggle_floating())) layouts = [ layout.Max(), layout.MonadTall(follow_max=True), ] screens = [ Screen(top=bar.Bar(widgets=[ widget.GroupBox(urgent_alert_method='text', **Theme.groupbox), widget.CurrentLayout(**Theme.widget), widget.WindowName(**Theme.widget), widget.Clipboard(timeout=10, **Theme.systray), widget.Systray(**Theme.systray), widget.Battery(**Theme.battery_text), widget.Pacman(execute=Commands.pacman, **Theme.pacman),
from libqtile.config import Drag, Click, Key from libqtile.command import lazy from groups import groups mod = "mod4" 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()), Click([mod, "shift"], "Button2", lazy.window.kill()), ] keys = [ # Applications Key([mod], "Return", lazy.spawn("st")), Key([mod], "b", lazy.spawn("chromium")), Key([mod, "shift"], "b", lazy.spawn("chromium --incognito")), Key([mod], "d", lazy.spawn("dmenurun")), Key([mod], "q", lazy.spawn("qute")), Key([mod], "e", lazy.spawn("dmenuunicode")), Key([mod, "shift"], "e", lazy.spawn("dmenukaomoji")), Key([mod, "shift"], "w", lazy.spawn("wpa-cute")), Key([mod], "v", lazy.spawn("st -e vim")), Key([mod, "shift"], "s", lazy.spawn("sr-menu")),
def init_mouse(): return [Drag([mod], "Button1", lazy.window.set_position_floating(), # Move floating windows start=lazy.window.get_position()), Drag([mod], "Button3", lazy.window.set_size_floating(), # Resize floating windows start=lazy.window.get_size()), Click([mod, "shift"], "Button1", lazy.window.bring_to_front())] # Bring floating window to front
foreground=Colors.highlight_text, ), ], FONTSIZE+0, # Bar height background=Colors.bg, ), ), ] # Emulate function keys as 'super' + f* fk = "python3 ~/github/programs/presskey ctrl+alt+f" keys.extend([EzKey("M-" + str(i), lazy.spawn(fk+str(i))) for i in range(1,9)]) # For Logitech M570 mouse = [ Click("8", lazy.spawn(program("terminal"))), # Macro 2 = Open terminal Click("9", lazy.spawn(program("pause"))), # Macro 1 = Open menu Click("M-9", lazy.window.kill()), # 'Super' + Macro 1 = Kill window Click("M-4", lazy.spawn(program("vol_up"))), # 'Super' + Wheel = increase volume Click("M-5", lazy.spawn(program("vol_down"))) # 'Super' + Wheel = derease volume ] @hook.subscribe.client_new def client_new(client): # Rules for new programs if client.name == 'Discord': client.togroup('d') elif client.name == 'Mozilla Firefox': client.togroup('s') elif client.name == 'Atom Dev': client.togroup('a')
Screen( top=bar.Bar( second_screen_widgets, size=bar_size, margin=[4, 6, 2, 6] ), ), ] # 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.toggle_floating()) ] 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='unetbootin.elf'), # Match(wm_class=''), 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 ], **floating_theme)
foreground="#a9b1d6", background="#1a1b26", ), ), ] # Drag floating layouts. mouse = [ Drag([defaults["mod"]], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag([defaults["mod"]], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click([defaults["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
# Volume (hold shift for lighter adjustments) Key("<XF86AudioLowerVolume>", lazy.spawn("amixer -c 0 -q set Master 5%-")), Key("S-<XF86AudioLowerVolume>", lazy.spawn("amixer -c 0 -q set Master 1%-")), Key("<XF86AudioRaiseVolume>", lazy.spawn("amixer -c 0 -q set Master 5%+")), Key("S-<XF86AudioRaiseVolume>", lazy.spawn("amixer -c 0 -q set Master 1%+")), Key("<XF86AudioMute>", lazy.spawn("amixer -D pulse set Master 1+ toggle")), # Brightness (hold shift for lighter adjustments) Key("<XF86MonBrightnessUp>", lazy.spawn("light -A 5")), Key("S-<XF86MonBrightnessUp>", lazy.spawn("light -A 1")), Key("<XF86MonBrightnessDown>", lazy.spawn("light -U 5")), Key("S-<XF86MonBrightnessDown>", lazy.spawn("light -U 1")), # Multi-screen test (not very convincing) Key("M-<Escape>", lazy.next_screen()), Key("M-p", lazy.spawn("sh -c ~/scripts/monitor_layout.sh")), Key("M-S-p", lazy.spawn("sh -c ~/scripts/rotate_secondary_display.sh")), ] mouse = [ Drag("M-1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag("M-3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click("M-2", lazy.window.bring_to_front()), Click("M-S-1", lazy.window.toggle_floating()), ]
locals().update(Settings().get_settings()) widget_defaults = extension_defaults = dict(font='sans', fontsize=12, padding=3) # Drag floating layouts. mouse = [ Drag([CONSTANTS.MOD], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag([CONSTANTS.MOD], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click([CONSTANTS.MOD], "Button2", lazy.window.bring_to_front()) ] 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(wm_class='pavucontrol'), # ssh-askpass Match(title='branchdialog'), # gitk Match(title='pinentry'), # GPG key password entry ])
Key("M-<Tab>", lazy.next_layout(), desc="Toggle between layouts"), # Globals Key("M-C-r", lazy.restart(), desc="Restart qtile"), Key("M-C-q", lazy.shutdown(), desc="Shutdown qtile"), Key("M-r", lazy.spawncmd(), desc="Spawn a command using a prompt widget") ] # ================================================================ # ============================ Mouse ============================= # ================================================================ mouse = [ Drag("M-1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag("M-3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click("M-2", lazy.window.bring_to_front()), ] # ================================================================ # =========================== Screens ============================ # ================================================================ widget_defaults = dict( font='sans', fontsize=12, padding=3, ) extension_defaults = widget_defaults.copy() screens = [ Screen(
widget.Systray(), widget.Clock(format='%Y-%m-%d %a %I:%M %p'), widget.QuickExit(), ], 30, ), ), ] # Drag floating layouts. mouse = [ Drag(["control"], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag(["control"], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click(["control"], "Button2", lazy.window.bring_to_front()) ] dgroups_key_binder = None dgroups_app_rules = [] # type: List follow_mouse_focus = True # LV consider False 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
], 20, ), ), ] # Drag and resize floating layouts. mouse = [ Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag([mod, "shift"], "Button1", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click([mod, "mod1"], "Button1", lazy.window.bring_to_front()) ] # follow_mouse_focus = True # bring_front_click = True floating_layout = layout.Floating(float_rules=[ # Run the utility of `xprop` to see the wm class and name of an X client. { 'wmclass': 'confirm' }, { 'wmclass': 'dialog' }, { 'wmclass': 'download' },
Key([mod], "bracketleft", lazy.spawn("clementine --prev")), Key([mod], "bracketright", lazy.spawn("clementine --next")), # poor man's middle click Key([mod], "v", lazy.spawn("xdotool click 2")), # backlight controls Key([], "XF86KbdBrightnessUp", lazy.spawn("maclight keyboard up")), Key([], "XF86KbdBrightnessDown", lazy.spawn("maclight keyboard down")), Key([], "XF86MonBrightnessUp", lazy.spawn("maclight screen up")), Key([], "XF86MonBrightnessDown", lazy.spawn("maclight screen down")), ] host_specific_mouse = { 'hopstrocity': [ Click([mod], "Button1", lazy.spawn("xdotool click 3")), ], } mouse = host_specific_mouse.get(hostname, []) # Next, we specify group names, and use the group name list to generate an appropriate # set of bindings for group switching. groups = [] # throwaway groups for random stuff for i in ['a', 's', 'd', 'f', 'u', 'i', 'o', 'p']: groups.append(Group(i)) keys.append(Key([mod], i, lazy.group[i].toscreen())) keys.append(Key([mod, "mod1"], i, lazy.window.togroup(i)))
], 20, ), ), ] # 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.toggle_fullscreen()) ] dgroups_key_binder = None dgroups_app_rules = [] # type: List main = None 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. { 'wmclass': 'confirm' }, { 'wmclass': 'dialog'
Key([], "XF86HomePage", app_or_group('WWW', '~/.local/bin/qutebrowser')), Key([], "XF86Mail", app_or_group('E-Mail', 'thunderbird')), ] for i in groups: if i.persist == True and not isinstance(i, ScratchPad): keys.extend([ # mod1 + letter of group = switch to group Key([mod], i.name, lazy.group[i.name].toscreen()), # mod1 + shift + letter of group = switch to & move focused window to group Key([mod, "shift"], i.name, window_to_group(i.name)), # mod1 + control + letter of group = switch to & move focused window to group Key([mod, "control"], i.name, windows_to_group(i.name)), ]) # Drag floating layouts. mouse = [ Drag(["control", alt], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag(["control", alt], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click(["control", alt], "Button2", lazy.window.bring_to_front()), Click([alt], "Button3", context_menu()), ]
}), widget.Systray(), widget.Clock(format='%Y-%m-%d %a %I:%M %p'), ], 24, ), ), ] # 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()), Click([], "Button4", lazy.spawn(terminal)), ] dgroups_key_binder = None dgroups_app_rules = [] # type: List main = None # WARNING: this is deprecated and will be removed soon 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. {'wmclass': 'confirm'}, {'wmclass': 'dialog'}, {'wmclass': 'download'}, {'wmclass': 'error'},
#padding=ICON_PADDING ), widget.Spacer(length=10), widget.Clock( fontsize=FONT_SIZE, format='%a %b %d, %H:%M', ), widget.CurrentLayoutIcon(scale=0.65), widget.CurrentLayout(fontsize=FONT_SIZE, ), ], (FONT_SIZE * 2), opacity=0.75), ) ] mouse = [ Click([mod, "shift"], "Button1", lazy.window.toggle_floating()), Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag([mod, alt], "Button1", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click([mod, "control"], "Button1", lazy.window.bring_to_front()) ] floating_layout = layout.floating.Floating(auto_float_types=( 'notification', 'toolbar', 'splash',
], 32, ), )) # 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()) ] # subscribe for change of screen setup, just restart if called @hook.subscribe.screen_change def restart_on_randr(qtile, ev): # TODO only if numbers of screens changed qtile.cmd_restart() dgroups_key_binder = None dgroups_app_rules = [] main = None follow_mouse_focus = True bring_front_click = False
], size=22), ), ] # 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()), Click([mod, "shift"], "Button1", lazy.window.toggle_floating()) ] dgroups_key_binder = None dgroups_app_rules = [] main = None follow_mouse_focus = True bring_front_click = False cursor_warp = False floating_layout = layout.Floating() auto_fullscreen = True focus_on_window_activation = "smart" # 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
# bottom=bar.Bar([ widget.CurrentLayout(), ], 30), ), Screen( wallpaper='~/.background.jpg', wallpaper_mode='fill', # bottom=bar.Bar([ widget.CurrentLayout(), ], 30), ), ] 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 main = None # WARNING: this is deprecated and will be removed soon follow_mouse_focus = False 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. {'wmclass': 'confirm'}, {'wmclass': 'dialog'}, {'wmclass': 'download'}, {'wmclass': 'error'},
border_width=[5, 0, 5, 0], border_color="#2e3440", ), bottom=bar.Gap(10), left=bar.Gap(10), right=bar.Gap(10), ), ] # Drag floating layouts. mouse = [ Drag("M-1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag("M-3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click("M-2", lazy.window.bring_to_front()), Click("M-C-3", lazy.spawn("jgmenu --csv-file=~/.config/jgmenu/qtile.csv")), Click("M-A-3", lazy.spawn("jgmenu_run")), ] # Startup scripts @hook.subscribe.startup_once def start_once(): home = os.path.expanduser("~") subprocess.call([home + "/.config/qtile/autostart.sh"]) # Window swallowing @hook.subscribe.client_new def _swallow(window):