# ---------------------------------------- # Importing # ---------------------------------------- # Used to control windows and window # placement from libqtile.command import lazy from libqtile.config import EzKey, EzDrag, EzClick import os @lazy.window.function def float_to_front(window): if window.floating: window.cmd_bring_to_front() # ---------------------------------------- # Default apps # ---------------------------------------- # I mostly use Rofi to launch apps so not # too important to me TERMINAL = "alacritty" SCREENSHOT = "flameshot gui" LAUNCHER = "rofi -show drun\ -theme-str '#window {\ anchor: center; location: center;\ y-offset: 0; x-offset: 0;\ }'" BROWSER = "firefox" # ---------------------------------------- # Modifier keys # ---------------------------------------- # Used to move and control window # placement within Qtile EzKey.modifier_keys = { "M": "mod4", # Windows "A": "mod1", # Alt "S": "shift", # Shift "C": "control", # Ctrl } # ---------------------------------------- # Mouse # ---------------------------------------- # Controling floating windows with a # mouse mouse = [ EzDrag( "M-", lazy.window.set_position_floating(), start=lazy.window.get_position(), ), EzDrag( "M-", lazy.window.set_size_floating(), start=lazy.window.get_size() ), EzClick("M-", lazy.window.bring_to_front()), ] # ---------------------------------------- # Window # ---------------------------------------- # Different lists of window controls for # Qtile window_navigation = [ EzKey("M-", lazy.group.next_window(), float_to_front()), EzKey("M-", lazy.layout.left()), EzKey("M-", lazy.layout.down()), EzKey("M-", lazy.layout.up()), EzKey("M-", lazy.layout.right()), ] window_displacement = [ EzKey("M-C-", lazy.layout.swap_left(), lazy.layout.shuffle_left()), EzKey("M-C-", lazy.layout.swap_down(), lazy.layout.shuffle_down()), EzKey("M-C-", lazy.layout.swap_up(), lazy.layout.shuffle_up()), EzKey("M-C-", lazy.layout.swap_right(), lazy.layout.shuffle_right()), ] window_dimension = [ EzKey("M-S-", lazy.layout.grow()), EzKey("M-S-", lazy.layout.shrink()), EzKey("M-S-", lazy.layout.reset()), ] window_toggles = [ EzKey("M-y", lazy.next_layout()), EzKey("M-q", lazy.window.kill()), EzKey("M-g", lazy.window.toggle_floating()), EzKey("M-m", lazy.window.toggle_fullscreen()), ] # ---------------------------------------- # Qtile and App # ---------------------------------------- # Launching apps and qtile settings qtilectl = [ EzKey("M-S-r", lazy.restart()), EzKey("M-S-q", lazy.shutdown()), EzKey("M-L", lazy.spawn("dm-tool lock")), ] rofi = [ EzKey("M-r", lazy.spawn(LAUNCHER)), ] application_spawns = [ EzKey("M-t", lazy.spawn(TERMINAL)), EzKey("M-b", lazy.spawn(BROWSER)), ] mediactl = [ EzKey("", lazy.spawn("playerctl play-pause -i firefox")), EzKey("", lazy.spawn("playerctl next -i firefox")), EzKey("", lazy.spawn("playerctl previous -i firefox")), ] volumectl = [ EzKey("", lazy.spawn("pactl set-sink-volume @DEFAULT_SINK@ +5%")), EzKey("", lazy.spawn("pactl set-sink-volume @DEFAULT_SINK@ -5%")), EzKey("", lazy.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")), EzKey("M-f", lazy.spawn(os.path.expanduser("~/.config/qtile/scripts/toggle_mic"))), ] scrcap = [ EzKey("", lazy.spawn(SCREENSHOT)), ] # ---------------------------------------- # Keybinds # ---------------------------------------- # Putting all keybinds into one list to # use in other scripts keys = [ *window_navigation, *window_displacement, *window_dimension, *window_toggles, *qtilectl, *rofi, *application_spawns, *mediactl, *volumectl, *scrcap, ]