364 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			364 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <html lang="cs">
 | |
| 
 | |
| <head>
 | |
|     <meta charset="UTF-8" />
 | |
|     <meta content="EndeavourOS svobodný operační systém...." name="description" />
 | |
|     <meta content="EndeavourOS, ArchLinux" name="keywords" />
 | |
|     <meta content="Kankys" name="author" />
 | |
| 
 | |
|     <meta content="width=device-width, initial-scale=1.0" name="viewport" />
 | |
|     <link href="assets/style.css" rel="stylesheet" />
 | |
|     <link href="/img/icons.png" rel="shortcut icon" />
 | |
|     <script crossorigin="anonymous" src="https://kit.fontawesome.com/0a43c6cd1f.js"></script>
 | |
|     <!--icons dark, go to up-->
 | |
|     <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet" />
 | |
| 
 | |
|     <!--ubuntu fonts-->
 | |
|     <style>
 | |
|         @import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
 | |
|     </style>
 | |
| 
 | |
|     <title>EndeavourOS - 🔑 Řešení chyb s klíči v Arch Linux a EndeavourOS</title>
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
|     <?php require 'assets/header.php'; ?>
 | |
|     <main>
 | |
|         <section class="welcome">
 | |
|             <h1>Qtile správce oken</h1>
 | |
|             <p><a href="https://qtile.org/" target="_blank">Qtile</a> je správce oken pro Linux, který je napsaný v
 | |
|                 Pythonu a je známý svou flexibilitou a konfigurovatelností.</p>
 | |
|             <img src="img/qtile.png" alt="" style="width: 65%;height: auto;">
 | |
|             <h3>Instalace</h3>
 | |
|             <p>Qtile lze nainstalovat tímto způsobem:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|           sudo pacman -S qtile
 | |
|         </pre>
 | |
|             </div>
 | |
|             <h3>Konfigurace</h3>
 | |
|             <p>Konfigurační soubor Qtile je napsán v Pythonu, což umožňuje velkou flexibilitu. Soubor se obvykle nachází
 | |
|                 v <strong>~/.config/qtile/config.py</strong>. Zde je základní struktura konfiguračního souboru:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
| 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"
 | |
|         </pre>
 | |
|             </div>
 | |
|             <p><strong>Další konfigurační soubory jsou:</strong></p>
 | |
|             <ul>
 | |
|                 <li>Main config file: ~/.config/qtile/config.py</li>
 | |
|                 <li>Keybindings: ~/.config/qtile/modules/keys.py</li>
 | |
|                 <li>Bar: ~/.config/qtile/modules/screens.py</li>
 | |
|                 <li>Widgets: ~/.config/qtile/modules/widgets.py</li>
 | |
|                 <li>Auto-start: ~/.config/qtile/autostart.sh</li>
 | |
|             </ul>
 | |
|             <h3>KLávesové zkratky</h3>
 | |
|             <p>Klávesové zkratky jsou definovány v sekci keys. Například:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|     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
 | |
| ]
 | |
|         </pre>
 | |
|             </div>
 | |
|             <img src="img/qtilekeyboard.png" alt="" style="width: 50%;height: auto;">
 | |
|             <h3>Rozvržení</h3>
 | |
|             <p>Rozvržení oken lze konfigurovat v sekci layouts. Například:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|     layouts = [
 | |
|     layout.Columns(border_focus_stack=['#d75f5f', '#8f3d3d'], border_width=4),
 | |
|     layout.Max(),
 | |
|     # Add more layouts here
 | |
|       ]
 | |
|         </pre>
 | |
|             </div>
 | |
|             <h3>Widgety</h3>
 | |
|             <p>Widgety jsou malé aplikace, které se zobrazují na panelu. Například:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|     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,
 | |
|         ),
 | |
|     ),
 | |
| ]
 | |
|         </pre>
 | |
|             </div>
 | |
|             <h3>Spouštění</h3>
 | |
|             <p>Po konfiguraci můžete Qtile spustit pomocí příkazu:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|           qtile start
 | |
|         </pre>
 | |
|             </div>
 | |
|             <h3>Dokumentace a komunita</h3>
 | |
|             <p>Pro další informace a podporu můžete navštívit oficiální dokumentaci <a
 | |
|                     href="https://docs.qtile.org/en/latest/" target="_blank">Qtile na docs.qtile.org </a> nebo se
 | |
|                 připojit k
 | |
|                 komunitě na <a href="https://github.com/qtile/qtile" target="_blank">GitHub</a> a <a
 | |
|                     href="https://www.reddit.com/r/qtile/" target="_blank">Reddit</a>.</p>
 | |
|             <hr>
 | |
|             <p>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.</p>
 | |
|             <h3>Použití Qtile bez desktopového prostředí</h3>
 | |
|             <p>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:</p>
 | |
|             <p>1. Nainstalujte Qtile:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|             sudo pacman -S qtile 
 | |
|         </pre>
 | |
|             </div>
 | |
|             <p>Nastavte Qtile jako výchozí správce oken:</p>
 | |
