class WhenConfig(Config): keys = [ config.Key( ["control"], "k", lazy.window.toggle_floating(), ), config.Key( ["control"], "j", lazy.window.toggle_floating().when(focused=config.Match(wm_class="TestWindow")), ), config.Key( ["control"], "h", lazy.window.toggle_floating().when(focused=config.Match(wm_class="idonotexist")), ), config.Key( ["control"], "n", lazy.next_layout().when(focused=config.Match(wm_class="TestWindow")), ), config.Key( ["control"], "m", lazy.next_layout().when( focused=config.Match(wm_class="TestWindow"), if_no_focused=True ), ), ] layouts = [layout.MonadWide(), layout.MonadTall()]
def init_general(self): self.keys += [ Key([CONSTANTS.MOD], "Tab", lazy.next_layout(), desc="Toggle between layouts"), Key([CONSTANTS.MOD], "q", lazy.window.kill(), desc="Kill focused window"), Key([CONSTANTS.MOD, "shift"], "c", lazy.restart(), desc="Restart Qtile"), Key([CONSTANTS.MOD, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"), ]
def get_keys(): return [ Key([mod], "j", lazy.layout.down(), desc="Move focus down"), Key([mod], "k", lazy.layout.up(), desc="Move focus up"), Key([mod], "h", lazy.layout.shrink_main(), desc="Shrink main window"), Key([mod], "l", lazy.layout.grow_main(), desc="Expand main window"), Key([mod, "shift"], "h", lazy.layout.shrink(), desc="Shrink current window"), Key([mod, "shift"], "l", lazy.layout.grow(), desc="Expand current window"), Key([mod, "shift"], "space", lazy.window.toggle_floating(), desc="toggle floating"), 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], "n", lazy.layout.normalize(), desc="Reset all window sizes"), Key([mod], "Tab", lazy.next_layout(), desc="Go to next layout"), Key([mod, "shift"], "Tab", lazy.prev_layout(), desc="Go to previous layout"), Key([mod], "q", lazy.window.kill(), desc="Close focused window"), Key([mod, "control", "shift"], "r", lazy.restart(), desc="Restart Qtile"), Key([mod, "control", "shift"], "e", lazy.shutdown(), desc="Leave Qtile"), # FIXME: fullscreen seems glitchy Key([mod], "f", lazy.window.toggle_fullscreen(), desc="Toggle fullscreen window"), Key([mod], "u", manual_updates, desc="Manual update"), Key([mod], "s", switch_to_window, desc="Switch to window"), ]
def __get_window_keys(self) -> list: """ Creates a list of keys for navigating and manipulating windows. """ KC_FOCUS_DOWN = Key(self.mod, "j", lazy.layout.down()) KC_FOCUS_UP = Key(self.mod, "k", lazy.layout.up()) KC_MOVE_DOWN = Key(self.mod, "j", lazy.layout.shuffle_up()) KC_MOVE_UP = Key(self.mod, "k", lazy.layout.shuffle_down()) KC_NEXT_LAYOUT = Key(self.mod, "Tab", lazy.next_layout()) KC_PREV_LAYOUT = Key(self.mod_shift, "Tab", lazy.prev_layout()) KC_KILL = Key(self.mod, "q", lazy.window.kill()) return [ KC_FOCUS_DOWN, KC_FOCUS_UP, KC_MOVE_DOWN, KC_MOVE_UP, KC_NEXT_LAYOUT, KC_PREV_LAYOUT, KC_KILL ]
def create_layout_keys(self): ############ BINDINGS FOR MONADTALL ############## modifier = [MOVEMENT_KEY] layout_left = Key(modifier, LEFT, lazy.layout.left()) layout_right = Key(modifier, RIGHT, lazy.layout.right()) layout_down = Key(modifier, DOWN, lazy.layout.down()) layout_up = Key(modifier, UP, lazy.layout.up()) toogle_layout = Key(modifier, TOOGLE_LAYOUT, lazy.next_layout()) self.keys += [ layout_left, layout_right, layout_down, layout_up, toogle_layout ]
def keys(mod, groups) -> List[Key]: keys = [ # --> Pane navigation commands. Key([mod], "j", lazy.layout.down()), Key([mod], "k", lazy.layout.up()), Key([mod, "shift"], "j", lazy.layout.shuffle_down()), Key([mod, "shift"], "k", lazy.layout.shuffle_up()), Key([mod], "h", lazy.layout.previous()), Key([mod], "l", lazy.layout.next()), Key([mod, "shift"], "h", lazy.layout.client_to_previous()), Key([mod, "shift"], "l", lazy.layout.client_to_next()), Key([mod], "backslash", lazy.layout.add()), Key([mod, "shift"], "backslash", lazy.layout.delete()), # --> Window state commands. Key([mod], "f", lazy.window.toggle_fullscreen()), Key([mod, "shift"], "f", lazy.window.toggle_floating()), Key([mod, "shift"], "c", lazy.window.kill()), # --> Layout navigation commands. Key([mod], "space", lazy.layout.rotate()), Key([mod, "shift"], "space", lazy.next_layout()), Key([mod], "t", lazy.layout.toggle_split()), # --> Spawn commands Key([mod], "Return", lazy.spawn(util("program_menu"))), Key([mod, "shift"], "Return", lazy.spawn(util("terminal"))), # --> Process commands Key([mod], "q", lazy.restart()), Key([mod, "shift"], "q", lazy.shutdown()), ] # mod1 + letter of group = switch to group for group in groups: keys.extend( [ Key([mod], group.name, lazy.group[group.name].toscreen()), Key([mod, "shift"], group.name, lazy.window.togroup(group.name)), ] ) return keys
def __init__(self, mod): self.mod = mod self.keys = [ Key([self.mod], "j", lazy.layout.down()), Key([self.mod], "k", lazy.layout.up()), Key([self.mod], "h", lazy.layout.left()), Key([self.mod], "l", lazy.layout.right()), Key([self.mod, "shift"], "j", lazy.layout.shuffle_down()), Key([self.mod, "shift"], "k", lazy.layout.shuffle_up()), Key([self.mod, "shift"], "h", lazy.layout.shuffle_left()), Key([self.mod, "shift"], "l", lazy.layout.shuffle_right()), Key([self.mod, "control"], "j", lazy.layout.grow_down()), Key([self.mod, "control"], "k", lazy.layout.grow_up()), Key([self.mod, "control"], "h", lazy.layout.grow_left()), Key([self.mod, "control"], "l", lazy.layout.grow_right()), Key([self.mod, "shift"], "n", lazy.layout.normalize()), Key([self.mod, "shift"], "Return", lazy.layout.toggle_split()), Key([self.mod], "Return", lazy.spawn("alacritty")), Key([self.mod], "Tab", lazy.next_layout()), Key([self.mod], "w", lazy.window.kill()), Key([self.mod, "control"], "r", lazy.restart()), Key([self.mod, "control"], "q", lazy.shutdown()), Key([self.mod], "p", lazy.spawn("rofi -show run")), Key( [self.mod, "shift"], "s", lazy.spawn( "bash -c 'maim -s -u | xclip -selection clipboard -t image/png -i'" ), ), Key( [self.mod, "shift"], "w", lazy.spawn("bash -c 'xkill'"), ), EzKey("M-S-p", set_kbd_lo), ]
lazy.window.toggle_fullscreen(), desc='Toggle Fullscreen on Current Window'), Key([mod], "k", lazy.layout.up(), desc='Swap Up In Current Window Stack'), Key([mod], "j", lazy.layout.down(), desc='Swap Down In Current Window Stack'), Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc='Move Current Window Up In Stack'), Key([mod, "shift"], "j", lazy.layout.shuffle_down(), desc='Move Current Window Down In Stack'), Key([mod], "Tab", lazy.next_layout(), desc='Toggle Layouts'), Key([mod], "h", lazy.prev_screen(), desc='Switch Focus to Left'), Key([mod], "l", lazy.next_screen(), desc='Switch Focus to Right') ] ##### GROUPS ##### group_names = [("Web", { 'layout': 'monadtall' }), ("Term", { 'layout': 'monadtall' }), ("School", { 'layout': 'monadtall' }), ("Game", { 'layout': 'max' }), ("Music", {
# movement controls Key([mod], "h", lazy.layout.left()), # focus left Key([mod], "l", lazy.layout.right()), # focus right Key([mod], "j", lazy.layout.down()), # focus down Key([mod], "k", lazy.layout.up()), # focus up Key([mod], "space", lazy.layout.next()), Key([mod, "shift"], "h", lazy.layout.shuffle_left()), # move window left Key([mod, "shift"], "l", lazy.layout.shuffle_right()), # move window right Key([mod, "shift"], "j", lazy.layout.shuffle_down()), # move window down Key([mod, "shift"], "k", lazy.layout.shuffle_up()), # move window up Key([mod, "control"], "h", lazy.layout.grow_left()), # grow window left Key([mod, "control"], "l", lazy.layout.grow_right()), # grow window right Key([mod, "control"], "j", lazy.layout.grow_down()), # grow window down Key([mod, "control"], "k", lazy.layout.grow_up()), # grow window up Key([mod], "n", lazy.layout.normalize()), # reset window sizes Key([mod], "Tab", lazy.next_layout()), # switch between layouts Key([mod], "w", lazy.window.kill()), # kill window Key([mod, "control"], "r", lazy.restart()), # restart qtile Key([mod, "control"], "q", lazy.shutdown()), # shutdown qtile Key([mod], "r", lazy.spawncmd()), Key([mod], "Return", lazy.spawn("alacritty")), Key([mod, "shift"], "Return", lazy.layout.toggle_split()), # applications Key([mod, "mod1"], "b", lazy.spawn("qutebrowser")), Key([mod, "mod1"], "s", lazy.spawn("steam")), Key([mod, "mod1"], "e", lazy.spawn("pcmanfm")) ] def init_floating_layout(): return layout.Floating(border_focus="ffb86c")
desc='Move window down in current stack'), Key([mod, 'shift'], 'Up', lazy.layout.shuffle_up(), desc='Move window up in current stack'), Key([mod, 'shift'], 'Right', lazy.layout.shuffle_right(), desc='Move window right in current stack'), Key([mod, 'shift'], 'Left', lazy.layout.shuffle_left(), desc='Move window left in current stack'), # Adjust layout Key([mod], 'KP_Add', lazy.layout.increase_ratio(), desc='Increase master/slave size ratio'), Key([mod], 'KP_Subtract', lazy.layout.decrease_ratio(), desc='Decrease master/slave size ratio'), # General Qtile controls Key([mod], 'Tab', lazy.next_layout(), desc='Toggle between layouts'), Key([mod], 'f', lazy.window.toggle_fullscreen(), desc='Toggle fullscreen for focused window'), Key([mod], 'space', lazy.window.toggle_floating(), desc='Toggle floating for focused window'), Key([mod, 'shift'], 'q', lazy.window.kill(), desc='Kill focused window'), Key([mod, 'shift'], 'r', lazy.restart(), desc='Restart qtile'), Key([mod, 'control', 'shift'], 'q', lazy.shutdown(), desc='Shutdown qtile'), # Volume Key([], 'XF86AudioRaiseVolume', lazy.spawn( 'amixer sset Master 4%+'), desc='Raise volume'), Key([], 'XF86AudioLowerVolume', lazy.spawn( 'amixer sset Master 4%-'), desc='Lower volume'), Key([], 'XF86AudioMute', lazy.spawn( 'amixer sset Master toggle'), desc='Toggle mute'),
# commands={ # 'play/pause': '[ $(mocp -i | wc -l) -lt 2 ] && mocp -p || mocp -G', # 'next': 'mocp -f', # 'previous': 'mocp -r', # 'quit': 'mocp -x', # 'open': 'urxvt -e mocp', # 'shuffle': 'mocp -t shuffle', # 'repeat': 'mocp -t repeat', # }, # pre_commands=['[ $(mocp -i | wc -l) -lt 1 ] && mocp -S'], # rofi # ))), # Toggle between different layouts as defined below 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()),
"l", lazy.layout.grow_right(), desc="Grow window to the right"), Key(["mod4", "control"], "j", lazy.layout.grow_down(), desc="Grow window down"), Key(["mod4", "control"], "k", lazy.layout.grow_up(), desc="Grow window up"), Key(["mod4"], "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( ["mod4", "shift"], "Return", lazy.layout.toggle_split(), desc="Toggle between split and unsplit sides of stack", ), # Toggle between different layouts as defined below EzKey('M-<space>', lazy.next_layout(), desc="Toggle between layouts"), EzKey('M-C-c', lazy.window.kill(), desc="Kill focused window"), EzKey('M-C-r', lazy.restart(), desc="Restart Qtile"), Key(["mod4"], "r", lazy.spawncmd(), desc="Spawn a command using a prompt widget"), ]
Key([mod], "l", lazy.layout.grow(), desc="Expand window"), Key([mod], "n", lazy.layout.normalize(), desc='Normalize window size ratios'), # Toggle full screen Key([mod], "f", lazy.window.toggle_fullscreen(), desc="Toggle fullscreen"), # Toggle floating Key([mod, "control"], "space", lazy.window.toggle_floating(), desc="Toggle floating"), # Switch to the next layout Key([mod], "space", lazy.next_layout(), desc="Switch to the next layout"), # Open a terminal Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"), # Run rofi in dmenu mode Key([mod], "r", lazy.spawn(launcher), desc="Run rofi"), Key([mod], "w", lazy.window.kill(), desc="Kill focused window"), # Audio controls Key([], "XF86AudioMute", lazy.spawn("amixer -D pulse set Master 1+ toggle"), desc="Toggle mute"), Key([], "XF86AudioLowerVolume", lazy.spawn("amixer -q -D pulse sset Master 5%-"),
'M-S-l': lazy.layout.move_right(), 'M-A-h': lazy.layout.integrate_left(), 'M-A-j': lazy.layout.integrate_down(), 'M-A-k': lazy.layout.integrate_up(), 'M-A-l': lazy.layout.integrate_right(), 'M-d': lazy.layout.mode_horizontal(), 'M-v': lazy.layout.mode_vertical(), 'M-S-d': lazy.layout.mode_horizontal_split(), 'M-S-v': lazy.layout.mode_vertical_split(), 'M-a': lazy.layout.grow_width(30), 'M-x': lazy.layout.grow_width(-30), 'M-S-a': lazy.layout.grow_height(30), 'M-S-x': lazy.layout.grow_height(-30), 'M-n': lazy.layout.reset_size(), 'M-w': lazy.window.kill(), 'M-<Tab>': lazy.next_layout(), 'M-<Return>': lazy.spawn(terminal), 'M-r': lazy.spawn("rofi -show run"), 'M-C-r': lazy.restart(), 'M-C-q': lazy.shutdown(), } keys = [EzKey(k, v) for k, v in keymap.items()] groups = [Group(i) for i in "1234567890"] for i in groups: keys.extend([ Key([mod], i.name, lazy.group[i.name].toscreen(),
# Move windows up or down in current stack. Key([mod, 'control'], 'k', lazy.layout.shuffle_down()), Key([mod, 'control'], 'j', lazy.layout.shuffle_up()), # Switch window focus to other pane(s) of stack. Key([mod], 'space', lazy.layout.next()), # Swap panes of split stack. Key([mod, 'shift'], 'space', lazy.layout.rotate()), # Open the terminal. Key([mod], 'Return', lazy.spawn(term)), # Toggle between different layouts as defined below. Key([mod], 'Tab', lazy.next_layout()), Key([mod], 'w', lazy.window.kill()), # Manage the DE. Key([mod, 'control'], 'r', lazy.restart()), # --> refresh. Key([mod, 'control'], 'q', lazy.shutdown()), # --> shutdown. Key([mod], 'r', lazy.spawncmd()), # --> spawn. # Spawn rofi d-run. Key([mod], 'd', lazy.spawn('rofi -show drun')), # Media keys. Key([], 'XF86AudioMute', os.system('$~/.config/dunst/dunstrc/volume.sh up')), Key([], 'XF86AudioRaiseVolume', lazy.spawn('amixer -c 1 -q set Master 5%+')),
desc="Move window up in current stack "), Key([mod, shift], "h", lazy.layout.shuffle_left(), desc="Move window left in current stack "), Key([mod, shift], "l", lazy.layout.shuffle_right(), desc="Move window right in current stack "), # Terminal y firefox Key([mod], "Return", lazy.spawn(terminal), desc="Inicia terminal"), Key([mod], "b", lazy.spawn("firefox"), desc="Inicia firefox"), # Cambiar Layout, y Eliminar ventanas. Key([mod], "Tab", lazy.next_layout(), desc="Cambia layout"), Key([mod, "shift"], "Tab", lazy.prev_layout(), desc="cambiar layout anterior"), Key([mod], "w", lazy.window.kill(), desc="Cerrar ventana"), # Reiniciar Qtile, Ejecutar comando Key([mod, ctrl], "r", lazy.restart(), desc="Reiniciar qtile"), # Flip Layout Key([mod], "t", lazy.flip()), # Explorador de archivos Key([mod], "e", lazy.spawn("pcmanfm-qt")),
Key([], "XF86AudioLowerVolume", lazy.spawn("volumenotify -5")), Key([], "XF86AudioMute", lazy.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")), # music volume # Key(["mod4"], "XF86AudioRaiseVolume", lazy.spawn("mpc volume +5")), # Key(["mod4"], "XF86AudioLowerVolume", lazy.spawn("mpc volume -5")), Key([mod], "Tab", lazy.run_extension( extension.WindowList(item_format="{group}: {window}", foreground=BLUE, selected_background=BLUE)), desc='window list'), # Toggle between different layouts as defined below Key([mod, 'shift'], "Tab", lazy.next_layout()), Key([mod], "q", lazy.window.kill()), Key([mod, "control"], "r", lazy.restart()), Key([mod, "control"], "q", lazy.shutdown()), Key([mod], "r", lazy.spawncmd()), ] group_names = ["1 ï„ ", "2 ", "3 ", "4 ï‚›", "5 ", "6 ", "7 ", "8 λ", "9 ï„°"] groups = [Group(name, layout='monadtall') for name in group_names] for i, name in enumerate(group_names): indx = str(i + 1) keys += [ Key([mod], indx, lazy.group[name].toscreen()), Key([mod, 'shift'], indx, lazy.window.togroup(name)) ]
else: command += [ "maim", f"/home/pierre/Pictures/{time.now().isoformat()}.png" ] if rect_select: command += ["-s"] subprocess.run(command) return f keys = [ # Layout change Key("M-<Tab>", lazy.next_layout()), ## BSP Layout # Change focus Key("M-j", lazy.layout.down()), Key("M-k", lazy.layout.up()), Key("M-h", lazy.layout.left()), Key("M-l", lazy.layout.right()), # Move window Key("M-S-j", lazy.layout.shuffle_down()), Key("M-S-k", lazy.layout.shuffle_up()), Key("M-S-h", lazy.layout.shuffle_left()), Key("M-S-l", lazy.layout.shuffle_right()), # Move window Key("M-A-j", lazy.layout.flip_down()), Key("M-A-k", lazy.layout.flip_up()),
def init_keys(self) -> list[Key]: """Inits and returns the keybindings.""" self.keys = [ # Layout controls Key( [self.keys_holder.SUPER], self.keys_holder.TAB, lazy.next_layout(), desc="Toggle between layouts", ), # Change focus Key( [self.keys_holder.SUPER], self.keys_holder.SPACE, lazy.layout.next(), desc="Switch window focus to other pane(s) of stack", ), Key( [self.keys_holder.SUPER], self.keys_holder.K, lazy.layout.up(), desc="Move focus up in stack pane", ), Key( [self.keys_holder.SUPER], self.keys_holder.J, lazy.layout.down(), desc="Move focus down in stack pane", ), Key( [self.keys_holder.SUPER], self.keys_holder.H, lazy.layout.left(), desc="Move focus left in stack pane", ), Key( [self.keys_holder.SUPER], self.keys_holder.L, lazy.layout.right(), desc="Move focus right in stack pane", ), # Move window Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.SPACE, lazy.layout.rotate(), lazy.layout.flip(), desc="Swap panes of split stack", ), Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.K, lazy.layout.shuffle_up(), lazy.layout.section_up(), desc="Move window up in current stack", ), Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.J, lazy.layout.shuffle_down(), lazy.layout.section_down(), desc="Move window down in current stack", ), Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.H, lazy.layout.shuffle_left(), desc="Move window left in current stack", ), Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.L, lazy.layout.shuffle_right(), desc="Move window right in current stack", ), # Resize window or increase number in master (tile) Key( [self.keys_holder.SUPER], self.keys_holder.M, lazy.layout.maximize(), desc="Toggle between min and max sizes", ), Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.M, lazy.window.toggle_fullscreen(), desc="Toggle fullscreen", ), Key( [self.keys_holder.SUPER, self.keys_holder.CTRL], self.keys_holder.K, lazy.layout.grow(), lazy.layout.increase_nmaster(), desc=("Expand window (monadtall)," "increase number in master pane (tile)"), ), Key( [self.keys_holder.SUPER, self.keys_holder.CTRL], self.keys_holder.J, lazy.layout.shrink(), lazy.layout.decrease_nmaster(), desc=("Shrink window (monadtall)," "decrease number in master pane (tile)"), ), # Toggle floating Key( [self.keys_holder.SUPER], self.keys_holder.F, lazy.window.toggle_floating(), desc="Toggle floating mode on focused window", ), # Move floating windows to front Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.F, float_to_front, desc="Move floating windows to front", ), # Toggle split Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.ENTER, lazy.layout.toggle_split(), desc="Toggle between split and unsplit sides of stack", ), # Reset windows/layout Key( [self.keys_holder.SUPER], self.keys_holder.N, lazy.layout.normalize(), desc="Normalize window size ratios", ), # Close window Key( [self.keys_holder.SUPER], self.keys_holder.W, lazy.window.kill(), desc="Close focused window", ), # Apps Key( [self.keys_holder.SUPER], self.keys_holder.R, lazy.spawn(self.apps.LAUNCHER), desc="Open default launcher", ), Key( [self.keys_holder.SUPER], self.keys_holder.ENTER, lazy.spawn(self.apps.TERM), desc="Open default terminal", ), Key( [self.keys_holder.SUPER], self.keys_holder.B, lazy.spawn(self.apps.WEB), desc="Open default browser", ), Key( [self.keys_holder.SUPER], self.keys_holder.E, lazy.spawn(self.apps.EDITOR), desc="Open default editor", ), # Screenshots Key( [], self.keys_holder.PRINT, lazy.spawn(self.scripts_holder.select_shot_clip), desc="Clip selected area screenshot", ), Key( [self.keys_holder.SUPER], self.keys_holder.PRINT, lazy.spawn(self.scripts_holder.select_shot), desc="Save selected area screenshot", ), Key( [self.keys_holder.SUPER, self.keys_holder.SHIFT], self.keys_holder.PRINT, lazy.spawn(self.scripts_holder.full_shot), desc="Save fullscreen screenshot", ), # Volume controls Key( [], self.keys_holder.AUDIO_RAISE, lazy.spawn("pamixer -i 2"), desc="Raise volume", ), Key( [], self.keys_holder.AUDIO_LOWER, lazy.spawn("pamixer -d 2"), desc="Lower volume", ), Key( [], self.keys_holder.AUDIO_MUTE, lazy.spawn("pamixer -t"), desc="Toggle mute", ), # Brightness Key( [], self.keys_holder.BRIGHT_UP, lazy.spawn("brightnessctl set +5%"), desc="Increase monitor brightness", ), Key( [], self.keys_holder.BRIGHT_DOWN, lazy.spawn("brightnessctl set 5%-"), desc="Decrease monitor brightness", ), # Lock screen Key( [self.keys_holder.SUPER, self.keys_holder.CTRL], self.keys_holder.L, lazy.spawn(self.apps.LOCKER), desc="Lock screen", ), # Restart qtile Key( [self.keys_holder.SUPER, self.keys_holder.CTRL], self.keys_holder.R, lazy.restart(), desc="Restart qtile config", ), # Quit qtile Key( [self.keys_holder.SUPER, self.keys_holder.CTRL], self.keys_holder.Q, lazy.shutdown(), desc="Exit qtile", ), ] return self.keys
Key([mod, "shift"], "space", lazy.layout.rotate(), desc="Swap panes of split stack"), # Multiple stack panes Key([mod, "shift"], "Return", lazy.layout.toggle_split(), desc="Toggle between split and unsplit sides of stack"), # Launch guess terminal Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"), # Toggle between different layouts as defined below Key([mod], "Tab", lazy.next_layout(), desc="Next available layout"), Key([mod, "shift"], "Tab", lazy.prev_layout(), desc="Previous available layout"), # Direct actions from Qtile Key([mod], "w", lazy.window.kill(), desc="Kill focused window"), Key([mod, "control"], "r", lazy.restart(), desc="Restart qtile"), Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown qtile"), # Key([mod], "r", lazy.spawncmd(), # desc="Spawn a command using a prompt widget"), # Keybindings for Rofi Key([mod], "m", lazy.spawn("rofi -show drun"), desc="Launch Rofi Run List"),
desc="Grow focused Window down"), Key([mod, ctrl], "k", lazy.layout.grow_up(), desc="Grow focused Window up"), ]) keys.extend([ # Switch focus between monitors Key([mod], "comma", lazy.prev_screen(), desc="Move focus to prev Screen"), Key([mod], "period", lazy.next_screen(), desc="Move focus to next Screen"), Key([mod], "F1", lazy.to_screen(0), desc="Move focus to 1st Screen"), Key([mod], "F2", lazy.to_screen(1), desc="Move focus to 2nd Screen"), ]) keys.extend([ # Switch between layouts Key([mod], "space", lazy.next_layout(), desc="Switch Laouts"), Key([mod, shift], "space", lazy.prev_layout(), desc="Switch Laouts"), Key([mod, alt], "space", lazy.to_layout_index(0), desc="Switch to default Layout"), Key([mod], "equal", 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(),
), Key( [], "XF86AudioStop", lazy.spawn( "dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop" ), desc="Stop song", ), # --- # | Windows management # --- EzKey("M-S-c", lazy.window.kill(), desc="Kill focused window"), Key([mod], "Tab", lazy.layout.next(), desc="Alt-tab switch to next window"), Key([mod], "f", lazy.next_layout(), desc="Toggle max layout"), Key([mod], "o", lazy.next_screen(), desc="Next screen"), # --- # | Qtile management # --- # - Reload Key([mod, ctrl], "r", lazy.reload_config(), desc="Reload the config"), # - Logout Key([mod, ctrl], "q", lazy.shutdown(), desc="Shutdown Qtile"), # - Spawn Key([mod], "r", lazy.spawncmd(), desc="Spawn a command using a prompt widget"), ]
Key([mod, ctrl], "Right", lazy.layout.shuffle_right()), Key([mod, ctrl], "Left", lazy.layout.shuffle_left()), Key([mod, alt], "Down", lazy.layout.grow_down()), Key([mod, alt], "Up", lazy.layout.grow_up()), Key([mod, alt], "Left", lazy.layout.grow_left()), Key([mod, alt], "Right", lazy.layout.grow_right()), Key([mod, shft], "Return", lazy.layout.toggle_split()), Key([mod, shft], "n", lazy.layout.normalize()), # Computer control Key([mod, ctrl], "r", lazy.restart()), Key([mod, ctrl], "q", lazy.shutdown()), Key([mod], "l", lazy.spawn(command.lock)), Key([mod], "Return", lazy.spawn(command.terminal)), Key([mod], "w", lazy.window.kill()), Key([mod], "space", lazy.next_layout()), Key([mod], "Tab", lazy.screen.next_group()), Key([mod, shft], "Tab", lazy.screen.prev_group()), Key([mod, ctrl], "l", lazy.spawn(command.suspend)), # Toggle between different layouts as defined below Key([mod], "r", lazy.spawncmd()), #app shortcuts Key([mod, alt], "n", lazy.spawn("networkmanager_dmenu")), Key([mod, alt], "q", lazy.spawn(command.browser)), Key([mod, alt], "a", lazy.spawn(command.app_menu)), Key([mod, alt], "r", lazy.spawn(command.run)), Key([mod, alt], "p", lazy.spawn(command.pacman)), Key([mod, alt], "e", lazy.spawn(command.configure)), Key([mod, alt], "l", lazy.spawn(command.screen_layout)),
# Tree layout controls ([win, "control"], "Up", lazy.layout.section_up()), ([win, "control"], "Down", lazy.layout.section_down()), # Switch window focus to other pane(s) of stack ([win], "space", lazy.layout.next()), # Swap panes of split stack ([win, "shift"], "space", lazy.layout.rotate()), # Toggle between split and unsplit sides of stack ([win, "shift"], "Return", lazy.layout.toggle_split()), # Toggle between different layouts as defined below ([win], "Tab", lazy.next_layout()), # Close focused window ([win], "w", lazy.window.kill()), # Launch terminal ([win], "Return", lazy.spawn(terminal)), # Launch Apps ([win], "r", lazy.spawn("rofi -show drun")), # Launch App in window ([win, "shift"], "r", lazy.spawn("rofi -show")), # Screenshots ([win, "shift"], "s", lazy.spawn("flameshot gui")),
Key([mod], "space", lazy.layout.next()), # Swap panes of split stack Key([mod, "shift"], "space", lazy.layout.rotate()), # 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()), # toggle the Terminal Key([mod], "Return", lazy.spawn("st")), # Toggle between different layouts as defined below Key([mod], "Tab", lazy.next_layout()), Key([mod], "w", lazy.window.kill()), # qtile controls Key([mod, "control"], "r", lazy.restart()), Key([mod, "control"], "q", lazy.shutdown()), Key([mod, "control"], "l", lazy.spawn(Commands.lockscreen)), Key([mod, "control"], 'f', lazy.window.toggle_floating()), Key([mod], "r", lazy.spawncmd()), ### COMMANDS Key([mod, "shift"], "r", lazy.spawn(Commands.launcher)), Key([mod, "shift"], "b", lazy.spawn(Commands.bluetooth_on)), Key([mod, "shift"], "q", lazy.spawn(Commands.bluetooth_off)), # Display Fix: Double Monitor
from libqtile.config import Key from libqtile.lazy import lazy LAYOUT_KEYS = [ Key(["shift"], "Tab", lazy.next_layout(), desc="Toggle between layouts"), ]
Key([], 'd', lazy.spawn('rofi -show drun'), desc='$Rofi drun'), Key([], 'e', lazy.spawn('emacs'), desc='Emacs'), Key([], 'f', lazy.spawn('nautilus'), desc='Files'), Key([], 'r', lazy.spawn('konsole -e ranger'), desc='Ranger'), Key([], 'v', lazy.spawn('konsole -e nvim'), desc='Nvim'), Key([], 'w', lazy.spawn('chromium'), desc='Web (chromium)'), Key([], 'q', lazy.spawn('qutebrowser'), desc='Qutebrowser'), ] l_commands = [ Key([], 'm', lazy.group.setlayout('monadtall'), desc='MonadTall'), Key([], 'w', lazy.group.setlayout('monadwide'), desc='MonadWide'), Key(['shift'], 'm', lazy.group.setlayout('monadwide'), desc='MonadWide'), Key([], 'z', lazy.group.setlayout('max'), desc='Zoom (max)'), Key([], 's', lazy.group.setlayout('stack'), desc='Stack'), Key([], 'Tab', lazy.next_layout(), desc='Next layout'), ] g_commands = [ Key([], 'd', lazy.group['Dev'].toscreen(), desc='Open Dev group'), Key([], 'h', lazy.group['Home'].toscreen(), desc='Open Home group'), Key([], 'w', lazy.group['Web'].toscreen(), desc='Open Web group'), Key([], 'p', lazy.group['Python'].toscreen(), desc='Open Python group'), Key([], 'i', lazy.group['IM'].toscreen(), desc='Open IM group'), Key([], 's', lazy.group['Sys'].toscreen(), desc='Open System group'), ] theme_switch_commands = [ Key([], 'g', lazy.function(set_theme('gruvbox')), desc='Gruvbox'), Key([], 'd', lazy.function(set_theme('dracula')), desc='Dracula'), Key([], 's', lazy.function(set_theme('solarized')), desc='Solarized'),
# 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, "control"], "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, "shift"], "q", lazy.window.kill(), desc="Kill focused window" ), Key([mod, "shift"], "r", lazy.restart(), desc="Restart qtile" ), Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown qtile" ),
"space", lazy.layout.rotate(), desc="Swap panes of split stack"), # 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], "f", lazy.window.toggle_fullscreen(), desc="Focused window to/from fullscreen"), Key([mod, "shift"], "f", lazy.window.toggle_floating(), desc="Focused window to/from floating"), Key([mod, "control"], "r", lazy.restart(), desc="Restart qtile"), Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown qtile"), # Application Keybindings Key([mod], "d", lazy.spawn("dmenu_run -p 'Run: '")), Key([mod], "w", lazy.spawn("qutebrowser")),
lazy.spawn(termfloat + " -e ncmpcpp"), desc="Open ncmpcpp"), Key([mod, "shift"], "p", lazy.spawn("pcmanfm"), desc="Open pcmanfm"), Key([mod, "shift"], "r", lazy.restart(), desc="Qtile reload"), Key([mod, "shift"], "x", lazy.spawm("killall ffmpeg"), desc="Kill ffmpeg"), Key([mod, "shift"], "w", lazy.spawn("firefox"), desc="Open firefox"), Key([mod, "shift"], "Return", lazy.spawn(termfloat), desc="Open floating terminal"), # Mod4 (Super) + mod1 (Alt) + Key(["mod1"], "a", lazy.spawn("pavucontrol"), desc="Open pavucontrol"), Key([mod, "mod1"], "q", lazy.shutdown(), desc="Logout qtile"), Key([mod, "mod1"], "r", lazy.restart(), desc="Qtile reload"), Key([mod, "mod1"], "space", lazy.next_layout(), desc="Next layout"), Key([mod, "mod1"], "Tab", lazy.screen.prev_group(), desc="Sreen prev group"), # mod1 (Alt) + Key(["mod1"], "Tab", lazy.screen.next_group(), desc="Sreen next group"), ] groups = [] group_names = ("1", "2", "3", "4", "5", "6", "7", "8", "9", "10") group_layouts = ("bsp", "bsp", "bsp", "bsp", "bsp", "bsp", "bsp", "bsp", "floating", "bsp")