Compare commits
2 Commits
1cb3a3c583
...
b5738be5d7
Author | SHA1 | Date | |
---|---|---|---|
b5738be5d7 | |||
e1f7a55af1 |
BIN
EndeavourOS/img/qtile.png
Normal file
BIN
EndeavourOS/img/qtile.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 210 KiB |
BIN
EndeavourOS/img/qtilekeyboard.png
Normal file
BIN
EndeavourOS/img/qtilekeyboard.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
342
EndeavourOS/návody/qtile.md
Normal file
342
EndeavourOS/návody/qtile.md
Normal file
@ -0,0 +1,342 @@
|
||||
# Qtile správce oken
|
||||
|
||||
[Qtile](https://qtile.org/) je správce oken pro Linux, který je napsaný v Pythonu a je známý svou flexibilitou a konfigurovatelností.
|
||||
|
||||
![](../img/qtile.png)
|
||||
|
||||
### Instalace
|
||||
Qtile lze nainstalovat tímto způsobem:
|
||||
|
||||
```
|
||||
sudo pacman -S qtile
|
||||
```
|
||||
|
||||
### Konfigurace
|
||||
|
||||
Konfigurační soubor Qtile je napsán v Pythonu, což umožňuje velkou flexibilitu. Soubor se obvykle nachází v **~/.config/qtile/config.py**. Zde je základní struktura konfiguračního souboru:
|
||||
|
||||
```
|
||||
from libqtile import bar, layout, widget
|
||||
from libqtile.config import Click, Drag, Group, Key, Match, Screen
|
||||
from libqtile.lazy import lazy
|
||||
from libqtile.utils import guess_terminal
|
||||
|
||||
mod = "mod4" # Mod key (usually the Windows key)
|
||||
terminal = guess_terminal()
|
||||
|
||||
keys = [
|
||||
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], "Return", lazy.spawn(terminal), desc="Launch terminal"),
|
||||
# Add more keybindings here
|
||||
]
|
||||
|
||||
groups = [Group(i) for i in "123456789"]
|
||||
|
||||
for i in groups:
|
||||
keys.extend([
|
||||
Key([mod], i.name, lazy.group[i.name].toscreen(),
|
||||
desc="Switch to group {}".format(i.name)),
|
||||
Key([mod, "shift"], i.name, lazy.window.togroup(i.name, switch_group=True),
|
||||
desc="Switch to & move focused window to group {}".format(i.name)),
|
||||
])
|
||||
|
||||
layouts = [
|
||||
layout.Columns(border_focus_stack=['#d75f5f', '#8f3d3d'], border_width=4),
|
||||
layout.Max(),
|
||||
# Add more layouts here
|
||||
]
|
||||
|
||||
widget_defaults = dict(
|
||||
font='sans',
|
||||
fontsize=12,
|
||||
padding=3,
|
||||
)
|
||||
extension_defaults = widget_defaults.copy()
|
||||
|
||||
screens = [
|
||||
Screen(
|
||||
top=bar.Bar(
|
||||
[
|
||||
widget.CurrentLayout(),
|
||||
widget.GroupBox(),
|
||||
widget.Prompt(),
|
||||
widget.WindowName(),
|
||||
widget.Chord(
|
||||
chords_colors={
|
||||
'launch': ("#ff0000", "#ffffff"),
|
||||
},
|
||||
name_transform=lambda name: name.upper(),
|
||||
),
|
||||
widget.Systray(),
|
||||
widget.Clock(format='%Y-%m-%d %a %I:%M %p'),
|
||||
widget.QuickExit(),
|
||||
],
|
||||
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())
|
||||
]
|
||||
|
||||
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 = True
|
||||
|
||||
# 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
|
||||
# this string if your java app doesn't work correctly. We may as well just lie
|
||||
# and say that we're a working one by default.
|
||||
#
|
||||
# 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"
|
||||
```
|
||||
**Další konfigurační soubory jsou:**
|
||||
|
||||
* Main config file: ~/.config/qtile/config.py
|
||||
|
||||
* Keybindings: ~/.config/qtile/modules/keys.py
|
||||
|
||||
* Bar: ~/.config/qtile/modules/screens.py
|
||||
|
||||
* Widgets: ~/.config/qtile/modules/widgets.py
|
||||
|
||||
* Auto-start: ~/.config/qtile/autostart.sh
|
||||
|
||||
### KLávesové zkratky
|
||||
|
||||
Klávesové zkratky jsou definovány v sekci keys. Například:
|
||||
|
||||
```
|
||||
keys = [
|
||||
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], "Return", lazy.spawn(terminal), desc="Launch terminal"),
|
||||
# Add more keybindings here
|
||||
]
|
||||
```
|
||||
|
||||
![](../img/qtilekeyboard.png)
|
||||
|
||||
### Rozvržení
|
||||
|
||||
Rozvržení oken lze konfigurovat v sekci **layouts**. Například:
|
||||
|
||||
```
|
||||
layouts = [
|
||||
layout.Columns(border_focus_stack=['#d75f5f', '#8f3d3d'], border_width=4),
|
||||
layout.Max(),
|
||||
# Add more layouts here
|
||||
]
|
||||
```
|
||||
### Widgety
|
||||
|
||||
Widgety jsou malé aplikace, které se zobrazují na panelu. Například:
|
||||
|
||||
```
|
||||
widget_defaults = dict(
|
||||
font='sans',
|
||||
fontsize=12,
|
||||
padding=3,
|
||||
)
|
||||
extension_defaults = widget_defaults.copy()
|
||||
|
||||
screens = [
|
||||
Screen(
|
||||
top=bar.Bar(
|
||||
[
|
||||
widget.CurrentLayout(),
|
||||
widget.GroupBox(),
|
||||
widget.Prompt(),
|
||||
widget.WindowName(),
|
||||
widget.Chord(
|
||||
chords_colors={
|
||||
'launch': ("#ff0000", "#ffffff"),
|
||||
},
|
||||
name_transform=lambda name: name.upper(),
|
||||
),
|
||||
widget.Systray(),
|
||||
widget.Clock(format='%Y-%m-%d %a %I:%M %p'),
|
||||
widget.QuickExit(),
|
||||
],
|
||||
24,
|
||||
),
|
||||
),
|
||||
]
|
||||
```
|
||||
### Spuštění
|
||||
|
||||
Po konfiguraci můžete **Qtile** spustit pomocí příkazu:
|
||||
|
||||
```
|
||||
qtile start
|
||||
```
|
||||
|
||||
### Dokumentace a komunita
|
||||
|
||||
Pro další informace a podporu můžete navštívit oficiální dokumentaci [Qtile na docs.qtile.org](https://docs.qtile.org/en/latest/) nebo se připojit k komunitě na [GitHub](https://github.com/qtile/qtile) a [Reddit](https://www.reddit.com/r/qtile/).
|
||||
|
||||
----
|
||||
|
||||
Qtile je samostatný správce oken, což znamená, že nemusíte mít nainstalováno žádné desktopové prostředí (DE) jako GNOME, KDE Plasma nebo XFCE. Qtile může být použit jako samostatný správce oken, který se stará o správu oken a pracovních ploch. Nicméně, pokud chcete využít některé funkce, které poskytují desktopová prostředí (například automatické správu energie, notifikace, systémové nástroje), můžete je nainstalovat a používat společně s Qtile.
|
||||
|
||||
### Použití Qtile bez desktopového prostředí
|
||||
|
||||
Pokud chcete používat Qtile bez desktopového prostředí, stačí nainstalovat Qtile a nastavit ho jako výchozí správce oken. To můžete udělat takto:
|
||||
|
||||
1. Nainstalujte Qtile:
|
||||
|
||||
```
|
||||
sudo pacman -S qtile
|
||||
```
|
||||
|
||||
2. Nastavte Qtile jako výchozí správce oken:
|
||||
|
||||
Vytvořte nebo upravte soubor **~/.xinitrc** a přidejte do něj řádek:
|
||||
|
||||
```
|
||||
exec qtile
|
||||
```
|
||||
|
||||
3. Spusťte Qtile:
|
||||
|
||||
```
|
||||
startx
|
||||
```
|
||||
|
||||
### Použití Qtile s desktopovým prostředím
|
||||
|
||||
Pokud chcete využít některé funkce desktopového prostředí, můžete nainstalovat a používat Qtile společně s ním. Například, můžete nainstalovat GNOME a používat Qtile jako správce oken:
|
||||
|
||||
1. Nainstalujte GNOME:
|
||||
|
||||
```
|
||||
sudo pacman -S gnome
|
||||
```
|
||||
|
||||
2. Nastavte Qtile jako správce oken v GNOME:
|
||||
|
||||
Vytvořte nebo upravte soubor **~/.xinitrc** a přidejte do něj řádek:
|
||||
|
||||
```
|
||||
exec gnome-session --session=qtile
|
||||
```
|
||||
|
||||
3. Spusťte GNOME s Qtile:
|
||||
|
||||
```
|
||||
startx
|
||||
```
|
||||
|
||||
### Použití Qtile s dalšími nástroji
|
||||
|
||||
Pokud chcete využít některé funkce desktopového prostředí, ale nechcete nainstalovat celé prostředí, můžete nainstalovat jednotlivé nástroje a používat je společně s Qtile. Například:
|
||||
|
||||
|
||||
* Notifikace: Nainstalujte dunst nebo xfce4-notifyd.
|
||||
|
||||
* Automatická správa energie: Nainstalujte tlp nebo powertop.
|
||||
|
||||
* Systémové nástroje: Nainstalujte gnome-system-monitor nebo htop.
|
||||
|
||||
### Příklad konfigurace s notifikacemi
|
||||
|
||||
Pokud chcete přidat notifikace pomocí **dunst**, můžete to udělat takto:
|
||||
|
||||
1. Nainstalujte dunst:
|
||||
|
||||
```
|
||||
sudo pacman -S dunst
|
||||
```
|
||||
|
||||
2. Přidejte dunst do konfiguračního souboru Qtile:
|
||||
|
||||
```
|
||||
from libqtile import hook
|
||||
import subprocess
|
||||
|
||||
@hook.subscribe.startup_once
|
||||
def autostart():
|
||||
subprocess.Popen(['dunst'])
|
||||
```
|
||||
Tímto způsobem můžete Qtile používat jako samostatný správce oken nebo v kombinaci s dalšími nástroji a desktopovými prostředími podle vašich potřeb.
|
||||
|
||||
## Rozdíl Qtile a i3wm
|
||||
|
||||
Qtile a i3wm jsou oba populární správci oken pro Linux, ale mají několik klíčových rozdílů v konfiguraci, použití a filozofii. Zde je přehled hlavních rozdílů mezi Qtile a i3wm:
|
||||
|
||||
### Jazyk konfigurace
|
||||
|
||||
* Qtile: Konfigurační soubor Qtile je napsán v Pythonu. To umožňuje velkou flexibilitu a možnost použít všechny funkce Pythonu pro konfiguraci a rozšíření.
|
||||
|
||||
* i3wm: Konfigurační soubor i3wm je napsán v jednoduchém textovém formátu. To znamená, že je snadnější pro začátečníky, ale méně flexibilní než Python.
|
||||
|
||||
### Konfigurace
|
||||
|
||||
* Qtile: Konfigurace Qtile je uložena v souboru ~/.config/qtile/config.py. Díky použití Pythonu můžete snadno vytvářet složité konfigurace a skripty.
|
||||
|
||||
* i3wm: Konfigurace i3wm je uložena v souboru ~/.config/i3/config. Konfigurační soubor je jednoduchý textový soubor, který je snadno čitelný a upravitelný.
|
||||
|
||||
### Rozvržení oken
|
||||
|
||||
* Qtile: Qtile podporuje různé typy rozvržení, jako jsou sloupce, řádky, plocha, plovoucí okna atd. Rozvržení lze snadno přepínat a konfigurovat.
|
||||
|
||||
* i3wm: i3wm používá stromovou strukturu pro rozvržení oken. To znamená, že okna jsou organizována do stromu, kde každý uzel může obsahovat další uzly nebo okna. Toto rozvržení je velmi efektivní pro práci s mnoha okny.
|
||||
|
||||
### Klávesové zkratky
|
||||
|
||||
* Qtile: Klávesové zkratky jsou definovány v konfiguračním souboru a mohou být velmi flexibilní díky použití Pythonu.
|
||||
|
||||
* i3wm: Klávesové zkratky jsou také definovány v konfiguračním souboru, ale jsou méně flexibilní než v Qtile. Nicméně, i3wm má velmi dobře propracované výchozí klávesové zkratky, které jsou pro mnoho uživatelů dostačující.
|
||||
|
||||
### Widgety a rozšíření
|
||||
|
||||
* Qtile: Qtile podporuje různé widgety, které lze přidat do panelu. Díky použití Pythonu je snadné vytvářet vlastní widgety a rozšíření.
|
||||
|
||||
* i3wm: i3wm má omezenou podporu pro widgety a rozšíření. Nicméně, existují externí nástroje, jako je i3status nebo polybar, které lze použít pro přidání widgetů do panelu.
|
||||
|
||||
### Komunita a podpora
|
||||
|
||||
* Qtile: Qtile má aktivní komunitu a dobrou dokumentaci. Podpora je dostupná na GitHubu a dalších fórech.
|
||||
|
||||
* i3wm: i3wm má velkou a aktivní komunitu a také dobrou dokumentaci. Podpora je dostupná na GitHubu, Reddit a dalších fórech.
|
||||
|
||||
### Výkon
|
||||
|
||||
* Qtile: Qtile je velmi lehký a rychlý správce oken, který má nízkou spotřebu paměti a procesoru.
|
||||
|
||||
* i3wm: i3wm je také velmi lehký a rychlý správce oken s nízkou spotřebou paměti a procesoru.
|
||||
|
||||
|
@ -23,7 +23,7 @@ sudo pacman -R i3lock
|
||||
Po dokončení odinstalace můžete nainstalovat **i3lock-color** pomocí pomocníka AUR:
|
||||
|
||||
````
|
||||
yay i3lock-color
|
||||
yay -S i3lock-color
|
||||
````
|
||||
|
||||
Jakmile skončíte s instalací, vytvořte nový adresář a vytvořte nový soubor pro uložení konfigurace pro zamykací obrazovku:
|
||||
|
Loading…
Reference in New Issue
Block a user