|             <p>Vytvořte nebo upravte soubor <strong>~/.xinitrc</strong> a přidejte do něj řádek:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|             exec qtile
 | |
|         </pre>
 | |
|             </div>
 | |
|             <p>3. Spusťte Qtile:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|             startx
 | |
|         </pre>
 | |
|             </div>
 | |
|             <h3>Použití Qtile s desktopovým prostředím</h3>
 | |
|             <p>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:</p>
 | |
|             <p>1. Nainstalujte GNOME:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|             sudo pacman -S gnome 
 | |
|         </pre>
 | |
|             </div>
 | |
|             <p>2. Nastavte Qtile jako správce oken v GNOME:</p>
 | |
|             <p>Vytvořte nebo upravte soubor <strong>~/.xinitrc</strong> a přidejte do něj řádek:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|             exec gnome-session --session=qtile 
 | |
|         </pre>
 | |
|             </div>
 | |
|             <p>3. Spusťte GNOME s Qtile:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|             startx
 | |
|         </pre>
 | |
|             </div>
 | |
|             <h3>Použití Qtile s dalšími nástroji</h3>
 | |
|             <p>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:</p>
 | |
|             <ul>
 | |
|                 <li>Notifikace: Nainstalujte dunst nebo xfce4-notifyd.</li>
 | |
|                 <li>Automatická správa energie: Nainstalujte tlp nebo powertop.</li>
 | |
|                 <li>Systémové nástroje: Nainstalujte gnome-system-monitor nebo htop.</li>
 | |
|             </ul>
 | |
|             <h3>Příklad konfigurace s notifikacemi</h3>
 | |
|             <p>Pokud chcete přidat notifikace pomocí <strong>dunst</strong>, můžete to udělat takto:</p>
 | |
|             <p>1. Nainstalujte dunst:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|             sudo pacman -S dunst
 | |
|         </pre>
 | |
|             </div>
 | |
|             <p>2. Přidejte dunst do konfiguračního souboru Qtile:</p>
 | |
|             <div class="code-box">
 | |
|                 <pre id="code-content">
 | |
|             from libqtile import hook
 | |
|             import subprocess
 | |
| 
 | |
|             @hook.subscribe.startup_once
 | |
|             def autostart():
 | |
|                 subprocess.Popen(['dunst'])
 | |
|         </pre>
 | |
|             </div>
 | |
|             <p>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.</p>
 | |
|             <hr>
 | |
|             <h2>Rozdíl mezi Qtile a i3wm</h2>
 | |
|             <p>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:</p>
 | |
|             <h3>Jazyk konfigurace</h3>
 | |
|             <p>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í.</p>
 | |
|             <p>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.</p>
 | |
|             <h3>Konfigurace</h3>
 | |
|             <p>Qtile: Konfigurace Qtile je uložena v souboru <strong>~/.config/qtile/config.py</strong>. Díky použití
 | |
|                 Pythonu můžete snadno vytvářet složité konfigurace a skripty.</p>
 | |
|             <p>i3wm: Konfigurace i3wm je uložena v souboru <strong>~/.config/i3/config</strong>. Konfigurační soubor je
 | |
|                 jednoduchý textový soubor, který je snadno čitelný a upravitelný.</p>
 | |
|             <h3>Rozvržení oken</h3>
 | |
|             <p>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.</p>
 | |
|             <p>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.</p>
 | |
|             <h3>Klávesové zkratky</h3>
 | |
|             <p>Qtile: Klávesové zkratky jsou definovány v konfiguračním souboru a mohou být velmi flexibilní díky
 | |
|                 použití Pythonu.</p>
 | |
|             <p>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í.</p>
 | |
|             <h3>Widgety a rozšíření</h3>
 | |
|             <p>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í.</p>
 | |
|             <p>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.</p>
 | |
|             <h3>Komunita a podpora</h3>
 | |
|             <p>Qtile: Qtile má aktivní komunitu a dobrou dokumentaci. Podpora je dostupná na GitHubu a dalších fórech.
 | |
|             </p>
 | |
|             <p>i3wm: i3wm má velkou a aktivní komunitu a také dobrou dokumentaci. Podpora je dostupná na GitHubu, Reddit
 | |
|                 a dalších fórech.</p>
 | |
|             <h3>Výkon</h3>
 | |
|             <p>Qtile: Qtile je velmi lehký a rychlý správce oken, který má nízkou spotřebu paměti a procesoru.</p>
 | |
|             <p>i3wm: i3wm je také velmi lehký a rychlý správce oken s nízkou spotřebou paměti a procesoru.</p>
 | |
|             <p>
 | |
|                 <code><a href="https://lukaskanka.cz/" target="_blank">Kankys</a>
 | |
|                 23.11.2024</code>
 | |
|             </p>
 | |
|         </section>
 | |
|     </main>
 | |
|     <?php require 'assets/returnbutton.php'; ?>
 | |
|     <?php require 'assets/footer.php'; ?>
 | |
|     <script src="assets/script.js"></script>
 | |
| </body>
 | |
| 
 | |
| </html>
 |