<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.archlinux.org/index.php?title=Special:NewPages&amp;feed=atom&amp;hideredirs=1&amp;limit=50&amp;offset=&amp;namespace=0&amp;username=&amp;tagfilter=&amp;size-mode=max&amp;size=0</id>
	<title>ArchWiki - New pages [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.org/index.php?title=Special:NewPages&amp;feed=atom&amp;hideredirs=1&amp;limit=50&amp;offset=&amp;namespace=0&amp;username=&amp;tagfilter=&amp;size-mode=max&amp;size=0"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Special:NewPages"/>
	<updated>2026-05-18T16:08:03Z</updated>
	<subtitle>From ArchWiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.archlinux.org/title/Archinstall_(Italiano)</id>
		<title>Archinstall (Italiano)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Archinstall_(Italiano)"/>
		<updated>2026-05-18T04:37:10Z</updated>

		<summary type="html">&lt;p&gt;FlowEye: Correzione titolo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{translation|archinstall}}&lt;br /&gt;
[https://archinstall.archlinux.page/ archinstall] ([https://github.com/archlinux/archinstall upstream repository]) è una libreria di supporto che automatizza l&amp;#039;installazione di [[Arch Linux]]. Viene fornita con pacchetti con le differenti installazioni pre-configurate, compreso un installer &amp;quot;guidato&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Questa pagina non discute dell&amp;#039;uso archinstall come una Python library; visionate [https://archinstall.archlinux.page/installing/python.html la documentazione ufficiale] per questo.&lt;br /&gt;
{{translateme}}&lt;/div&gt;</summary>
		<author><name>FlowEye</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/SpeedyNote</id>
		<title>SpeedyNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/SpeedyNote"/>
		<updated>2026-05-15T10:40:28Z</updated>

		<summary type="html">&lt;p&gt;Jy0x0: Create initial SpeedyNote article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Note-taking software]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Xournal++}}&lt;br /&gt;
{{Related|Flatpak}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/alpha-liu-01/SpeedyNote SpeedyNote] is a cross-platform note-taking application for stylus input, written in C++ with Qt 6. It supports pressure-sensitive inking, multi-layer editing, PDF annotation and an edgeless infinite canvas mode. The application is released under the GNU General Public License v3.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{AUR|speedynote}} package.&lt;br /&gt;
&lt;br /&gt;
Alternatively, SpeedyNote is available as a [[Flatpak]] from [https://flathub.org/apps/org.speedynote.SpeedyNote Flathub]:&lt;br /&gt;
&lt;br /&gt;
{{bc|$ flatpak install flathub org.speedynote.SpeedyNote}}&lt;br /&gt;
&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
SpeedyNote uses two native file formats:&lt;br /&gt;
&lt;br /&gt;
; {{ic|.snb}} : Bundle directory containing tiled page data. Used for both paged notebooks and edgeless canvas documents.&lt;br /&gt;
; {{ic|.snbx}} : Compressed archive of an {{ic|.snb}} bundle, intended for sharing and backup.&lt;br /&gt;
&lt;br /&gt;
The legacy {{ic|.spn}} format from the 0.x series is no longer supported.&lt;br /&gt;
&lt;br /&gt;
== Command-line interface ==&lt;br /&gt;
&lt;br /&gt;
The {{ic|speedynote}} executable provides subcommands for batch operations on notebooks. Run {{ic|speedynote --help}} for the full reference.&lt;br /&gt;
&lt;br /&gt;
=== Export to PDF ===&lt;br /&gt;
&lt;br /&gt;
{{bc|$ speedynote export-pdf &amp;#039;&amp;#039;input&amp;#039;&amp;#039; -o &amp;#039;&amp;#039;output&amp;#039;&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
The {{ic|input}} argument accepts either a single {{ic|.snb}} bundle or a directory; in the latter case {{ic|output}} must also be a directory. Common options include {{ic|--dpi}} to set the export resolution, {{ic|--pages}} to select a page range and {{ic|--annotations-only}} to omit the PDF background.&lt;br /&gt;
&lt;br /&gt;
=== Export to SNBX ===&lt;br /&gt;
&lt;br /&gt;
{{bc|$ speedynote export-snbx &amp;#039;&amp;#039;input&amp;#039;&amp;#039; -o &amp;#039;&amp;#039;output&amp;#039;&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
The {{ic|--no-pdf}} option excludes the embedded source PDF, producing smaller archives.&lt;br /&gt;
&lt;br /&gt;
=== Import SNBX ===&lt;br /&gt;
&lt;br /&gt;
{{bc|$ speedynote import &amp;#039;&amp;#039;input&amp;#039;&amp;#039; -d &amp;#039;&amp;#039;destination&amp;#039;&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
The {{ic|--add-to-library}} option registers imported notebooks in the launcher timeline. Without it, the files are placed in {{ic|destination}} but not surfaced in the UI.&lt;br /&gt;
&lt;br /&gt;
All subcommands accept {{ic|--dry-run}} to preview the operation, {{ic|--recursive}} to descend into subdirectories, and {{ic|--json}} for machine-readable output suitable for scripting.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/alpha-liu-01/SpeedyNote Upstream repository]&lt;br /&gt;
* [https://flathub.org/apps/org.speedynote.SpeedyNote Flathub page]&lt;/div&gt;</summary>
		<author><name>Jy0x0</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Desktop_environment_(Fran%C3%A7ais)</id>
		<title>Desktop environment (Français)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Desktop_environment_(Fran%C3%A7ais)"/>
		<updated>2026-05-15T08:09:35Z</updated>

		<summary type="html">&lt;p&gt;Nicolas Audouin-Dubreuil: Translated page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Desktop environments (Français)]]&lt;br /&gt;
[[Category:Lists of software (Français)]]&lt;br /&gt;
[[en:Desktop environment]]&lt;br /&gt;
[[es:Desktop environment]]&lt;br /&gt;
[[fi:Desktop environment]]&lt;br /&gt;
[[hu:Desktop environment]]&lt;br /&gt;
[[it:Desktop environment]]&lt;br /&gt;
[[ja:デスクトップ環境]]&lt;br /&gt;
[[pt:Desktop environment]]&lt;br /&gt;
[[ru:Desktop environment]]&lt;br /&gt;
[[uk:Desktop environment]]&lt;br /&gt;
[[zh-hans:Desktop environment]]&lt;br /&gt;
{{TranslationStatus (Français)|GNOME|2026-05-17|870994}}&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Comparison of desktop environments}}&lt;br /&gt;
{{Related|:Category:Freedesktop.org}}&lt;br /&gt;
{{Related|Window manager}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
Un [https://fr.wikipedia.org/wiki/Environnement%20de%20bureau environnement de bureau] (de l&amp;#039;anglais Desktop Environment &amp;#039;&amp;#039;DE&amp;#039;&amp;#039;) est une implémentation de [https://fr.wikipedia.org/wiki/Environnement%20de%20bureau métaphore de bureau]. Il est composé d&amp;#039;un ensemble de programmes partageant une [https://fr.wikipedia.org/wiki/Interface%20graphique interface utilisateur graphique] (GUI).&lt;br /&gt;
&lt;br /&gt;
Un environnement de bureau regroupe une variété de composants afin de fournir des éléments d&amp;#039;interface utilisateur graphique communs tels que des icônes, des barres d&amp;#039;outils, des fonds d&amp;#039;écran et des widgets de bureau. De plus, la plupart des environnements de bureau intègrent de base un ensemble d&amp;#039;applications et d&amp;#039;utilitaires. Par ailleurs, les environnements de bureau fournissent leur propre gestionnaire de fenêtres, qui peut cependant généralement être remplacé par un autre gestionnaire de fenêtre compatible.&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;utilisateur est libre de configurer son environnement GUI de plusieurs manières. Les environnements de bureau fournissent simplement un moyen complet et pratique d&amp;#039;accomplir cette tâche. Notez que les utilisateurs sont libres de mélanger et d&amp;#039;assortir les applications de plusieurs environnements de bureau. Par exemple, un utilisateur [[Wikipedia:KDE Plasma|Plasma]] peut installer et exécuter des applications [[GNOME (Français)]] telles que le navigateur web [[Epiphany]], s&amp;#039;il le préfère au navigateur web [[KDE]] [[Wikipedia:Konqueror|Konqueror]]. Un inconvénient de cette approche est que de nombreuses applications fournies par les projets d&amp;#039;environnement de bureau dépendent fortement des bibliothèques sous-jacentes à l&amp;#039;environnement de bureau respectif. Par conséquent, l’installation d’applications à partir d’une gamme d’environnements de bureau nécessitera l’installation d’un plus grand nombre de dépendances. Les utilisateurs cherchant à économiser de l&amp;#039;espace disque évitent souvent de tels environnements mixtes ou choisissent des alternatives qui ne dépendent que de quelques bibliothèques externes.&lt;br /&gt;
&lt;br /&gt;
En outre, les applications fournies par les environnements de bureau s’intègrent généralement mieux à leur environnement de bureau natif. Visuellement, mélanger des environnements avec différentes boîtes à outils de widgets entraînera une faible homogénéité visuels (c&amp;#039;est-à-dire que les interfaces utiliseront différents styles d&amp;#039;icônes et de widgets). En d&amp;#039;autres termes, les environnements mixtes risquent de se comporter de manière différentes (par exemple, un simple clic ou un double-clic sur les icônes ; fonctionnalité glisser-déposer) et peuvent causer des confusions ou des comportements inattendus.&lt;br /&gt;
&lt;br /&gt;
== Liste des environnements de bureau ==&lt;br /&gt;
&lt;br /&gt;
=== Officiellements pris en charge ===&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Budgie]]|Budgie est un environnement de bureau moderne, il met l&amp;#039;accent sur la simplicité et l&amp;#039;élégance.|https://buddiesofbudgie.org/|{{Grp|budgie}}}}&lt;br /&gt;
* {{App|[[Cinnamon]]|Cinnamon s&amp;#039;efforce de fournir une expérience utilisateur traditionnelle. Cinnamon est un fork de GNOME 3.|https://github.com/linuxmint/Cinnamon|{{Pkg|cinnamon}}}}&lt;br /&gt;
* {{App|[[COSMIC]]|COSMIC est un environnement de bureau basé sur [[Rust]], créé par System76 pour Pop! OS et hautement personnalisable Il est inspiré de GNOME. |https://system76.com/cosmic|{{Grp|cosmic}}}}&lt;br /&gt;
* {{App|[[Deepin Desktop Environment|Deepin]]|L&amp;#039;interface de bureau et les applications Deepin se caractérisent par un design intuitif et élégant. Se déplacer, partager, chercher, etc... est devenu simplement une expérience conviviale.|https://www.deepin.org/|{{Grp|deepin}}}}&lt;br /&gt;
* {{App|[[Enlightenment]]|Le shell de bureau Enlightenment fournit un gestionnaire de fenêtres efficace basé sur les bibliothèques Enlightenment Foundation.Il fournit également d&amp;#039;autres composants de bureau essentiels tels qu&amp;#039;un gestionnaire de fichiers, des icônes de bureau et des widgets. Il prend en charge les thèmes personnalisés, tout en étant capable de fonctionner sur du matériel plus ancien ou des appareils intégrés.|https://www.enlightenment.org/|{{Pkg|enlightenment}}}}&lt;br /&gt;
* {{App|[[GNOME (Français)]]|L&amp;#039;environnement de bureau GNOME est un environnement attrayant et intuitif avec une session à la fois moderne (&amp;#039;&amp;#039;GNOME&amp;#039;&amp;#039;) et classique (&amp;#039;&amp;#039;GNOME Classic&amp;#039;&amp;#039;).|https://www.gnome.org/|{{Grp|gnome}}}}&lt;br /&gt;
* {{App|[[GNOME Flashback]]|GNOME Flashback est un shell pour GNOME 3 qui était initialement appelé mode de secours GNOME. La disposition du bureau et la technologie sous-jacente sont similaires à celles de GNOME 2.|https://wiki.gnome.org/Projects/GnomeFlashback|{{Pkg|gnome-flashback}}}}&lt;br /&gt;
* {{App|[[KDE Plasma]]|L&amp;#039;environnement de bureau KDE Plasma est un environnement de travail familier. Plasma offre tous les outils nécessaires à une expérience informatique de bureau moderne afin que vous puissiez être productif dès le début.|https://www.kde.org/plasma-desktop|{{Grp|plasma}}}}&lt;br /&gt;
* {{App|[[KDE#Plasma Mobile|KDE Plasma Mobile]]|Plasma Mobile est un environnement de bureau pour les mobiles, construit sur la pile KDE Plasma [[Wayland]].|https://plasma-mobile.org/|{{Pkg|plasma-mobile}}}}&lt;br /&gt;
* {{App|[[LXDE (Français)]]|L&amp;#039;environnement de bureau Lightweight X11 est un environnement de bureau rapide et économe en énergie. Il est livré avec une interface moderne, une prise en charge multilingue, des raccourcis clavier standard et des fonctionnalités supplémentaires telles que la navigation dans les fichiers par onglets. Fondamentalement conçu pour être léger, LXDE s&amp;#039;efforce d&amp;#039;être moins gourmand en CPU et en RAM que ses concurrents.|http://www.lxde.org/|{{Grp|lxde}}}}&lt;br /&gt;
* {{App|[[LXQt (Français)]]|LXQt est le partie Qt de LXDE, l&amp;#039;environnement de bureau léger. C&amp;#039;est le produit de la fusion entre les projets LXDE-Qt et Razor-qt : un environnement de bureau léger, modulaire, ultra-rapide et convivial.|https://lxqt-project.org/|{{Grp|lxqt}}}}&lt;br /&gt;
* {{App|[[MATE]]|Mate fournit un bureau intuitif et attrayant aux utilisateurs de Linux utilisant des environnements traditionnels. MATE est à l&amp;#039;origine un fork de GNOME 2 mais utilise désormais GTK 3.|https://mate-desktop.org/|{{Grp|mate}}}}&lt;br /&gt;
* {{App|[[Pantheon]]|Pantheon est l&amp;#039;environnement de bureau par défaut créé à l&amp;#039;origine pour la distribution elementary OS. Il est écrit à partir de zéro en utilisant Vala et la boîte à outils GTK3. Il se veut convivial  et présente certaines similitudes avec GNOME Shell et macOS.|https://elementary.io/|{{Grp|pantheon}}}}&lt;br /&gt;
* {{App|Phosh|Phosh est une interface utilisateur Shell [[Wayland]] basée sur GNOME, utile sur les appareils mobiles.|https://gitlab.gnome.org/World/Phosh/phosh|{{Pkg|phosh}}}}&lt;br /&gt;
* {{App|[[Sugar]]|La Sugar Learning Platform est un environnement informatique composé d&amp;#039;applications conçues pour aider les enfants de 5 à 12 ans à apprendre grâce à l&amp;#039;environnement multimédia. Sugar est l&amp;#039;élément central d&amp;#039;un effort mondial visant à offrir à chaque enfant la possibilité d&amp;#039;une éducation de qualité  — il est actuellement utilisé par près d&amp;#039;un million d&amp;#039;enfants dans le monde parlant 25 langues dans plus de 40 pays. Sugar fournit les moyens d’aider les gens à mener une vie épanouissante grâce à l’accès à une éducation de qualité qui manque actuellement à tant de personnes.|https://sugarlabs.org/|{{Pkg|sugar}} + {{Grp|sugar-fructose}}}}&lt;br /&gt;
* {{App|[[Xfce]]|Xfce incarne la philosophie [[Wikipedia:UNIX philosophy|UNIX philosophy]] traditionnelle de modularité et de réutilisabilité. Il fournit plusieurs composants qui offrent toutes les fonctionnalités que l&amp;#039;on peut attendre d&amp;#039;un environnement de bureau moderne, tout en restant relativement léger. Ces composants sont emballés séparément et vous pouvez choisir parmi les packages disponibles pour créer un environnement de travail personnel optimal. |https://xfce.org/|{{Grp|xfce4}}}}&lt;br /&gt;
&lt;br /&gt;
=== Non officiellement pris en charge ===&lt;br /&gt;
&lt;br /&gt;
* {{App|[[CDE]]|TLe Common Desktop Environment est un environnement de bureau pour Unix et OpenVMS, basé sur la boîte à outils &amp;#039;&amp;#039;The Motif widgets&amp;#039;&amp;#039;. Il faisait partie de la norme de produit UNIX98 Workstation et fut longtemps le bureau Unix « classique » associé aux postes de travail Unix commerciaux. Bien qu&amp;#039;il s&amp;#039;agisse d&amp;#039;un environnement hérité, il est toujours maintenu en vie grâce à la prise en charge des systèmes Linux.|https://sourceforge.net/projects/cdesktopenv/|{{AUR|cdesktopenv}}}}&lt;br /&gt;
* {{App|[[Cutefish]]|Cutefish est un environnement de bureau axé sur la simplicité, la beauté et la praticité. Il est écrit en utilisant le framework Qt 5 pour fournir une apparence simple et universelle.|https://cutefish-ubuntu.github.io|{{AUR|cutefish-meta}}}}&lt;br /&gt;
* {{App|Lumina|Lumina est un environnement de bureau léger écrit en Qt 5 pour FreeBSD qui utilise Fluxbox pour la gestion des fenêtres.|https://lumina-desktop.org/|{{AUR|lumina-desktop}}}}&lt;br /&gt;
* {{App|PaperDE|Environnement de bureau construit sur Qt 6 et Wayfire.|https://cubocore.gitlab.io/paperde.html|{{AUR|paperde}}}}&lt;br /&gt;
* {{App|theDesk|theDesk est un environnement de bureau qui essaie se focalise sur la productivité. Il utilise Qt 6 comme boîte à outils de widgets et KWin comme gestionnaire de fenêtres.|https://vicr123.com/projects/thedesk/|{{AUR|thedesk}}}}&lt;br /&gt;
* {{App|[[Trinity]]|Le projet Trinity Desktop Environment (TDE) est un projet informatique pour les systèmes d&amp;#039;exploitation de type Unix dont l&amp;#039;objectif principal est de conserver le style informatique global de KDE 3.5.|https://www.trinitydesktop.org/|See [[Trinity]]}}&lt;br /&gt;
* {{App|Orbitiny|Orbitiny Desktop est un nouvel environnement de bureau innovant pour les systèmes d&amp;#039;exploitation Linux basés sur X11. Il se veut portable, modulaire et fonctionnel.|https://orbitiny.com|{{AUR|orbitiny-desktop-bin}}}}&lt;br /&gt;
&lt;br /&gt;
== Gestionnaire de fenêtres personnalisé ==&lt;br /&gt;
&lt;br /&gt;
Certains environnements de bureau exécutés dans Xorg prennent en charge l&amp;#039;utilisation d&amp;#039;un gestionnaire de fenêtres autre que celui par défaut, tel que i3 :&lt;br /&gt;
&lt;br /&gt;
* [[LXDE (Français)#Utiliser un gestionnaire de fenêtres différent]]&lt;br /&gt;
* [[LXQt (Français)#Utiliser un autre gestionnaire de fenêtres]]&lt;br /&gt;
* [[MATE#Use a different window manager]]&lt;br /&gt;
* [[Plasma#Use a different window manager]]&lt;br /&gt;
* [[Xfce#Use a different window manager]]&lt;br /&gt;
&lt;br /&gt;
== Environnements personnalisés ==&lt;br /&gt;
&lt;br /&gt;
Les environnements de bureau représentent le moyen le plus simple d&amp;#039;installer un environnement graphique complet. Cependant, les utilisateurs sont libres de créer et de personnaliser leur environnement graphique de différentes manières si aucun des environnements de bureau populaires ne répond à leurs exigences. Généralement, la création d&amp;#039;un environnement personnalisé implique la sélection d&amp;#039;un [[Window manager (Français)|gestionnaire de fenêtres]] ou d&amp;#039;un [[Wayland#Compositors|compositeur]] approprié, d&amp;#039;une [[taskbar|barre des tâches]] et d&amp;#039;un certain nombre d&amp;#039;applications (une sélection minimaliste comprend généralement un [[Terminal emulators|émulateur de terminal]], [[List of applications/Utilities#File managers|un gestionnaire de fichier]], et un [[Text editors|éditeur de texte]]).&lt;br /&gt;
&lt;br /&gt;
Les autres composants généralement fournis par les environnements de bureau sont :&lt;br /&gt;
&lt;br /&gt;
* [[List of applications/Other#Application launchers|Lanceur d&amp;#039;applications]]&lt;br /&gt;
* [[List of applications/Multimedia#Volume control|Contrôle audio]]&lt;br /&gt;
* [[Backlight#Backlight utilities|Contrôle du rétroéclairage]]&lt;br /&gt;
* [[Compositor|Compositeur]]&lt;br /&gt;
* [[XDG MIME Applications#mimeapps.list|Applications par défaut]]&lt;br /&gt;
* [[Display manager (Français)#Liste des gestionnaires d&amp;#039;affichage|Gestionnaires d&amp;#039;affichage]]&lt;br /&gt;
* [[List of applications/Other#Logout UI|Logout UI]]&lt;br /&gt;
* [[MPRIS#Control utilities|Contrôle multimédia]]&lt;br /&gt;
* [[Desktop notifications#Standalone|Notification daemon]]&lt;br /&gt;
* [[Polkit (Français)#Agents d&amp;#039;authentification|Polkit-agents d&amp;#039;authentification]]&lt;br /&gt;
* [[Power management|Gestion de l&amp;#039;alimentation]]&lt;br /&gt;
* [[Screen capture|Capture d&amp;#039;écran]]&lt;br /&gt;
* [[List of applications/Security#Screen lockers|Verrouillage de l&amp;#039;écran]]&lt;br /&gt;
* [[Backlight#Color correction|Température d&amp;#039;écran]]&lt;br /&gt;
* [[List of applications/Other#Wallpaper setters|Fond d&amp;#039;écran]]&lt;/div&gt;</summary>
		<author><name>Nicolas Audouin-Dubreuil</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/OpenRGB</id>
		<title>OpenRGB</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/OpenRGB"/>
		<updated>2026-05-14T15:01:35Z</updated>

		<summary type="html">&lt;p&gt;TheKnightSky: /* Installation */ add user group i2c adding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Expansion| This page needs more detailing out in terms of configuration, supported devices, troubleshooting, etc. Also needs categorization and cross-linking to and from this page}}&lt;br /&gt;
The [https://openrgb.org/| OpenRGB] project aims to configure RGB devices while being vendor agnostic across Linux, Mac and Windows.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] either the {{Pkg|openrgb}} or {{AUR|openrgb-git}} packages.&lt;br /&gt;
&lt;br /&gt;
Add your current user to the [[user group]] {{ic|i2c}} before logging out and back in.&lt;/div&gt;</summary>
		<author><name>TheKnightSky</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Reproducible_builds_(Magyar)</id>
		<title>Reproducible builds (Magyar)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Reproducible_builds_(Magyar)"/>
		<updated>2026-05-13T01:05:28Z</updated>

		<summary type="html">&lt;p&gt;Torontal-varmegye: /* Szoftvercsomag-tároló vs. újbóli létrehozás */ Fordítás magyar nyelvre.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TranslationStatus (Magyar)|Reproducible builds|2026.05.18|875658}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Package management (Magyar)]]&lt;br /&gt;
[[Category:Package development (Magyar)]]&lt;br /&gt;
[[en:Reproducible builds]]&lt;br /&gt;
[[ja:再現性のあるビルド]]&lt;br /&gt;
[[pt:Reproducible builds]]&lt;br /&gt;
{{Related articles start (Magyar)}}&lt;br /&gt;
{{Related|/Status (Magyar)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
Az [[Arch Linux (Magyar)|Arch Linux]] jelenleg azon dolgozik, hogy minden szoftvercsomag [[Wikipedia:Reproducible builds|ismételhetően létrehozható]] legyen. (Angol nyelven: Reproducible builds). Ez lehetővé teszi a felhasználók és kutatók számára, hogy ellenőrizzék az Arch Linux operációs rendszerből származó (és az abból terjesztett) szoftvercsomagokat.&lt;br /&gt;
&lt;br /&gt;
{{Tip (Magyar)|A ismételhetően létrehozható fogalom pontos meghatározásáért és előnyeiért tekintse meg a [https://reproducible-builds.org Reproducible Builds] weboldalt.}}&lt;br /&gt;
&lt;br /&gt;
== Ellenőrző szoftvercsomag-létrehozások ==&lt;br /&gt;
&lt;br /&gt;
=== Szoftvercsomag-tároló vs. újbóli létrehozás ===&lt;br /&gt;
&lt;br /&gt;
A [https://reproducible.archlinux.org Reproducible status] weboldalon egy kísérleti [[rebuilderd|újbóli szoftvercsomag-létrehozó]] (rebuilderd) példány került beállításra a saját infrastruktúránkon. A rebuilderd újból létrehozza a szoftvercsomag-tárolónk szoftvercsomagjait, és ellenőrzi, hogy bitről bitre azonosak-e. Ha nem ismételhető meg a szoftvercsomag-létrehozás, akkor annak oka lehet egy hiba a létrehozást végző segédprogramok készletében, a szoftvercsomag létrehozását nem szabad a licenc miatt megismételni, vagy a szoftvercsomagot nem [[DeveloperWiki:Building in a clean chroot|tiszta chroot környezetben]] hozták először létre.&lt;br /&gt;
&lt;br /&gt;
A ismert problémák listája megtalálható a [[/Status (Magyar)|/Status]] című oldalon.&lt;br /&gt;
&lt;br /&gt;
=== Újbóli szoftvercsomag-létrehozás vs. egy másik, eltérő környezetben történő újbóli szoftvercsomag-létrehozás ===&lt;br /&gt;
&lt;br /&gt;
A [https://reproducible-builds.org/ Reproducible Builds] projekt újból létrehozza az Arch Linux szoftvercsomagokat, és összehasonlítja azokat egy másik, eltérő környezetben végzett szoftvercsomag-létrehozással. A szoftvercsomag állapota és a környezeti eltérések a [https://reproducible.archlinux.org Reproducible status] oldalon találhatók.&lt;br /&gt;
&lt;br /&gt;
== Segítségnyújtás ==&lt;br /&gt;
&lt;br /&gt;
=== Eszközök ===&lt;br /&gt;
&lt;br /&gt;
Segítsen a [https://github.com/archlinux/archlinux-repro repro] projektben a hibák javításában és funkciók hozzáadásában.&lt;br /&gt;
&lt;br /&gt;
=== A szoftvercsomag újbóli létrehozó futtatása ===&lt;br /&gt;
&lt;br /&gt;
A [[rebuilderd (Magyar)|rebuilderd]] beállítása Arch Linux szoftvercsomagok létrehozására segít a szoftvercsomag-tároló szoftvercsomagjainak független ellenőrzésében.&lt;br /&gt;
&lt;br /&gt;
=== Szoftvercsomagok ellenőrzése a repro segítségével és problémák felderítése ===&lt;br /&gt;
&lt;br /&gt;
Nagyszerű módja a segítségnyújtásnak, ha talál egy nem reprodukálható szoftvercsomagot, és kideríti, hogy miként tehető reprodukálhatóvá:&lt;br /&gt;
&lt;br /&gt;
* Töltsön le egy Arch Linux szoftvercsomagot, vagy szerezzen be egyet a [[Arch Linux Archive (Magyar)|Arch Linux Archive]] oldalról.&lt;br /&gt;
* Futtassa a repro programot a letöltött szoftvercsomagon, vagy egy szoftvercsomagon a pacman gyorsítótárából. Ideális esetben a {{ic|repro -d}} használatával tegye ezt meg annak érdekében, hogy diffoscope kimenetet kapjon. Például: {{ic|repro -d /var/cache/pacman/pkg/curl-7.73.0-1-x86_64.pkg.tar.zst}}.&lt;br /&gt;
: {{Note (Magyar)|https://reproducible.archlinux.org [https://github.com/kpcyrd/rebuilderd/blob/7afb25d52ec12a01c360098c51967099241f90e2/worker/rebuilder-archlinux.sh kihagyja] a {{ic|check()}} lépést, mert az összes szoftvercsomag összes tesztjének futtatása túl ingatag. Ez hamis, nem reprodukálható szoftvercsomag-státuszt hozhat létre, amennyiben a {{ic|check()}} mellékhatásokkal jár, például Python szoftvercsomagok esetén.}}&lt;br /&gt;
* Vizsgálja meg, hogy az Arch Linux csomagolásával van-e probléma, vagy az upstream hibája. A problémákat hozzá lehet adni a [[/Status (Magyar)|állapotoldalon]]. További információk találhatók a [https://reproducible-builds.org/docs/ Reproducible Builds] weboldalon.&lt;br /&gt;
&lt;br /&gt;
=== Munka a tests.reproducible-builds.org infrastruktúrában felmerülő problémákon ===&lt;br /&gt;
&lt;br /&gt;
Az Arch felhasználók hozzájárulhatnak a Reproducible Build problémák megoldásához azáltal, hogy megnézik a folyamatos reprodukciós környezetet ([https://reproducible.archlinux.org Reproducible állapot oldal]). Számos probléma van, amit rendezni lehet:&lt;br /&gt;
&lt;br /&gt;
* Sikertelen forráskódból történő szoftvercsomag-létrehozás (FTBS): Reprodukálja a létrehozási hibát helyben, és hozzon létre hibajegyet, amennyiben a szoftvercsomag nem hozható létre [[clean chroot|tiszta chroot]] környezetből ({{ic|extra-x86_64-build}} vagy {{ic|multilib-build}}).&lt;br /&gt;
* Sikertelen forráskódletöltés. Reprodukálja a problémát ({{ic|makepkg -o -d}}), és hozzon létre hibajegyet az Arch [https://gitlab.archlinux.org/archlinux/packaging/packages GitLab] weboldalon.&lt;br /&gt;
* Sikertelen reprodukció. Helyben a szoftvercsomagokat a {{pkg|reprotest}} segítségével lehet reprodukálni. Vegye figyelembe, hogy nem használható minden variáció. Egyszerű, idővel kapcsolatos teszteléshez: {{bc|1=$ reprotest --variations &amp;#039;+time&amp;#039; &amp;#039;sudo extra-x86_64-build&amp;#039; &amp;#039;*.pkg.tar.zst&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
Egy szoftvercsomag nem reprodukálhatóságának többféle oka lehet, de a mélyebb vizsgálat előtt nézze meg a felsőszintű szoftvercsomag-tárolót vagy a reprodukálható állapotot a [https://tests.reproducible-builds.org/debian/reproducible.html Debian] oldalon.&lt;br /&gt;
&lt;br /&gt;
{{Out of date|A {{Pkg|glibc}} 2.35-6 tartalmazza a C.UTF-8 beállítást.}}&lt;br /&gt;
&lt;br /&gt;
* Sikertelen tesztfutás. Ezek a hibák nagymértékben a tesztelési környezetre vezethetők vissza. Ennek a hibának a legvalószínűbb oka, hogy a {{ic|1=LANG=C}} van beállítva, és az Arch nem támogatja a {{ic|1=LANG=C.UTF-8}} beállítást.&lt;br /&gt;
&lt;br /&gt;
Amennyiben Önt érdekli az a kód, amely a folyamatos reprodukciós környezetet futtatja, akkor az első szoftvercsomag-létrehozó kód itt kezdődik a [https://salsa.debian.org/qa/jenkins.debian.net/blob/master/bin/reproducible_build_archlinux_pkg.sh#L115 salsa] oldalon.&lt;br /&gt;
&lt;br /&gt;
{{Note (Magyar)|A folyamatos reprodukciós környezet a https://tests.reproducible-builds.org oldalon &amp;#039;&amp;#039;&amp;#039;nem&amp;#039;&amp;#039;&amp;#039; reprodukálja a [[Official repositories (Magyar)|hivatalos]] Arch Linux szoftvercsomagokat. Célja kizárólag a szoftvercsomagok tesztelése és minél több hiba kiváltásának kísérlete annak érdekében, hogy a hibákat a felső szinten jelenteni lehessen.}}&lt;br /&gt;
&lt;br /&gt;
== Ismert problémák ==&lt;br /&gt;
&lt;br /&gt;
=== GPG ellenőrzés ===&lt;br /&gt;
&lt;br /&gt;
Lehetséges szoftvercsomag-létrehozási forgatókönyv, ahol a GPG kulcsok nem fognak ellenőrződni, mivel a csomagoló eltávolításra került a kulcstartóból vagy visszavonásra került, mivel a legfrissebb kulcstartót használjuk, és egy, a szoftvercsomag-tárolóban található, általunk szükséges szoftvercsomagot esetleg egy visszavont kulccsal kellett aláírni, amelyet nem tudunk ellenőrizni, és az szoftvercsomag-létrehozás sikertelen lesz.&lt;br /&gt;
&lt;br /&gt;
== Elérhetőség ==&lt;br /&gt;
&lt;br /&gt;
* [ircs://irc.libera.chat/archlinux-reproducible #archlinux-reproducible] — Főcsatorna az Arch Linux operációs rendszeren történő Reproducible Builds előrehaladásának követésére.&lt;/div&gt;</summary>
		<author><name>Torontal-varmegye</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Atrium</id>
		<title>Atrium</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Atrium"/>
		<updated>2026-05-11T15:13:14Z</updated>

		<summary type="html">&lt;p&gt;Indigo: /* Starting */ reword to distinguish systemd unit and the display manager at hand&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:Display managers]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Display manager}}&lt;br /&gt;
{{Related|Wayland}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;atrium&amp;#039;&amp;#039;&amp;#039; is a Wayland [[display manager]] with first-class [[Wikipedia:Multiseat configuration|multiseat]] support. In a multiseat setup, multiple users share a single machine, each with their own monitor, keyboard, and mouse and an independent login session. atrium handles each seat automatically: it discovers seats, presents a login screen, authenticates users via [[PAM]], and launches their Wayland compositor.&lt;br /&gt;
&lt;br /&gt;
{{Note|atrium supports Wayland sessions only. X11 sessions are not supported.}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] {{AUR|atrium}}.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
{{Note|The default configuration works for most single-seat and standard multiseat setups. This step can be skipped unless something does not work or you need to customise compositor selection.}}&lt;br /&gt;
&lt;br /&gt;
atrium reads two configuration files at startup:&lt;br /&gt;
&lt;br /&gt;
* {{ic|/etc/atrium.conf}} — daemon settings (compositor command, session policy, timeouts)&lt;br /&gt;
* {{ic|/etc/atrium-greeter.conf}} — greeter settings (font size, screen blanking timeout, passwordless users)&lt;br /&gt;
&lt;br /&gt;
Both files are installed with commented-out defaults. Refer to the inline comments for available options.&lt;br /&gt;
&lt;br /&gt;
atrium discovers available sessions from {{ic|/usr/share/wayland-sessions/}}. Any installed Wayland compositor that provides a {{ic|.desktop}} file there will appear on the login screen automatically.&lt;br /&gt;
&lt;br /&gt;
== Starting ==&lt;br /&gt;
&lt;br /&gt;
To start atrium, [[enable]] {{ic|atrium.service}} and restart.&lt;br /&gt;
&lt;br /&gt;
{{Note| &lt;br /&gt;
* Before enabling the [[systemd]] service, [[disable]] any other display manager.&lt;br /&gt;
* [[Starting]] it immediately will terminate any active graphical session.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Multiseat ==&lt;br /&gt;
&lt;br /&gt;
atrium has built-in multiseat support. Each seat requires its own GPU; atrium discovers seats via logind and launches an independent greeter on each one. Devices must be assigned to seats with {{ic|loginctl attach}}, but no additional configuration is needed.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/kavau/atrium/blob/main/doc/multiseat-setup.md Multiseat Setup Guide] for a step-by-step device assignment guide.&lt;br /&gt;
&lt;br /&gt;
== Known limitations ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Limited hotplug&amp;#039;&amp;#039;&amp;#039; — GPU or seat removal/addition at runtime is not yet fully handled. Restart atrium to recover (this ends active sessions).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;No SIGKILL escalation&amp;#039;&amp;#039;&amp;#039; — compositors that ignore SIGTERM are waited on indefinitely.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/kavau/atrium GitHub repository]&lt;br /&gt;
* [https://github.com/kavau/atrium/releases Releases and release notes]&lt;br /&gt;
* [https://www.reddit.com/r/linux_multiseat/ r/linux_multiseat] — general Linux multiseat discussion&lt;/div&gt;</summary>
		<author><name>Kavau</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Zwide_N8_Pro</id>
		<title>Zwide N8 Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Zwide_N8_Pro"/>
		<updated>2026-05-10T18:26:15Z</updated>

		<summary type="html">&lt;p&gt;Shifttabctrlalt: Add Zwide N8 Pro laptop info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Zwide]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable archwiki-table-laptop&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Hardware !! PCI/USB ID !! Working?&lt;br /&gt;
|-&lt;br /&gt;
| Track point || {{ic|258a:0132}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || {{ic|-}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| GPU || {{ic|8086:46d0}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Webcam || {{ic|1bcf:2282}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || {{ic|8087:0026}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Audio || {{ic|8086:54c8}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Wi-Fi || {{ic|8086:54f0}} || {{Yes}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The default BIOS options are correct. In order to bring the UEFI Boot screen selection, tap the {{ic|F7}} key for the boot menu, and choose your prepared installation media. After this steps you can install archlinux using installation guide.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
No special firmware installation needed. Laptop works well after default installation.&lt;br /&gt;
&lt;br /&gt;
== Screen rotation ==&lt;br /&gt;
&lt;br /&gt;
By default screen rotated in -90 degrees (specific screen type).&lt;br /&gt;
&lt;br /&gt;
Automatic screen rotation not tested.&lt;br /&gt;
&lt;br /&gt;
You can rotate screen in boot process by add kernel boot params, like this (systemd-boot example):&lt;br /&gt;
&lt;br /&gt;
 /boot/loader/entries/&amp;lt;your entry&amp;gt;.conf&lt;br /&gt;
 ---&lt;br /&gt;
 title	Arch Linux (linux)&lt;br /&gt;
 linux	/vmlinuz-linux&lt;br /&gt;
 initrd	/initramfs-linux.img&lt;br /&gt;
 options ... fbcon=rotate:1 &amp;lt;--&lt;br /&gt;
&lt;br /&gt;
and rotate screen in your DE/VM/Compositor, like this (swaywm example):&lt;br /&gt;
&lt;br /&gt;
 ~/.config/sway/config&lt;br /&gt;
 ---&lt;br /&gt;
 # [Outputs]&lt;br /&gt;
 output * disable&lt;br /&gt;
 output DSI-1 enable&lt;br /&gt;
 output DSI-1 transform 90 &amp;lt;--&lt;br /&gt;
&lt;br /&gt;
== Sleep ==&lt;br /&gt;
&lt;br /&gt;
Laptop supported 2 options in UEFI settings. By default S3 sleep mode. Not tested.&lt;br /&gt;
&lt;br /&gt;
== Battery ==&lt;br /&gt;
&lt;br /&gt;
New laptop may be shipped without battery calibration and battery may be recalibrated manually by charging practices. Battery module shipped with primitive controller, which not support charging limit, cycles and etc.&lt;br /&gt;
&lt;br /&gt;
== USB-C Charging ==&lt;br /&gt;
&lt;br /&gt;
Charging available with 12v type-c power adapters. Other charging devices with voltage ranges also can charge this laptop.&lt;br /&gt;
&lt;br /&gt;
== External Displays ==&lt;br /&gt;
&lt;br /&gt;
Laptop supported external displays using mini hdmi port and usb type-c port&lt;br /&gt;
&lt;br /&gt;
== Track point ==&lt;br /&gt;
&lt;br /&gt;
Track point works well but scrolling supported only with input settings using libinput, like this (swaywm example):&lt;br /&gt;
 ~/.config/sway/config&lt;br /&gt;
 ---&lt;br /&gt;
 # [Inputs]&lt;br /&gt;
 input &amp;quot;9610:306:SINO_WEALTH_USB_OFN_PADD&amp;quot; {&lt;br /&gt;
   dwt disabled&lt;br /&gt;
   tap enabled&lt;br /&gt;
   natural_scroll enabled&lt;br /&gt;
   middle_emulation disabled&lt;br /&gt;
   scroll_method on_button_down &amp;lt;--&lt;br /&gt;
   scroll_button BTN_RIGHT &amp;lt;--&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Shifttabctrlalt</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Gedit_(Fran%C3%A7ais)</id>
		<title>Gedit (Français)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Gedit_(Fran%C3%A7ais)"/>
		<updated>2026-05-06T20:00:45Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: update interlanguage links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:GNOME (Français)]]&lt;br /&gt;
[[Category:Text editors (Français)]]&lt;br /&gt;
[[de:Gedit]]&lt;br /&gt;
[[en:GNOME/Gedit]]&lt;br /&gt;
[[es:GNOME (Español)/Gedit]]&lt;br /&gt;
[[ja:GNOME/Gedit]]&lt;br /&gt;
[[ru:GNOME (Русский)/Gedit]]&lt;br /&gt;
[[zh-hans:GNOME/Gedit]]&lt;br /&gt;
{{TranslationStatus (Français)|GNOME/Gedit|2026-05-07|873235}}&lt;br /&gt;
[[Wikipedia:fr:gedit|gedit]] est un éditeur de texte à usage général pour GNOME.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[Installez]] le paquet {{Pkg|gedit}}.&lt;br /&gt;
&lt;br /&gt;
Pour des caractéristiques supplémentaires, installez le paquet {{Pkg|gedit-plugins}}.&lt;br /&gt;
&lt;br /&gt;
Gedit peut utiliser plusieurs dictionnaires de vérification orthographique, voir [[Language checking]].&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Ne pas terminer les fichiers par une nouvelle ligne ===&lt;br /&gt;
&lt;br /&gt;
Si vous voulez vous assurer que Gedit ne termine pas les fichiers par une nouvelle ligne, exécutez ce qui suit:&lt;br /&gt;
&lt;br /&gt;
 $ gsettings set org.gnome.gedit.preferences.editor ensure-trailing-newline false&lt;br /&gt;
&lt;br /&gt;
=== Enregistrer les versions de sauvegarde des fichiers modifiés ===&lt;br /&gt;
&lt;br /&gt;
Si vous le souhaitez, Gedit peut créer une copie des sauvegardes d&amp;#039;un fichier modifié (le contenu du fichier de sauvegarde sera le même que le contenu du fichier d&amp;#039;origine avant que la modification ne soit effectuée) puis enregistrez. Le nom du fichier de sauvegarde sera le même que le nom du fichier d&amp;#039;origine mais suffixé d&amp;#039;un symbole ~. Par conséquent, pour le fichier nommé {{ic|file1}}, la copie de sauvegarde porterait le nom {{ic|file1~}}. Les fichiers de sauvegarde sont masqués par défaut.&lt;br /&gt;
&lt;br /&gt;
Pour activer ce comportement, accédez au panneau &amp;#039;&amp;#039;Preferences&amp;#039;&amp;#039; de Gedit (pour les utilisateurs de GNOME Shell, cela peut être trouvé dans le menu général de Gedit). Dans le panneau &amp;#039;&amp;#039;Preferences&amp;#039;&amp;#039;, cliquez sur l&amp;#039;onglet &amp;#039;&amp;#039;Editeur&amp;#039;&amp;#039; et cochez l&amp;#039;option &amp;#039;&amp;#039;Créer une copie de sauvegarde des fichiers avant de les enregistrer.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Coloration syntaxique ===&lt;br /&gt;
&lt;br /&gt;
Gedit est installé de base avec plusieurs caractéristiques syntaxique grâce à {{Pkg|gtksourceview4}}, donc cette section présente des exceptions.&lt;br /&gt;
&lt;br /&gt;
==== PKGBUILD ====&lt;br /&gt;
&lt;br /&gt;
[[Installez]] {{AUR|gtksourceview4-pkgbuild}} pour obtenir une coloration syntaxique dans [[PKGBUILD (Français)|PKGBUILDs]].&lt;br /&gt;
&lt;br /&gt;
== Voir égalemment ==&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.gnome.org/Apps/Gedit Apps/Gedit - GNOME Wiki!]&lt;/div&gt;</summary>
		<author><name>Nicolas Audouin-Dubreuil</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Samba-util</id>
		<title>Samba-util</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Samba-util"/>
		<updated>2026-05-05T11:02:41Z</updated>

		<summary type="html">&lt;p&gt;Cerratonix: Cerratonix moved page Samba-util to Samba-util-bin: changed the package name on AUR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Network sharing]]&lt;br /&gt;
[[Category:System administration]]&lt;br /&gt;
&lt;br /&gt;
= samba-util-bin =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;samba-util-bin&amp;#039;&amp;#039;&amp;#039; is a graphical user interface (GUI) for managing Samba configuration on Linux systems.  &lt;br /&gt;
It provides a visual front‑end for editing {{ic|smb.conf}}, managing Samba users and inspecting service status.  &lt;br /&gt;
The application is built with the cross‑platform &amp;#039;&amp;#039;&amp;#039;Avalonia&amp;#039;&amp;#039;&amp;#039; framework and is available as both an AppImage and an AUR package.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Graphical editor for {{ic|smb.conf}}.&lt;br /&gt;
* Creation, modification and removal of Samba shares.&lt;br /&gt;
* Management of Samba users through {{ic|smbpasswd}}.&lt;br /&gt;
* Validation of filesystem permissions for shared directories.&lt;br /&gt;
* Service status inspection for {{ic|smbd}} and {{ic|nmbd}}.&lt;br /&gt;
* Log viewer for Samba‑related journal entries.&lt;br /&gt;
* Cross‑platform Avalonia‑based interface.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== From AUR ===&lt;br /&gt;
The package is available as {{AUR|samba-util-bin}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|bash|&lt;br /&gt;
yay -S samba-util-bin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== AppImage ===&lt;br /&gt;
The AppImage can be downloaded from the project’s release page:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/mijocecr/samba-util/releases&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
&lt;br /&gt;
{{hc|bash|&lt;br /&gt;
chmod +x samba-util.appimage&lt;br /&gt;
./samba-util.appimage&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
The following packages are required for full functionality:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|samba}} — provides {{ic|smbd}}, {{ic|nmbd}}, {{ic|testparm}} and user management tools.&lt;br /&gt;
* {{Pkg|util-linux}} — provides {{ic|mount}}, {{ic|umount}}, {{ic|lsblk}}, {{ic|blkid}}.&lt;br /&gt;
* {{Pkg|libnotify}} — desktop notifications.&lt;br /&gt;
* {{Pkg|systemd}} — service management.&lt;br /&gt;
&lt;br /&gt;
Optional dependencies:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|gvfs-smb}} — SMB integration in graphical file managers.&lt;br /&gt;
* {{Pkg|nss-mdns}} — mDNS name resolution.&lt;br /&gt;
* {{Pkg|avahi}} — mDNS/zeroconf service discovery.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
When launched, the application reads the system configuration from {{ic|/etc/samba/smb.conf}}.  &lt;br /&gt;
The interface provides access to:&lt;br /&gt;
&lt;br /&gt;
* Editing global and per‑share configuration.&lt;br /&gt;
* Creating and removing Samba shares.&lt;br /&gt;
* Managing Samba users:&lt;br /&gt;
  {{hc|bash|smbpasswd -a &amp;lt;user&amp;gt;}}&lt;br /&gt;
* Inspecting the status of {{ic|smbd}} and {{ic|nmbd}}.&lt;br /&gt;
* Viewing logs related to Samba services.&lt;br /&gt;
&lt;br /&gt;
Changes to {{ic|smb.conf}} can be validated using {{ic|testparm}}.&lt;br /&gt;
&lt;br /&gt;
== System integration ==&lt;br /&gt;
samba-util interacts with the standard {{Pkg|samba}} mechanisms for configuration and service control.  &lt;br /&gt;
For details on Samba configuration, see:&lt;br /&gt;
&lt;br /&gt;
* [[Samba]]&lt;br /&gt;
* [[Samba/Tips and tricks]]&lt;br /&gt;
* [[Samba/Configuring]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Issues encountered while using the application generally correspond to underlying Samba configuration or filesystem permissions.  &lt;br /&gt;
Refer to:&lt;br /&gt;
&lt;br /&gt;
* {{ic|testparm}} for configuration validation.&lt;br /&gt;
* {{ic|journalctl -u smbd}} for service logs.&lt;br /&gt;
* [[Samba]] for detailed configuration guidance.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://github.com/mijocecr/samba-util GitHub repository]&lt;br /&gt;
* [https://aur.archlinux.org/packages/samba-util AUR package]&lt;/div&gt;</summary>
		<author><name>Cerratonix</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Samba-util</id>
		<title>Samba-util</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Samba-util"/>
		<updated>2026-05-03T21:08:23Z</updated>

		<summary type="html">&lt;p&gt;Cerratonix: Indicate external links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;samba-util is a graphical user interface (GUI) for managing Samba configuration on Linux systems.  &lt;br /&gt;
It allows administrators to create and modify Samba shares, manage Samba users, and adjust permissions without manually editing the smb.conf file.&lt;br /&gt;
&lt;br /&gt;
The application is built with Avalonia UI and is intended for home servers, homelabs, and small office environments.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Arch Linux ===&lt;br /&gt;
samba-util is available in the Arch User Repository (AUR).&lt;br /&gt;
&lt;br /&gt;
==== Using yay ====&lt;br /&gt;
 sudo yay -S samba-util&lt;br /&gt;
&lt;br /&gt;
==== Using paru ====&lt;br /&gt;
 sudo paru -S samba-util&lt;br /&gt;
&lt;br /&gt;
==== Manual installation from AUR ====&lt;br /&gt;
 git clone https://aur.archlinux.org/samba-util.git&lt;br /&gt;
 cd samba-util&lt;br /&gt;
 makepkg -si&lt;br /&gt;
&lt;br /&gt;
=== AppImage ===&lt;br /&gt;
&lt;br /&gt;
The AppImage can be downloaded from the project’s release page:&lt;br /&gt;
* https://github.com/mijocecr/samba-util/releases&lt;br /&gt;
&lt;br /&gt;
Make the file executable:&lt;br /&gt;
 chmod +x SAMBA-Util-x86_64.AppImage&lt;br /&gt;
&lt;br /&gt;
Run it:&lt;br /&gt;
 ./SAMBA-Util-x86_64.AppImage&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
* Samba&lt;br /&gt;
* sudo&lt;br /&gt;
* .NET 9.0 runtime (not required when using the AppImage)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Share management ===&lt;br /&gt;
samba-util provides:&lt;br /&gt;
* Creation, modification, and removal of Samba shares&lt;br /&gt;
* Configuration of paths, permissions, masks, and visibility&lt;br /&gt;
* Validation of filesystem permissions&lt;br /&gt;
* Detection of mismatches between Samba configuration and actual permissions&lt;br /&gt;
&lt;br /&gt;
=== User management ===&lt;br /&gt;
The application supports:&lt;br /&gt;
* Creating and deleting Samba users&lt;br /&gt;
* Synchronizing system users with Samba&lt;br /&gt;
* Managing per-share access lists&lt;br /&gt;
&lt;br /&gt;
=== System integration ===&lt;br /&gt;
* Reads and writes /etc/samba/smb.conf safely&lt;br /&gt;
* Performs privileged operations using sudo&lt;br /&gt;
* Displays the status of the smbd service&lt;br /&gt;
* Allows reloading the Samba configuration&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The application allows configuring:&lt;br /&gt;
* Custom path to smb.conf&lt;br /&gt;
* Default permissions for new shares&lt;br /&gt;
* Behavior of configuration reloads&lt;br /&gt;
&lt;br /&gt;
Changes may require administrative privileges.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Permissions are not applied ===&lt;br /&gt;
Ensure that the user has sudo privileges and that the password is correct.  &lt;br /&gt;
Verify that the underlying filesystem supports the configured permission modes.&lt;br /&gt;
&lt;br /&gt;
=== smbd service appears inactive ===&lt;br /&gt;
Check the service status:&lt;br /&gt;
 systemctl status smbd.service&lt;br /&gt;
&lt;br /&gt;
=== Samba users are not detected ===&lt;br /&gt;
Verify that the Samba package is installed and properly configured.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Iscsi-util]]&lt;br /&gt;
* [[Samba]]&lt;br /&gt;
* [[Smb.conf]]&lt;br /&gt;
* [[Users and groups]]&lt;br /&gt;
* [[AUR]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://github.com/mijocecr/samba-util GitHub repository]&lt;br /&gt;
* [https://aur.archlinux.org/packages/samba-util AUR package]&lt;/div&gt;</summary>
		<author><name>Cerratonix</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Autofirma_(Espa%C3%B1ol)</id>
		<title>Autofirma (Español)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Autofirma_(Espa%C3%B1ol)"/>
		<updated>2026-05-02T08:19:24Z</updated>

		<summary type="html">&lt;p&gt;Indigo: /* Véase también */ fix dead link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Digital signature (Español)]]&lt;br /&gt;
[[Category:Software (Español)]]&lt;br /&gt;
&lt;br /&gt;
[https://firmaelectronica.gob.es/Home/Ciudadanos/Apps-Firma.html Autofirma] es una aplicación de firma electrónica desarrollada por el Ministerio de Asuntos Económicos y Transformación Digital de España. Permite firmar documentos localmente y a través del navegador en páginas de la administración pública.&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
[[Instalación (Español)|Instale]] el paquete {{AUR|autofirma}}, disponible en los [[AUR (Español)|Repositorios de Usuarios de Arch (AUR)]].&lt;br /&gt;
&lt;br /&gt;
Este paquete incluye las dependencias necesarias, como el entorno de ejecución de Java (JRE), que es fundamental para su funcionamiento.&lt;br /&gt;
&lt;br /&gt;
== Configuración ==&lt;br /&gt;
&lt;br /&gt;
=== Navegadores web ===&lt;br /&gt;
Para que Autofirma funcione correctamente con navegadores como [[Firefox (Español)|Firefox]] o [[Chromium (Español)|Chromium]], es posible que necesite reiniciar el navegador tras la instalación para que se reconozca el protocolo `afirma://`.&lt;br /&gt;
&lt;br /&gt;
== Uso ==&lt;br /&gt;
&lt;br /&gt;
Puede ejecutar Autofirma desde su menú de aplicaciones o mediante el comando:&lt;br /&gt;
&lt;br /&gt;
 $ autofirma&lt;br /&gt;
&lt;br /&gt;
Al acceder a una sede electrónica que requiera firma, el navegador lanzará automáticamente la aplicación para procesar el certificado digital.&lt;br /&gt;
&lt;br /&gt;
== Solución de problemas ==&lt;br /&gt;
&lt;br /&gt;
=== Problemas con el almacén de certificados ===&lt;br /&gt;
Si Autofirma no detecta sus certificados instalados en el navegador, asegúrese de que el paquete `nss` esté actualizado y que los certificados estén correctamente importados en el almacén de su navegador principal.&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [https://firmaelectronica.gob.es/ciudadanos Sitio oficial de Autofirma]&lt;br /&gt;
* [[Certificados digitales (Español)|Certificados digitales en Arch Linux]]&lt;/div&gt;</summary>
		<author><name>Jlizquierdo</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Openclaw</id>
		<title>Openclaw</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Openclaw"/>
		<updated>2026-04-28T01:05:41Z</updated>

		<summary type="html">&lt;p&gt;Engdyn: /* Installation */ move the unmaintained notice into a note. There&amp;#039;s currently a pending orphan request for openclaw-git from the maintainer of the deleted openclaw-bun-git package. openclaw-git should be maintained again soonish&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[zh-hans:OpenClaw]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Node.js}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://openclaw.ai/ OpenClaw] is an open-source AI agent developed by Peter Steinberger, an Austrian programmer. Users can connect with it through instant messaging tools and remotely control their computers to automate tasks such as email processing, document reading, coding, and posting social media content.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Install {{AUR|openclaw}}. For a development build install {{AUR|openclaw-git}}.&lt;br /&gt;
{{Note|{{AUR|openclaw-git}} is currently unmaintained and no longer recommended. }}&lt;br /&gt;
&lt;br /&gt;
=== Official installation method ===&lt;br /&gt;
First, install {{Pkg|nodejs}}, {{Pkg|npm}}, {{Pkg|git}}. {{Pkg|nodejs}} can be replaced by its LTS version {{Pkg|nodejs-lts-krypton}} or {{Pkg|nodejs-lts-jod}}. Then, run in terminal:&lt;br /&gt;
&lt;br /&gt;
 # curl -fsSL https://openclaw.ai/install.sh | bash&lt;br /&gt;
&lt;br /&gt;
One command could finish the whole installation. As of now, the [[AUR]] packages are all buggy and unstable, using the official installation method could avoid the bugs introduced by [[AUR]] packaging. If you need your OpenClaw to work continuously for a long time, and you don&amp;#039;t care whether OpenClaw is manageable by {{Pkg|pacman}}, it is recommended to use the official installation method.&lt;br /&gt;
&lt;br /&gt;
=== Installing via [[nix]] ===&lt;br /&gt;
[[Install]] {{Pkg|nix}}，switch to unstable channel，then run:&lt;br /&gt;
&lt;br /&gt;
 # nix-env -iA nixpkgs.openclaw&lt;br /&gt;
&lt;br /&gt;
Note that unless you are using nix to manage other software packages, it is not recommended to use this installation method separately for OpenClaw, as it will result in nix downloading a large number of dependencies that are duplicated with Arch Linux&amp;#039;s existing software packages, occupying a lot of disk space.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
After installing OpenClaw, run the beginner&amp;#039;s guide using the following command:&lt;br /&gt;
&lt;br /&gt;
 # openclaw onboard --install-daemon&lt;br /&gt;
&lt;br /&gt;
For detailed configuration methods, please refer to the [https://docs.openclaw.ai/start/wizard official document].&lt;br /&gt;
&lt;br /&gt;
In order to use OpenClaw, you need to prepare a large model API Key, an AI search engine API Key, and an instant messaging software in advance, and you may need to make appropriate deposits for the large model provider. OpenClaw compatible large models, AI search engines, and instant messaging software will all be listed in the beginner&amp;#039;s guide. If you haven&amp;#039;t prepared in advance, you can also choose and register one during the beginner&amp;#039;s guide process.&lt;br /&gt;
&lt;br /&gt;
After the configuration, run&lt;br /&gt;
&lt;br /&gt;
 # openclaw dashboard&lt;br /&gt;
&lt;br /&gt;
to open the control UI in your browser. You can also bookmark the page in your browser and access it directly through the browser.&lt;br /&gt;
&lt;br /&gt;
== Migration ==&lt;br /&gt;
If you reinstall Arch Linux, migrate from other distributions to Arch Linux, migrate from Arch Linux to other distributions, change installation methods, or change computers, then you will need to perform migration work.&lt;br /&gt;
&lt;br /&gt;
First, &amp;#039;&amp;#039;&amp;#039;before the migration,&amp;#039;&amp;#039;&amp;#039; run in the terminal of the &amp;#039;&amp;#039;&amp;#039;old system:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 # openclaw gateway stop&lt;br /&gt;
&lt;br /&gt;
Stop the OpenClaw gateway from running to prevent data changes during the migration process. Then, backup the .openclaw directory in the home directory. Afterwards, install OpenClaw on the new system. If it is the same system, only changing the installation method requires deleting old software packages to avoid conflicts. Afterwards, copy the .openclaw directory to the home directory of the new system. There is no need to run a beginner&amp;#039;s guide, but simply run:&lt;br /&gt;
&lt;br /&gt;
 # openclaw doctor&lt;br /&gt;
&lt;br /&gt;
The program will automatically repair the configuration file, and the original data will be retained without the need for reconfiguration. Then, run in the terminal of the &amp;#039;&amp;#039;&amp;#039;new system:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 # openclaw gateway restart&lt;br /&gt;
&lt;br /&gt;
Then you can use OpenClaw on the new system.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&lt;br /&gt;
=== Data Safety ===&lt;br /&gt;
OpenClaw requires system level permissions to perform tasks, and improper use can lead to various risks such as data leakage, accidental deletion of important data, and virus infection. Some methods to reduce security risks include:&lt;br /&gt;
&lt;br /&gt;
* If you have two or more computers, use one specifically to run OpenClaw while the other computer stores important data. (Physical isolation, safest)&lt;br /&gt;
* Run OpenClaw in a sandbox. If you installed OpenClaw via {{AUR|openclaw}} or {{AUR|openclaw-git}}, then [[bubblewrap]] sandbox is installed as a dependency.&lt;br /&gt;
* Install OpenClaw in a [[wikipedia:Virtual Machine|Virtual Machine]].&lt;br /&gt;
* Using [[Dual boot with Windows|Arch and Windows dual system]], placing important data in Windows, and not to directly mount the partition where Windows is located. You can even use BitLocker to encrypt the partition where Windows is located to prevent Arch Linux from mounting the partition.&lt;br /&gt;
&lt;br /&gt;
=== Updating Notice ===&lt;br /&gt;
&lt;br /&gt;
OpenClaw is under frequent development, with new versions released almost daily. Some updates may modify certain files, causing existing configurations to malfunction. It is recommended to manually run the command after each update:&lt;br /&gt;
&lt;br /&gt;
 # openclaw doctor&lt;br /&gt;
&lt;br /&gt;
Thus, it can automatically resolve some configuration issues.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== [[Bash]] could not find command ===&lt;br /&gt;
Commonly seen in OpenClaw installed using [[nix]], or OpenClaw migrated from [[nix]] to other installation methods. Restarting the system will solve the problem.&lt;br /&gt;
&lt;br /&gt;
=== An error occurs in prepare while installing {{AUR|openclaw-git}} ===&lt;br /&gt;
The logic of some files in {{AUR|openclaw-git}} has been changed by upstream, but the packager has not yet updated [[PKGBUILD]] and openclaw-patch.sh. By now, install {{AUR|openclaw}} instead.&lt;br /&gt;
&lt;br /&gt;
=== No reply in [[List_of_applications/Internet#Instant_messaging_clients|instant messaging software]] ===&lt;br /&gt;
Ask OpenClaw to self-diagnose. &lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.openclaw.ai/ Official document]&lt;/div&gt;</summary>
		<author><name>Zwyhmcn</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Hypnotix</id>
		<title>Hypnotix</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Hypnotix"/>
		<updated>2026-04-26T21:42:50Z</updated>

		<summary type="html">&lt;p&gt;Erus Iluvatar: Flag for redirecting to List of applications/Multimedia#mpv-based.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Multimedia]]&lt;br /&gt;
[[es:Hypnotix]]&lt;br /&gt;
&lt;br /&gt;
{{Merge|List of applications/Multimedia#mpv-based|Too short to deserve a dedicated page.}}&lt;br /&gt;
&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Streaming media}}&lt;br /&gt;
{{Related|mpv}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Hypnotix]] is an open-source IPTV streaming application with support for live TV channels, movies, and series. Originally developed by the Linux Mint team, it uses [[mpv]] as its playback engine. By default, it includes a free IPTV provider (Free-TV) with channels from around the world.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
To use Hypnotix, [[install]] the {{Pkg|hypnotix}} package.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
When launching Hypnotix for the first time, the &amp;quot;Free-TV&amp;quot; provider will appear automatically. To add your own services, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Click on the &amp;#039;&amp;#039;Providers&amp;#039;&amp;#039; icon (the list icon in the top bar).&lt;br /&gt;
# Select &amp;#039;&amp;#039;Add a new provider&amp;#039;&amp;#039;.&lt;br /&gt;
# Enter the details according to your service:&lt;br /&gt;
:* &amp;#039;&amp;#039;Name:&amp;#039;&amp;#039; An identifier for your list.&lt;br /&gt;
:* &amp;#039;&amp;#039;Type:&amp;#039;&amp;#039; M3U URL (remote list), Local M3U (file on disk), or Xtream API (services with username/password).&lt;br /&gt;
:* &amp;#039;&amp;#039;URL/Path:&amp;#039;&amp;#039; The address of your channel list.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Black screen or playback error ===&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|There is no link between [[mpv]] and [[Gstreamer]], the backend for {{Pkg|mpv}} is {{Pkg|ffmpeg}}.}}&lt;br /&gt;
&lt;br /&gt;
If channels do not load or show a black screen, it is usually due to missing video codecs. Verify that you have the {{Pkg|gst-plugins-good}} and {{Pkg|gst-plugins-bad}} package groups installed.&lt;br /&gt;
&lt;br /&gt;
If you are using an NVIDIA graphics card, ensure that hardware acceleration is correctly configured for MPV. Refer to the [[Hardware video acceleration]] page for further details.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/linuxmint/hypnotix Official GitHub repository]&lt;br /&gt;
* [https://github.com/Free-TV/IPTV Default free-to-air channel provider]&lt;/div&gt;</summary>
		<author><name>Jlizquierdo</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Hypnotix_(Espa%C3%B1ol)</id>
		<title>Hypnotix (Español)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Hypnotix_(Espa%C3%B1ol)"/>
		<updated>2026-04-26T21:40:39Z</updated>

		<summary type="html">&lt;p&gt;Jlizquierdo: refactor link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Multimedia (Español)]]&lt;br /&gt;
[[en:Hypnotix]]&lt;br /&gt;
&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Streaming media (Español)|Streaming media}}&lt;br /&gt;
{{Related|MPV (Español)|MPV}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Hypnotix]] es una aplicación de transmisión de IPTV de código abierto con soporte para canales de TV en vivo, películas y series. Fue desarrollada originalmente por el equipo de Linux Mint y utiliza [[MPV]] como motor de reproducción. Por defecto, incluye un proveedor de IPTV gratuito (Free-TV) con canales de todo el mundo.&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar Hypnotix, debe [[AUR (Español)|instalar]] el paquete {{Pkg|hypnotix}} desde los repositorios de usuarios de Arch (AUR).&lt;br /&gt;
&lt;br /&gt;
Dado que Hypnotix depende de un motor de reproducción, asegúrese de tener instalados los códecs necesarios para procesar los flujos de red:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|mpv}}: El motor principal de reproducción.&lt;br /&gt;
* {{Pkg|gst-libav}}: Para soporte de diversos formatos de vídeo y audio a través de GStreamer.&lt;br /&gt;
&lt;br /&gt;
== Configuración ==&lt;br /&gt;
&lt;br /&gt;
Al iniciar Hypnotix por primera vez, el proveedor &amp;quot;Free-TV&amp;quot; aparecerá automáticamente. Para añadir sus propios servicios, siga estos pasos:&lt;br /&gt;
&lt;br /&gt;
1. Haga clic en el icono de &amp;#039;&amp;#039;&amp;#039;Proveedores&amp;#039;&amp;#039;&amp;#039; (el icono de la lista en la barra superior).&lt;br /&gt;
2. Seleccione &amp;#039;&amp;#039;&amp;#039;Añadir un nuevo proveedor&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
3. Complete los datos según su servicio:&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;Nombre:&amp;#039;&amp;#039;&amp;#039; Un identificador para su lista.&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;Tipo:&amp;#039;&amp;#039;&amp;#039; M3U URL (lista remota), Local M3U (archivo en disco) o Xtream API (servicios con usuario/contraseña).&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;URL/Ruta:&amp;#039;&amp;#039;&amp;#039; La dirección de su lista de canales.&lt;br /&gt;
&lt;br /&gt;
== Solución de problemas ==&lt;br /&gt;
&lt;br /&gt;
=== Pantalla negra o error de reproducción ===&lt;br /&gt;
&lt;br /&gt;
Si los canales no cargan o muestran una pantalla negra, suele deberse a la falta de códecs de vídeo. Verifique que tiene instalado el grupo de paquetes {{Pkg|gst-plugins-good}} y {{Pkg|gst-plugins-bad}}.&lt;br /&gt;
&lt;br /&gt;
Si está utilizando una tarjeta gráfica NVIDIA, asegúrese de que la aceleración por hardware está configurada correctamente para MPV. Consulte la página de [[Hardware video acceleration (Español)|Aceleración de vídeo por hardware]] para más detalles.&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/linuxmint/hypnotix Repositorio oficial en GitHub]&lt;br /&gt;
* [https://github.com/Free-TV/IPTV Proveedor de canales gratuitos predeterminado]&lt;/div&gt;</summary>
		<author><name>Jlizquierdo</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Gerbera_(Espa%C3%B1ol)</id>
		<title>Gerbera (Español)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Gerbera_(Espa%C3%B1ol)"/>
		<updated>2026-04-26T15:24:02Z</updated>

		<summary type="html">&lt;p&gt;Jlizquierdo: Litle adjust in list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Media servers (Español)]]&lt;br /&gt;
[[en:Gerbera]]&lt;br /&gt;
[[ja:MediaTomb]]&lt;br /&gt;
&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Streaming media (Español)|Streaming media}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://gerbera.io/ Gerbera] es un servidor de medios UPnP de código abierto con una interfaz web. Le permite transmitir sus medios digitales a través de su red doméstica y escucharlos o verlos en una variedad de dispositivos compatibles con UPnP. Es un fork del ya desaparecido MediaTomb.&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
[[Install (Español)|Instale]] el paquete {{Pkg|gerbera}}.&lt;br /&gt;
&lt;br /&gt;
Por defecto, Gerbera configura su propia base de datos sqlite. Alternativamente, para usarlo con un servidor [[MariaDB (Español)|MariaDB]] externo, desactive el comentario en la línea que contiene {{ic|WITH_MYSQL}} antes de la compilación y consulte la [https://docs.gerbera.io/en/stable/run.html#using-mysql-database documentación oficial] para obtener más información.&lt;br /&gt;
&lt;br /&gt;
== Configuración ==&lt;br /&gt;
&lt;br /&gt;
Gerbera se puede configurar y ejecutar por usuario o como un demonio a nivel de sistema.&lt;br /&gt;
&lt;br /&gt;
=== Por usuario ===&lt;br /&gt;
&lt;br /&gt;
Para crear el archivo de configuración para el usuario actual:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir -p ~/.config/gerbera&lt;br /&gt;
 $ gerbera --create-config &amp;gt; ~/.config/gerbera/config.xml&lt;br /&gt;
&lt;br /&gt;
Luego ejecute &amp;#039;&amp;#039;gerbera&amp;#039;&amp;#039; para iniciarlo.&lt;br /&gt;
&lt;br /&gt;
=== A nivel de sistema ===&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración a nivel de sistema debe ser creado por el usuario gerbera:&lt;br /&gt;
&lt;br /&gt;
 [gerbera]$ gerbera --create-config &amp;gt; /etc/gerbera/config.xml&lt;br /&gt;
&lt;br /&gt;
Luego [[start/enable (Español)|inicie/active]] {{ic|gerbera.service}} para iniciar el demonio.&lt;br /&gt;
&lt;br /&gt;
== Uso ==&lt;br /&gt;
&lt;br /&gt;
El demonio escucha en el puerto {{ic|50500}} por defecto. Para acceder a la interfaz web y comenzar a importar medios, navegue a http://localhost:50500/ en su navegador favorito.&lt;br /&gt;
&lt;br /&gt;
Si se ejecuta una instancia por usuario, el puerto por defecto es {{ic|49152}}. Sin embargo, es posible que el puerto cambie al reiniciar el servidor. La URL de la interfaz web se muestra durante el inicio. Los usuarios también pueden especificar el puerto manualmente:&lt;br /&gt;
&lt;br /&gt;
 $ gerbera -p 50500&lt;br /&gt;
&lt;br /&gt;
== Transcodificación ==&lt;br /&gt;
&lt;br /&gt;
La transcodificación permite a Gerbera convertir medios sobre la marcha a un formato compatible con el dispositivo cliente. Para habilitarlo, debe editar el archivo de configuración y asegurarse de tener instalado el transcodificador correspondiente (habitualmente {{pkg|ffmpeg}}).&lt;br /&gt;
&lt;br /&gt;
Asegúrese de que el bloque principal esté habilitado en su {{ic|config.xml}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;transcoding enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/transcoding&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo: Transcodificación de audio a Opus ===&lt;br /&gt;
&lt;br /&gt;
Este perfil utiliza {{pkg|ffmpeg}} para convertir formatos de audio de alta fidelidad o no soportados (como FLAC, OGG o M4A) al códec &amp;#039;&amp;#039;&amp;#039;Opus&amp;#039;&amp;#039;&amp;#039; en tiempo real, lo cual es muy eficiente para streaming con poco ancho de banda, o para ahorro de datos en reproducción en redes m&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Mapeo de mimetypes&amp;#039;&amp;#039;&amp;#039;: Defina qué formatos deben usar el perfil dentro de la sección {{ic|&amp;lt;mimetype-profile-mappings&amp;gt;}}:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;transcode mimetype=&amp;quot;application/ogg&amp;quot; using=&amp;quot;audio2opus&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;transcode mimetype=&amp;quot;audio/ogg&amp;quot; using=&amp;quot;audio2opus&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;transcode mimetype=&amp;quot;audio/x-flac&amp;quot; using=&amp;quot;audio2opus&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;transcode mimetype=&amp;quot;audio/flac&amp;quot; using=&amp;quot;audio2opus&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;transcode mimetype=&amp;quot;audio/ape&amp;quot; using=&amp;quot;audio2opus&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;transcode mimetype=&amp;quot;audio/m4a&amp;quot; using=&amp;quot;audio2opus&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;transcode mimetype=&amp;quot;audio/alac&amp;quot; using=&amp;quot;audio2opus&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;transcode mimetype=&amp;quot;audio/mp4&amp;quot; using=&amp;quot;audio2opus&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Definición del perfil&amp;#039;&amp;#039;&amp;#039;: Añada la configuración del perfil dentro de la sección {{ic|&amp;lt;profiles&amp;gt;}}:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;profile name=&amp;quot;audio2opus&amp;quot; enabled=&amp;quot;yes&amp;quot; type=&amp;quot;external&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;mimetype&amp;amp;gt;audio/opus&amp;amp;lt;/mimetype&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;dlna-profile&amp;amp;gt;OPUS_CUSTOM&amp;amp;lt;/dlna-profile&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;accept-url&amp;amp;gt;yes&amp;amp;lt;/accept-url&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;first-resource&amp;amp;gt;yes&amp;amp;lt;/first-resource&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;accept-ogg-theora&amp;amp;gt;yes&amp;amp;lt;/accept-ogg-theora&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;sample-frequency&amp;amp;gt;44100&amp;amp;lt;/sample-frequency&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;audio-channels&amp;amp;gt;2&amp;amp;lt;/audio-channels&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;agent command=&amp;quot;ffmpeg&amp;quot; arguments=&amp;quot;-loglevel error -vn -i %in -c:a libopus -b:a 96k -vbr on -f opus -y %out&amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;buffer size=&amp;quot;1048576&amp;quot; chunk-size=&amp;quot;131072&amp;quot; fill-size=&amp;quot;262144&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/profile&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Miniaturas con ffmpegthumbnailer ===&lt;br /&gt;
&lt;br /&gt;
Gerbera puede generar miniaturas automáticas para los videos si tiene instalado {{pkg|ffmpegthumbnailer}}. Para ello, active la siguiente sección dentro de {{ic|&amp;lt;extended-runtime-options&amp;gt;}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ffmpegthumbnailer enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;thumbnail-size&amp;gt;160&amp;lt;/thumbnail-size&amp;gt;&lt;br /&gt;
  &amp;lt;seek-percentage&amp;gt;5&amp;lt;/seek-percentage&amp;gt;&lt;br /&gt;
  &amp;lt;filmstrip-overlay&amp;gt;no&amp;lt;/filmstrip-overlay&amp;gt;&lt;br /&gt;
  &amp;lt;image-quality&amp;gt;8&amp;lt;/image-quality&amp;gt;&lt;br /&gt;
&amp;lt;/ffmpegthumbnailer&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solución de problemas ==&lt;br /&gt;
&lt;br /&gt;
=== El cliente pierde la conexión después de 30 minutos ===&lt;br /&gt;
&lt;br /&gt;
Aparentemente, esto está relacionado con que el mensaje SSNP solo se envía una vez, lo que resulta en que el cliente pierda su conexión en 30 minutos ya que piensa que el servidor ha desaparecido.&lt;br /&gt;
&lt;br /&gt;
En el {{ic|config.xml}} añada la etiqueta alive:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;alive&amp;gt;180&amp;lt;/alive&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor por defecto es {{ic|180}}. Consulte https://docs.gerbera.io/en/stable/config-server.html#alive.&lt;/div&gt;</summary>
		<author><name>Jlizquierdo</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Joplin_(Espa%C3%B1ol)</id>
		<title>Joplin (Español)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Joplin_(Espa%C3%B1ol)"/>
		<updated>2026-04-26T09:01:33Z</updated>

		<summary type="html">&lt;p&gt;Jlizquierdo: Initial translation from English&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Note-taking software (Español)]]&lt;br /&gt;
[[en:Joplin]]&lt;br /&gt;
[[ja:Joplin]]&lt;br /&gt;
[[ru:Joplin]]&lt;br /&gt;
&lt;br /&gt;
De [https://joplinapp.org/help/ ¿Qué es Joplin?]:&lt;br /&gt;
&lt;br /&gt;
Joplin es una aplicación gratuita y de código abierto para tomar notas y gestionar tareas pendientes, que puede manejar una gran cantidad de notas organizadas en cuadernos. Las notas se pueden buscar, copiar, etiquetar y modificar, ya sea directamente desde la aplicación o desde su propio editor de texto. Las notas están en formato Markdown.&lt;br /&gt;
&lt;br /&gt;
Joplin es &amp;quot;offline first&amp;quot; (primero sin conexión), lo que significa que siempre tiene todos sus datos en su teléfono o computadora. Esto garantiza que sus notas estén siempre accesibles, tenga o no conexión a Internet.&lt;br /&gt;
&lt;br /&gt;
Las notas se pueden sincronizar de forma segura utilizando cifrado de extremo a extremo con varios servicios en la nube, incluidos Nextcloud, Dropbox, OneDrive y Joplin Cloud.&lt;br /&gt;
&lt;br /&gt;
La búsqueda de texto completo está disponible en todas las plataformas para encontrar rápidamente la información que necesita. La aplicación se puede personalizar mediante complementos (plugins) y temas, y también puede crear los suyos propios fácilmente.&lt;br /&gt;
&lt;br /&gt;
La aplicación está disponible para Windows, Linux, macOS, Android e iOS. También hay disponible un Web Clipper para Firefox y Chrome, que permite guardar páginas web y capturas de pantalla desde el navegador.&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
[[Install (Español)|Instale]] {{AUR|joplin}} para la [https://joplinapp.org/help/apps/terminal/ aplicación de terminal de Joplin].&lt;br /&gt;
&lt;br /&gt;
Instale {{AUR|joplin-desktop}} para la [https://joplinapp.org/help/apps/desktop aplicación de escritorio de Joplin].&lt;br /&gt;
&lt;br /&gt;
== Sincronización ==&lt;br /&gt;
&lt;br /&gt;
Consulte la [https://joplinapp.org/help/apps/sync/ documentación oficial sobre sincronización] para obtener instrucciones sobre cómo sincronizar notas entre dispositivos utilizando la sincronización basada en la nube o sin conexi.&lt;br /&gt;
&lt;br /&gt;
== Complementos ==&lt;br /&gt;
&lt;br /&gt;
La aplicación de escritorio se puede ampliar con [https://joplinapp.org/plugins/ complementos (plugins)]. Los complementos no están disponibles en la aplicación de terminal.&lt;br /&gt;
&lt;br /&gt;
Consulte la [https://joplinapp.org/help/apps/plugins documentación oficial sobre complementos] para obtener información sobre su instalación. La aplicación de escritorio descarga los complementos en {{ic|~/.config/joplin-desktop/plugins}}.&lt;br /&gt;
&lt;br /&gt;
== Consejos y trucos ==&lt;br /&gt;
&lt;br /&gt;
=== Importar notas de otras aplicaciones ===&lt;br /&gt;
&lt;br /&gt;
Consulte la [https://joplinapp.org/help/apps/import_export#importing-from-evernote documentación oficial sobre Importación y Exportación] para obtener instrucciones sobre cómo importar notas desde Evernote, OneDrive y otras aplicaciones de toma de notas.&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
&lt;br /&gt;
* [https://joplinapp.org/help Documentación de Joplin]&lt;br /&gt;
* [https://joplinapp.org/ Página principal de Joplin]&lt;br /&gt;
* [https://github.com/joplin/plugins Repositorio oficial de complementos de Joplin]&lt;/div&gt;</summary>
		<author><name>Jlizquierdo</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Iscsi-util</id>
		<title>Iscsi-util</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Iscsi-util"/>
		<updated>2026-04-25T19:16:28Z</updated>

		<summary type="html">&lt;p&gt;Cerratonix: update package name from iscsi-util to iscsi-util-bin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Network sharing]]&lt;br /&gt;
[[Category:System administration]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;iscsi-util-bin&amp;#039;&amp;#039;&amp;#039; is a graphical user interface (GUI) for managing iSCSI sessions on Linux.  &lt;br /&gt;
It is built with the cross‑platform &amp;#039;&amp;#039;&amp;#039;Avalonia&amp;#039;&amp;#039;&amp;#039; framework and provides a simple alternative to using {{ic|iscsiadm}} directly.  &lt;br /&gt;
The project offers a portable AppImage as well as an AUR package.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Target discovery.&lt;br /&gt;
* Session management (login/logout).&lt;br /&gt;
* CHAP authentication support.&lt;br /&gt;
* Session parameter configuration.&lt;br /&gt;
* Cross‑platform Avalonia-based interface.&lt;br /&gt;
* Portable AppImage with no external dependencies.&lt;br /&gt;
* Integration with {{Pkg|open-iscsi}}.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== From AUR ===&lt;br /&gt;
The package is available as {{AUR|iscsi-util-bin}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|bash|&lt;br /&gt;
yay -S iscsi-util-bin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== AppImage ===&lt;br /&gt;
The AppImage can be downloaded from the project’s release page:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/mijocecr/iscsi-util/releases&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
&lt;br /&gt;
{{hc|bash|&lt;br /&gt;
chmod +x iscsi-util.appimage&lt;br /&gt;
./iscsi-util.appimage&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
* {{Pkg|open-iscsi}} — required for iSCSI discovery, login, logout and session management.&lt;br /&gt;
* {{Pkg|dotnet-runtime-9.0}} — required when running the non‑AppImage packaged version.&lt;br /&gt;
* {{Pkg|util-linux}} — provides lsblk, blkid, mount, umount and other essential tools.&lt;br /&gt;
* {{Pkg|libnotify}} — required for desktop notifications.&lt;br /&gt;
* {{Pkg|e2fsprogs}} — ext2/3/4 filesystem support.&lt;br /&gt;
* {{Pkg|xfsprogs}} — XFS filesystem support.&lt;br /&gt;
* {{Pkg|btrfs-progs}} — Btrfs filesystem support.&lt;br /&gt;
* {{Pkg|f2fs-tools}} — F2FS filesystem support.&lt;br /&gt;
* {{Pkg|ntfs-3g}} — NTFS filesystem support.&lt;br /&gt;
* {{Pkg|exfatprogs}} — exFAT filesystem support.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
When launched, the application automatically detects existing configuration under {{ic|/etc/iscsi}}.  &lt;br /&gt;
The main operations include:&lt;br /&gt;
&lt;br /&gt;
* Discovering targets:&lt;br /&gt;
  {{hc|bash|iscsiadm -m discovery -t sendtargets -p &amp;lt;IP&amp;gt;}}&lt;br /&gt;
* Logging in to a target.&lt;br /&gt;
* Logging out.&lt;br /&gt;
* Configuring CHAP authentication.&lt;br /&gt;
* Viewing active sessions.&lt;br /&gt;
&lt;br /&gt;
The application acts as a visual layer on top of these operations.&lt;br /&gt;
&lt;br /&gt;
== System integration ==&lt;br /&gt;
iscsi-util can configure iSCSI nodes so that they are automatically logged in at boot using the standard {{Pkg|open-iscsi}} mechanisms.  &lt;br /&gt;
For details on how automatic login works, see:&lt;br /&gt;
&lt;br /&gt;
* [[iSCSI]]&lt;br /&gt;
* [[Open-iSCSI#Automatic_login]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* Ensure the {{ic|iscsid}} service is running:&lt;br /&gt;
  {{hc|bash|systemctl status iscsid}}&lt;br /&gt;
* Verify network connectivity to the target.&lt;br /&gt;
* Check logs:&lt;br /&gt;
  {{hc|bash|journalctl -u iscsid}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://github.com/mijocecr/iscsi-util Github repository]&lt;br /&gt;
* [https://aur.archlinux.org/packages/iscsi-util AUR package]&lt;/div&gt;</summary>
		<author><name>Cerratonix</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Networkmanager_(%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9)</id>
		<title>Networkmanager (العربية)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Networkmanager_(%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9)"/>
		<updated>2026-04-25T01:21:53Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: update interlanguage links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Network managers (العربية)]]&lt;br /&gt;
[[Category:DHCP (العربية)]]&lt;br /&gt;
[[de:Networkmanager]]&lt;br /&gt;
[[en:NetworkManager]]&lt;br /&gt;
[[fr:NetworkManager]]&lt;br /&gt;
[[hu:NetworkManager]]&lt;br /&gt;
[[ja:NetworkManager]]&lt;br /&gt;
[[pt:NetworkManager]]&lt;br /&gt;
[[ru:NetworkManager]]&lt;br /&gt;
[[zh-hans:NetworkManager]]&lt;br /&gt;
&amp;lt;div lang=&amp;quot;ar&amp;quot; dir=&amp;quot;rtl&amp;quot; class=&amp;quot;mw-content-rtl&amp;quot;&amp;gt; &lt;br /&gt;
{{Note (العربية)|ترجمت هذه الصفحة&amp;#039;&amp;#039;&amp;#039; بتصرف &amp;#039;&amp;#039;&amp;#039;من المقالة اﻷصلية باللغة الإنجليزية.}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:NetworkManager|NetworkManager]] هو برنامج يوفر الكشف عن الشبكات وإعداد الاتصالات تلقائيًا.&lt;br /&gt;
&lt;br /&gt;
يُفيد [https://networkmanager.dev/ NetworkManager] في الشبكات اللاسلكية والسلكية على حدٍّ سواء. في الشبكات اللاسلكية، يُفضّل NetworkManager الشبكات المعروفة مسبقًا، وبإمكانه التحويل إلى الشبكة الأكثر استقرارًا. يمكن للتطبيقات المدركة لـ NetworkManager التبديل بين وضعَي الاتصال وانقطاعه.&lt;br /&gt;
&lt;br /&gt;
كما يُفضّل NetworkManager الاتصالات السلكية على اللاسلكية، ويدعم اتصالات المودم وأنواعًا معينة من الشبكات الافتراضية الخاصة (VPN). &lt;br /&gt;
&lt;br /&gt;
{{تحذير|افتراضيًا، تكون كلمات السر — كلمات مرور Wi-Fi مثلًا — متاحةً للمستخدم الجذر (root) في نظام الملفات، وكذلك للمستخدمين الذين يمكنهم الوصول إلى الإعدادات عبر الواجهات الرسومية.  (كمثال [[#nm-applet]]). لمزيدٍ من المعلومات, تفقد [[#Encrypted Wi-Fi passwords]].}}&lt;br /&gt;
&lt;br /&gt;
== التثبيت ==&lt;br /&gt;
يمكن [[install|تثبيت]] NetworkManager عبر الحزمة {{Pkg|networkmanager}}، التي تحتوي على خادم خلفي، وواجهة سطر أوامر (&amp;#039;&amp;#039;nmcli&amp;#039;&amp;#039;)، وواجهة نصية قائمة على curses (&amp;#039;&amp;#039;nmtui&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
=== تفعيل NetworkManager ===&lt;br /&gt;
بعد التثبيت، يجب [[start/enable|تشغيل وتفعيل]] {{ic|NetworkManager.service}}. بمجرد تشغيل الخادم الخلفي لـ NetworkManager، سيتصل تلقائيًا بأي &amp;quot;اتصالات نظام&amp;quot; متاحة تم إعدادها مسبقًا. أما &amp;quot;اتصالات المستخدم&amp;quot; أو الاتصالات غير المُعدَّة فتتطلب استخدام &amp;#039;&amp;#039;nmcli&amp;#039;&amp;#039; أو أبلت للإعداد والاتصال.&lt;br /&gt;
&lt;br /&gt;
{{ملاحظة|&lt;br /&gt;
* يجب أن تكون كل واجهةِ شبكةٍ تحت إدارة [[Network configuration#Network managers|عميل DHCP أو مدير شبكة]] واحد فقط، لذا يُنصح بتشغيل عميل DHCP أو مدير شبكة واحد فقط على النظام. يمكن عرض قائمة الخدمات الجارية حاليًا باستخدام {{ic|1=systemctl --type=service}}، ثم [[stop|إيقاف]] أو إعادة إعداد الخدمات المتعارضة.&lt;br /&gt;
* إن لم يكن [[systemd-resolved]] [[started|مُشغَّلًا]]، ستبدأ رسائل خطأ بالتراكم في سجلاتك. راجع [[#Unit dbus-org.freedesktop.resolve1.service not found]] لمزيد من المعلومات.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== واجهات إضافية ===&lt;br /&gt;
* {{Pkg|nm-connection-editor}} لواجهة مستخدم رسومية،&lt;br /&gt;
* {{Pkg|network-manager-applet}} لأبلت شريط النظام (راجع قسم [[#nm-applet]]).&lt;br /&gt;
&lt;br /&gt;
=== دعم النطاق العريض المحمول ===&lt;br /&gt;
يستخدم NetworkManager برنامج [[ModemManager]] لدعم اتصالات النطاق العريض المحمول.&lt;br /&gt;
[[Install|ثبِّت]] {{Pkg|modemmanager}} و{{Pkg|usb_modeswitch}}، ثم [[enable|فعِّل]] {{ic|ModemManager.service}} و[[start|شغِّله]].&lt;br /&gt;
&lt;br /&gt;
قد يكون من الضروري [[restart|إعادة تشغيل]] {{ic|NetworkManager.service}} لكي يتعرف على ModemManager. بعد إعادة التشغيل، أعد توصيل المودم وسيتم التعرف عليه.&lt;br /&gt;
&lt;br /&gt;
أضف الاتصالات من واجهة أمامية (مثل {{Pkg|nm-connection-editor}}) واختر النطاق العريض المحمول نوعًا للاتصال. بعد اختيار مزود الخدمة (ISP) وخطة الاشتراك، ينبغي أن تُملَأ إعدادات [[Wikipedia:Access Point Name|APN]] وغيرها تلقائيًا باستخدام معلومات من {{Pkg|mobile-broadband-provider-info}}.&lt;br /&gt;
&lt;br /&gt;
=== دعم PPPoE / DSL ===&lt;br /&gt;
[[Install|ثبِّت]] حزمة {{Pkg|ppp}} للحصول على دعم اتصالات PPPoE / DSL. لإضافة اتصال PPPoE فعليًا، استخدم {{ic|1=nm-connection-editor}} وأضف اتصال DSL/PPPoE جديدًا.&lt;br /&gt;
&lt;br /&gt;
=== دعم VPN ===&lt;br /&gt;
يتوفر في NetworkManager منذ الإصدار 1.16 دعم أصيل لـ [[WireGuard]]، ولا يحتاج إلا إلى وحدة النواة {{ic|wireguard}}. اطلع على [https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/ مقالة مدونة WireGuard في NetworkManager] للتفاصيل.&lt;br /&gt;
&lt;br /&gt;
يعتمد دعم أنواع VPN الأخرى على نظام الإضافات، وهي متوفرة في الحزم التالية:&lt;br /&gt;
* {{Pkg|networkmanager-openconnect}} لـ [[OpenConnect]]&lt;br /&gt;
* {{Pkg|networkmanager-openvpn}} لـ [[OpenVPN]]&lt;br /&gt;
* {{Pkg|networkmanager-pptp}} لـ [[PPTP Client]]&lt;br /&gt;
* {{Pkg|networkmanager-strongswan}} لـ [[strongSwan]]&lt;br /&gt;
* {{Pkg|networkmanager-vpnc}}&lt;br /&gt;
* {{AUR|networkmanager-fortisslvpn}}&lt;br /&gt;
* {{AUR|networkmanager-iodine-git}}&lt;br /&gt;
* {{AUR|networkmanager-libreswan}}&lt;br /&gt;
* {{Pkg|networkmanager-l2tp}}&lt;br /&gt;
* {{AUR|networkmanager-ssh}}&lt;br /&gt;
* {{Pkg|network-manager-sstp}}&lt;br /&gt;
&lt;br /&gt;
{{تحذير|1=ثمة [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues?search=VPN&amp;amp;state=opened أخطاء] كثيرة مرتبطة بدعم VPN. تحقق من صحة خيارات الخادم الخلفي المُعيَّنة عبر الواجهة الرسومية، وأعد التحقق مع كل إصدار جديد من الحزمة.}}&lt;br /&gt;
&lt;br /&gt;
{{ملاحظة|&lt;br /&gt;
* لضمان عمل DNS بشكل صحيح عند استخدام VPN، يجب إعداد [[#DNS caching and conditional forwarding|التوجيه الشرطي]].&lt;br /&gt;
* قد لا تمتلك هذه الإضافات واجهة سطر أوامر موثقة، أو قد لا تعمل أصلًا بدون تشغيل أبلت. لا يُشكّل هذا مشكلة في بيئات سطح المكتب المعتادة؛ أما إن لم تكن تستخدم إحداها، فيجب تشغيل [[#nm-applet]] أثناء إعداد الاتصال أو تنشيطه لتظهر مربعات الحوار اللازمة. [https://bbs.archlinux.org/viewtopic.php?id{{=}}246698]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== الاستخدام ==&lt;br /&gt;
&lt;br /&gt;
يأتي NetworkManager مع {{man|1|nmcli}} و{{man|1|nmtui}}.&lt;br /&gt;
&lt;br /&gt;
=== أمثلة على nmcli ===&lt;br /&gt;
&lt;br /&gt;
عرض شبكات Wi-Fi القريبة:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device wifi list&lt;br /&gt;
&lt;br /&gt;
الاتصال بشبكة Wi-Fi:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device wifi connect &amp;#039;&amp;#039;SSID_or_BSSID&amp;#039;&amp;#039; password &amp;#039;&amp;#039;password&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
الاتصال بشبكة Wi-Fi مخفية:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device wifi connect &amp;#039;&amp;#039;SSID_or_BSSID&amp;#039;&amp;#039; password &amp;#039;&amp;#039;password&amp;#039;&amp;#039; hidden yes&lt;br /&gt;
&lt;br /&gt;
الاتصال بشبكة Wi-Fi عبر الواجهة {{ic|wlan1}}:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device wifi connect &amp;#039;&amp;#039;SSID_or_BSSID&amp;#039;&amp;#039; password &amp;#039;&amp;#039;password&amp;#039;&amp;#039; ifname wlan1 &amp;#039;&amp;#039;profile_name&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
قطع الاتصال بواجهة شبكة:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device disconnect ifname eth0&lt;br /&gt;
&lt;br /&gt;
الحصول على قائمة الاتصالات مع أسمائها ومعرّفاتها UUID وأنواعها والأجهزة المرتبطة بها:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection show&lt;br /&gt;
&lt;br /&gt;
تنشيط اتصال (أي الاتصال بشبكة باستخدام ملف تعريف موجود):&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection up &amp;#039;&amp;#039;name_or_uuid&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
حذف اتصال:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection delete &amp;#039;&amp;#039;name_or_uuid&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
عرض قائمة أجهزة الشبكة وحالتها:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device&lt;br /&gt;
&lt;br /&gt;
إيقاف تشغيل Wi-Fi:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli radio wifi off&lt;br /&gt;
&lt;br /&gt;
=== تعديل اتصال ===&lt;br /&gt;
&lt;br /&gt;
للاطلاع على قائمة شاملة بالإعدادات، راجع {{man|5|nm-settings}}.&lt;br /&gt;
&lt;br /&gt;
أولًا، احصل على قائمة الاتصالات:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ nmcli connection|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
Wired connection 2  e7054040-a421-3bef-965d-bb7d60b7cecf  ethernet  enp5s0&lt;br /&gt;
Wired connection 1  997f2782-f0fc-301d-bfba-15421a2735d8  ethernet  enp0s25&lt;br /&gt;
MY-HOME-WIFI-5G     92a0f7b3-2eba-49ab-a899-24d83978f308  wifi       --&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
يمكن استخدام العمود الأول كمعرّف للاتصال (connection-id) في الأوامر اللاحقة. في هذا المثال، نختار {{ic|Wired connection 2}} معرّفًا للاتصال.&lt;br /&gt;
&lt;br /&gt;
ثمة ثلاث طرق لإعداد الاتصال {{ic|Wired connection 2}} بعد إنشائه:&lt;br /&gt;
&lt;br /&gt;
; محرر nmcli التفاعلي&lt;br /&gt;
: {{ic|nmcli connection edit &amp;#039;Wired connection 2&amp;#039;}}.&amp;lt;br&amp;gt; الاستخدام موثق بشكل جيد داخل المحرر.&lt;br /&gt;
&lt;br /&gt;
; واجهة سطر أوامر nmcli&lt;br /&gt;
: {{ic|nmcli connection modify &amp;#039;Wired connection 2&amp;#039; &amp;#039;&amp;#039;setting&amp;#039;&amp;#039;.&amp;#039;&amp;#039;property&amp;#039;&amp;#039; &amp;#039;&amp;#039;value&amp;#039;&amp;#039;}}. راجع {{man|1|nmcli}} للاستخدام. على سبيل المثال، يمكن تغيير مقياس مسار IPv4 إلى 200 باستخدام الأمر {{ic|nmcli connection modify &amp;#039;Wired connection 2&amp;#039; ipv4.route-metric 200}}.&lt;br /&gt;
لإزالة إعداد ما، مرر حقلًا فارغًا (&amp;quot;&amp;quot;) كما يلي:&lt;br /&gt;
: {{ic|nmcli connection modify &amp;#039;Wired connection 2&amp;#039; &amp;#039;&amp;#039;setting&amp;#039;&amp;#039;.&amp;#039;&amp;#039;property&amp;#039;&amp;#039; &amp;quot;&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
; ملف الاتصال&lt;br /&gt;
: في {{ic|/etc/NetworkManager/system-connections/}}، عدِّل ملف {{ic|Wired connection 2.nmconnection}} المقابل.&amp;lt;br&amp;gt; لا تنسَ إعادة تحميل ملف الإعداد باستخدام {{ic|nmcli connection reload}}.&lt;br /&gt;
&lt;br /&gt;
=== nmtui ===&lt;br /&gt;
&lt;br /&gt;
يتضمن NetworkManager واجهة مستخدم نصية (TUI) لإدارة الاتصالات واسم المضيف ومفاتيح الراديو. يمكن تشغيلها بتنفيذ {{ic|nmtui}}.&lt;br /&gt;
&lt;br /&gt;
== الواجهات الأمامية ==&lt;br /&gt;
&lt;br /&gt;
لتوفير التكامل مع [[desktop environment|بيئة سطح المكتب]]، سيرغب معظم المستخدمين في تثبيت أبلت. لا يوفر هذا الأبلت سهولة في اختيار الشبكات وإعدادها فحسب، بل يوفر أيضًا الوكيل الضروري لتخزين كلمات السر بأمان. تمتلك بيئات سطح المكتب المختلفة أبلتاتها الخاصة؛ وإلا يمكنك استخدام [[#nm-applet]].&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
تمتلك [[GNOME]] أداةً مدمجة يمكن الوصول إليها من إعدادات الشبكة.&lt;br /&gt;
&lt;br /&gt;
=== KDE Plasma ===&lt;br /&gt;
&lt;br /&gt;
[[Install|ثبِّت]] حزمة {{Pkg|plasma-nm}}. بعد ذلك، أضفها إلى شريط مهام KDE عبر قائمة &amp;#039;&amp;#039;خيارات اللوحة &amp;gt; إضافة أدوات &amp;gt; الشبكات&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== nm-applet ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|network-manager-applet}} هو واجهة أمامية بـ GTK 3 تعمل في بيئات Xorg التي تدعم صينية النظام systray.&lt;br /&gt;
&lt;br /&gt;
لتخزين كلمات سر الاتصالات، ثبِّت تطبيقًا يُطبِّق [https://specifications.freedesktop.org/secret-service-spec/latest/ واجهة D-Bus الخاصة بخدمة Secret Service] مثل [[GNOME/Keyring]] أو [[KDE Wallet]] أو [[KeePassXC]] وأعد إعداده.&lt;br /&gt;
&lt;br /&gt;
انتبه إلى أنه عند تفعيل خيار {{ic|Make available to other users}} لاتصال ما، يخزّن NetworkManager كلمة المرور بنص عادي، وإن كان الملف المقابل لا يمكن الوصول إليه إلا من قِبل الجذر (أو مستخدمين آخرين عبر {{ic|nm-applet}}). راجع [[#Encrypted Wi-Fi passwords]].&lt;br /&gt;
&lt;br /&gt;
لتشغيل {{ic|nm-applet}} بدون صينية نظام، يمكن استخدام {{AUR|trayer}} أو {{Pkg|stalonetray}}. على سبيل المثال، يمكن إضافة سكريبت كهذا في مسارك:&lt;br /&gt;
&lt;br /&gt;
{{hc|nmgui|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
nm-applet    2&amp;gt;&amp;amp;1 &amp;gt; /dev/null &amp;amp;&lt;br /&gt;
stalonetray  2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;
killall nm-applet&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
عند إغلاق نافذة &amp;#039;&amp;#039;stalonetray&amp;#039;&amp;#039;، يُغلَق {{ic|nm-applet}} أيضًا، فلا يُستهلك ذاكرة إضافية بعد الانتهاء من إعدادات الشبكة.&lt;br /&gt;
&lt;br /&gt;
يمكن للأبلت عرض إشعارات للأحداث كالاتصال بشبكة Wi-Fi أو قطع الاتصال عنها. لعرض هذه الإشعارات، تأكد من وجود خادم إشعارات مثبت - راجع [[Desktop notifications]]. إن استخدمت الأبلت بدون خادم إشعارات، قد تظهر بعض الرسائل في stdout/stderr وقد يتوقف الأبلت. راجع [https://bugzilla.gnome.org/show_bug.cgi?id=788313].&lt;br /&gt;
&lt;br /&gt;
لتشغيل {{ic|nm-applet}} مع تعطيل الإشعارات، شغّل الأبلت بالأمر التالي:&lt;br /&gt;
&lt;br /&gt;
 $ nm-applet --no-agent&lt;br /&gt;
&lt;br /&gt;
{{Tip|قد يُشغَّل {{ic|nm-applet}} تلقائيًا عبر [[XDG Autostart|ملف autostart]]؛ لإضافة الخيار {{ic|--no-agent}}، عدِّل سطر Exec فيه كما يلي:&lt;br /&gt;
&lt;br /&gt;
{{bc|1=Exec=nm-applet --no-agent}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|في [[i3]]، إن شُغِّل nm-applet بالخيار {{ic|--no-agent}}، لن يكون بالإمكان الاتصال بشبكة Wi-Fi مشفرة جديدة بالنقر على العنصر في القائمة، إذ لن تظهر نافذة إدخال كلمة المرور. سيُظهر [[journal]] الرسالة {{ic|no secrets: No agents were available for this request}}.}}&lt;br /&gt;
&lt;br /&gt;
==== Appindicator ====&lt;br /&gt;
&lt;br /&gt;
اعتبارًا من الإصدار 1.18.0، أصبح دعم Appindicator [https://gitlab.archlinux.org/archlinux/packaging/packages/network-manager-applet/-/commit/527448fb2a87d85055f504f463dfe961dccd75c3 متاحًا] في حزمة {{Pkg|network-manager-applet}} الرسمية. لاستخدام nm-applet في بيئة Appindicator، شغّل الأبلت بالأمر التالي:&lt;br /&gt;
&lt;br /&gt;
 $ nm-applet --indicator&lt;br /&gt;
&lt;br /&gt;
=== networkmanager-dmenu ===&lt;br /&gt;
&lt;br /&gt;
بديلًا لذلك، تتوفر {{Pkg|networkmanager-dmenu}} وهي سكريبت صغير لإدارة اتصالات NetworkManager باستخدام [[dmenu]] أو [[rofi]] بدلًا من {{ic|nm-applet}}. توفر جميع الميزات الأساسية: الاتصال بالشبكات السلكية واللاسلكية الموجودة، والاتصال بشبكات Wi-Fi جديدة، وطلب عبارة المرور عند الحاجة، والاتصال بشبكات VPN موجودة، وتفعيل/تعطيل الشبكة، وتشغيل واجهة &amp;#039;&amp;#039;nm-connection-editor&amp;#039;&amp;#039; الرسومية، والاتصال بشبكات Bluetooth.&lt;br /&gt;
&lt;br /&gt;
=== switchboard ===&lt;br /&gt;
&lt;br /&gt;
يوفر {{Pkg|switchboard}} الخاص بـ Pantheon طريقة مستقلة عن بيئة سطح المكتب لإعداد NetworkManager عند دمجه مع {{Pkg|switchboard-plug-network}} و{{Pkg|nm-connection-editor}}. يمكن تشغيله بالأمر التالي:&lt;br /&gt;
&lt;br /&gt;
 $ io.elementary.settings&lt;br /&gt;
&lt;br /&gt;
== الإعداد ==&lt;br /&gt;
&lt;br /&gt;
قد يحتاج NetworkManager إلى بعض الخطوات الإضافية ليعمل بشكل صحيح. تأكد من إعداد {{ic|/etc/hosts}} كما هو موضح في قسم [[Network configuration#Set the hostname]].&lt;br /&gt;
&lt;br /&gt;
يمتلك NetworkManager ملف إعداد عام في {{ic|/etc/NetworkManager/NetworkManager.conf}}. يمكن وضع ملفات إعداد إضافية في {{ic|/etc/NetworkManager/conf.d/}}. في العادة، لا يلزم تغيير الإعدادات الافتراضية العامة.&lt;br /&gt;
&lt;br /&gt;
بعد تعديل ملف إعداد، يمكن تطبيق التغييرات بتنفيذ:&lt;br /&gt;
&lt;br /&gt;
 # nmcli general reload&lt;br /&gt;
&lt;br /&gt;
=== NetworkManager-wait-online ===&lt;br /&gt;
&lt;br /&gt;
يؤدي تفعيل {{ic|NetworkManager.service}} إلى تفعيل {{ic|NetworkManager-wait-online.service}} أيضًا، وهي خدمة نظام تُنفَّذ مرة واحدة وتنتظر اكتمال إعداد الشبكة. تمتلك هذه الأخيرة {{ic|1=WantedBy=network-online.target}}، لذا لن تكتمل إلا عند تفعيل {{ic|network-online.target}} أو استدعائه من وحدة أخرى. راجع أيضًا [[systemd#Running services after the network is up]].&lt;br /&gt;
&lt;br /&gt;
افتراضيًا، تنتظر {{ic|NetworkManager-wait-online.service}} اكتمال بدء تشغيل NetworkManager، لا توافر الاتصال بالشبكة تحديدًا (راجع {{man|1|nm-online}}). إن أكملت {{ic|NetworkManager-wait-online.service}} قبل أن تكون الشبكة جاهزة فعليًا مما أدى إلى فشل خدمات عند الإقلاع، [[extend the unit|وسِّع الوحدة]] لإزالة {{ic|-s}} من سطر {{ic|ExecStart}}:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=&lt;br /&gt;
 ExecStart=/usr/bin/nm-online -q&lt;br /&gt;
&lt;br /&gt;
انتبه إلى أن هذا قد يسبب [https://lists.fedoraproject.org/archives/list/users@lists.fedoraproject.org/thread/EGC324JD3HJCGVN7J55WYPRLFDA3TP7N/ مشكلات أخرى].&lt;br /&gt;
&lt;br /&gt;
في بعض الحالات، ستفشل الخدمة في الإقلاع بسبب قِصَر مهلة الانتظار. [[Edit|عدِّل]] الخدمة لزيادة قيمة {{ic|NM_ONLINE_TIMEOUT}} عن {{ic|60}}.&lt;br /&gt;
&lt;br /&gt;
=== إعداد صلاحيات PolicyKit ===&lt;br /&gt;
&lt;br /&gt;
افتراضيًا، يُسمح لجميع المستخدمين في الجلسات المحلية النشطة بتغيير معظم إعدادات الشبكة دون كلمة مرور. راجع [[General troubleshooting#Session permissions]] للتحقق من نوع جلستك. في معظم الحالات، يعمل كل شيء تلقائيًا.&lt;br /&gt;
&lt;br /&gt;
بعض الإجراءات (كتغيير اسم المضيف) تتطلب كلمة مرور المسؤول. في هذه الحالة، يجب [[Users and groups#Group management|إضافة]] نفسك إلى مجموعة {{ic|wheel}} وتشغيل [[Polkit#Authentication agents|وكيل مصادقة Polkit]] الذي سيطلب كلمة مرورك.&lt;br /&gt;
&lt;br /&gt;
للجلسات البعيدة (مثل [[TigerVNC#Running vncserver for virtual (headless) sessions|VNC بلا شاشة]])، ثمة عدة خيارات للحصول على الصلاحيات اللازمة لاستخدام NetworkManager:&lt;br /&gt;
&lt;br /&gt;
# [[Users and groups#Group management|أضف]] نفسك إلى مجموعة {{ic|wheel}}. ستحتاج إلى إدخال كلمة مرورك عند كل إجراء. لاحظ أن حسابك قد يُمنح صلاحيات أخرى أيضًا، كاستخدام [[sudo]] دون إدخال كلمة مرور الجذر.&lt;br /&gt;
# [[Users and groups#Group management|أضف]] نفسك إلى مجموعة {{ic|network}} وأنشئ {{ic|/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules}} بالمحتوى التالي: {{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
polkit.addRule(function(action, subject) {&lt;br /&gt;
  if (action.id.indexOf(&amp;quot;org.freedesktop.NetworkManager.&amp;quot;) == 0 &amp;amp;&amp;amp; subject.isInGroup(&amp;quot;network&amp;quot;)) {&lt;br /&gt;
    return polkit.Result.YES;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}} سيتمكن جميع المستخدمين في مجموعة {{ic|network}} من إضافة الشبكات وإزالتها دون كلمة مرور (مما يعني عدم الحاجة إلى تشغيل وكيل مصادقة Polkit، فيعمل هذا الخيار في جلسات SSH أيضًا).&lt;br /&gt;
&lt;br /&gt;
=== إعدادات الوكيل ===&lt;br /&gt;
&lt;br /&gt;
يدعم NetworkManager بعض إعدادات الوكيل. وبينما لا يمكن تعديلها مباشرة عبر &amp;#039;&amp;#039;nmtui&amp;#039;&amp;#039;، يدعمها كل من &amp;#039;&amp;#039;nm-applet&amp;#039;&amp;#039; و&amp;#039;&amp;#039;nmcli&amp;#039;&amp;#039;.&lt;br /&gt;
راجع إعدادات الوكيل في {{man|5|nm-settings-nmcli}}.&lt;br /&gt;
&lt;br /&gt;
يمكن دائمًا تشغيل أوامر وكيل مخصصة باستخدام سكريبتات الموزِّع، راجع [[#Dispatcher examples]].&lt;br /&gt;
&lt;br /&gt;
راجع أيضًا [[Proxy settings]].&lt;br /&gt;
&lt;br /&gt;
=== فحص الاتصال ===&lt;br /&gt;
&lt;br /&gt;
يمكن لـ NetworkManager محاولة الوصول إلى خادم ويب بعد الاتصال بشبكة لتحديد ما إذا كان خلف بوابة مقيّدة مثلًا. المضيف الافتراضي (المُعدَّ في {{ic|/usr/lib/NetworkManager/conf.d/20-connectivity.conf}}) هو [https://ping.archlinux.org ping.archlinux.org] (اسم CNAME مستعار لـ redirect.archlinux.org). لاستخدام خادم ويب مختلف أو تعطيل فحص الاتصال، أنشئ {{ic|/etc/NetworkManager/conf.d/20-connectivity.conf}}، راجع {{man|5|NetworkManager.conf|CONNECTIVITY SECTION}}. فيما يلي مثال على استخدام خوادم GNOME (لا يتطلب استخدام [[GNOME]]):&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/20-connectivity.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[connectivity]&lt;br /&gt;
uri=http://nmcheck.gnome.org/check_network_status.txt&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
لتعطيل فحص الاتصال في NetworkManager، استخدم الإعداد التالي. قد يكون هذا مفيدًا عند الاتصال بـ VPN يحجب فحوصات الاتصال.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/20-connectivity.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[connectivity]&lt;br /&gt;
enabled=false&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|على الرغم من أن فحوصات الاتصال التلقائية تُشكّل تسربًا محتملًا للخصوصية، فإن عنوان URL الافتراضي لـ Arch Linux لا يسجّل أي وصول. راجع [https://gitlab.archlinux.org/archlinux/infrastructure/-/commit/fabccd0f61e5dea3925e8a0c6a46d56d5750c121#a4f34381bbb18ea77bfb3dd11a8aeca707078fca_0_26] [https://gitlab.archlinux.org/archlinux/infrastructure/-/blob/master/roles/ping/templates/nginx.d.conf.j2].}}&lt;br /&gt;
&lt;br /&gt;
=== البوابات المقيّدة ===&lt;br /&gt;
&lt;br /&gt;
{{Style|Complex scripts should not be maintained on the wiki.}}&lt;br /&gt;
&lt;br /&gt;
بالنسبة للمستخدمين خلف [[Wikipedia:Captive portal|بوابة مقيّدة]]، قد يفتح مدير سطح المكتب نافذةً تلقائيًا تطلب بيانات الاعتماد. إن لم يفعل ذلك، يمكنك استخدام حزمة {{Pkg|capnet-assist}} (إلا أن سكريبت الموزِّع الخاص بها مكسور حاليًا). بدلًا من ذلك، يمكنك إنشاء سكريبت موزِّع لـ NetworkManager بالمحتوى التالي:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/90-open_captive_portal|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
# Script to dispatch NetworkManager events&lt;br /&gt;
#&lt;br /&gt;
# Runs shows a login webpage on walled garden networks.&lt;br /&gt;
# See NetworkManager(8) for further documentation of the dispatcher events.&lt;br /&gt;
&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
&lt;br /&gt;
if [ -x &amp;quot;/usr/bin/logger&amp;quot; ]; then&lt;br /&gt;
    logger=&amp;quot;/usr/bin/logger -s -t captive-portal&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    logger=&amp;quot;:&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wait_for_process() {&lt;br /&gt;
    PNAME=$1&lt;br /&gt;
    while [ -z &amp;quot;$(/usr/bin/pgrep $PNAME)&amp;quot; ]; do&lt;br /&gt;
        sleep 3;&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start_browser() {&lt;br /&gt;
    local user=&amp;quot;$1&amp;quot;&lt;br /&gt;
    local display=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    export DISPLAY=&amp;quot;$display&amp;quot;&lt;br /&gt;
    wait_for_process nm-applet&lt;br /&gt;
&lt;br /&gt;
    export XAUTHORITY=&amp;quot;/home/$user/.Xauthority&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    $logger &amp;quot;Running browser as &amp;#039;$user&amp;#039; with display &amp;#039;$display&amp;#039; to login in captive portal&amp;quot;&lt;br /&gt;
    sudo -u &amp;quot;$user&amp;quot; --preserve-env=DISPLAY,XAUTHORITY -H xdg-open http://capnet.elementary.io 2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    connectivity-change)&lt;br /&gt;
    $logger -p user.debug &amp;quot;dispatcher script triggered on connectivity change: $CONNECTIVITY_STATE&amp;quot;&lt;br /&gt;
    if [ &amp;quot;$CONNECTIVITY_STATE&amp;quot; = &amp;quot;PORTAL&amp;quot; ]; then&lt;br /&gt;
        who | awk &amp;#039;$NF ~ /\(:[0-9]+\)/ { print $1 &amp;quot; &amp;quot; substr($NF, 2, length($NF)-2) };&amp;#039; | \&lt;br /&gt;
        while read user display; do&lt;br /&gt;
            start_browser $user $display || $logger -p user.err &amp;quot;Failed for user: &amp;#039;$user&amp;#039; display: &amp;#039;$display&amp;#039;&amp;quot;&lt;br /&gt;
        done&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
    *)&lt;br /&gt;
    exit 0&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
اجعل السكريبت [[executable|قابلًا للتنفيذ]]. لاحظ أن هذا السكريبت يفترض استخدامك لـ X ويفتح صفحة http فحسب، وقد لا يعمل مع الجميع.&lt;br /&gt;
&lt;br /&gt;
ستحتاج إلى [[restart|إعادة تشغيل]] {{ic|NetworkManager.service}} أو إعادة الإقلاع لبدء عمل السكريبت. بعد ذلك، سيفتح سكريبت الموزِّع نافذة تسجيل الدخول عند اكتشاف وجودك خلف بوابة مقيّدة.&lt;br /&gt;
&lt;br /&gt;
حل بسيط هو [https://github.com/Seme4eg/captive-portal-sh captive-portal-sh] — سكريبت shell يحصل على عنوان URL للبوابة المقيّدة ويفتحه في متصفحك الافتراضي (لمستخدمي Wayland فقط).&lt;br /&gt;
&lt;br /&gt;
حل آخر هو {{AUR|captive-browser-git}} المعتمد على Google Chrome.&lt;br /&gt;
&lt;br /&gt;
==== دعم iwd للبوابات المقيّدة على الأجهزة القديمة ====&lt;br /&gt;
&lt;br /&gt;
بعض شرائح Wi-Fi القديمة (كـ Broadcom BCM4360) تتطلب مشغّل {{ic|wl}} الخاص، الذي يفتقر إلى دعم مصافحة OWE/المنحنى الإهليجي التي تستخدمها كثير من نقاط الاتصال ذات البوابة المقيّدة. بتبديل خلفية Wi-Fi في NetworkManager إلى {{ic|iwd}} (راجع [[#Using iwd as the Wi-Fi backend]])، الذي يُطبِّق تبادل مفاتيح OWE الكامل في مستوى المستخدم عبر المشغّل الحالي، يمكنك إتمام الارتباط المشفر والحصول على تأجير DHCP وتفعيل حالة &amp;quot;PORTAL&amp;quot;. بعد ذلك، سيفتح أي سكريبت موزِّع أو مشغّل متصفح صفحة تسجيل الدخول بشكل موثوق على الأجهزة التي لم تكن قادرة على الاتصال من قبل.&lt;br /&gt;
&lt;br /&gt;
=== عميل DHCP ===&lt;br /&gt;
&lt;br /&gt;
يستخدم NetworkManager افتراضيًا عميل DHCP الداخلي. يعتمد مكوّن DHCPv4 الداخلي على مكتبة [https://nettools.github.io/n-dhcp4/ n-dhcp4 من nettools]، بينما يعتمد مكوّن DHCPv6 الداخلي على كود مشتق من systemd-networkd.&lt;br /&gt;
&lt;br /&gt;
لاستخدام عميل DHCP مختلف، [[install|ثبِّت]] أحد البدائل:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|dhcpcd}} - [[dhcpcd]]&lt;br /&gt;
* {{Pkg|dhclient}} - [[dhclient]]&lt;br /&gt;
&lt;br /&gt;
لتغيير خلفية عميل DHCP، عيِّن الخيار {{ic|1=main.dhcp=&amp;#039;&amp;#039;dhcp_client_name&amp;#039;&amp;#039;}} في ملف إعداد ضمن {{ic|/etc/NetworkManager/conf.d/}}. مثلًا:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/NetworkManager/conf.d/dhcp-client.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
dhcp=dhcpcd&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
لا تُفعِّل وحدات systemd المرفقة مع حزمتَي {{Pkg|dhclient}} و{{Pkg|dhcpcd}}. ستتعارض مع NetworkManager، راجع الملاحظة في [[#Installation|قسم التثبيت]] للتفاصيل.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== إدارة DNS ===&lt;br /&gt;
&lt;br /&gt;
إدارة DNS في NetworkManager موصوفة في صفحة ويكي مشروع GNOME—[https://wiki.gnome.org/Projects/NetworkManager/DNS Projects/NetworkManager/DNS].&lt;br /&gt;
&lt;br /&gt;
==== تخزين DNS مؤقتًا والتوجيه الشرطي ====&lt;br /&gt;
&lt;br /&gt;
يمتلك NetworkManager مكوّنًا لتفعيل تخزين DNS مؤقتًا والتوجيه الشرطي ([https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/143 كان يُسمى سابقًا] &amp;quot;split DNS&amp;quot; في توثيق NetworkManager) باستخدام [[dnsmasq]] أو [[systemd-resolved]]. تتمثل مزايا هذا الإعداد في تخزين استعلامات DNS مؤقتًا مما يُقلّل أوقات الحل، وتوجيه استعلامات DNS لمضيفي VPN إلى خوادم DNS الخاصة بذلك VPN. هذا مفيد بشكل خاص إن كنت متصلًا بأكثر من شبكة VPN واحدة.&lt;br /&gt;
&lt;br /&gt;
{{Note|إن كان {{ic|/etc/resolv.conf}} رابطًا رمزيًا إلى {{ic|/run/systemd/resolve/stub-resolv.conf}} أو {{ic|/run/systemd/resolve/resolv.conf}} أو {{ic|/lib/systemd/resolv.conf}} أو {{ic|/usr/lib/systemd/resolv.conf}}، سيختار NetworkManager systemd-resolved تلقائيًا. لاستخدام dnsmasq، يجب أولًا إزالة هذا الرابط الرمزي ثم إعادة تشغيل NetworkManager.}}&lt;br /&gt;
&lt;br /&gt;
===== dnsmasq =====&lt;br /&gt;
&lt;br /&gt;
تأكد من تثبيت {{Pkg|dnsmasq}}. ثم عيِّن {{ic|1=main.dns=dnsmasq}} في ملف إعداد ضمن {{ic|/etc/NetworkManager/conf.d/}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dns.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
dns=dnsmasq&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
الآن نفِّذ {{ic|nmcli general reload}} كجذر. سيُشغِّل NetworkManager dnsmasq تلقائيًا ويضيف {{ic|127.0.0.1}} إلى {{ic|/etc/resolv.conf}}. يمكن إيجاد خوادم DNS الأصلية في {{ic|/run/NetworkManager/no-stub-resolv.conf}}. يمكنك التحقق من استخدام dnsmasq بإجراء نفس استعلام DNS مرتين عبر {{ic|drill example.com}} والتحقق من الخادم وأوقات الاستعلام.&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* لا تحتاج إلى تشغيل {{ic|dnsmasq.service}} أو تعديل {{ic|/etc/dnsmasq.conf}}. سيشغّل NetworkManager dnsmasq دون استخدام خدمة systemd ودون قراءة ملفات الإعداد الافتراضية لـ dnsmasq.&lt;br /&gt;
* ستستمع نسخة dnsmasq التي يشغّلها NetworkManager على {{ic|127.0.0.1:53}}، ولا يمكن تشغيل أي برنامج آخر (بما في ذلك {{ic|dnsmasq.service}}) على نفس العنوان والمنفذ.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
====== إعداد dnsmasq مخصص ======&lt;br /&gt;
&lt;br /&gt;
يمكن إنشاء إعدادات مخصصة لـ &amp;#039;&amp;#039;dnsmasq&amp;#039;&amp;#039; بإنشاء ملفات إعداد في {{ic|/etc/NetworkManager/dnsmasq.d/}}. على سبيل المثال، لتغيير حجم ذاكرة التخزين المؤقت لـ DNS (المخزّنة في الذاكرة):&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dnsmasq.d/cache.conf|2=&lt;br /&gt;
cache-size=1000&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
يمكن التحقق من صحة ملف الإعداد بـ:&lt;br /&gt;
&lt;br /&gt;
 $ dnsmasq --test --conf-file=/dev/null --conf-dir=/etc/NetworkManager/dnsmasq.d&lt;br /&gt;
&lt;br /&gt;
راجع {{man|8|dnsmasq}} لجميع الخيارات المتاحة.&lt;br /&gt;
&lt;br /&gt;
====== IPv6 ======&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|This does not solve the issue because NetworkManager does not add {{ic|::1}} to {{ic|/etc/resolv.conf}}. Unless {{ic|@::1}} is manually passed to drill, it will still fail with {{ic|Error: error sending query: No (valid) nameservers defined in the resolver}}.}}&lt;br /&gt;
&lt;br /&gt;
قد يتسبب تفعيل {{ic|dnsmasq}} في NetworkManager في تعطّل استعلامات DNS الخاصة بـ IPv6 فقط (أي {{ic|drill -6 [hostname]}}). لحل هذه المشكلة، يُعدُّ إنشاء الملف التالي لإعداد &amp;#039;&amp;#039;dnsmasq&amp;#039;&amp;#039; للاستماع على حلقة IPv6 الداخلية:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dnsmasq.d/ipv6-listen.conf|2=&lt;br /&gt;
listen-address=::1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
علاوة على ذلك، لا يُعطي dnsmasq الأولوية لخوادم DNS الخاصة بـ IPv6. للأسف لا يعالج NetworkManager هذا ([https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/936712 خطأ Ubuntu]). حل مؤقت هو تعطيل DNS الخاص بـ IPv4 في إعداد NetworkManager إن وُجد.&lt;br /&gt;
&lt;br /&gt;
====== DNSSEC ======&lt;br /&gt;
&lt;br /&gt;
لن تتحقق نسخة dnsmasq التي يشغّلها NetworkManager من صحة [[DNSSEC]] افتراضيًا. لتفعيل التحقق من DNSSEC مما قد يُعطِّل حل DNS مع خوادم أسماء لا تدعمه، أنشئ ملف الإعداد التالي:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dnsmasq.d/dnssec.conf|2=&lt;br /&gt;
conf-file=/usr/share/dnsmasq/trust-anchors.conf&lt;br /&gt;
dnssec&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== systemd-resolved =====&lt;br /&gt;
&lt;br /&gt;
{{Expansion|NetworkManager 1.16 adds a new setting {{ic|main.systemd-resolved}}[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/d4eb4cb45f41b1751cacf71da558bf8f0988f383] (enabled by default). It unconditionally sends DNS configuration to systemd-resolved. Related to &amp;quot;Preserving resolv.conf&amp;quot; from [[systemd-resolved#DNS]]?}}&lt;br /&gt;
&lt;br /&gt;
يمكن لـ NetworkManager استخدام [[systemd-resolved]] كمحلِّل DNS وذاكرة تخزين مؤقت. تأكد من إعداد &amp;#039;&amp;#039;systemd-resolved&amp;#039;&amp;#039; بشكل صحيح وأن {{ic|systemd-resolved.service}} [[started|مُشغَّل]] قبل استخدامه.&lt;br /&gt;
&lt;br /&gt;
سيُستخدم systemd-resolved تلقائيًا إن كان {{ic|/etc/resolv.conf}} [[systemd-resolved#DNS|رابطًا رمزيًا]] إلى {{ic|/run/systemd/resolve/stub-resolv.conf}} أو {{ic|/run/systemd/resolve/resolv.conf}} أو {{ic|/usr/lib/systemd/resolv.conf}}.&lt;br /&gt;
&lt;br /&gt;
يمكن تفعيله صراحةً بتعيين {{ic|1=main.dns=systemd-resolved}} في ملف إعداد ضمن {{ic|/etc/NetworkManager/conf.d/}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dns.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
dns=systemd-resolved&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== محلِّل DNS مع مشترك openresolv =====&lt;br /&gt;
&lt;br /&gt;
إن امتلك [[openresolv]] مشتركًا لـ [[DNS resolver|محلِّل DNS]] المحلي، أعدَّ المشترك و[[#Use openresolv|إعداد NetworkManager لاستخدام openresolv]].&lt;br /&gt;
&lt;br /&gt;
نظرًا لأن NetworkManager يُعلن عن &amp;quot;واجهة&amp;quot; واحدة فقط لـ &amp;#039;&amp;#039;resolvconf&amp;#039;&amp;#039;، لا يمكن تطبيق التوجيه الشرطي بين اتصالين في NetworkManager. راجع [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/153 مشكلة NetworkManager 153].&lt;br /&gt;
&lt;br /&gt;
يمكن تخفيف هذا جزئيًا بتعيين {{ic|1=private_interfaces=&amp;quot;*&amp;quot;}} في {{ic|/etc/resolvconf.conf}}[https://roy.marples.name/projects/openresolv/configuration/]. لن تُوجَّه الاستعلامات الخاصة بالنطاقات غير الموجودة في قائمة نطاقات البحث، وستُعالَج وفق إعداد المحلِّل المحلي.&lt;br /&gt;
&lt;br /&gt;
==== خوادم DNS مخصصة ====&lt;br /&gt;
&lt;br /&gt;
===== تعيين خوادم DNS عامة مخصصة =====&lt;br /&gt;
&lt;br /&gt;
لتعيين خوادم DNS لجميع الاتصالات، حدِّدها في {{man|5|NetworkManager.conf}} باستخدام الصيغة {{ic|1=servers=&amp;#039;&amp;#039;serveripaddress1&amp;#039;&amp;#039;,&amp;#039;&amp;#039;serveripaddress2&amp;#039;&amp;#039;,&amp;#039;&amp;#039;serveripaddress3&amp;#039;&amp;#039;}} في قسم يُسمى {{ic|[global-dns-domain-*]}}. مثلًا:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dns-servers.conf|2=&lt;br /&gt;
[global-dns-domain-*]&lt;br /&gt;
servers=::1,127.0.0.1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* إن كنت تستخدم [[#DNS caching and conditional forwarding|مكوّن dnsmasq أو systemd-resolved في NetworkManager]] أو [[#DNS resolver with an openresolv subscriber|مشتركي openresolv]]، فلا تحدد عناوين حلقة الاسترداد مع خيار {{ic|1=servers=}} لأن ذلك قد يُعطِّل حل DNS.&lt;br /&gt;
* لا تُرسَل الخوادم المحددة إلى [[systemd-resolved]]، وتُستخدم خوادم DNS الخاصة بالاتصال بدلًا منها. راجع [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1366 مشكلة NetworkManager 1366] و[https://github.com/systemd/systemd/issues/33754 مشكلة systemd 33754].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== تعيين خوادم DNS مخصصة في اتصال =====&lt;br /&gt;
&lt;br /&gt;
====== تعيين خوادم DNS مخصصة في اتصال (واجهة رسومية) ======&lt;br /&gt;
&lt;br /&gt;
يعتمد الإعداد على نوع الواجهة الأمامية المستخدمة؛ تتضمن العملية عادةً النقر بالزر الأيمن على الأبلت، وتعديل (أو إنشاء) ملف تعريف، ثم اختيار نوع DHCP كـ &amp;#039;&amp;#039;تلقائي (تحديد عناوين)&amp;#039;&amp;#039;. ستحتاج إلى إدخال عناوين DNS وتأخذ في العادة هذا الشكل: {{ic|127.0.0.1, &amp;#039;&amp;#039;DNS-server-one&amp;#039;&amp;#039;, ...}}.&lt;br /&gt;
&lt;br /&gt;
====== تعيين خوادم DNS مخصصة في اتصال (nmcli / ملف الاتصال) ======&lt;br /&gt;
&lt;br /&gt;
لتعيين خوادم DNS لاتصال معين، عدِّل إعدادي {{ic|ipv4.dns}} و{{ic|ipv6.dns}} (وما يرتبط بهما من {{ic|dns-search}} و{{ic|dns-options}}) في [[#Edit a connection|إعدادات الاتصال]].&lt;br /&gt;
&lt;br /&gt;
إن كان {{ic|method}} مضبوطًا على {{ic|auto}} (عند استخدام DHCP/RA)، يجب تعيين {{ic|ignore-auto-dns}} على {{ic|yes}}.&lt;br /&gt;
&lt;br /&gt;
لاستخدام DNS عبر TLS ([[#systemd-resolved|يتطلب systemd-resolved]])، حدِّد خوادم DNS باستخدام الصيغة {{ic|1=dns=&amp;#039;&amp;#039;ip.address&amp;#039;&amp;#039;#&amp;#039;&amp;#039;servername&amp;#039;&amp;#039;;}} وعيِّن إعداد {{ic|connection.dns-over-tls}} على {{ic|2}}. على سبيل المثال، لاستخدام Quad9:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/system-connections/Example Wi-Fi.nmconnection|2=&lt;br /&gt;
...&lt;br /&gt;
[connection]&lt;br /&gt;
...&lt;br /&gt;
dns-over-tls=2&lt;br /&gt;
&lt;br /&gt;
[ipv4]&lt;br /&gt;
...&lt;br /&gt;
dns=9.9.9.9#dns.quad9.net;149.112.112.112#dns.quad9.net;&lt;br /&gt;
ignore-auto-dns=true&lt;br /&gt;
&lt;br /&gt;
[ipv6]&lt;br /&gt;
...&lt;br /&gt;
dns=2620:fe::fe#dns.quad9.net;2620:fe::9#dns.quad9.net;&lt;br /&gt;
ignore-auto-dns=true&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|يستخدم هذا المثال Quad9. استبدله بمحلِّل DNS تثق به. راجع [[Domain name resolution#Third-party DNS services]].}}&lt;br /&gt;
&lt;br /&gt;
==== /etc/resolv.conf ====&lt;br /&gt;
&lt;br /&gt;
يُعدَّل وضع إدارة {{ic|/etc/resolv.conf}} في NetworkManager بالإعداد {{ic|main.rc-manager}}. تضبطه حزمة {{Pkg|networkmanager}} على {{ic|symlink}} بدلًا من الافتراضي الأصلي {{ic|auto}}. الإعداد وقيمه موثقة في صفحة الدليل {{man|5|NetworkManager.conf}}.&lt;br /&gt;
&lt;br /&gt;
{{Tip|يتيح استخدام openresolv لـ NetworkManager التعايش مع برامج أخرى تدعم &amp;#039;&amp;#039;resolvconf&amp;#039;&amp;#039;، أو تشغيل محلِّل DNS محلي مع ذاكرة تخزين مؤقت وتوجيه شرطي تدعمه openresolv عبر [[openresolv#Subscribers|مشترك]]. لاحظ أن التوجيه الشرطي [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/153 غير مدعوم بالكامل بعد] عند استخدام NetworkManager مع openresolv.}}&lt;br /&gt;
&lt;br /&gt;
يوفر &amp;#039;&amp;#039;NetworkManager&amp;#039;&amp;#039; أيضًا خطّافات عبر سكريبتات الموزِّع لتعديل {{ic|/etc/resolv.conf}} بعد تغييرات الشبكة. راجع [[#Network services with NetworkManager dispatcher]] و{{man|8|NetworkManager}} لمزيد من المعلومات.&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* إن كان NetworkManager مُعدًّا لاستخدام [[#dnsmasq|dnsmasq]] أو [[#systemd-resolved|systemd-resolved]]، ستُكتب عناوين حلقة الاسترداد المناسبة في {{ic|/etc/resolv.conf}}.&lt;br /&gt;
* يمكن إيجاد ملف {{ic|resolv.conf}} الذي يكتبه NetworkManager أو سيكتبه في {{ic|/run/NetworkManager/resolv.conf}}.&lt;br /&gt;
* يمكن إيجاد ملف {{ic|resolv.conf}} المحتوي على خوادم الأسماء ونطاقات البحث المكتسبة في {{ic|/run/NetworkManager/no-stub-resolv.conf}}.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== /etc/resolv.conf غير مُدار =====&lt;br /&gt;
&lt;br /&gt;
لإيقاف تعديل NetworkManager لـ {{ic|/etc/resolv.conf}}، عيِّن {{ic|1=main.dns=none}} في ملف إعداد ضمن {{ic|/etc/NetworkManager/conf.d/}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dns.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
dns=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|قد تُريد أيضًا تعيين {{ic|1=main.systemd-resolved=false}} لمنع NetworkManager من إرسال إعداد DNS إلى [[systemd-resolved]].}}&lt;br /&gt;
&lt;br /&gt;
{{Note|راجع [[#DNS caching and conditional forwarding]] لإعداد NetworkManager باستخدام خلفيات DNS أخرى كـ [[dnsmasq]] و[[systemd-resolved]] بدلًا من {{ic|1=main.dns=none}}.}}&lt;br /&gt;
&lt;br /&gt;
بعد ذلك قد يكون {{ic|/etc/resolv.conf}} رابطًا رمزيًا معطوبًا تحتاج إلى إزالته. ثم أنشئ ملف {{ic|/etc/resolv.conf}} جديدًا.&lt;br /&gt;
&lt;br /&gt;
===== استخدام openresolv =====&lt;br /&gt;
&lt;br /&gt;
{{Note|لا يدعم NetworkManager استخدام واجهة &amp;#039;&amp;#039;resolvconf&amp;#039;&amp;#039; الخاصة بـ systemd-resolved ({{man|1|resolvectl|COMPATIBILITY WITH RESOLVCONF(8)}}) التي توفرها {{Pkg|systemd-resolvconf}}.&lt;br /&gt;
* لا تعيِّن {{ic|1=main.rc-manager=resolvconf}} عند استخدام [[systemd-resolved]]؛ بدلًا من ذلك تأكد من [[systemd-resolved#DNS|إنشاء رابط /etc/resolv.conf الرمزي بشكل صحيح]] أو [[#systemd-resolved|إعداد NetworkManager لاستخدام systemd-resolved صراحةً]].&lt;br /&gt;
* تأكد من عدم تثبيت حزمة {{Pkg|systemd-resolvconf}} عند عدم استخدام systemd-resolved. ما لم يُشغَّل {{ic|systemd-resolved.service}}، ستُعطِّل جميع برامج الشبكات التي تستخدم resolvconf (ليس NetworkManager فحسب).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
لإعداد NetworkManager لاستخدام [[openresolv]]، عيِّن {{ic|1=main.rc-manager=resolvconf}} في ملف إعداد ضمن {{ic|/etc/NetworkManager/conf.d/}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/rc-manager.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
rc-manager=resolvconf&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== جدار الحماية ===&lt;br /&gt;
&lt;br /&gt;
يمكنك [[Firewalld#Using NetworkManager to manage zones|تعيين منطقة firewalld]] بناءً على اتصالك الحالي. مثلًا، جدار حماية مقيِّد في العمل وآخر أقل تقييدًا في المنزل.&lt;br /&gt;
&lt;br /&gt;
يمكن تحقيق ذلك أيضًا باستخدام [[#Network services with NetworkManager dispatcher|موزِّع NetworkManager]].&lt;br /&gt;
&lt;br /&gt;
== خدمات الشبكة مع موزِّع NetworkManager ==&lt;br /&gt;
&lt;br /&gt;
ثمة خدمات شبكة عديدة لا تُريد تشغيلها حتى يرفع NetworkManager واجهةً. يمتلك NetworkManager القدرة على تشغيل خدمات عند الاتصال بشبكة وإيقافها عند قطع الاتصال (مثلًا عند استخدام [[NFS]] أو [[SMB]] أو [[NTPd]]).&lt;br /&gt;
&lt;br /&gt;
لتفعيل هذه الميزة، يجب [[enable|تفعيل]] {{ic|NetworkManager-dispatcher.service}} و[[start|تشغيله]].&lt;br /&gt;
&lt;br /&gt;
بعد تشغيل الخدمة، يمكن إضافة سكريبتات إلى مجلد {{ic|/etc/NetworkManager/dispatcher.d}}.&lt;br /&gt;
&lt;br /&gt;
يجب أن تكون السكريبتات مملوكة لـ &amp;#039;&amp;#039;&amp;#039;root&amp;#039;&amp;#039;&amp;#039;، وإلا لن يُنفِّذها الموزِّع. لمزيد من الأمان، عيِّن ملكية المجموعة لـ root أيضًا:&lt;br /&gt;
&lt;br /&gt;
 # chown root:root /etc/NetworkManager/dispatcher.d/&amp;#039;&amp;#039;10-script.sh&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
تأكد أن الملف [[executable|قابل للتنفيذ]].&lt;br /&gt;
&lt;br /&gt;
تُنفَّذ السكريبتات بترتيب أبجدي عند الاتصال، وبترتيب أبجدي عكسي عند قطع الاتصال. لضمان ترتيب التنفيذ، يشيع استخدام أرقام قبل اسم السكريبت (مثل {{ic|10-portmap}} أو {{ic|30-netfs}}) لضمان تشغيل portmapper قبل محاولة تركيب NFS.&lt;br /&gt;
&lt;br /&gt;
تستقبل السكريبتات الوسيطات التالية:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;اسم الواجهة:&amp;#039;&amp;#039;&amp;#039; مثل {{ic|eth0}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;الإجراء:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;up&amp;#039;&amp;#039;، &amp;#039;&amp;#039;down&amp;#039;&amp;#039;، &amp;#039;&amp;#039;vpn-up&amp;#039;&amp;#039;، &amp;#039;&amp;#039;vpn-down&amp;#039;&amp;#039;، ... (راجع {{man|8|NetworkManager-dispatcher}} للقائمة الكاملة)&lt;br /&gt;
&lt;br /&gt;
{{Warning|إن اتصلت بشبكات عامة أو غير موثوقة، انتبه إلى الخدمات التي تُشغِّلها والخوادم التي تتوقع أن تكون متاحة. قد تُشكِّل ثغرة أمنية بتشغيل خدمات خاطئة عند الاتصال بشبكة عامة.}}&lt;br /&gt;
&lt;br /&gt;
=== تجنّب مهلة الموزِّع ===&lt;br /&gt;
&lt;br /&gt;
إن كان ما سبق يعمل، فهذا القسم غير ذي صلة. إلا أن ثمة مشكلة عامة تتعلق بتشغيل سكريبتات موزِّع تستغرق وقتًا أطول. كانت المهلة الداخلية ثلاث ثوانٍ فقط في البداية، وإن لم تكتمل السكريبت في الوقت المحدد أُنهيت. لاحقًا مُدِّدت المهلة إلى نحو 20 ثانية (راجع [https://bugzilla.redhat.com/show_bug.cgi?id=982734 متتبع الأخطاء] لمزيد من المعلومات). إن استمرت المهلة في التسبب بمشكلات، يمكن كحل مؤقت استخدام [[drop-in file|ملف drop-in]] لـ {{ic|NetworkManager-dispatcher.service}} للبقاء نشطًا بعد الخروج:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/NetworkManager-dispatcher.service.d/remain_after_exit.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
RemainAfterExit=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
الآن شغِّل خدمة {{ic|NetworkManager-dispatcher}} المعدَّلة وفعِّلها.&lt;br /&gt;
&lt;br /&gt;
{{Warning|إضافة سطر {{ic|RemainAfterExit}} ستمنع الموزِّع من الإغلاق. للأسف، &amp;#039;&amp;#039;&amp;#039;يجب&amp;#039;&amp;#039;&amp;#039; أن يُغلق الموزِّع قبل أن يتمكن من تشغيل سكريبتاتك مرة أخرى. مع هذا الإعداد لن يُغلق الموزِّع، مما يعني أن السكريبتات ستُنفَّذ مرة واحدة فقط لكل إقلاع. لذا لا تُضف هذا السطر إلا إذا كانت المهلة تُسبِّب مشكلة فعلية.}}&lt;br /&gt;
&lt;br /&gt;
=== أمثلة على الموزِّع ===&lt;br /&gt;
&lt;br /&gt;
==== ضبط المنطقة الزمنية تلقائيًا ====&lt;br /&gt;
&lt;br /&gt;
أنشئ [[#Network services with NetworkManager dispatcher|سكريبت موزِّع لـ NetworkManager]] واجعله [[executable|قابلًا للتنفيذ]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/09-timezone|&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    up)&lt;br /&gt;
        timedatectl set-timezone &amp;quot;$(curl --fail &amp;lt;nowiki&amp;gt;https://ipapi.co/timezone&amp;lt;/nowiki&amp;gt;)&amp;quot;&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|يمكن استخدام {{ic|connectivity-change}} بدلًا من {{ic|up}} لمنع تغيير المنطقة الزمنية عند الاتصال بشبكات VPN كـ [[OpenConnect]].}}&lt;br /&gt;
&lt;br /&gt;
بدلًا من ذلك، تضبط أداة {{aur|tzupdate}} المنطقة الزمنية تلقائيًا بناءً على الموقع الجغرافي لعنوان IP.&lt;br /&gt;
&lt;br /&gt;
==== تركيب مجلد بعيد باستخدام sshfs ====&lt;br /&gt;
&lt;br /&gt;
نظرًا لتشغيل السكريبت في بيئة مقيّدة للغاية، يجب تصدير {{ic|SSH_AUTH_SOCK}} للاتصال بوكيل SSH. راجع [https://bbs.archlinux.org/viewtopic.php?pid=1042030#p1042030 هذه الرسالة] لمزيد من المعلومات. المثال أدناه يعمل مع [[GNOME Keyring]] وسيطلب كلمة المرور إن لم تكن محلولةً مسبقًا. {{ic|UUID}} المراد مطابقته يمكن إيجاده بالأمر {{ic|nmcli connection status}} أو {{ic|nmcli connection list}}.&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
USER=&amp;#039;username&amp;#039;&lt;br /&gt;
REMOTE=&amp;#039;user@host:/remote/path&amp;#039;&lt;br /&gt;
LOCAL=&amp;#039;/local/path&amp;#039;&lt;br /&gt;
&lt;br /&gt;
interface=$1 status=$2&lt;br /&gt;
if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;uuid&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&amp;quot; ]; then&lt;br /&gt;
  case $status in&lt;br /&gt;
    up)&lt;br /&gt;
      SSH_AUTH_SOCK=$(find /tmp -maxdepth 1 -type s -user &amp;quot;$USER&amp;quot; -name &amp;#039;ssh&amp;#039;)&lt;br /&gt;
      export SSH_AUTH_SOCK&lt;br /&gt;
      su &amp;quot;$USER&amp;quot; -c &amp;quot;sshfs $REMOTE $LOCAL&amp;quot;&lt;br /&gt;
      ;;&lt;br /&gt;
    down)&lt;br /&gt;
      fusermount -u &amp;quot;$LOCAL&amp;quot;&lt;br /&gt;
      ;;&lt;br /&gt;
  esac&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== تركيب مشاركات SMB ====&lt;br /&gt;
&lt;br /&gt;
بعض مشاركات [[SMB]] متاحة فقط على شبكات أو مواقع معينة. يمكنك استخدام الموزِّع لتركيب مشاركات SMB المتاحة في موقعك الحالي فقط.&lt;br /&gt;
&lt;br /&gt;
السكريبت التالي سيتحقق من الاتصال بشبكة محددة ويُركِّب المشاركات وفقًا لذلك:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/30-mount-smb.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$2&amp;quot; = &amp;quot;up&amp;quot; ]; then&lt;br /&gt;
  if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;uuid&amp;quot; ]; then&lt;br /&gt;
    mount /your/mount/point &amp;amp; &lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
السكريبت التالي سيفكّ تركيب جميع مشاركات SMB قبل قطع الاتصال ببرنامج من شبكة محددة:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/pre-down.d/30-umount-smb.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;uuid&amp;quot; ]; then&lt;br /&gt;
  umount -a -l -t cifs&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|تأكد من وضع هذا السكريبت في المجلد الفرعي {{ic|pre-down.d}} كما هو موضح، وإلا سيفكّ تركيب جميع المشاركات عند أي تغيير في حالة الاتصال.}}&lt;br /&gt;
&lt;br /&gt;
السكريبت التالي سيحاول فكّ تركيب جميع مشاركات SMB بعد قطع الاتصال غير المتوقع بشبكة محددة:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/40-umount-smb.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;uuid&amp;quot; ]; then&lt;br /&gt;
  if [ &amp;quot;$2&amp;quot; = &amp;quot;down&amp;quot; ]; then&lt;br /&gt;
    umount -a -l -t cifs&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* منذ NetworkManager 0.9.8، لا تُنفَّذ أحداث &amp;#039;&amp;#039;pre-down&amp;#039;&amp;#039; و&amp;#039;&amp;#039;down&amp;#039;&amp;#039; عند الإغلاق أو إعادة التشغيل، راجع [https://bugzilla.gnome.org/show_bug.cgi?id&amp;amp;#61;701242 هذا التقرير] لمزيد من المعلومات.&lt;br /&gt;
* سكريبتات &amp;#039;&amp;#039;umount&amp;#039;&amp;#039; السابقة قد تظل تترك التطبيقات التي تصل فعليًا إلى نقطة التركيب في حالة &amp;quot;تعليق&amp;quot;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
بديلًا لذلك، يمكن استخدام السكريبت الموضح في [[NFS#Using a NetworkManager dispatcher]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/30-smb.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
WANTED_CON_UUID=&amp;quot;CHANGE-ME-NOW-9c7eff15-010a-4b1c-a786-9b4efa218ba9&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;$WANTED_CON_UUID&amp;quot; ]; then&lt;br /&gt;
    case &amp;quot;$2&amp;quot; in&lt;br /&gt;
        &amp;quot;up&amp;quot;)&lt;br /&gt;
            mount -a -t cifs&lt;br /&gt;
            ;;&lt;br /&gt;
        &amp;quot;down&amp;quot;|&amp;quot;pre-down&amp;quot;|&amp;quot;vpn-pre-down&amp;quot;)&lt;br /&gt;
            umount -l -a -t cifs &amp;gt;/dev/null&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|يتجاهل هذا السكريبت نقاط التركيب التي تحمل الخيار {{ic|noauto}}؛ أزل هذا الخيار أو استخدم {{ic|auto}} للسماح للموزِّع بإدارة هذه النقاط.}}&lt;br /&gt;
&lt;br /&gt;
أنشئ رابطًا رمزيًا داخل {{ic|/etc/NetworkManager/dispatcher.d/pre-down/}} لالتقاط أحداث {{ic|pre-down}}:&lt;br /&gt;
&lt;br /&gt;
 # ln -s ../30-smb.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30-smb.sh&lt;br /&gt;
&lt;br /&gt;
==== تركيب مشاركات NFS ====&lt;br /&gt;
&lt;br /&gt;
راجع [[NFS#Using a NetworkManager dispatcher]].&lt;br /&gt;
&lt;br /&gt;
==== استخدام الموزِّع للتبديل التلقائي بين Wi-Fi وكابل LAN ====&lt;br /&gt;
&lt;br /&gt;
الفكرة هي تشغيل Wi-Fi فقط عند فصل كابل LAN (مثلًا عند فصل الحاسوب المحمول من قاعدة الإرساء)، وتعطيل Wi-Fi تلقائيًا عند توصيل كابل LAN مرة أخرى.&lt;br /&gt;
&lt;br /&gt;
أنشئ سكريبت الموزِّع التالي[https://superuser.com/questions/233448/disable-wlan-if-wired-cable-network-is-available]، مع استبدال {{ic|&amp;#039;&amp;#039;Your_Ethernet_Interface&amp;#039;&amp;#039;}} باسم واجهة Ethernet لديك.&lt;br /&gt;
&lt;br /&gt;
{{Note|يمكن الحصول على قائمة الواجهات باستخدام [[#nmcli examples|nmcli]] ({{ic|nmcli d {{!}} grep ethernet}}). تبدأ واجهات Ethernet بـ {{ic|en}} أو {{ic|eth}}، مثل {{ic|enp0s5}} أو {{ic|eth0}}.}}&lt;br /&gt;
&lt;br /&gt;
تذكر جعل السكريبت [[executable|قابلًا للتنفيذ]]. يمكن التحقق من عمله بـ [[restart|إعادة تشغيل]] {{ic|NetworkManager.service}} وتنفيذ {{ic|ip a}} والتحقق أن واجهة Wi-Fi في الحالة {{ic|DOWN}}. إن واجهت سلوكًا غير متوقع، تحقق من [[journal|سجل]] {{ic|NetworkManager-dispatcher.service}}.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/99-wifi-auto-toggle.sh|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
LOG_PREFIX=&amp;quot;WiFi Auto-Toggle&amp;quot;&lt;br /&gt;
ETHERNET_INTERFACE=&amp;quot;&amp;#039;&amp;#039;Your_Ethernet_Interface&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;$ETHERNET_INTERFACE&amp;quot; ]; then&lt;br /&gt;
    case &amp;quot;$2&amp;quot; in&lt;br /&gt;
        up)&lt;br /&gt;
            echo &amp;quot;$LOG_PREFIX ethernet up&amp;quot;&lt;br /&gt;
            nmcli radio wifi off&lt;br /&gt;
            ;;&lt;br /&gt;
        down)&lt;br /&gt;
            echo &amp;quot;$LOG_PREFIX ethernet down&amp;quot;&lt;br /&gt;
            nmcli radio wifi on&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
elif [ &amp;quot;$(nmcli -g GENERAL.STATE device show $ETHERNET_INTERFACE)&amp;quot; = &amp;quot;20 (unavailable)&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;$LOG_PREFIX failsafe&amp;quot;&lt;br /&gt;
    nmcli radio wifi on&lt;br /&gt;
fi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|يوجد ضمان أمان لحالة كان فيها كابل LAN موصولًا عند آخر إغلاق ثم فُصل أثناء توقف الحاسوب. في هذه الحالة سيظل الراديو معطلًا عند الإقلاع، ومع فصل كابل LAN لن تكون لديك أي شبكة.}}&lt;br /&gt;
&lt;br /&gt;
==== استخدام الموزِّع للاتصال بـ VPN بعد اتصال الشبكة ====&lt;br /&gt;
&lt;br /&gt;
في هذا المثال نريد الاتصال تلقائيًا باتصال VPN مُعرَّف مسبقًا بعد الاتصال بشبكة Wi-Fi محددة.&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|A scripting without {{ic|iwgetid}} does work too and may be more reliable?|section=Fixes for automatic VPN dispatcher script}}&lt;br /&gt;
&lt;br /&gt;
{{Note|يتطلب هذا السكريبت {{Pkg|wireless_tools}} لاستخدام {{ic|iwgetid}}.}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/vpn-up|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
VPN_NAME=&amp;quot;name of VPN connection defined in NetworkManager&amp;quot;&lt;br /&gt;
ESSID=&amp;quot;Wi-Fi network ESSID (not connection name)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
interface=$1 status=$2&lt;br /&gt;
case $status in&lt;br /&gt;
  up|vpn-down)&lt;br /&gt;
    if iwgetid | grep -qs &amp;quot;:\&amp;quot;$ESSID\&amp;quot;&amp;quot;; then&lt;br /&gt;
      nmcli connection up id &amp;quot;$VPN_NAME&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
  down)&lt;br /&gt;
    if iwgetid | grep -qs &amp;quot;:\&amp;quot;$ESSID\&amp;quot;&amp;quot;; then&lt;br /&gt;
      if nmcli connection show --active | grep &amp;quot;$VPN_NAME&amp;quot;; then&lt;br /&gt;
        nmcli connection down id &amp;quot;$VPN_NAME&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
إن أردت محاولة الاتصال بـ VPN تلقائيًا لجميع شبكات Wi-Fi، يمكنك استخدام التعريف التالي لـ ESSID: {{ic|1=ESSID=$(iwgetid -r)}}. تذكر ضبط صلاحيات السكريبت [[#Network services with NetworkManager dispatcher|وفقًا لذلك]].&lt;br /&gt;
&lt;br /&gt;
قد تفشل محاولة الاتصال بالسكريبت أعلاه مع شكوى {{ic|NetworkManager-dispatcher.service}} من &amp;#039;no valid VPN secrets&amp;#039;، بسبب [https://developer.gnome.org/NetworkManager/0.9/secrets-flags.html طريقة تخزين أسرار VPN]. لحسن الحظ، ثمة خيارات مختلفة لمنح السكريبت الوصول إلى كلمة مرور VPN.&lt;br /&gt;
&lt;br /&gt;
1: أحدها يتطلب تعديل ملف إعداد اتصال VPN لجعل NetworkManager يخزّن الأسرار بنفسه بدلًا من تخزينها داخل keyring [https://bugzilla.redhat.com/show_bug.cgi?id=710552 الذي لن يكون متاحًا لـ root]: افتح {{ic|/etc/NetworkManager/system-connections/&amp;#039;&amp;#039;name of your VPN connection&amp;#039;&amp;#039;.nmconnection}} وغيِّر {{ic|password-flags}} و{{ic|secret-flags}} من {{ic|1}} إلى {{ic|0}}.&lt;br /&gt;
&lt;br /&gt;
إن لم ينجح ذلك وحده، قد تحتاج إلى إنشاء {{ic|passwd-file}} في مكان آمن بنفس الصلاحيات والملكية كسكريبت الموزِّع، يحتوي على:&lt;br /&gt;
&lt;br /&gt;
{{hc|/path/to/passwd-file|&lt;br /&gt;
vpn.secrets.password:YOUR_PASSWORD&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
يجب تعديل السكريبت وفقًا لذلك للحصول على كلمة المرور من الملف:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/vpn-up|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
VPN_NAME=&amp;quot;name of VPN connection defined in NetworkManager&amp;quot;&lt;br /&gt;
ESSID=&amp;quot;Wi-Fi network ESSID (not connection name)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
interface=$1 status=$2&lt;br /&gt;
case $status in&lt;br /&gt;
  up|vpn-down)&lt;br /&gt;
    if iwgetid | grep -qs &amp;quot;:\&amp;quot;$ESSID\&amp;quot;&amp;quot;; then&lt;br /&gt;
      nmcli connection up id &amp;quot;$VPN_NAME&amp;quot; passwd-file /path/to/passwd-file&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
  down)&lt;br /&gt;
    if iwgetid | grep -qs &amp;quot;:\&amp;quot;$ESSID\&amp;quot;&amp;quot;; then&lt;br /&gt;
      if nmcli connection show --active | grep &amp;quot;$VPN_NAME&amp;quot;; then&lt;br /&gt;
        nmcli connection down id &amp;quot;$VPN_NAME&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
2: بدلًا من ذلك، غيِّر {{ic|password-flags}} وضع كلمة المرور مباشرة في ملف الإعداد بإضافة قسم {{ic|vpn-secrets}}:&lt;br /&gt;
&lt;br /&gt;
  [vpn]&lt;br /&gt;
  ....&lt;br /&gt;
  password-flags=0&lt;br /&gt;
  &lt;br /&gt;
  [vpn-secrets]&lt;br /&gt;
  password=&amp;#039;&amp;#039;your_password&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|قد يكون من الضروري إعادة فتح محرر اتصال NetworkManager وحفظ أسرار/كلمات مرور VPN مرة أخرى.}}&lt;br /&gt;
&lt;br /&gt;
==== استخدام الموزِّع لتعطيل IPv6 على اتصالات مزودي VPN ====&lt;br /&gt;
&lt;br /&gt;
كثير من [[:Category:VPN providers|مزودي VPN التجاريين]] يدعمون IPv4 فقط، مما يعني أن كل حركة مرور IPv6 تتجاوز VPN وتجعله عديم الفائدة فعليًا. لتفادي ذلك، يمكن استخدام الموزِّع لتعطيل كل حركة مرور IPv6 طوال مدة اتصال VPN.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/10-vpn-ipv6|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$2&amp;quot; in&lt;br /&gt;
	vpn-up)&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;br /&gt;
		;;&lt;br /&gt;
	vpn-down)&lt;br /&gt;
		echo 0 &amp;gt; /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;br /&gt;
		;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|لا يعمل السكريبت أعلاه مع WireGuard إذ لا يُرسل NetworkManager أحداث {{ic|vpn-up/down}} له. يجب بدلًا من ذلك الاعتماد على الأحداث العامة لواجهات WireGuard كما هو موضح في [https://gist.github.com/TheDcoder/85e1ec99a31180e20ba8e4896024f265].}}&lt;br /&gt;
&lt;br /&gt;
كبديل، يمكن استخدام الموزِّع لضبط وضع IPv6 للجهاز المستخدم من اتصال VPN مؤقتًا على {{ic|link-local}}. لن يعمل هذا السكريبت إن وفّر أكثر من جهاز أو اتصال واحد اتصال IPv6، إلا أنه يمكن تعديله للتكرار على أجهزة متعددة.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/10-vpn-ipv6|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$2&amp;quot; in&lt;br /&gt;
	vpn-up)&lt;br /&gt;
		nmcli device modify &amp;quot;${DEVICE_IFACE}&amp;quot; ipv6.method link-local&lt;br /&gt;
		;;&lt;br /&gt;
	vpn-down)&lt;br /&gt;
		nmcli device reapply &amp;quot;${DEVICE_IFACE}&amp;quot;&lt;br /&gt;
		;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== OpenNTPD ====&lt;br /&gt;
&lt;br /&gt;
راجع [[OpenNTPD#Using NetworkManager dispatcher]].&lt;br /&gt;
&lt;br /&gt;
==== الضبط الديناميكي لخوادم NTP المستلمة عبر DHCP مع systemd-timesyncd ====&lt;br /&gt;
&lt;br /&gt;
عند التنقل بين شبكات مختلفة (شبكة LAN في الشركة، Wi-Fi في المنزل، وشبكات أخرى متنوعة) قد ترغب في ضبط خوادم NTP التي يستخدمها timesyncd على تلك التي يوفرها DHCP. إلا أن NetworkManager بحد ذاته غير قادر على التواصل مع systemd-timesyncd لضبط خوادم NTP.&lt;br /&gt;
&lt;br /&gt;
يمكن للموزِّع حل هذه المشكلة.&lt;br /&gt;
&lt;br /&gt;
[[Create|أنشئ]] مجلد التراكب لإعداد systemd-timesyncd {{ic|/etc/systemd/timesyncd.conf.d}} إن لم يكن موجودًا. داخل {{ic|/etc/NetworkManager/dispatcher.d}}، ضع ما يلي:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/10-update-timesyncd|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
[ -z &amp;quot;$CONNECTION_UUID&amp;quot; ] &amp;amp;&amp;amp; exit 0&lt;br /&gt;
INTERFACE=&amp;quot;$1&amp;quot;&lt;br /&gt;
ACTION=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
case $ACTION in&lt;br /&gt;
up | dhcp4-change | dhcp6-change)&lt;br /&gt;
	set -- ${DHCP6_DHCP6_NTP_SERVERS-} ${DHCP4_NTP_SERVERS-}&lt;br /&gt;
	servers=$*&lt;br /&gt;
	[ -n &amp;quot;$servers&amp;quot; ] || exit 0&lt;br /&gt;
	mkdir -p /etc/systemd/timesyncd.conf.d&lt;br /&gt;
	cat &amp;lt;&amp;lt;-THE_END &amp;gt;&amp;quot;/etc/systemd/timesyncd.conf.d/${CONNECTION_UUID}.conf&amp;quot;&lt;br /&gt;
		[Time]&lt;br /&gt;
		NTP=$servers&lt;br /&gt;
	THE_END&lt;br /&gt;
	systemctl restart systemd-timesyncd.service&lt;br /&gt;
	;;&lt;br /&gt;
down)&lt;br /&gt;
	rm -f &amp;quot;/etc/systemd/timesyncd.conf.d/${CONNECTION_UUID}.conf&amp;quot;&lt;br /&gt;
	systemctl restart systemd-timesyncd.service&lt;br /&gt;
	;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
في كل مرة يُنشئ فيها NetworkManager اتصال شبكة جديد ({{ic|1=ACTION=up}}) أو يتلقى تحديثًا لاتصال قائم ({{ic|1=ACTION=dhcp4-change}} أو {{ic|1=ACTION=dhcp6-change}}) وتحتوي بيانات الاتصال على معلومات حول خوادم NTP، يُكتب ملف إعداد تراكب خاص بالاتصال في {{ic|/etc/systemd/timesyncd.conf.d}}. عند إيقاف الاتصال ({{ic|1=ACTION=down}}) يُحذف ملف التراكب الخاص به. بعد كل تغيير في إعداد systemd-timesyncd تُعاد تشغيل الخدمة لأخذ الإعداد المحدَّث بعين الاعتبار.&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|1=DHCP6_DHCP6_NTP_SERVERS}} بـ DHCP6 مضاعفة هو اسم المتغير الصحيح كما تم التحقق منه بـ {{ic|1=printenv}} اعتبارًا من NetworkManager 1.56.0-1}}&lt;br /&gt;
&lt;br /&gt;
== الاختبار ==&lt;br /&gt;
&lt;br /&gt;
صُمِّمت أبلتات NetworkManager للتحميل عند تسجيل الدخول لذا لا يلزم في العادة أي إعداد إضافي لمعظم المستخدمين. إن كنت قد عطّلت إعدادات شبكتك السابقة وقطعت اتصالك بالشبكة، يمكنك الآن اختبار ما إذا كان NetworkManager سيعمل. الخطوة الأولى هي [[start|تشغيل]] {{ic|NetworkManager.service}}.&lt;br /&gt;
&lt;br /&gt;
ستوفر بعض الأبلتات ملف {{ic|.desktop}} لتحميل أبلت NetworkManager عبر قائمة التطبيقات. إن لم يكن كذلك، ستحتاج إلى اكتشاف الأمر المناسب أو تسجيل الخروج والدخول مجددًا لتشغيل الأبلت. بمجرد تشغيله، سيبدأ على الأرجح في استطلاع اتصالات الشبكة للإعداد التلقائي مع خادم DHCP.&lt;br /&gt;
&lt;br /&gt;
لتشغيل أبلت GNOME في مديري النوافذ غير المتوافقين مع xdg كـ [[awesome]]:&lt;br /&gt;
&lt;br /&gt;
 nm-applet --sm-disable &amp;amp;&lt;br /&gt;
&lt;br /&gt;
للعناوين الثابتة، ستحتاج إلى إعداد NetworkManager ليتعامل معها. تتضمن العملية عادةً النقر بالزر الأيمن على الأبلت واختيار شيء كـ &amp;quot;تعديل الاتصالات&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== نصائح وحيل ==&lt;br /&gt;
&lt;br /&gt;
=== كلمات مرور Wi-Fi المشفرة ===&lt;br /&gt;
&lt;br /&gt;
افتراضيًا، يخزّن NetworkManager كلمات المرور بنص عادي في ملفات الاتصال في {{ic|/etc/NetworkManager/system-connections/}}. لطباعة كلمات المرور المخزّنة، استخدم الأمر التالي:&lt;br /&gt;
&lt;br /&gt;
 # grep -r &amp;#039;^psk=&amp;#039; /etc/NetworkManager/system-connections/&lt;br /&gt;
&lt;br /&gt;
كلمات المرور متاحة للمستخدم الجذر في نظام الملفات وللمستخدمين الذين يمكنهم الوصول إلى الإعدادات عبر الواجهة الرسومية (مثل {{ic|nm-applet}}).&lt;br /&gt;
&lt;br /&gt;
من الأفضل تخزين كلمات المرور بشكل مشفر في خزنة مفاتيح بدلًا من النص العادي. عيب ذلك أن الاتصالات يجب إعدادها لكل مستخدم على حدة.&lt;br /&gt;
&lt;br /&gt;
لقراءة الخزنة والكتابة إليها، يجب توافر وكيل أسرار. يمكن أن يكون:&lt;br /&gt;
&lt;br /&gt;
* {{ic|nmcli}} مع الخيار {{ic|--ask}}&lt;br /&gt;
* إحدى الواجهات الرسومية من [[#Front-ends]]&lt;br /&gt;
&lt;br /&gt;
إن لم يتوفر أي من هذين، ستفشل المصادقة بالخطأ {{ic|no secrets: No agents were available for this request.}}&lt;br /&gt;
&lt;br /&gt;
==== استخدام GNOME Keyring ====&lt;br /&gt;
&lt;br /&gt;
يجب أن يكون خادم الخزنة مُشغَّلًا ومفتوحة الخزنة لكي يعمل ما يلي.&lt;br /&gt;
&lt;br /&gt;
علاوة على ذلك، يجب إعداد NetworkManager لعدم تخزين كلمة المرور لجميع المستخدمين. باستخدام {{Pkg|network-manager-applet}} من GNOME، شغِّل {{ic|nm-connection-editor}} من الطرفية، اختر اتصال شبكة، انقر &amp;#039;&amp;#039;تعديل&amp;#039;&amp;#039;، اختر تبويب &amp;#039;&amp;#039;أمان Wi-Fi&amp;#039;&amp;#039; وانقر على الأيقونة اليمنى لكلمة المرور ثم اختر &amp;#039;&amp;#039;تخزين كلمة المرور لهذا المستخدم فقط&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==== استخدام KDE Wallet ====&lt;br /&gt;
&lt;br /&gt;
باستخدام {{Pkg|plasma-nm}} من KDE، انقر على الأبلت، ثم انقر على أيقونة &amp;#039;&amp;#039;الإعدادات&amp;#039;&amp;#039; في أعلى اليمين، انقر على اتصال شبكة، وفي تبويب &amp;#039;&amp;#039;الإعداد العام&amp;#039;&amp;#039;، أزل علامة الاختيار عن &amp;#039;&amp;#039;يمكن لجميع المستخدمين الاتصال بهذه الشبكة&amp;#039;&amp;#039;. إن ظل الخيار مفعَّلًا، ستُخزَّن كلمات المرور بنص عادي حتى عند تشغيل خادم خزنة.&lt;br /&gt;
&lt;br /&gt;
إن كان الخيار محددًا سابقًا وأزلت علامة الاختيار، قد تحتاج إلى استخدام خيار {{ic|reset}} أولًا لإزالة كلمة المرور من الملف. بدلًا من ذلك، احذف الاتصال وأعد إعداده.&lt;br /&gt;
&lt;br /&gt;
=== مشاركة الاتصال بالإنترنت عبر Wi-Fi ===&lt;br /&gt;
&lt;br /&gt;
يمكنك مشاركة اتصالك بالإنترنت (مثلًا اتصال 3G أو سلكي) ببضع نقرات. لاحظ أن [[firewall|جدار الحماية]] قد يتعارض مع مشاركة الإنترنت.&lt;br /&gt;
&lt;br /&gt;
ستحتاج إلى بطاقة Wi-Fi تدعم وضع AP، راجع [[Software access point#Wi-Fi device must support AP mode]] للتفاصيل.&lt;br /&gt;
&lt;br /&gt;
[[Install|ثبِّت]] حزمة {{Pkg|dnsmasq}} لتتمكن من مشاركة الاتصال فعليًا. لاحظ أن NetworkManager يشغّل نسخته الخاصة من &amp;#039;&amp;#039;dnsmasq&amp;#039;&amp;#039; كخادم DHCP بشكل مستقل عن {{ic|dnsmasq.service}}. راجع [[#dnsmasq]] للتحذيرات.&lt;br /&gt;
&lt;br /&gt;
أنشئ الاتصال المشترك:&lt;br /&gt;
&lt;br /&gt;
* انقر على الأبلت واختر &amp;#039;&amp;#039;إنشاء شبكة لاسلكية جديدة&amp;#039;&amp;#039;.&lt;br /&gt;
* اتبع المعالج (اختر WPA2 أو أحدث، وتأكد من استخدام كلمة مرور لا تقل عن 8 أحرف، أي طول أقل سيفشل).&lt;br /&gt;
** اختر إما [[Fedora:Features/RealHotspot|Hotspot]] أو Ad-hoc كوضع Wi-Fi.&lt;br /&gt;
&lt;br /&gt;
سيُحفظ الاتصال للاستخدام في المرات القادمة.&lt;br /&gt;
&lt;br /&gt;
{{Note|لا يدعم Android الاتصال بشبكات Ad-hoc. لمشاركة اتصال مع Android، استخدم وضع البنية التحتية (أي اضبط وضع Wi-Fi على &amp;quot;Hotspot&amp;quot;).}}&lt;br /&gt;
&lt;br /&gt;
=== مشاركة الاتصال بالإنترنت عبر Ethernet ===&lt;br /&gt;
&lt;br /&gt;
السيناريو: جهازك متصل بالإنترنت عبر Wi-Fi وتريد مشاركة الاتصال مع أجهزة أخرى عبر Ethernet.&lt;br /&gt;
&lt;br /&gt;
المتطلبات:&lt;br /&gt;
&lt;br /&gt;
* [[Install|ثبِّت]] حزمتَي {{Pkg|dnsmasq}} و{{Pkg|nm-connection-editor}} لتتمكن من مشاركة الاتصال فعليًا. لاحظ أن NetworkManager يشغّل نسخته الخاصة من &amp;#039;&amp;#039;dnsmasq&amp;#039;&amp;#039; كخادم DHCP بشكل مستقل عن {{ic|dnsmasq.service}}. راجع [[#dnsmasq]] للتحذيرات.&lt;br /&gt;
* جهازك المتصل بالإنترنت والأجهزة الأخرى متصلة عبر كابل Ethernet مناسب (عادةً كابل crossover أو محوّل بينهما).&lt;br /&gt;
* مشاركة الإنترنت غير محجوبة بـ [[firewall|جدار حماية]].&lt;br /&gt;
&lt;br /&gt;
الخطوات:&lt;br /&gt;
&lt;br /&gt;
* شغِّل {{ic|nm-connection-editor}} من الطرفية.&lt;br /&gt;
* أضف اتصال Ethernet جديدًا.&lt;br /&gt;
* أعطه اسمًا واضحًا، مثل &amp;quot;إنترنت مشترك&amp;quot;.&lt;br /&gt;
* اذهب إلى &amp;quot;إعدادات IPv4&amp;quot;.&lt;br /&gt;
* في &amp;quot;الطريقة:&amp;quot;، اختر &amp;quot;مشاركة مع أجهزة أخرى&amp;quot;.&lt;br /&gt;
* احفظ.&lt;br /&gt;
&lt;br /&gt;
الآن يجب أن يظهر &amp;quot;إنترنت مشترك&amp;quot; كخيار ضمن الاتصالات السلكية في NetworkManager.&lt;br /&gt;
&lt;br /&gt;
=== التحقق من الاتصال بالشبكة داخل مهمة cron أو سكريبت ===&lt;br /&gt;
&lt;br /&gt;
{{Out of date|&amp;#039;&amp;#039;nm-tool&amp;#039;&amp;#039; was removed from NetworkManager for long time now[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/bb8c75bd536d4f8fb80a4366025a279078f0ec81]. &amp;#039;&amp;#039;nmcli&amp;#039;&amp;#039; should be used instead.}}&lt;br /&gt;
&lt;br /&gt;
بعض مهام &amp;#039;&amp;#039;cron&amp;#039;&amp;#039; تتطلب توافر الشبكة للنجاح. لتجنّب تشغيل هذه المهام عند انقطاع الشبكة، أضف اختبار &amp;#039;&amp;#039;&amp;#039;if&amp;#039;&amp;#039;&amp;#039; للشبكة يستعلم &amp;#039;&amp;#039;nm-tool&amp;#039;&amp;#039; الخاص بـ NetworkManager ويتحقق من حالة الشبكة. يَنجح الاختبار الموضح هنا إن كانت أي واجهة متصلة، ويفشل إن كانت جميعها غير متصلة.&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
if [ $(nm-tool|grep State|cut -f2 -d&amp;#039; &amp;#039;) == &amp;quot;connected&amp;quot; ]; then&lt;br /&gt;
    #Whatever you want to do if the network is online&lt;br /&gt;
else&lt;br /&gt;
    #Whatever you want to do if the network is offline&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== الاتصال بشبكة تتطلب كلمة سر عند الإقلاع ===&lt;br /&gt;
&lt;br /&gt;
افتراضيًا، لن يتصل NetworkManager تلقائيًا بشبكات تتطلب كلمة سر عند الإقلاع. يعود ذلك إلى أنه يربط هذه الاتصالات بالمستخدم الذي أنشأها افتراضيًا، ولا يتصل إلا بعد تسجيل دخوله. لتغيير ذلك:&lt;br /&gt;
&lt;br /&gt;
# انقر بالزر الأيمن على أيقونة {{ic|nm-applet}} في لوحتك واختر &amp;quot;تعديل الاتصالات&amp;quot;، ثم افتح تبويب اللاسلكي.&lt;br /&gt;
# اختر الاتصال المطلوب وانقر على &amp;quot;تعديل&amp;quot;.&lt;br /&gt;
# ضع علامة على &amp;quot;الاتصال تلقائيًا&amp;quot; و&amp;quot;متاح لجميع المستخدمين&amp;quot;.&lt;br /&gt;
# تأكد أيضًا من أنه في &amp;quot;أمان Wi-Fi&amp;quot;، محددٌ خيار &amp;quot;تخزين كلمة المرور لجميع المستخدمين (غير مشفرة)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
سجّل الخروج وأعد الدخول لإتمام العملية.&lt;br /&gt;
&lt;br /&gt;
=== OpenConnect مع كلمة المرور في KWallet ===&lt;br /&gt;
&lt;br /&gt;
بينما يمكنك إدخال كلتا القيمتين وقت الاتصال، تستطيع {{Pkg|plasma-nm}} 0.9.3.2-1 وما فوقها استرداد اسم مستخدم OpenConnect وكلمة مروره مباشرة من [[KWallet]].&lt;br /&gt;
&lt;br /&gt;
افتح &amp;quot;مدير KDE Wallet&amp;quot; وابحث عن اتصال OpenConnect VPN تحت &amp;quot;Network Management|Maps&amp;quot;. انقر &amp;quot;عرض القيم&amp;quot; وأدخل بيانات اعتمادك في مفتاح &amp;quot;VpnSecrets&amp;quot; بهذا الشكل (استبدل &amp;#039;&amp;#039;username&amp;#039;&amp;#039; و&amp;#039;&amp;#039;password&amp;#039;&amp;#039; بالقيم الصحيحة):&lt;br /&gt;
&lt;br /&gt;
 form:main:username%SEP%&amp;#039;&amp;#039;username&amp;#039;&amp;#039;%SEP%form:main:password%SEP%&amp;#039;&amp;#039;password&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
في المرة القادمة التي تتصل فيها، يجب أن يظهر اسم المستخدم وكلمة المرور تلقائيًا في مربع حوار &amp;quot;أسرار VPN&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== تجاهل أجهزة معينة ===&lt;br /&gt;
&lt;br /&gt;
في بعض الأحيان قد ترغب في جعل NetworkManager يتجاهل أجهزة معينة ولا يحاول إعداد عناوين ومسارات لها. يمكنك تجاهل الأجهزة بسرعة عبر MAC أو اسم الواجهة في {{ic|/etc/NetworkManager/conf.d/unmanaged.conf}}:&lt;br /&gt;
&lt;br /&gt;
 [keyfile]&lt;br /&gt;
 unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth0&lt;br /&gt;
&lt;br /&gt;
بعد تعديل الملف، نفِّذ {{ic|nmcli general reload}} كجذر. بعدها ستتمكن من إعداد الواجهات دون أن يُغيِّر NetworkManager ما ضبطته.&lt;br /&gt;
&lt;br /&gt;
=== إعداد عشوائية عنوان MAC ===&lt;br /&gt;
&lt;br /&gt;
{{Merge|NetworkManager/Privacy#MAC Randomization|There is a dedicated sub-page for Privacy now.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|1=قد يكون تعطيل عشوائية عنوان MAC ضروريًا للحصول على اتصال مستقر [https://bbs.archlinux.org/viewtopic.php?id=220101] و/أو في الشبكات التي تقيّد الأجهزة بناءً على عنوان MAC أو لديها سعة شبكة محدودة.}}&lt;br /&gt;
&lt;br /&gt;
يمكن استخدام عشوائية MAC لتعزيز الخصوصية بعدم الكشف عن عنوان MAC الفعلي للشبكة.&lt;br /&gt;
&lt;br /&gt;
يدعم NetworkManager نوعين من عشوائية عنوان MAC: العشوائية أثناء الفحص وللاتصالات الشبكية. يمكن إعداد كلا الوضعين بتعديل {{ic|/etc/NetworkManager/NetworkManager.conf}} أو بإنشاء ملف إعداد منفصل في {{ic|/etc/NetworkManager/conf.d/}} وهو الموصى به.&lt;br /&gt;
&lt;br /&gt;
عشوائية Wi-Fi أثناء الفحص مفعَّلة افتراضيًا، لكن يمكن تعطيلها بإضافة ما يلي:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/wifi_rand_mac.conf|2=&lt;br /&gt;
[device]&lt;br /&gt;
wifi.scan-rand-mac-address=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
تتضمن أهم الأوضاع {{ic|stable}} و{{ic|random}}. يولّد {{ic|stable}} عنوان MAC عشوائيًا عند الاتصال بشبكة جديدة ويربطهما باستمرار، فتستخدم نفس العنوان في كل مرة. في المقابل، يولّد {{ic|random}} عنوان MAC جديدًا في كل مرة. يمكن إعداد العشوائية بإضافة:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/wifi_rand_mac.conf|2=&lt;br /&gt;
[device-mac-randomization]&lt;br /&gt;
wifi.scan-rand-mac-address=yes&lt;br /&gt;
 &lt;br /&gt;
[connection-mac-randomization]&lt;br /&gt;
ethernet.cloned-mac-address=random&lt;br /&gt;
wifi.cloned-mac-address=stable&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
راجع [https://blogs.gnome.org/thaller/2016/08/26/mac-address-spoofing-in-networkmanager-1-4-0/ مقالة مدونة GNOME] لمزيد من التفاصيل.&lt;br /&gt;
&lt;br /&gt;
=== إيقاف إرسال اسم المضيف ===&lt;br /&gt;
&lt;br /&gt;
يُرسل NetworkManager افتراضيًا اسم المضيف إلى خادم DHCP.&lt;br /&gt;
&lt;br /&gt;
لتعطيل إرسال اسم المضيف إلى خادم DHCP لجميع الاتصالات عالميًا، عيِّن الخيارين {{ic|ipv4.dhcp-send-hostname{{=}}0}} و{{ic|ipv6.dhcp-send-hostname{{=}}0}} في ملف إعداد ضمن {{ic|/etc/NetworkManager/conf.d/}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dhcp-send-hostname.conf|2=&lt;br /&gt;
[connection]&lt;br /&gt;
ipv4.dhcp-send-hostname=0&lt;br /&gt;
ipv6.dhcp-send-hostname=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
لتعطيل إرسال اسم المضيف لاتصال محدد (أو تفعيله إن كان معطلًا عالميًا)، أضف ما يلي إلى ملف اتصال الشبكة:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/system-connections/&amp;#039;&amp;#039;your_connection_file&amp;#039;&amp;#039;.nmconnection|2=&lt;br /&gt;
...&lt;br /&gt;
[ipv4]&lt;br /&gt;
dhcp-send-hostname=false&lt;br /&gt;
...&lt;br /&gt;
[ipv6]&lt;br /&gt;
dhcp-send-hostname=false&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|تُكرَّم هذه الخيارات فقط من قِبل [[#DHCP client|عميل DHCP الداخلي]] الافتراضي. لحذف إرسال اسم المضيف عند استخدام NetworkManager مع dhcpcd، عدِّل {{ic|/etc/dhcpcd.conf}} وأضف {{ic|anonymous}} كآخر سطر.}}&lt;br /&gt;
&lt;br /&gt;
=== تفعيل امتدادات خصوصية IPv6 ===&lt;br /&gt;
&lt;br /&gt;
راجع [[IPv6#NetworkManager]].&lt;br /&gt;
&lt;br /&gt;
=== إعداد DUID فريد لكل اتصال ===&lt;br /&gt;
&lt;br /&gt;
DUID الخاص بـ DHCPv6 هو قيمة يستخدمها عميل DHCPv6 للتعريف عن نفسه لخوادم DHCPv6. يدعم NetworkManager 3 أنواع من DUID:&lt;br /&gt;
&lt;br /&gt;
* DUID-UUID ([[RFC:6355|RFC 6355]]): مولَّد من معرف فريد عالميًا (UUID).&lt;br /&gt;
* DUID-LL ([[RFC:3315|RFC 3315]]): مولَّد من عنوان طبقة الرابط (عنوان MAC).&lt;br /&gt;
* DUID-LLT ([[RFC:3315|RFC 3315]]): مولَّد من عنوان طبقة الرابط مع طابع زمني.&lt;br /&gt;
&lt;br /&gt;
إن كان عميل DHCP الداخلي لـ NetworkManager قيد الاستخدام (الافتراضي)، سيُعرِّف عن نفسه بـ DUID-UUID عالمي ودائم مولَّد من machine-id ({{ic|/etc/machine-id}}). هذا يعني أن جميع الاتصالات تشترك في نفس UUID، وهو ما قد يُشكِّل انتهاكًا للخصوصية.&lt;br /&gt;
&lt;br /&gt;
لحسن الحظ، يمكن لـ NetworkManager توفير DUIDs فريدة لكل اتصال. يمكن تفعيل ذلك بإضافة الإعداد التالي:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/duid.conf|2=&lt;br /&gt;
[connection]&lt;br /&gt;
ipv6.dhcp-duid=stable-uuid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
تُدعم أيضًا قيم {{ic|stable-ll}} و{{ic|stable-llt}}.&lt;br /&gt;
&lt;br /&gt;
=== العمل مع الاتصالات السلكية ===&lt;br /&gt;
&lt;br /&gt;
افتراضيًا، يولّد NetworkManager ملف تعريف اتصال لكل اتصال ethernet سلكي يجده. يُسمّي الاتصال الأول &amp;quot;Wired connection 1&amp;quot;. يمكن تجنّب توليد هذا الاتصال بإعداد {{ic|no-auto-default}} (راجع {{man|5|NetworkManager.conf}})، أو بحذفه ببساطة. بعدها لن يولِّد NetworkManager اتصالًا لهذه الواجهة مرة أخرى.&lt;br /&gt;
&lt;br /&gt;
يمكنك أيضًا تعديل الاتصال وحفظه أو حذفه، ثم تغيير الاسم كما تشاء. يمكن استخدام {{Pkg|nm-connection-editor}} لهذه المهمة.&lt;br /&gt;
&lt;br /&gt;
=== استخدام iwd كخلفية Wi-Fi ===&lt;br /&gt;
&lt;br /&gt;
{{Note|1=&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
* لا تُفعِّل {{ic|iwd.service}} أو تُعدِّل [[iwd]] يدويًا. سيُشغِّله NetworkManager ويديره بنفسه.&lt;br /&gt;
* راجع [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues?scope=all&amp;amp;utf8=%E2%9C%93&amp;amp;state=opened&amp;amp;search=iwd المشكلات الموجودة] قبل التبديل إلى &amp;#039;&amp;#039;iwd&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
لتفعيل [https://archive.kernel.org/oldwiki/iwd.wiki.kernel.org/networkmanager.html خلفية iwd التجريبية]، [[install|ثبِّت]] {{Pkg|iwd}} أولًا ثم أنشئ ملف الإعداد التالي:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/wifi_backend.conf|2=&lt;br /&gt;
[device]&lt;br /&gt;
wifi.backend=iwd&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
بدلًا من ذلك، يمكن تثبيت {{AUR|networkmanager-iwd}}، وهي حزمة معدَّلة تعمل حصريًا مع &amp;#039;&amp;#039;iwd&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{{Note|1=قد تحتاج إلى [https://archive.kernel.org/oldwiki/iwd.wiki.kernel.org/networkmanager.html#converting_network_profiles تحويل ملفات تعريف شبكة NetworkManager الموجودة] بعد التبديل إلى &amp;#039;&amp;#039;iwd&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
=== التشغيل في مساحة شبكة منعزلة ===&lt;br /&gt;
&lt;br /&gt;
إن أردت تشغيل NetworkManager داخل مساحة شبكة منعزلة (namespace)، أوقف الجهاز قبل نقله إلى المساحة المنعزلة:&lt;br /&gt;
&lt;br /&gt;
 $ ip link set dev &amp;#039;&amp;#039;MY_DEVICE&amp;#039;&amp;#039; down&lt;br /&gt;
 $ ip link set dev &amp;#039;&amp;#039;MY_DEVICE&amp;#039;&amp;#039; netns &amp;#039;&amp;#039;MY_NAMESPACE&amp;#039;&amp;#039;&lt;br /&gt;
 $ ip netns exec &amp;#039;&amp;#039;MY_NAMESPACE&amp;#039;&amp;#039; NetworkManager&lt;br /&gt;
 ...&lt;br /&gt;
 $ ip netns exec &amp;#039;&amp;#039;MY_NAMESPACE&amp;#039;&amp;#039; killall NetworkManager&lt;br /&gt;
&lt;br /&gt;
وإلا سيفشل NetworkManager لاحقًا في تأسيس الاتصال مع خطأ {{ic|device is strictly unmanaged}}.&lt;br /&gt;
&lt;br /&gt;
=== الاتصال التلقائي بـ VPN ===&lt;br /&gt;
&lt;br /&gt;
يمكن ضبط NetworkManager للاتصال تلقائيًا بـ VPN عند الاتصال بالإنترنت، على أساس كل شبكة على حدة. يمكن إضافة اتصال VPN في واجهة NetworkManager الأمامية لـ GNOME، لكن لجعله يتصل تلقائيًا يجب استخدام {{ic|nmcli}}.&lt;br /&gt;
&lt;br /&gt;
أولًا، تأكد من إتاحة اتصال VPN لجميع المستخدمين. في GNOME يتم ذلك بتحديد خانة تحت تبويب {{ic|details}}. في تبويب {{ic|Identity}}، في حقل كلمة المرور، انقر الأيقونة على اليمين واضبطها على {{ic|Store the password for all users}}.&lt;br /&gt;
&lt;br /&gt;
ثم ابحث عن UUID لاتصال VPN وأضفه إلى {{ic|connection.secondaries}} لاتصال الإنترنت:&lt;br /&gt;
&lt;br /&gt;
 # UUID=$(nmcli --get-values connection.uuid connection show &amp;#039;&amp;#039;name-of-VPN-connection&amp;#039;&amp;#039;)&lt;br /&gt;
 # nmcli connection modify &amp;#039;&amp;#039;name-of-Internet-connection&amp;#039;&amp;#039; connection.secondaries &amp;quot;$UUID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
عند إعادة تشغيل NetworkManager والاتصال باتصال الإنترنت المُعدَّ، يجب أن يتصل بـ VPN تلقائيًا.&lt;br /&gt;
&lt;br /&gt;
== استكشاف الأخطاء وإصلاحها ==&lt;br /&gt;
&lt;br /&gt;
=== لا يظهر مربع إدخال كلمة المرور لشبكات Wi-Fi المحمية ===&lt;br /&gt;
&lt;br /&gt;
عند محاولة الاتصال بشبكة Wi-Fi محمية، لا يظهر مربع حوار لإدخال كلمة المرور ولا يتم الاتصال. يحدث ذلك عند عدم تثبيت أي حزمة خزنة مفاتيح. الحل البسيط هو تثبيت {{Pkg|gnome-keyring}}. إن أردت تخزين كلمات المرور بشكل مشفر، اتبع [[GNOME Keyring]] لإعداد &amp;#039;&amp;#039;gnome-keyring-daemon&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== إدارة الشبكة معطلة ===&lt;br /&gt;
&lt;br /&gt;
عند إغلاق NetworkManager مع بقاء ملف pid (الحالة)، ستظهر رسالة {{ic|Network management disabled}}. إن حدث ذلك، احذف الملف يدويًا:&lt;br /&gt;
&lt;br /&gt;
 # rm /var/lib/NetworkManager/NetworkManager.state&lt;br /&gt;
&lt;br /&gt;
=== مشكلات مع عميل DHCP الداخلي ===&lt;br /&gt;
&lt;br /&gt;
إن واجهت مشكلات في الحصول على عنوان IP باستخدام عميل DHCP الداخلي، جرِّب استخدام عميل DHCP آخر، راجع [[#DHCP client]]. قد يحل هذا المشكلات في الشبكات اللاسلكية الكبيرة كـ eduroam.&lt;br /&gt;
&lt;br /&gt;
=== مشكلات DHCP مع dhclient ===&lt;br /&gt;
&lt;br /&gt;
إن واجهت مشكلات في الحصول على عنوان IP عبر DHCP، جرِّب إضافة ما يلي إلى {{ic|/etc/dhclient.conf}}:&lt;br /&gt;
&lt;br /&gt;
  interface &amp;quot;eth0&amp;quot; {&lt;br /&gt;
    send dhcp-client-identifier 01:&amp;#039;&amp;#039;aa:bb:cc:dd:ee:ff&amp;#039;&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
حيث {{ic|&amp;#039;&amp;#039;aa:bb:cc:dd:ee:ff&amp;#039;&amp;#039;}} هو عنوان MAC لهذه البطاقة الشبكية. يمكن إيجاد عنوان MAC باستخدام الأمر {{ic|ip link show &amp;#039;&amp;#039;interface&amp;#039;&amp;#039;}} من حزمة {{Pkg|iproute2}}.&lt;br /&gt;
&lt;br /&gt;
=== عدم اكتشاف مودم 3G ===&lt;br /&gt;
&lt;br /&gt;
راجع [[Mobile broadband modem#NetworkManager]].&lt;br /&gt;
&lt;br /&gt;
=== إيقاف تشغيل Wi-Fi على الحواسيب المحمولة ===&lt;br /&gt;
&lt;br /&gt;
في بعض الأحيان لن يعمل NetworkManager عند تعطيل بطاقة Wi-Fi بمفتاح على الحاسوب المحمول ثم محاولة إعادة تفعيلها. غالبًا ما تكون المشكلة مع &amp;#039;&amp;#039;rfkill&amp;#039;&amp;#039;. للتحقق مما إذا كان المشغّل يُخبر &amp;#039;&amp;#039;rfkill&amp;#039;&amp;#039; بحالة البطاقة اللاسلكية، استخدم:&lt;br /&gt;
&lt;br /&gt;
 $ watch -n1 rfkill list all&lt;br /&gt;
&lt;br /&gt;
إن ظل أحد المعرّفات محجوبًا بعد تشغيل البطاقة، يمكنك محاولة رفع الحجب يدويًا (حيث X هو رقم المعرّف من المخرج أعلاه):&lt;br /&gt;
&lt;br /&gt;
 # rfkill event unblock X&lt;br /&gt;
&lt;br /&gt;
=== إعادات عنوان IP الثابت إلى DHCP ===&lt;br /&gt;
&lt;br /&gt;
{{Out of date|This section is [[Special:Diff/119236|added in 2010]] and describes an ancient version of &amp;#039;&amp;#039;nm-applet&amp;#039;&amp;#039;. Is this still relevant in 2024?}}&lt;br /&gt;
&lt;br /&gt;
بسبب خطأ غير محلول، عند تغيير الاتصالات الافتراضية إلى عنوان IP ثابت، قد لا يحفظ {{ic|nm-applet}} التغيير بشكل صحيح ويعود إلى DHCP التلقائي.&lt;br /&gt;
&lt;br /&gt;
للتحايل على هذه المشكلة، عدِّل الاتصال الافتراضي (مثل &amp;quot;Auto eth0&amp;quot;) في {{ic|nm-applet}}، وغيِّر اسم الاتصال (مثل &amp;quot;my eth0&amp;quot;)، وأزل علامة الاختيار عن &amp;quot;متاح لجميع المستخدمين&amp;quot;، وغيِّر إعدادات عنوان IP الثابت كما تريد، ثم انقر &amp;#039;&amp;#039;&amp;#039;تطبيق&amp;#039;&amp;#039;&amp;#039;. سيحفظ هذا اتصالًا جديدًا بالاسم المُعطى.&lt;br /&gt;
&lt;br /&gt;
بعد ذلك، تأكد من عدم الاتصال التلقائي للاتصال الافتراضي. لفعل ذلك، شغِّل {{ic|nm-connection-editor}} (&amp;#039;&amp;#039;&amp;#039;ليس&amp;#039;&amp;#039;&amp;#039; كجذر). في محرر الاتصالات، عدِّل الاتصال الافتراضي (مثل &amp;quot;Auto eth0&amp;quot;) وأزل علامة الاختيار عن &amp;quot;الاتصال تلقائيًا&amp;quot;. انقر &amp;#039;&amp;#039;&amp;#039;تطبيق&amp;#039;&amp;#039;&amp;#039; وأغلق المحرر.&lt;br /&gt;
&lt;br /&gt;
=== تعذّر تعديل الاتصالات كمستخدم عادي ===&lt;br /&gt;
&lt;br /&gt;
راجع [[#Set up PolicyKit permissions]].&lt;br /&gt;
&lt;br /&gt;
=== نسيان شبكة Wi-Fi مخفية ===&lt;br /&gt;
&lt;br /&gt;
نظرًا لعدم ظهور الشبكات المخفية في قائمة الاختيار في عرض اللاسلكي، لا يمكن نسيانها (إزالتها) عبر الواجهة الرسومية. يمكن حذفها بالأمر التالي:&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/NetworkManager/system-connections/&amp;#039;&amp;#039;SSID&amp;#039;&amp;#039;.nmconnection&lt;br /&gt;
&lt;br /&gt;
يعمل هذا لأي اتصال آخر أيضًا.&lt;br /&gt;
&lt;br /&gt;
=== VPN لا يعمل في GNOME ===&lt;br /&gt;
&lt;br /&gt;
عند إعداد اتصالات OpenConnect أو vpnc في NetworkManager أثناء استخدام GNOME، قد لا يظهر مربع الحوار أحيانًا ويظهر الخطأ التالي في {{ic|/var/log/errors.log}}:&lt;br /&gt;
&lt;br /&gt;
 localhost NetworkManager[399]: &amp;lt;error&amp;gt; [1361719690.10506] [nm-vpn-connection.c:1405] get_secrets_cb(): Failed to request VPN secrets #3: (6) No agents were available for this request.&lt;br /&gt;
&lt;br /&gt;
يحدث هذا لأن أبلت NetworkManager لـ GNOME يتوقع وجود سكريبتات الحوار في {{ic|/usr/lib/gnome-shell}}، بينما تضعها حزم NetworkManager في {{ic|/usr/lib/networkmanager}}.&lt;br /&gt;
كحل مؤقت، أنشئ الروابط الرمزية التالية:&lt;br /&gt;
&lt;br /&gt;
* لـ OpenConnect: {{ic|ln -s /usr/lib/nm-openconnect-auth-dialog /usr/lib/gnome-shell/}}&lt;br /&gt;
* لـ VPNC (أي Cisco VPN): {{ic|ln -s /usr/lib/nm-vpnc-auth-dialog /usr/lib/gnome-shell/}}&lt;br /&gt;
&lt;br /&gt;
=== تعذّر الاتصال بشبكات لاسلكية أوروبية مرئية ===&lt;br /&gt;
&lt;br /&gt;
تأتي شرائح WLAN بـ [[Wireless network configuration#Respecting the regulatory domain|نطاق تنظيمي]] افتراضي. إن كانت نقطة الوصول لا تعمل ضمن هذه الحدود، لن تتمكن من الاتصال بالشبكة. الحل بسيط:&lt;br /&gt;
&lt;br /&gt;
# [[Install|ثبِّت]] {{Pkg|wireless-regdb}}.&lt;br /&gt;
# أزل التعليق عن رمز البلد الصحيح في {{ic|/etc/conf.d/wireless-regdom}}.&lt;br /&gt;
# أعد تشغيل النظام لأن الإعداد لا يُقرأ إلا عند الإقلاع.&lt;br /&gt;
&lt;br /&gt;
=== الاتصال التلقائي بـ VPN عند الإقلاع لا يعمل ===&lt;br /&gt;
&lt;br /&gt;
تحدث المشكلة عندما يحاول النظام (أي NetworkManager كمستخدم جذر) إنشاء اتصال VPN، لكن كلمة المرور غير متاحة لأنها مخزّنة في GNOME Keyring الخاص بمستخدم معين.&lt;br /&gt;
&lt;br /&gt;
الحل هو الاحتفاظ بكلمة مرور VPN بنص عادي كما هو موضح في الخطوة (2.) من [[#Use dispatcher to connect to a VPN after a network connection is established]].&lt;br /&gt;
&lt;br /&gt;
=== اختناق systemd ===&lt;br /&gt;
&lt;br /&gt;
بمرور الوقت يمكن أن تكبر ملفات السجل ({{ic|/var/log/journal}}) كثيرًا، مما قد يُأثر تأثيرًا كبيرًا على أداء الإقلاع عند استخدام NetworkManager. راجع: [[systemd#Boot time increasing over time]].&lt;br /&gt;
&lt;br /&gt;
=== انقطاعات شبكة منتظمة وتأخر وفقدان حزم (Wi-Fi) ===&lt;br /&gt;
&lt;br /&gt;
يُجري NetworkManager فحصًا كل دقيقتين.&lt;br /&gt;
&lt;br /&gt;
بعض مشغّلات Wi-Fi تواجه مشكلات عند فحص نقاط الاتصال أثناء الاتصال. تتضمن الأعراض انقطاع VPN وإعادة اتصاله، وفقدان الحزم، وفشل تحميل صفحات الويب ثم نجاحها عند التحديث.&lt;br /&gt;
&lt;br /&gt;
سيُشير تشغيل {{ic|journalctl -f}} كجذر إلى حدوث ذلك، وستظهر رسائل كالتالية في السجلات بفترات منتظمة:&lt;br /&gt;
&lt;br /&gt;
 NetworkManager[410]: &amp;lt;info&amp;gt;  (wlp3s0): roamed from BSSID 00:14:48:11:20:CF (my-wifi-name) to (none) ((none))&lt;br /&gt;
&lt;br /&gt;
إن لم يكن التجوال مهمًا، يمكن تعطيل سلوك الفحص الدوري بقفل BSSID لنقطة الوصول في ملف تعريف اتصال Wi-Fi.&lt;br /&gt;
&lt;br /&gt;
=== تعذّر تشغيل Wi-Fi على حواسيب Lenovo المحمولة (IdeaPad، Legion، إلخ) ===&lt;br /&gt;
&lt;br /&gt;
ثمة مشكلة في وحدة {{ic|ideapad_laptop}} على بعض طرازات Lenovo بسبب إبلاغ مشغّل Wi-Fi خطأً عن حجب ناعم. لا تزال البطاقة قابلة للتحكم بـ {{ic|netctl}}، لكن مديري الشبكات كـ NetworkManager يتعطلون. يمكن التحقق من المشكلة بفحص مخرج {{ic|rfkill list}} بعد تبديل المفتاح الصلب ورؤية استمرار الحجب الناعم.&lt;br /&gt;
&lt;br /&gt;
[[modprobe|تفريغ]] وحدة {{ic|ideapad_laptop}} يجب أن يحل المشكلة. (&amp;#039;&amp;#039;&amp;#039;تحذير&amp;#039;&amp;#039;&amp;#039;: قد يُعطِّل هذا لوحة المفاتيح ولوحة اللمس على الحاسوب المحمول!).&lt;br /&gt;
&lt;br /&gt;
=== اختفاء nm-applet في i3wm ===&lt;br /&gt;
&lt;br /&gt;
إن كنت تستخدم {{ic|xfce4-notifyd.service}} للإشعارات، يجب [[edit|تعديل]] الوحدة وإضافة ما يلي:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/user/xfce4-notifyd.service.d/display_env.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
Environment=&amp;quot;DISPLAY=:0.0&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
بعد إعادة تحميل الخدمات، [[restart|أعد تشغيل]] {{ic|xfce4-notifyd.service}}. اخرج من i3 وأعد تشغيله وسيظهر الأبلت في الصينية.&lt;br /&gt;
&lt;br /&gt;
=== الوحدة dbus-org.freedesktop.resolve1.service غير موجودة ===&lt;br /&gt;
&lt;br /&gt;
إن لم يكن {{ic|systemd-resolved.service}} مُشغَّلًا، سيحاول NetworkManager تشغيله عبر D-Bus ويفشل:&lt;br /&gt;
&lt;br /&gt;
 dbus-daemon[991]: [system] Activating via systemd: service name=&amp;#039;org.freedesktop.resolve1&amp;#039; unit=&amp;#039;dbus-org.freedesktop.resolve1.service&amp;#039; requested by &amp;#039;:1.23&amp;#039; (uid=0 pid=1012 comm=&amp;quot;/usr/bin/NetworkManager --no-daemon &amp;quot;)&lt;br /&gt;
 dbus-daemon[991]: [system] Activation via systemd failed for unit &amp;#039;dbus-org.freedesktop.resolve1.service&amp;#039;: Unit dbus-org.freedesktop.resolve1.service not found.&lt;br /&gt;
&lt;br /&gt;
يحدث هذا لأن NetworkManager سيحاول إرسال معلومات DNS إلى [[systemd-resolved]] بغض النظر عن إعداد {{ic|1=main.dns=}} في {{man|5|NetworkManager.conf}}.&lt;br /&gt;
&lt;br /&gt;
يمكن تعطيل ذلك بملف إعداد في {{ic|/etc/NetworkManager/conf.d/}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/no-systemd-resolved.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
systemd-resolved=false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
راجع {{Bug|62138}}.&lt;br /&gt;
&lt;br /&gt;
=== الأسرار مطلوبة لكن لم تُوفَّر ===&lt;br /&gt;
&lt;br /&gt;
إن تلقيت الخطأ التالي عند محاولة الاتصال بشبكة:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ nmcli device wifi connect &amp;#039;&amp;#039;SSID&amp;#039;&amp;#039; password &amp;#039;&amp;#039;password&amp;#039;&amp;#039;|&lt;br /&gt;
Error: Connection activation failed: (7) Secrets were required, but not provided&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
قد يكون لهذا الخطأ أسباب عديدة، وينبغي قراءة [[journal|السجل]] (مع فلترته بـ {{ic|-u NetworkManager}}). على سبيل المثال، إن استغرق NetworkManager وقتًا طويلًا لتأسيس الاتصال، سيعتبر أن كلمة المرور خاطئة. يمكنك محاولة حذف ملف تعريف الاتصال وإنشاء جديد:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection delete &amp;#039;&amp;#039;SSID&amp;#039;&amp;#039;&lt;br /&gt;
 $ nmcli device wifi connect &amp;#039;&amp;#039;SSID&amp;#039;&amp;#039; password &amp;#039;&amp;#039;password&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
يمكنك أيضًا تجربة تعطيل عشوائية عنوان MAC:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/wifi_rand_mac.conf|2=&lt;br /&gt;
[device]&lt;br /&gt;
wifi.scan-rand-mac-address=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== اتصال WPA Enterprise مع iwd ===&lt;br /&gt;
&lt;br /&gt;
إن حاولت الاتصال بشبكة WPA Enterprise كـ &amp;#039;eduroam&amp;#039; مع NetworkManager باستخدام [[#Using iwd as the Wi-Fi backend|خلفية iwd]]، ستحصل على الخطأ التالي:&lt;br /&gt;
&lt;br /&gt;
  Connection &amp;#039;eduroam&amp;#039; is not avialable on device wlan0 because profile is not compatible with device (802.1x connections must have IWD provisioning files)&lt;br /&gt;
&lt;br /&gt;
يحدث هذا لأن NetworkManager لا يمكنه إعداد شبكة WPA Enterprise. لذا يجب إعدادها باستخدام ملف إعداد iwd {{ic|/var/lib/iwd/&amp;#039;&amp;#039;essid&amp;#039;&amp;#039;.8021x}} كما هو موضح في [[iwd#WPA Enterprise]].&lt;br /&gt;
&lt;br /&gt;
=== فشل طلب أسرار VPN ===&lt;br /&gt;
&lt;br /&gt;
إن حصلت على هذا الخطأ:&lt;br /&gt;
 Failed to request VPN secrets #1: No agents were available for this request.&lt;br /&gt;
&lt;br /&gt;
إما أن كلمة المرور فارغة أو يجب [[#Set up PolicyKit permissions|إعداد صلاحيات PolicyKit]].&lt;br /&gt;
&lt;br /&gt;
=== فشل اتصالات OpenVPN مع تحذير &amp;quot;secrets: failed to request VPN secrets&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
{{Remove|This does not warrant a troubleshooting section. Optional dependencies are pointed out by pacman, if this is not clear enough it should be covered in [[#VPN support]].|section=Remove unnecessary section 8.22}}&lt;br /&gt;
&lt;br /&gt;
تتطلب حزمة {{Pkg|networkmanager-openvpn}} وجود {{Pkg|libnma-gtk4}} واختياريًا {{Pkg|libnma}} (Gtk3) عند التكامل مع GNOME-Shell. إن كان {{Pkg|libnma}} مطلوبًا وغير مثبَّت، ستُطبَع رسالة في سجل النظام:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
NetworkManager[642]: &amp;lt;warn&amp;gt;  [...] vpn[...&amp;quot;name_of_vpn_profile VPN&amp;quot;]: secrets: failed to request VPN secrets #3: No agents were available for this request.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== فشل اتصالات OpenVPN مع خطأ OpenSSL &amp;quot;ca md too weak&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
منذ تحديث {{Pkg|openssl}} إلى الإصدار 3، تُرفض الشهادات المولّدة بخوارزميات تشفير قديمة افتراضيًا. قد يؤدي استخدام {{Pkg|networkmanager-openvpn}} مع إعداد كهذا إلى الخطأ التالي في السجلات:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
nm-openvpn[14359]: OpenSSL: error:0A00018E:SSL routines::ca md too weak&lt;br /&gt;
nm-openvpn[14359]: Cannot load certificate file /home/archie/.local/share/networkmanagement/certificates/my_issued_cert.crt&lt;br /&gt;
nm-openvpn[14359]: Exiting due to fatal error&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
النهج الصحيح هو مطالبة مدير خادم OpenVPN بإصدار شهادات أكثر أمانًا. كحل مؤقت، يتطلب OpenVPN {{ic|1=tls-cipher &amp;quot;DEFAULT:@SECLEVEL=0&amp;quot;}}. قد يتعذر ذلك عبر واجهة المكوّن الرسومية، لكنه ممكن مع &amp;#039;&amp;#039;nmcli&amp;#039;&amp;#039;. كما ستحتاج إلى تفعيل موفّر &amp;#039;&amp;#039;legacy&amp;#039;&amp;#039; في OpenSSL.&lt;br /&gt;
&lt;br /&gt;
أولًا، احصل على اسم اتصال VPN المعني من مخرج:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection show&lt;br /&gt;
&lt;br /&gt;
بافتراض أن اسم الاتصال هو &amp;#039;&amp;#039;vpn.example.com&amp;#039;&amp;#039;، استخدم &amp;#039;&amp;#039;nmcli&amp;#039;&amp;#039; كما يلي:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection modify vpn.example.com +vpn.data tls-cipher=DEFAULT:@SECLEVEL=0&lt;br /&gt;
&lt;br /&gt;
بعد ذلك، عدِّل {{ic|/etc/ssl/openssl.cnf}} كما هو موضح في [https://wiki.openssl.org/index.php/OpenSSL_3.0#Providers ويكي OpenSSL].&lt;br /&gt;
&lt;br /&gt;
أضف {{ic|1=legacy = legacy_sect}} في نهاية قسم {{ic|[provider_sect]}}. أزل التعليق عن {{ic|1=activate = 1}} في {{ic|[default_sect]}}. أخيرًا، أضف قسمًا جديدًا {{ic|[legacy_sect]}} يحتوي أيضًا على {{ic|1=activate = 1}}. النتيجة النهائية ستبدو كما يلي:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssl/openssl.cnf|2=&lt;br /&gt;
openssl_conf = openssl_init&lt;br /&gt;
&lt;br /&gt;
[openssl_init]&lt;br /&gt;
providers = provider_sect&lt;br /&gt;
&lt;br /&gt;
[provider_sect]&lt;br /&gt;
default = default_sect&lt;br /&gt;
legacy = legacy_sect&lt;br /&gt;
&lt;br /&gt;
[default_sect]&lt;br /&gt;
activate = 1&lt;br /&gt;
&lt;br /&gt;
[legacy_sect]&lt;br /&gt;
activate = 1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
أخيرًا، [[restart|أعد تشغيل]] {{ic|NetworkManager.service}} لتفعيل إعداد OpenSSL الجديد.&lt;br /&gt;
&lt;br /&gt;
=== فشل مصادقة اتصالات WPA Enterprise مع خطأ OpenSSL &amp;quot;unsupported protocol&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
منذ تحديث {{Pkg|openssl}} إلى الإصدار 3، &amp;quot;تعمل SSL 3 وTLS 1.0 وTLS 1.1 وDTLS 1.0 فقط على مستوى الأمان 0&amp;quot; [https://www.openssl.org/news/openssl-3.0-notes.html افتراضيًا]. قد يؤدي محاولة المصادقة على شبكة Wi-Fi تدعم فقط معايير أقدم إلى الخطأ التالي في السجلات:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
wpa_supplicant[3320]: SSL: SSL3 alert: write (local SSL3 detected an error):fatal:protocol version&lt;br /&gt;
wpa_supplicant[3320]: OpenSSL: openssl_handshake - SSL_connect error:0A000102:SSL routines::unsupported protocol&lt;br /&gt;
wpa_supplicant[3320]: wlp3s0: CTRL-EVENT-EAP-FAILURE EAP authentication failed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
النهج الصحيح هو إقناع مدير المؤسسة بترقية بروتوكول النفق المشفر إلى TLS 1.3. كحل مؤقت، يمكن ضبط المستوى المستخدم من wpa_supplicant مباشرة كما هو موضح في [https://bbs.archlinux.org/viewtopic.php?id=286417#p2104492 BBS#286417]. لتغيير الاتصال المتأثر فقط، يمكن تعيين {{ic|1=phase1-auth-flags=32}} أو {{ic|1=phase1-auth-flags=64}} في قسم {{ic|1=[802-1x]}} من ملف إعداد الاتصال.&lt;br /&gt;
&lt;br /&gt;
احصل أولًا على اسم اتصال Wi-Fi المعني:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection show&lt;br /&gt;
&lt;br /&gt;
بافتراض أن الاتصال يستخدم TLS 1.0 واسمه &amp;#039;&amp;#039;Example Wi-Fi&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection modify &amp;#039;Example Wi-Fi&amp;#039; 802-1x.phase1-auth-flags 32&lt;br /&gt;
&lt;br /&gt;
ولاتصال TLS 1.1، اكتب &amp;quot;64&amp;quot; بدلًا من ذلك:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection modify &amp;#039;Example Wi-Fi&amp;#039; 802-1x.phase1-auth-flags 64&lt;br /&gt;
&lt;br /&gt;
{{Note|1=الرقم الذي تكتبه يُشير إلى نتيجة رفع 2 للأس &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;، حيث &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; هو فهرس بت مصادقة الشبكة المقروء من اليمين إلى اليسار. تشغيل البت الخامس يُفعِّل TLS 1.0 [log(2) 32] والبت السادس يُفعِّل TLS 1.1 [log(2) 64].}}&lt;br /&gt;
&lt;br /&gt;
أخيرًا، [[restart|أعد تشغيل]] {{ic|NetworkManager.service}} لتفعيل الإعداد الجديد.&lt;br /&gt;
&lt;br /&gt;
== انظر أيضًا ==&lt;br /&gt;
&lt;br /&gt;
* [https://blogs.gnome.org/dcbw/2015/02/16/networkmanager-for-administrators-part-1/ NetworkManager للمسؤولين - الجزء الأول]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ibnbattuta</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Lua_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>Lua (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Lua_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-04-20T11:06:09Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: add russian translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming languages (Русский)]]&lt;br /&gt;
[[de:Lua]]&lt;br /&gt;
[[en:Lua]]&lt;br /&gt;
[[ja:Lua]]&lt;br /&gt;
[[zh-hans:Lua]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Programming languages (Русский)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|Lua|25 марта 2026|869895}}&lt;br /&gt;
&lt;br /&gt;
Основываясь на [https://www.lua.org/about.html lua.org]:&lt;br /&gt;
:[[Wikipedia:Lua|Lua]] это мощный, эффективный, легковесный, встраиваемыфй скриптовой язык.&lt;br /&gt;
&lt;br /&gt;
Это делает Lua идеальным для конфигураций и расширений других програм, так же из-за отличной работы с [[C (Русский)]]. &lt;br /&gt;
&lt;br /&gt;
Базовый Lua интерпретатор весит меньше 250K. Так как оффициальная имплементация написана на [[Wikipedia:ANSI C|ANSI C]] она доступна для большинства платформ и архитектур.&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
Доступно несколько версий:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|lua}} — Lua 5.5&lt;br /&gt;
* {{Pkg|lua54}} — Lua 5.4&lt;br /&gt;
* {{Pkg|lua53}} — Lua 5.3&lt;br /&gt;
* {{Pkg|lua52}} — Lua 5.2&lt;br /&gt;
* {{Pkg|lua51}} — Lua 5.1&lt;br /&gt;
&lt;br /&gt;
== Поддержка JIT компиляции ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Just-in-time compilation|Just-in-time компиляция]] это метод компиляции исходного кода во время выполнения, вместо прекомпиляции. [https://luajit.org/ LuaJIT] является заменой для Lua 5.1. Эта версия лучше всего подходит для высокопроизводительных ограничений.&lt;br /&gt;
&lt;br /&gt;
Для поддержки JIT компиляции [[установите]] пакет {{Pkg|luajit}}.&lt;br /&gt;
&lt;br /&gt;
== Модули ==&lt;br /&gt;
&lt;br /&gt;
Пакетный менеджер [https://luarocks.org/ LuaRocks] доступен как {{Pkg|luarocks}}.&lt;br /&gt;
&lt;br /&gt;
Некоторые модули также доступны в [https://archlinux.org/packages/?&amp;amp;q=lua- оффициальных репозиториях].&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.lua.org/manual/ Lua образцовые мануалы].&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Ada_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>Ada (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Ada_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-04-20T10:39:45Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: add translation status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming languages (Русский)]]&lt;br /&gt;
[[ja:Ada]]&lt;br /&gt;
[[en:Ada]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Programming languages (Русский)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|Ada|9 марта 2026|868479}}&lt;br /&gt;
&lt;br /&gt;
[https://www.adaic.org/ Ada] — это универсальный скомпилированный язык программирования. В ней используются сильные статические типизации, пакеты, исключения, обобщённые варианты, задачи, объектно-ориентированность и контракты.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
[[Установите]] пакет {{Pkg|gcc-ada}}. Это установит компилятор GNAT, который является Ada фронтендом для [[GNU Compiler Collection]] (GCC).&lt;br /&gt;
&lt;br /&gt;
Дополнительные пакеты:&lt;br /&gt;
* {{AUR|all-ada}}             - Мета-пакет, устанавливающий все инструменты и компоненты Ada.&lt;br /&gt;
* {{AUR|adacurses}}           - Связка Ada с библиотекой C &amp;#039;ncurses&amp;#039;.&lt;br /&gt;
* {{AUR|adaogg}}              - Полный интерфейсный слой, подключающий библиотеки Ogg, Vorbis и Theora к языку программирования Ada 2012.&lt;br /&gt;
* {{AUR|ada_language_server}} - Высокопроизводительный синтаксический и семантический движок для языка программирования Ada.&lt;br /&gt;
* {{AUR|ada-libfswatch}}      - Связка Ada с библиотекой libfswatch из проекта fswatch.&lt;br /&gt;
* {{AUR|adasat}}              - Реализация SAT-решателя на основе DPLL на языке Ada.&lt;br /&gt;
* {{AUR|adasockets}}          - Сокеты BSD в Ada.&lt;br /&gt;
* {{AUR|ada_spawn}}           - Простой API на Ada для запуска процессов и взаимодействия с ними.&lt;br /&gt;
* {{AUR|ada-web-server}}      - Ada Web Server&lt;br /&gt;
* {{AUR|ahven}}               - Простой фреймворк для модульного тестирования языка программирования Ada.&lt;br /&gt;
* {{AUR|alire}}               - Каталог готовых к использованию библиотек Ada и консольный менеджер пакетов (alr) для их использования.&lt;br /&gt;
* {{AUR|aunit}}               - Фреймворк для модульного тестирования Ada&lt;br /&gt;
* {{AUR|florist}}             - Открытая реализация стандарта IEEE 1003.5b-1996, связки POSIX для Ada.&lt;br /&gt;
* {{AUR|gcc-ada-debug}}       - Фронтенд Ada для GCC (GNAT) с невырезанной средой выполнения для эффективной отладки в gdb.&lt;br /&gt;
* GNATColl - Коллекция компонентов GNAT&lt;br /&gt;
** {{AUR|gnatcoll-core}} или {{AUR|gnatcoll-core-git}}&lt;br /&gt;
** {{AUR|gnatcoll-db2ada}}&lt;br /&gt;
** {{AUR|gnatcoll-gmp}} или {{AUR|gnatcoll-gmp-git}}&lt;br /&gt;
** {{AUR|gnatcoll-iconv}} или {{AUR|gnatcoll-iconv-git}}&lt;br /&gt;
** {{AUR|gnatcoll-gnatinspect}}&lt;br /&gt;
** {{AUR|gnatcoll-lzma}}&lt;br /&gt;
** {{AUR|gnatcoll-omp}}&lt;br /&gt;
** {{AUR|gnatcoll-postgres}}&lt;br /&gt;
** {{AUR|gnatcoll-python}}&lt;br /&gt;
** {{AUR|gnatcoll-readline}}&lt;br /&gt;
** {{AUR|gnatcoll-sql}}&lt;br /&gt;
** {{AUR|gnatcoll-sqlite}}&lt;br /&gt;
** {{AUR|gnatcoll-syslog}}&lt;br /&gt;
** {{AUR|gnatcoll-xref}}&lt;br /&gt;
** {{AUR|gnatcoll-zlib}}&lt;br /&gt;
* {{AUR|gnatcoverage-bin}}             - Инструмент для анализа и отчета о покрытии кода программ на Ada и C.&lt;br /&gt;
* {{AUR|gnatdoc}}                      - Инструмент генерации документации GNAT.&lt;br /&gt;
* {{AUR|gnatstudio}}                   - GnatStudio для Ada.&lt;br /&gt;
* {{AUR|gnatstudio-bin}}               - Двоичный файл GnatStudio для Ada.&lt;br /&gt;
* {{AUR|gnatsymbolize}}                - Преобразует адреса в соответствующие имя файла, номер строки и имена функций для программ на Ada.&lt;br /&gt;
* {{AUR|gprbuild}} или {{AUR|gprbuild-git}} - Система сборки GPRbuild.&lt;br /&gt;
* {{AUR|gprbuild-toolbox}}             - Набор инструментов для метасборки мультиязычных систем.&lt;br /&gt;
* {{AUR|gpr}}                          - Парсер файлов проектов GPR (Ada).&lt;br /&gt;
* {{AUR|gpr-unit-provider}}            - Поставщик модулей для Libadalang на основе библиотеки анализа проектов GPR.&lt;br /&gt;
* {{AUR|gtkada}}                       - Связки Ada для библиотеки Gtk+.&lt;br /&gt;
* {{AUR|ini_file_manager}}             - Пакет для чтения и управления конфигурационными файлами INI на Ada.&lt;br /&gt;
* {{AUR|inotify-ada}}                  - Библиотека Ada 2012 для отслеживания событий файловой системы с использованием API Linux inotify.&lt;br /&gt;
* {{AUR|kazakov_simple_components}}    - Набор низкоуровневых компонентов Ada от Дмитрия Казакова.&lt;br /&gt;
* {{AUR|langkit}}                      - Компилятор для библиотек синтаксического и семантического анализа языков.&lt;br /&gt;
* {{AUR|libadalang}}                   - Высокопроизводительный семантический движок для языка программирования Ada.&lt;br /&gt;
* {{AUR|libadalang-tools}}             - Инструменты на основе Libadalang для Ada: gnatpp, gnatmetric и gnatstub.&lt;br /&gt;
* {{AUR|libgpr}}                       - Библиотека Ada для работы с файлами проектов Gnat.&lt;br /&gt;
* {{AUR|libvss}}                       - Библиотека для обработки строк и текста высокого уровня для Ada.&lt;br /&gt;
* {{AUR|markdown}}                     - Парсер Markdown для Ada.&lt;br /&gt;
* {{AUR|polyorb}}                      - Предоставляет приложение «Распределенные системы» (DSA) для создания распределенных приложений на Ada.&lt;br /&gt;
* {{AUR|sdlada}}                       - Связка Ada с библиотекой Simple DirectMedia Layer (SDL).&lt;br /&gt;
* {{AUR|spark2014}}                    - Формально определенный язык программирования на основе Ada (версия GNAT FSF).&lt;br /&gt;
* {{AUR|templates_parser}}             - Инструменты Ada для создания шаблонизированных текстовых потоков, например динамических HTML-документов.&lt;br /&gt;
* {{AUR|vulkada}}                      - Полная связка Vulkan 1.3 для языка программирования Ada 2012.&lt;br /&gt;
* {{AUR|xmlada}} или {{AUR|xmlada-git}} - XML/Ada&lt;br /&gt;
&lt;br /&gt;
Подписанные, предвительно собранные пакеты доступны в неоффициальном [[Unofficial user repositories#ada|Ada репозитории]].&lt;br /&gt;
&lt;br /&gt;
=== Проверка установки ===&lt;br /&gt;
&lt;br /&gt;
Проверьте что GNAT установлен корректно собрав простую программу, как например:&lt;br /&gt;
{{hc|hello.adb|&lt;br /&gt;
with Ada.Text_IO;&lt;br /&gt;
&lt;br /&gt;
procedure Hello is&lt;br /&gt;
begin&lt;br /&gt;
   Ada.Text_IO.Put_Line (&amp;quot;Hello, Arch!&amp;quot;);&lt;br /&gt;
end Hello;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Вы можете скомпилировать её с {{ic|gnatmake}}:&lt;br /&gt;
{{hc|$ gnatmake hello|&lt;br /&gt;
gcc -c hello.adb&lt;br /&gt;
gnatbind -x hello.ali&lt;br /&gt;
gnatlink hello.ali&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Затем выполните:&lt;br /&gt;
{{hc|$ ./hello|&lt;br /&gt;
Hello, Arch!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
=== Язык ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.ada-auth.org/standards/rationale12.html Rationale для Ada 2012]&lt;br /&gt;
* [http://www.ada-auth.org/standards/ada12_w_tc1.html Ada 2012 Образцовый мануал языка]&lt;br /&gt;
* [[Wikibooks:Ada Programming]]&lt;br /&gt;
* [https://learn.adacore.com/ Интерактивная обучающая платформа Learn.adacore.com]&lt;br /&gt;
* [[Wikipedia:SPARK (programming language)]]&lt;br /&gt;
&lt;br /&gt;
=== Инструменты ===&lt;br /&gt;
&lt;br /&gt;
* [https://gcc.gnu.org/onlinedocs/gnat_ugn/ Пользовательский мануал GNAT для Нативных Платформ]&lt;br /&gt;
* [https://gcc.gnu.org/onlinedocs/gnat_rm/ GNAT Образцовый мануал]&lt;br /&gt;
* [https://docs.adacore.com/live/wave/gprbuild/html/gprbuild_ug/gprbuild_ug.html GPRbuild и GPR Мануал по инструментам-помощникам]&lt;br /&gt;
&lt;br /&gt;
=== Документация ===&lt;br /&gt;
&lt;br /&gt;
* [https://docs.adacore.com/live/wave/xmlada/html/xmlada_ug/index.html XML/Ada: The Unicode and XML Library for Ada]&lt;br /&gt;
* [https://docs.adacore.com/live/wave/aws/html/aws_ug/index.html AWS: The Ada Web Server]&lt;br /&gt;
* [https://docs.adacore.com/live/wave/aunit/html/aunit_cb/aunit_cb.html AUnit Cookbook]&lt;br /&gt;
* [https://docs.adacore.com/live/wave/gnatcoll/html/gnatcoll_ug/index.html GNAT Reusable Components]&lt;br /&gt;
* [https://docs.adacore.com/gtkada-docs/gtkada_ug/_build/html/index.html GtkAda User’s Guide]&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Erlang_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>Erlang (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Erlang_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-04-20T10:05:46Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: add russian translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming languages (Русский)]]&lt;br /&gt;
[[es:Erlang]]&lt;br /&gt;
[[en:Erlang]]&lt;br /&gt;
[[ja:Erlang]]&lt;br /&gt;
[[zh-hans:Erlang]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Elixir (Русский)}}&lt;br /&gt;
{{Related|Programming languages (Русский)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|Erlang|9 марта 2026|868488}}&lt;br /&gt;
&lt;br /&gt;
[https://www.erlang.org/ Erlang] это язык программирования с специфическими качествами неизменяемых данных и распределённых вычислений.&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
[[Установите]] пакет {{Pkg|erlang}}.&lt;br /&gt;
&lt;br /&gt;
== Использование ==&lt;br /&gt;
&lt;br /&gt;
Для большей документации вы можете прочесть [https://erlang.org/doc/getting_started/intro.html документацию Erlang].&lt;br /&gt;
&lt;br /&gt;
Чтобы активировать консоль, выполните:&lt;br /&gt;
&lt;br /&gt;
 $ erl&lt;br /&gt;
&lt;br /&gt;
Комманды могут быть введены так:&lt;br /&gt;
&lt;br /&gt;
 Erlang/OTP 22 [erts-10.7.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]&lt;br /&gt;
 Eshell V10.7.2  (abort with ^G)&lt;br /&gt;
 1&amp;gt; 1 + 2 .&lt;br /&gt;
 3&lt;br /&gt;
 2&amp;gt; (2 + 3) * 4 / 5 .&lt;br /&gt;
 4.0&lt;br /&gt;
 3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Советы и рекомендации ==&lt;br /&gt;
&lt;br /&gt;
=== Режим Emacs ===&lt;br /&gt;
&lt;br /&gt;
Чтобы настроить встроенный режим [[Emacs]], {{ic|erlang-mode}}, следуйте [https://erlang.org/doc/apps/tools/erlang_mode_chapter.html#setup-on-unix документации]  (путь OTP {{ic|/usr/lib/erlang}}).&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:Gleam (programming_language)|Gleam]]&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Elixir_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>Elixir (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Elixir_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-04-20T10:05:42Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: fix date in translation status (sorry)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming languages (Русский)]]&lt;br /&gt;
[[es:Elixir]]&lt;br /&gt;
[[ja:Elixir]]&lt;br /&gt;
[[en:Elixir]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Programming languages (Русский)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|Elixir|13 апреля 2026|871156}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Elixir (programming language)|Elixir]] это динамический функциональный язык, предназначенный для создания масштабируемых и поддерживаемых приложений. Он использует виртуальную машину [[Erlang (Русский)]] ([[Wikipedia:BEAM (Erlang virtual machine)|BEAM]]), известен запуском систем с низкой задержкой, распределённым и отказоустойчивым, а также успешно использовался в веб-разработке и области встроенного программного обеспечения.&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
=== Одна версия ===&lt;br /&gt;
&lt;br /&gt;
[[Установите]] пакет {{Pkg|elixir}}. Он включает [[Erlang_(Русский)]], который необходим для запуска Elixir. Пакетный менеджер [https://hexdocs.pm/mix/Mix.html Mix] поставляется предустановленным с Elixir.&lt;br /&gt;
&lt;br /&gt;
=== Несколько версий ===&lt;br /&gt;
&lt;br /&gt;
Если вы хотите запускать несколько версий Elixir и/или Erlang, эти инструменты помогут установить и управлять несколькими версиями Elixir/Erlang:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/asdf-vm/asdf asdf] — Elixir и Erlang,&lt;br /&gt;
* [https://github.com/mururu/exenv exenv] — только Elixir,&lt;br /&gt;
* [https://github.com/kerl/kerl kerl] — только Erlang,&lt;br /&gt;
* [https://github.com/taylor/kiex kiex] — только Elixir.&lt;br /&gt;
&lt;br /&gt;
== Конфигурация ==&lt;br /&gt;
&lt;br /&gt;
Убедитесь что у вас есть исполняыемые бинарники Elixir в вашем {{ic|PATH}} [[environment variables (Русский)]] для простоты разработки.&lt;br /&gt;
&lt;br /&gt;
* Одна версия&lt;br /&gt;
:{{ic|/usr/bin}}&lt;br /&gt;
&lt;br /&gt;
* Несколько версий&lt;br /&gt;
:Пожалуйста ориентируйтесь на тот инструмент который вы использовали для установки Elixir&lt;br /&gt;
&lt;br /&gt;
В обоих случаях, вам нужно найти ваш [https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables/117470#117470 файл профиля shell], и затем добавить в конец этого файла следующую строку с путём вашей установки Elixir:&lt;br /&gt;
&lt;br /&gt;
  export PATH=&amp;quot;$PATH:/путь/до/elixir/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:Gleam (programming_language)|Gleam]]&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Zig_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>Zig (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Zig_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-04-20T09:48:22Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: minor edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming languages (Русский)]]&lt;br /&gt;
[[ja:Zig]]&lt;br /&gt;
[[en:Zig]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Language Server Protocol}}&lt;br /&gt;
{{Related|Programming languages (Русский)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|Zig|9 марта 2026|868556}}&lt;br /&gt;
&lt;br /&gt;
From [[Wikipedia:Zig (programming language)|Wikipedia]]:&lt;br /&gt;
&lt;br /&gt;
:[https://ziglang.org/ Zig] это императивный, универсальный, статически типизированный, скомпилированный системный язык программирования, разработанный Эндрю Келли. Он предназначен как замена языку программирования [[C]], с целью сделать его ещё меньше и проще для программирования, а также предлагать современные функции, новые оптимизации и различные механизмы безопасности, при этом не требовать столь требовательных к безопасности во время выполнения, как в других языках.&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
[[Установите]] {{Pkg|zig}} для стабильного релиза, или {{AUR|zig-master-bin}} для последней разрабатываемой версии.&lt;br /&gt;
&lt;br /&gt;
{{Pkg|zls}} предоставляет [https://github.com/zigtools/zls языковой сервер Zig], имплементацию [[Wikipedia:Language Server Protocol|протокола языкового сервера]].&lt;br /&gt;
&lt;br /&gt;
== Использование ==&lt;br /&gt;
&lt;br /&gt;
=== Система сборки Zig ===&lt;br /&gt;
&lt;br /&gt;
Система сборки Zig предоставляет кросс-платформенный вариант объявить логику необходимую для построения проекта без зависимостей. Смотрите [https://ziglang.org/documentation/master/#Zig-Build-System].&lt;br /&gt;
&lt;br /&gt;
=== Кросс-компиляция ===&lt;br /&gt;
&lt;br /&gt;
Смотрите [https://ziglang.org/learn/overview/#cross-compiling-is-a-first-class-use-case]. Для свежего списка поддерживаемых целей, смотрите [https://ziglang.org/download/0.11.0/release-notes.html#Support-Table].&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
* [https://ziglang.org/ Оффициальный вебсайт]&lt;br /&gt;
* [[Wikipedia:Zig (programming language)|Страница на Википедии]]&lt;br /&gt;
* [https://ziglang.org/documentation/master/ Примеры языка]&lt;br /&gt;
* [https://ziglang.org/documentation/master/std/ Документация стандартной библиотеки]&lt;br /&gt;
* [https://zigbyexample.github.io/ Примеры программ]&lt;br /&gt;
* [https://zig.guide/ Туториал]&lt;br /&gt;
* [https://exercism.org/tracks/zig Zig на платформе Exercism]&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Crystal_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>Crystal (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Crystal_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-04-20T08:17:20Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: add translation status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming languages (Русский)]]&lt;br /&gt;
[[es:Crystal]]&lt;br /&gt;
[[ja:Crystal]]&lt;br /&gt;
[[en:Crystal]]&lt;br /&gt;
[[zh-hans:Crystal]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Programming languages (Русский)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|Crystal|9 марта 2026|868484}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Crystal (programming language)|Crystal]] статически типизированный, компилированный язык программирования, синтаксис и глобальный вывод типов вдохновлён [[Ruby]].&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
[[Установите]] пакет {{Pkg|crystal}}.&lt;br /&gt;
&lt;br /&gt;
Установите пакет {{Pkg|shards}} для менеджера зависимостей &amp;#039;&amp;#039;shards&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Использование ==&lt;br /&gt;
&lt;br /&gt;
Чтобы скомпилировать и запустить Crystal программу:&lt;br /&gt;
&lt;br /&gt;
 $ crystal hello_world.cr&lt;br /&gt;
&lt;br /&gt;
Чтобы скомпилировать Crystal программу в бинарный файл:&lt;br /&gt;
&lt;br /&gt;
 $ crystal build hello_world.cr&lt;br /&gt;
&lt;br /&gt;
Чтобы скомпилировать и оптимизировать бинарный файл:&lt;br /&gt;
&lt;br /&gt;
 $ crystal build --release hello_world.cr&lt;br /&gt;
&lt;br /&gt;
Для больших опций смотрите:&lt;br /&gt;
&lt;br /&gt;
 $ crystal help&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
* [https://crystal-lang.org Оффициальный вебсайт]&lt;br /&gt;
* [https://crystal-lang.org/docs/ Оффициальная документация]&lt;br /&gt;
* [https://crystal-lang.org/api/ Пример стандартный библиотеки]&lt;br /&gt;
* [https://github.com/crystal-lang/crystal Оффициальный Github репозиторий]&lt;br /&gt;
* [https://play.crystal-lang.org/#/cr Онлайн повышение кода]&lt;br /&gt;
* [ircs://irc.libera.chat/crystal-lang #crystal-lang IRC канал]&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Sshfs-mountctl</id>
		<title>Sshfs-mountctl</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Sshfs-mountctl"/>
		<updated>2026-04-20T03:57:17Z</updated>

		<summary type="html">&lt;p&gt;Kstation-Orbit: removed duplicates and referenced accordingly, added note on ssh-agent usage and healthcheck mode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{AUR|sshfs-mountctl}} is a terminal UI for managing persistent [[SSHFS]] mounts&lt;br /&gt;
backed by [[systemd/User|systemd --user]]. Each mount runs as a user service with&lt;br /&gt;
automatic reconnection and optional health checks.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Install {{AUR|sshfs-mountctl}} from the [[AUR]], then run first-time setup:&lt;br /&gt;
&lt;br /&gt;
{{bc|$ sshfs-mountctl --init}}&lt;br /&gt;
&lt;br /&gt;
This creates the required directories, writes {{ic|~/.config/sshfs-mounts/settings.conf}},&lt;br /&gt;
and creates {{ic|/sshfs}} (the default mount root, requires sudo).&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Launch the TUI:&lt;br /&gt;
&lt;br /&gt;
{{bc|$ sshfs-mountctl}}&lt;br /&gt;
&lt;br /&gt;
=== CLI flags ===&lt;br /&gt;
&lt;br /&gt;
The tool can be scripted without opening the TUI:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|--list}} || List all mounts with status&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|--status NAME}} || Show status for a single mount&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|--enable NAME}} || Enable and start a mount&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|--disable NAME}} || Stop and disable a mount&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|--list-groups}} || List all group names&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|--enable-group GROUP}} || Enable all mounts in a group&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|--disable-group GROUP}} || Disable all mounts in a group&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
Each mount gets a config file at {{ic|~/.config/sshfs-mounts/&amp;lt;name&amp;gt;.conf}} and a&lt;br /&gt;
systemd user service instance {{ic|sshfs-watchdog@&amp;lt;name&amp;gt;.service}}. The service runs&lt;br /&gt;
a watchdog script that mounts the target, retries on failure, and optionally pings&lt;br /&gt;
the remote host — lazily unmounting when the host goes offline.&lt;br /&gt;
&lt;br /&gt;
Services use {{ic|Restart{{=}}always}} so mounts survive reboots and network drops&lt;br /&gt;
without manual intervention.&lt;br /&gt;
&lt;br /&gt;
=== Mount root ===&lt;br /&gt;
&lt;br /&gt;
The default mount root is {{ic|/sshfs}} rather than a path inside {{ic|$HOME}}.&lt;br /&gt;
A hung [[FUSE]] mount inside the home directory can cause shells and file managers&lt;br /&gt;
to freeze for several seconds while the kernel waits for the mount to time out.&lt;br /&gt;
&lt;br /&gt;
== SSH keys ==&lt;br /&gt;
&lt;br /&gt;
The watchdog runs non-interactively — see [[SSH keys]] for setup. Note that&lt;br /&gt;
passphrase-protected keys will not work as there is no interface to prompt for the&lt;br /&gt;
passphrase at mount time.&lt;br /&gt;
&lt;br /&gt;
{{Tip|An {{ic|~/.ssh/config}} entry with a {{ic|HostName}} directive lets you use short aliases in mount configs. sshfs-mountctl reads {{ic|~/.ssh/config}} (including&lt;br /&gt;
{{ic|Include}} directives) to suggest hosts and resolve aliases to real IPs for health check pings.}}&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
=== SSH agent ===&lt;br /&gt;
&lt;br /&gt;
Using an [[SSH agent]] allows keys to remain passphrase-protected while still&lt;br /&gt;
enabling unattended mounts. Since sshfs-mountctl uses standard SSH under the hood,&lt;br /&gt;
any agent ([[SSH agent|ssh-agent]], [[GnuPG#SSH agent|gpg-agent]], or a hardware&lt;br /&gt;
token) will work transparently.&lt;br /&gt;
&lt;br /&gt;
=== Mount groups ===&lt;br /&gt;
&lt;br /&gt;
Mounts can be organized into named groups and enabled or disabled together — useful&lt;br /&gt;
for separating contexts such as work and home servers:&lt;br /&gt;
&lt;br /&gt;
{{bc|$ sshfs-mountctl --enable-group work&lt;br /&gt;
$ sshfs-mountctl --disable-group work}}&lt;br /&gt;
&lt;br /&gt;
=== Health check modes ===&lt;br /&gt;
&lt;br /&gt;
When ICMP is blocked on the remote host, switch the health check from ping to a TCP&lt;br /&gt;
port check in the mount config:&lt;br /&gt;
&lt;br /&gt;
{{bc|HEALTHCHECK_MODE{{=}}&amp;quot;tcp&amp;quot;&lt;br /&gt;
HEALTHCHECK_PORT{{=}}22}}&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Check the status of a specific mount&amp;#039;s service:&lt;br /&gt;
&lt;br /&gt;
{{bc|$ systemctl --user status sshfs-watchdog@&amp;#039;&amp;#039;name&amp;#039;&amp;#039;.service&lt;br /&gt;
$ journalctl --user -u sshfs-watchdog@&amp;#039;&amp;#039;name&amp;#039;&amp;#039;.service -n 80 --no-pager}}&lt;br /&gt;
&lt;br /&gt;
Logs can also be viewed and followed live from within the TUI via the &amp;#039;&amp;#039;&amp;#039;View logs&amp;#039;&amp;#039;&amp;#039; button.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[SSHFS]]&lt;br /&gt;
* [[systemd/User]]&lt;br /&gt;
* [https://github.com/Klick3r-1/sshfs-manager GitHub repository]&lt;/div&gt;</summary>
		<author><name>Kstation-Orbit</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/D_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>D (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/D_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-04-19T11:17:52Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: Idk why, but russian translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming languages_(Русский)]]&lt;br /&gt;
[[es:D]]&lt;br /&gt;
[[en:D]]&lt;br /&gt;
[[ja:D]]&lt;br /&gt;
[[pt:D]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Programming_languages_(Русский)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|D|9 марта 2026|868485}}&lt;br /&gt;
&lt;br /&gt;
Из [[Wikipedia:D (programming language)]]:&lt;br /&gt;
&lt;br /&gt;
* Это обьектно-ориентированный, императивный,многопарадигмальный системный язык программирования,&lt;br /&gt;
* По большей части он вдохновлён [[Wikipedia:C++|C++]], но не является его вариантом,&lt;br /&gt;
* Так же он был вдохновлён концептами использованными в [[Wikipedia:C Sharp (programming language)|C#]], [[Wikipedia:Eiffel (programming language)|Eiffel]] и [[Java_(Русский)]].&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
Чтобы программировать на D вам нужно две вещи—компилятор D и библиотеки. Самый простой вариант начать это установить {{Grp|dlang-dmd}} пакетную группу. Она предоставляет официальный компилятор {{Pkg|dmd}}, стандартную библиотеку {{Pkg|libphobos}}, и {{Pkg|dtools}}—коллекцию небольших инструментов разработки.&lt;br /&gt;
&lt;br /&gt;
== Проверка установки ==&lt;br /&gt;
&lt;br /&gt;
Чтобы убедиться что всё установлено и настроено правильно,подойдёт простой &amp;quot;Hello World&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{hc|hello.d|2=&lt;br /&gt;
import std.stdio;&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
   string yourName = &amp;quot;archer&amp;quot;;&lt;br /&gt;
   writefln(&amp;quot;Hello %s!&amp;quot;, yourName);&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
И выполните:&lt;br /&gt;
&lt;br /&gt;
 $ dmd hello.d&lt;br /&gt;
&lt;br /&gt;
в той же директории что и файл. Потом вы сможете выполнить программу с:&lt;br /&gt;
&lt;br /&gt;
 $ ./hello&lt;br /&gt;
&lt;br /&gt;
Также вы можете выполнить&lt;br /&gt;
&lt;br /&gt;
 $ dmd -run hello.d&lt;br /&gt;
&lt;br /&gt;
который просто скомпилирует и запустит код без оставления файлов в директории.&lt;br /&gt;
&lt;br /&gt;
== Размышления ==&lt;br /&gt;
&lt;br /&gt;
Вообще есть несколько компиляторов на выбор. Образцовая имплементация это {{Pkg|dmd}}, но {{Pkg|gcc-d}} (D фронтенд для [[GCC]]) и {{Pkg|ldc}} ([[LLVM]] D Компилятор) также доступны.&lt;br /&gt;
&lt;br /&gt;
В Апреле 2017 [https://github.com/dlang/dmd/pull/6680 бекенд dmd стал FOSS] (Boost-лицензированным). Все компиляторы делят один френтенд и из-за этого функции языка поддерживаются пактически идентично (при учёте одинаковой фронтенд версии).&lt;br /&gt;
&lt;br /&gt;
== Полезные библиотеки и привязки ==&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/ddt/ DDT] - Eclipse плагин для управления проектом и кодом D&lt;br /&gt;
* [https://github.com/aBothe/Mono-D Mono-D] - [https://monodevelop.com/ MonoDevelop] аддон для программирования на D&lt;br /&gt;
* [https://github.com/MGWL/QtE5 QtD] - Qt привязки для D&lt;br /&gt;
* [https://gtkd.org/ GtkD] - Объектно-ориентировананя GTK оболочка для D&lt;br /&gt;
* [https://github.com/aldacron/Derelict3 Derelict] - Привязки для мультимедиа библиотек, сфокусировано на разработку игр(?????)&lt;br /&gt;
* [https://github.com/D-Programming-Deimos Deimos] - Проект содержащий множество привязок к различным C библиотекам&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/D-Programming-Language/phobos/ Phobos GitHub репозиторий]&lt;br /&gt;
* [https://dlang.org/ The D Programming Language] - Оффициальный генштаб D&lt;br /&gt;
* [http://planet.dsource.org/ Planet D] - Коллеция блогов по D&lt;br /&gt;
* [https://wiki.dlang.org/ D Wiki]&lt;br /&gt;
* [https://ddili.org/ders/d.en/index.html Программирование на D – Туториалы и примеры]&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/DaVinci_Resolve_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>DaVinci Resolve (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/DaVinci_Resolve_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-04-19T10:51:18Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: Insert translation from personal page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TranslationStatus (Русский)|DaVinci_Resolve|14 февраля 2026|865619}}&lt;br /&gt;
[[Category:Audio_(Русский)]]&lt;br /&gt;
[[Category:Video_(Русский)]]&lt;br /&gt;
[[en:DaVinci Resolve]]&lt;br /&gt;
[[ja:DaVinci Resolve]]&lt;br /&gt;
[[pl:DaVinci Resolve]]&lt;br /&gt;
[[zh-hans:DaVinci Resolve]]&lt;br /&gt;
{{Related articles start (Русский)}}&lt;br /&gt;
{{Related|GPGPU_(Русский)#OpenCL}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://www.blackmagicdesign.com/products/davinciresolve/ Davinci Resolve] это проприетарное приложение для редактирования видео, покраски, коррекции цвета, визуальнх эффектов, графики, и аудио пост-процессинга.&lt;br /&gt;
&lt;br /&gt;
{{Bad translation (Русский)|При всём желании перевести страницу максимально точно, некоторые названия элементов интерфейса переведены наугад. Там где я был не уверен оставлены оригинальные названия.}}&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
Предоставлены обе версии, бесплатная ограниченная и платная (Studio) версия.&lt;br /&gt;
&lt;br /&gt;
Для бесплатной версии, [[install|установите]] {{AUR|davinci-resolve}}, для Studio версии, установите {{AUR|davinci-resolve-studio}}.&lt;br /&gt;
&lt;br /&gt;
{{Note (Русский)|Начиная с версии 19.1.3-2, вы должны вручную скачать установщик с [https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion оффициального сайта Blackmagic Design] и поместить в ту же директорию что и PKGBUILD перед сборкой пакета.[https://aur.archlinux.org/packages/davinci-resolve#comment-1008736]}}&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить DaVinci Resolve, необходимо использовать подходящий OpenGL и OpenCL драйвер. Драйвера OpenCL с открытым исходным кодом поддерживаются через Mesa ([https://docs.mesa3d.org/rusticl.html Rusticl]) для AMD карт и Intel карт. На [https://wiki.nixos.org/wiki/DaVinci%20Resolve NixOS wiki есть матрица совместимости поддерживаемых AMD GPUs для Davinci Resolve].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+Table of OpenGL drivers&lt;br /&gt;
|-&lt;br /&gt;
! GPU производитель !! OpenGL драйвер !! Открытый исходный код !! Документация !! Проверенная версия драйвера !! Работает с DaVinci Resolve !! Проверенная DR версия !! Заметки&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;1&amp;quot; | AMD&lt;br /&gt;
| {{Pkg|mesa}} || {{Да}} || [[AMDGPU]] || 23.0.2-2 || {{Да}} || 18.1.4-1 || На до-Vega GPU, если использовать opencl-amd и mesa, DR падает, читайте [https://gitlab.freedesktop.org/mesa/mesa/-/issues/6256 это] сообщение о баге. Можете вместо этого использовать ROCM {{ic|1=ROC_ENABLE_PRE_VEGA=1}} или использовать opencl-amd вместе с progl.&lt;br /&gt;
&lt;br /&gt;
Проверено на Radeon RX 580.&lt;br /&gt;
&lt;br /&gt;
Проверено на Radeon PRO W6600.&lt;br /&gt;
|-&lt;br /&gt;
! Intel&lt;br /&gt;
| {{Pkg|mesa}} || {{Да}} || [[Intel graphics]] || 23.1.6 || {{Да}} || 19.1.3 || Работает без проблем&lt;br /&gt;
&lt;br /&gt;
Проверено с Intel Iris Xe Graphics (Alder Lake Mobile).&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | NVIDIA&lt;br /&gt;
| {{Pkg|mesa}} || {{Да}} || [[Nouveau]] || || {{Нет}} || ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Pkg|nvidia-utils}} || {{Нет}} || [[NVIDIA]] || 575.64.05-2 || {{Да}} || 19.1.3 || Проверено ранее на ноутбуке с Optimus используя nvidia-xrun.&lt;br /&gt;
&lt;br /&gt;
Проверено на RTX 3060, работает без проблем или костылей.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+Таблица проверенных [[OpenCL]] драйверов&lt;br /&gt;
! GPU Производитель !! OpenCL драйвер !! Открытый&lt;br /&gt;
исходный код&lt;br /&gt;
! Проверенная версия драйвера !! Работает с DR !! Проверенная DR версия !! Заметки&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Общий&lt;br /&gt;
|{{Pkg|opencl-mesa}} || {{Да}} || 1:23.3.2-2 || {{Да}} || 18.6.4-1 || У некоторых версий ядра есть [https://github.com/ROCm/ROCm/issues/2596 проблема с ROCm], но 6.1 LTS и 6.10.2 работает.&lt;br /&gt;
&lt;br /&gt;
Проверено на RX 6800M.&lt;br /&gt;
|-&lt;br /&gt;
|mesa-tkg-git || {{Да}} || 24.0.0_devel.180705.fdbb5d58983-1 || {{Да}} || 18.6 || DR работает с rusticl после того как [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 MR 21305] был принят (коммит [https://gitlab.freedesktop.org/mesa/mesa/-/commit/0a072bb31c0aa99ba6f8348e0e601053b643a584 0a072bb3]).&lt;br /&gt;
&lt;br /&gt;
Проверено на RX 7600 с {{ic|1=RUSTICL_ENABLE=radeonsi}}.&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot; | AMD&lt;br /&gt;
| {{AUR|opencl-amd}} || {{Y|Смесь проприетарных и открытых компонентов}} || 1:5.6.0-2 || {{Да}} || 18.5b || Пока что нет AUR пакета только с перепакованным rocm драйвером из Ubuntu (этот opencl-amd пакует оба rocm и orca). На GFX8 (RX 580 и прочих), по умолчанию используется устаревший драйвер ORCA, котоый сам по себе требует AMDGPU-PRO OpenGL драйвер для работы (Смотрите выше).&lt;br /&gt;
&lt;br /&gt;
Проверено на Radeon Pro W6600 (работает, даже с mesa)&lt;br /&gt;
&lt;br /&gt;
Проверено на Radeon RX 580 (работает, но пока только с progl).&lt;br /&gt;
&lt;br /&gt;
Проверено на Radeon RX 5700 XT, 6700 XT (с mesa)&lt;br /&gt;
&lt;br /&gt;
Вызывает падения (замечено с rocm-opencl-runtime пакетом) при попытках произвести коррекцию цвета на странице цвета. Проверено на Radeon 7900XT.&lt;br /&gt;
|-&lt;br /&gt;
| {{Pkg|rocm-opencl-runtime}} || {{Да}} || 5.4.3-1 || {{Да}} || 18.1.4-1 || Для GPU старше чем GFX9/Vega используйте переменную {{ic|1=ROC_ENABLE_PRE_VEGA=1}}; работает с Mesa OpenGL&lt;br /&gt;
&lt;br /&gt;
Проверено на Radeon Pro W6600&lt;br /&gt;
&lt;br /&gt;
Проверено н AMD RX580. Коррекция цвета может вызывать падения (точно на Radeon 7900XT), предложено использовать opencl-amd 5.6.0-2.&lt;br /&gt;
|-&lt;br /&gt;
| {{AUR|opencl-legacy-amdgpu-pro}} || {{Нет}} || 22.10.1_1401426-1 || {{G|Да, for GPUs older than Vega}} || 17.4.6-2 || Заметьте что это просто {{AUR|opencl-amd}} пакет без ROCm драйверов.&lt;br /&gt;
&lt;br /&gt;
Требует AMDGPU-PRO OpenGL драйвер для работы.&lt;br /&gt;
&lt;br /&gt;
Проверено на Radeon RX580.&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;|Intel&lt;br /&gt;
|{{Pkg|intel-compute-runtime}} || {{Да}} || 25.27.34303.5-1 || {{Да}} || 19.1.3 || Работает без проблем&lt;br /&gt;
&lt;br /&gt;
Проверено на Intel Iris Xe Graphics (Alder Lake Mobile).&lt;br /&gt;
|-&lt;br /&gt;
|mesa [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 with the cl-gl sharing MR applied] || {{Да}} || 23.3.0 with MR applied || {{Да}} || 18.6 || Работает с {{ic|1=RUSTICL_ENABLE=iris}} вставленным как переменная окружением&lt;br /&gt;
|-&lt;br /&gt;
|{{AUR|beignet}} || {{Да}} || 1.3.2+12+gfc5f430c-2 || {{Нет}} || || Ядро выпадает&lt;br /&gt;
|-&lt;br /&gt;
|{{AUR|intel-opencl}} || {{Нет}}  || 5.0.r63503-2 || {{Нет}} || || Ядро выпадает&lt;br /&gt;
|-&lt;br /&gt;
|{{AUR|intel-opencl-runtime}} || {{Нет}}  || 1:18.1.0.013-2 || {{Нет}} || || Ядро выпадает&lt;br /&gt;
|-&lt;br /&gt;
!Nvidia&lt;br /&gt;
|{{Pkg|opencl-nvidia}} || {{Нет}} || 460.32.03-1 || {{Да}} || || Работает, но не лучше ли взять CUDA ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DaVinci Resolve Checker ===&lt;br /&gt;
&lt;br /&gt;
Вы можете выполнить [https://github.com/Ashark/davinci-resolve-checker davinci-resolve-checker] скрипт, который сообщит вам подходит ли ваша конфигурация для запуска DR (не работает с Intel iGPUs - сообщает что OpenCL драйвер не поддерживается, но всё равно работает). При правильной конфигурации сообщает:&lt;br /&gt;
&lt;br /&gt;
 All seems good. You should be able to run DaVinci Resolve successfully. &lt;br /&gt;
&lt;br /&gt;
=== BlackMagic Design Cards ===&lt;br /&gt;
&lt;br /&gt;
Если используете DeckLink, UltraStudio или Intensity карты для видеозахвата и воспроизведения, установите Desktop Video Software с {{AUR|decklink}} пакетом.&lt;br /&gt;
&lt;br /&gt;
=== Ручная установка ===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 19.1.3-2 установка AUR пакета не работает из коробки. Вместо этого склонируйте пакет (поменяйте davinci-resolve на версию которая вам нужна, например davinci-resolve-studio)&lt;br /&gt;
&lt;br /&gt;
 git clone https://aur.archlinux.org/davinci-resolve.git&lt;br /&gt;
&lt;br /&gt;
и скачайте последнюю Линукс версию вашего выбранного установщика с [https://www.blackmagicdesign.com/support/ сайта поддержки BlackMagic] . Поместите zip файл в склонированный репозиторий, рядом с файлами вроде PKGBUILD и подпишите версию (такую как 20.0.1) в конце файла. Так же подпишите вывод команды {{ic|sha256sum}} для скачанного zip файла. Теперь измените PKGBUILD: Смените pkgver на вашу версию и измените первую sha256sum, оставив остальное нетронутым. Выполните {{ic|makepkg -i}} и всё готово.&lt;br /&gt;
&lt;br /&gt;
== Советы и трюки ==&lt;br /&gt;
&lt;br /&gt;
=== Использование ffmpeg энкодер плагина ===&lt;br /&gt;
&lt;br /&gt;
Установите пакет {{AUR|davinci-ffmpeg-encoder-plugin}}. Новые ffmpeg энкодеры для AV1, HEVC и AVC (которые используют SVT-AV1, x265, x264 програмный, и NVAPI для хардварного ускорения) будут доступны через параметры во вкладке Deliver. Заметьте что плагины энкодера доступны только в версии studio.&lt;br /&gt;
&lt;br /&gt;
=== Уменьшение времени установки ===&lt;br /&gt;
&lt;br /&gt;
Компрессия пакета Davinci Resolve требует значительного времени потому что бинарник довольно большой. Вы можете указать makepkg использовать [[Makepkg#Use other compression algorithms|другой алгоритм сжатия]], который в данном случае полностью отключает его, сильно ускоряя процесс.&lt;br /&gt;
&lt;br /&gt;
 PKGEXT=&amp;#039;.pkg.tar&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Использование приложения в портативном варианте ===&lt;br /&gt;
&lt;br /&gt;
У вас могут быть причины на устанавливать davinci resolve в систему. К примеру, вы не хотите чтобы такой большой пакет занимал место на системном разделе. Или вы хотите быстро переключаться между версиями приложения: беслатной и studio, текущей и предыдущей. Чтобы это сделать, просто распакуйте содержимое установщика в новую директорию (в вашем $HOME), и напрямую запустите opt/resolve/bin/resolve из этой директории.&lt;br /&gt;
&lt;br /&gt;
=== Автоматизация со скриптами ===&lt;br /&gt;
&lt;br /&gt;
DR поддерживает скриптинг. Бесплатная версия поддерживает запуск скриптов только из самого DR, когда версия Studio умеет запускать скрипты извне. Чтобы это разрешить, перейдите в Параметры -&amp;gt; Система -&amp;gt; Общие -&amp;gt; Использование внешних скриптов. Вы можете выбрать: Нет (подобно бесплатной версии, только из-под DR), Локально (разрешает вызовы с локальной машины), и Сетевые (разрешает вызовы с сетевой машины).&lt;br /&gt;
&lt;br /&gt;
Документация может быть найдена в Помощь -&amp;gt; Документация -&amp;gt; Разработчик.&lt;br /&gt;
&lt;br /&gt;
=== Переназначение модификаторов клавиатуры при использовании с колёсиком мыши для прокрутки и приближения ===&lt;br /&gt;
&lt;br /&gt;
Приложение использует очень странные назначения модификаторов клавиш для приближения и прокрутки хронологической линии (далее таймлайн). Оригинальные назначения ниже:&lt;br /&gt;
&lt;br /&gt;
* shift + колёсико по вертикали = высока трека&lt;br /&gt;
* ctrl + колёсико или колесо по горизонтали = прокрутка таймлайна&lt;br /&gt;
* alt + колёсико по вертикали = приближение таймлайна&lt;br /&gt;
* без модификаторов + колёсико по вертикали = вертикальная прокрутка&lt;br /&gt;
&lt;br /&gt;
Отключив “2D прокрутку” (в Настройки → Пользователь → Интерфейс), можно переназначить колёсико по вертикали на прокрутку таймлайна, и с этим отвалится функционал горизонтального колёсика (и не будет сочетания клавиш для горизонтальной прокрутки). Это невозможно кастомизировать сильнее из-под приложения, см. [https://forum.blackmagicdesign.com/viewtopic.php?f=21&amp;amp;t=74515].&lt;br /&gt;
&lt;br /&gt;
Костылём (работающим на X11 и Wayland) может стать использование [[Input remap utilities#evsieve|evsieve]]. Замените {{ic|/dev/input/event3}} и {{ic|/dev/input/event5}} вашими клавиатурой и мышью в следующей команде:&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
# evsieve --input /dev/input/event3 grab --input /dev/input/event5 grab \&lt;br /&gt;
    --hook   key:leftalt:1 toggle=alt:2 \&lt;br /&gt;
    --hook   key:leftalt:0 toggle=alt:1 \&lt;br /&gt;
    --hook   key:leftctrl:1 toggle=ctrl:2 \&lt;br /&gt;
    --hook   key:leftctrl:0 toggle=ctrl:1 \&lt;br /&gt;
    --toggle rel:wheel @alt-up @alt-down id=alt \&lt;br /&gt;
    --map    yield rel:wheel@alt-down key:leftalt:0 key:leftctrl:1 key:leftctrl:2 rel:wheel key:leftctrl:0 key:leftalt:1 \&lt;br /&gt;
    --toggle rel:wheel @ctrl-up @ctrl-down id=ctrl \&lt;br /&gt;
    --map    yield rel:wheel@ctrl-down key:leftctrl:0 key:leftalt:1 key:leftalt:2 rel:wheel key:leftalt:0 key:leftctrl:1 \&lt;br /&gt;
    --block  rel:wheel_hi_res \&lt;br /&gt;
    --print  @alt-down @alt-up @ctrl-down @ctrl-up \&lt;br /&gt;
    --output create-link=/dev/input/by-id/merged-virtual-KM name=&amp;quot;merged virtual KM&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Другое решение (работающее в X11 (и Xwayland), хуже и иногда теряющее происходящее) этой проблемы, использование утилиты [[IMWheel]]. Она умеет переназначать модификаторы только для приложения указанного в выражении. &lt;br /&gt;
&lt;br /&gt;
Используйте эту команду:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/.imwheelrc|output=&lt;br /&gt;
&amp;quot;^resolve&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # just wheel for scroll&lt;br /&gt;
    None, Up, Control_L{{!}}Button4&lt;br /&gt;
    None, Down, Control_L{{!}}Button5&lt;br /&gt;
&lt;br /&gt;
    # crtl wheel for zoom&lt;br /&gt;
    Control_L, Up,   Alt_L{{!}}Button4&lt;br /&gt;
    Control_L, Down, Alt_L{{!}}Button5&lt;br /&gt;
&lt;br /&gt;
    # alt wheel for track height&lt;br /&gt;
    Alt_L, Up,   Shift_L{{!}}Button4&lt;br /&gt;
    Alt_L, Down, Shift_L{{!}}Button5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Альтернативно используйте этот блок:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/.imwheelrc|output=&lt;br /&gt;
&amp;quot;^resolve&amp;quot;&lt;br /&gt;
&lt;br /&gt;
     # just wheel for zoom&lt;br /&gt;
     None, Up,   Alt_L{{!}}Button4&lt;br /&gt;
     None, Down, Alt_L{{!}}Button5&lt;br /&gt;
&lt;br /&gt;
     # shift wheel for scroll&lt;br /&gt;
     Shift_L, Up, Control_L{{!}}Button4&lt;br /&gt;
     Shift_L, Down, Control_L{{!}}Button5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Предотвращение запроса перед полным закрытием ===&lt;br /&gt;
&lt;br /&gt;
Когда вы закрываете приложение, вам возвращается запрос терминала, но внезапно терминал забивается сообщениями &amp;quot;Socket disconnected&amp;quot;. Чтобы предотвратить это, проведите вывод главного процесса через {{ic|cat}}. См. [https://unix.stackexchange.com/a/698155 здесь] для объяснений.&lt;br /&gt;
&lt;br /&gt;
== Устранение ошибок ==&lt;br /&gt;
&lt;br /&gt;
=== Логи ===&lt;br /&gt;
&lt;br /&gt;
DaVinci Resolve создаёт лог файл {{ic|~/.local/share/DaVinciResolve/logs/ResolveDebug.txt}} при каждом запуске. Его изучение поможет в диагностировании проблем.&lt;br /&gt;
&lt;br /&gt;
=== Окно приложения теряет заголовок окна ===&lt;br /&gt;
&lt;br /&gt;
Есть решение для KDE - правило окна для принудительного включения заголовка. См. [https://forum.blackmagicdesign.com/viewtopic.php?=21&amp;amp;t=56878&amp;amp;p=456990#p456990]&lt;br /&gt;
&lt;br /&gt;
Вы можете самостоятельно создать файл с необходимым правилом:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=DaVinci_Resolve_main_window_always_with_titlebar_and_frame.kwinrule|2=&lt;br /&gt;
[DaVinci Resolve окно всегда с заголовком и рамкой окна]&lt;br /&gt;
Description=DaVinci Resolve окно всегда с заголовком и рамкой окна&lt;br /&gt;
clientmachinematch=0&lt;br /&gt;
Noborder=false&lt;br /&gt;
Noborderrule=2&lt;br /&gt;
titlematch=0&lt;br /&gt;
types=1&lt;br /&gt;
wmclass=resolve&lt;br /&gt;
wmclasscomplete=false&lt;br /&gt;
wmclassmatch=1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Затем перейдите в &amp;#039;&amp;#039;Параметры системы &amp;gt; Диспетчер окон &amp;gt; Особые параметры окон&amp;#039;&amp;#039; и импортируйте этот файл.&lt;br /&gt;
&lt;br /&gt;
=== Поддержка MP4, H.264, H.265 и AAC ===&lt;br /&gt;
То что бесплатная версия DaVinci Resolve не поддерживает MP4 контейнер это заблуждение. Более точно будет сказать что бесплатная версия DaVinci Resolve не поддерживает кодирование/декодирование H.264 и H.265 видео, независимо от типа контейнера.&lt;br /&gt;
&lt;br /&gt;
Для примера, MP4 содержащий AV1 видео поток и MP3 или PCM звуковой поток, может быть декодирован бесплатной версией DaVinci Resolve.&lt;br /&gt;
&lt;br /&gt;
Ни одна версия DaVinci Resolve не поддерживает кодирование/декодирование AAC аудио потока.&lt;br /&gt;
&lt;br /&gt;
Для дополнительной информации, см. [https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_20_Supported_Codec_List.pdf оффициальную Blackmagic документацию по кодекам] (для DR 20, так же: [https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_19_Supported_Codec_List.pdf для DR 19] и [https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_18_Supported_Codec_List.pdf 18]).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+Таблица поддержки MP4, H.264, H.265 и AAC&lt;br /&gt;
|-&lt;br /&gt;
! Тип !! MP4 !! H.264 !! H.265 !! AAC !! Версия !! Notes&lt;br /&gt;
|-&lt;br /&gt;
! Бесплатная&lt;br /&gt;
| {{Да}}  || {{Нет}} || {{Нет}} || {{Нет}} || 18.6.6-2 || MP4 работает за счёт использования поддерживаемых кодеков (AV1 и PCM).&lt;br /&gt;
|-&lt;br /&gt;
! Studio&lt;br /&gt;
| {{Да}}  || {{Да}} || {{Да}} || {{Нет}} || 18.6.6-2 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Решение для бесплатной версии DaVinci Resolve ====&lt;br /&gt;
&lt;br /&gt;
Если в вашем MP4 видео H.264 или H.265, но аудио MP3 или PCM, вам нужно только перекодировать видео в подходящий кодек, так как аудио уже поддерживается:&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a copy output.mov&lt;br /&gt;
&lt;br /&gt;
Если в вашем MP4 видео H.264 или H.265, и аудио AAC, вам нужно перекодировать оба потока в подходящий кодек:&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a alac output.mov&lt;br /&gt;
&lt;br /&gt;
Если в вашем MP4 видео AV1, но аудио AAC, перекодируйте только аудио в подходящий кодек:&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v copy -c:a pcm_s32le output.mp4&lt;br /&gt;
&lt;br /&gt;
Если у вас ограниченное пространство, вы можете использовать этот вариант (всё ещё увеличивает файл в 4-5 раз) - но держите в голове что это будет сделано с потерями и вы можете столкнуться с артефактами сжатия на последних стадиях - к примеру, во время цветокоррекции - и вы &amp;#039;&amp;#039;&amp;#039;потеряете вашу работу&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v mpeg4 -q:v 2 -c:a alac output.mp4&lt;br /&gt;
&lt;br /&gt;
Вы также можете использовать alac кодек для записи в OBS, и затем скопировать аудио с ffmpeg параметром &amp;quot;-c:a copy&amp;quot;, для исключения перекодирования.&lt;br /&gt;
&lt;br /&gt;
Вы можете автоматизировать эту задачу используя [[Incron (Русский)|Incron]]. Он автоматически сконвертирует файлы в указанных директориях. См. пример настройки в [https://passthroughpo.st/painless-linux-video-production-part-3-organization-and-workflow/#:~:text=Auto%2DTranscode%20Your%20Footage этом артикле]. Альтернативой будет написать resolve скрипт для этого назначения. См. документацию Resolve scripting для большей информации.&lt;br /&gt;
&lt;br /&gt;
==== Решение для DaVinci Resolve Studio ====&lt;br /&gt;
&lt;br /&gt;
Оба формата видео H.264 и H.265 поддерживаются Studio, но AAC аудио нет. Вы можете перекодировать аудио в поддерживаемый lossless формат без деструктивного пережатия видео, или отделения аудио от видео.&lt;br /&gt;
&lt;br /&gt;
В секции [[#Смотрите также]], есть ссылка на PDF содержащий оффициальный список поддерживаемых кодеков.&lt;br /&gt;
&lt;br /&gt;
Для перекодирования аудио в &amp;#039;&amp;#039;&amp;#039;Apple Lossless Audio Codec&amp;#039;&amp;#039;&amp;#039; используйте ({{ic|-c:a alac}}).  Это хороший вариант если вы предпочитаете использовать MOV контейнеры.&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v copy -c:a alac output.mov&lt;br /&gt;
&lt;br /&gt;
FLAC предлагает лишь небольшое преймущество в сжатии против ALAC. Для перекодирования во FLAC, вам нужно использовать MKV контейнер.&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v copy -c:a flac -compression_level 12 output.mkv&lt;br /&gt;
&lt;br /&gt;
Возможно нет никакого смысла использовать PCM, ничего кроме MP4, MOV и MKV контейнеров не поддерживают его, если это для вас важно.&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v copy -c:a pcm_s32le output.mov&lt;br /&gt;
&lt;br /&gt;
=== HiDPI ===&lt;br /&gt;
&lt;br /&gt;
Для включения совместимости с дисплеями высокого разрешения, определите эту [[Environment variables (Русский)|переменную среды]]:&lt;br /&gt;
&lt;br /&gt;
 QT_AUTO_SCREEN_SCALE_FACTOR=1&lt;br /&gt;
&lt;br /&gt;
Вы можете сменить масштабирование в настройках: Preferences (ctrl + ,) &amp;gt;User tab &amp;gt; UI settings &amp;gt; UI Display Scale.&lt;br /&gt;
&lt;br /&gt;
=== Wine версия ===&lt;br /&gt;
&lt;br /&gt;
Некоторые плагины доступны для Windows, но не для Linux, так что вы можете захотеть использовать Davinci Resolve через wine. Также, wine версия потенциально является решением исключительно linux проблемой с форматом mp4. Wine 6.5 добавил [https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=Wine-6.5-Released OpenCL 1.2 support], который [https://www.newsshooter.com/2020/11/13/blackmagic-design-davinci-resolve-17-1-released/ необходим]  для DR. К сожалению нет успеха в запуске DR через wine.&lt;br /&gt;
Смотрите результаты [https://appdb.winehq.org/objectManager.php?sClass=application&amp;amp;iId=17141 здесь]. В версии 17.4.1 DR не определяются доступные видеокарты (wine 6.21). Возможно, требуются хаки чтобы wine отображал имеющиеся видеокарты. В версии DR 18.5b1 с wine 8.7-1 выходит ошибка rocm (5.4.3-1) которая указана [https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/issues/158#issuecomment-1529782323 здесь].&lt;br /&gt;
&lt;br /&gt;
=== Неправильная OpenCL версия ===&lt;br /&gt;
&lt;br /&gt;
Если приложение просто не запускается, даже после прохождения установщика и &amp;quot;тура&amp;quot;, ваша OpenCL версия может не совпадать с вашим NVIDIA драйвером. &lt;br /&gt;
Если вы установили nvidia-440xx убедитесь что также установили opencl-nvidia-440xx.&lt;br /&gt;
Возможное сообщение об ошибке:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.local/share/DaVinciResolve/logs/LogArchive/ResolveDebug_C1.txt|&lt;br /&gt;
...&lt;br /&gt;
OpenCL error -1001: &amp;#039;Unspecified Error&amp;#039;, GPUPropertiesUtilUnix.cpp:338&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
=== Вернуться на бортовой экран ===&lt;br /&gt;
&lt;br /&gt;
Если вы экспериментируете с драйверами, вы можете захотеть начать заново с вступительного тура и бортового экрана, который проверяет вашу систему и видеокарту. Вы можете добиться этого удалив директорию с конфигами:&lt;br /&gt;
&lt;br /&gt;
 rm -r $HOME/.local/share/DaVinciResolve/configs&lt;br /&gt;
&lt;br /&gt;
=== Функция полноэкранного предпросмотра отсутствует ===&lt;br /&gt;
&lt;br /&gt;
Эта функция доступна только в версии studio. Она находится в меню &amp;#039;&amp;#039;Workspace &amp;gt; Video Clean Feed&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Нет звука во время предпросмотра ===&lt;br /&gt;
&lt;br /&gt;
DaVinci взаимодействует с ALSA напрямую, так что если вы используете [[PulseAudio]] вам нужно [[install|установить]] {{Pkg|pulseaudio-alsa}} или {{Pkg|pipewire-alsa}}. В ином случае вы можете вручную направить звук в PulseAudio создав {{ic|asound.conf}} в {{ic|/etc/}} с этим содержимым:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/asound.conf|&lt;br /&gt;
pcm.!default pulse&lt;br /&gt;
ctl.!default pulse}}&lt;br /&gt;
&lt;br /&gt;
=== Код ошибки 999 на Intel/NVIDIA гибридной графике ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The GPU failed to perform image processing because of an error. Error Code: 999.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Если видеокарта NVIDIA используется в режиме по-требованию, вам нужно насильно потребовать её. Чтобы это сделать укажите[[Environment variables (Русский)|переменную среды]]:&lt;br /&gt;
&lt;br /&gt;
 __NV_PRIME_RENDER_OFFLOAD=1&lt;br /&gt;
 __GLX_VENDOR_LIBRARY_NAME=nvidia&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039; Эти же переменные среды так же могут решить ошибку &amp;quot;Your GPU memory is full&amp;quot; на (Intel ИЛИ AMD)/NVIDIA гибридной графике.&lt;br /&gt;
&lt;br /&gt;
=== Тихое падение из-за libcrypto.so.1.0.0 ===&lt;br /&gt;
&lt;br /&gt;
DaVinci Resolve не запускается в графическом режиме.&lt;br /&gt;
В консоли выводится эта ошибка:&lt;br /&gt;
&lt;br /&gt;
 $ /opt/resolve/bin/resolve &lt;br /&gt;
 bin/resolve: error while loading shared libraries: libcrypt.so.1: canНетt open shared object file: Нет such file or directory&lt;br /&gt;
&lt;br /&gt;
Вам нужно [[install|установить]] {{Pkg|libxcrypt-compat}}.&lt;br /&gt;
&lt;br /&gt;
=== Отсутствует меню Workflow Integrations ===&lt;br /&gt;
&lt;br /&gt;
В DR Studio для Windows и Mac OS есть Workspace -&amp;gt; Workflow Integrations menu. Workflow Integration плагины написаны на JavaScript (electron приложения). Как сказано в документации (вы можете получить её в Помощь -&amp;gt; Документация -&amp;gt; Разработчикам), Скрипты Интеграции не поддерживаются на LInux в данное время (проверялось на 17.4.3(перепроверьте информацию)). Скорее всего это ошибка, потому что они не предоставили путь куда помещать их, и меню до сих пор отсутствует (То же самое Workspace -&amp;gt; Workflow Integrations).&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 не найден ===&lt;br /&gt;
&lt;br /&gt;
{{Expansion|Пожалуйста, дополните этот раздел|Talk:DaVinci Resolve#Python 3.6 Not found problem}}&lt;br /&gt;
&lt;br /&gt;
При переходе в Workspace -&amp;gt; Console -&amp;gt; Py3 появляется окно ошибки &amp;quot;Python 3.6 не найден&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Вот одно из решений (из [https://video.stackexchange.com/questions/32458/davinci-resolve-python-3-6-Нетt-found этого] обсуждения):&lt;br /&gt;
&lt;br /&gt;
 env PYTHON_CONFIGURE_OPTS=&amp;quot;--enable-shared&amp;quot; pyenv install 3.6.11&lt;br /&gt;
 sudo ln -s $HOME/.pyenv/versions/3.6.11/lib/python3.6 /usr/local/lib/python3.6&lt;br /&gt;
 sudo ln -s $HOME/.pyenv/versions/3.6.11/lib/libpython3.so /usr/local/lib/libpython3.6.so&lt;br /&gt;
&lt;br /&gt;
В DR 18 они [https://forum.blackmagicdesign.com/viewtopic.php?f=21&amp;amp;t=158557#:~:text=support%20for%20all%20modern%20and%20future%20python%203%20versions%20for%20scripting говорят] что все версии python 3 поддерживаются.&lt;br /&gt;
&lt;br /&gt;
=== Убить зависший процесс ===&lt;br /&gt;
&lt;br /&gt;
Если DR завис, не может отпустить терминал когда вы нажимаете ctrl + c (чтобы отправить sigint), и когда окно не отображается и вы не можете открыть DR снова (говорит что другой инстанс уже запущен),вы всё ещё можете это починить. Откройте диспетчер задач (ctrl + esc в KDE), затем найдите процесс с именем &amp;quot;GUI&amp;quot;, и убейте его (отправьте сигнал 9). Теперь вы можете запустить DR нормально.&lt;br /&gt;
&lt;br /&gt;
=== Использование Dolphin вместо Qt File Picker ===&lt;br /&gt;
&lt;br /&gt;
К сожалению, DR пока не поддерживает XDG desktop portals. Смотрите [https://forum.blackmagicdesign.com/viewtopic.php?f=33&amp;amp;t=149142] за дальнейшими ответами. Как решение, вы можете использовать скрипт Andrew Shark [https://gitlab.com/AndrewShark/davinci-resolve-scripts/-/blob/main/import%20media%20via%20dolphin.py Import Media via Dolphin].&lt;br /&gt;
&lt;br /&gt;
=== Невозможно запустить (onetbb/log4cxx) ===&lt;br /&gt;
&lt;br /&gt;
Переход на {{Pkg|onetbb}} вызывает зависание с таким сообщением:&lt;br /&gt;
&lt;br /&gt;
{{hc|/opt/resolve/bin/resolve|2=&lt;br /&gt;
...&lt;br /&gt;
ActCCMessage Already in Table: Code= c005, Mode= 13, Level=  1, CmdKey= -1, Option= 0&lt;br /&gt;
ActCCMessage Already in Table: Code= c006, Mode= 13, Level=  1, CmdKey= -1, Option= 0&lt;br /&gt;
ActCCMessage Already in Table: Code= c007, Mode= 13, Level=  1, CmdKey= -1, Option= 0&lt;br /&gt;
ActCCMessage Already in Table: Code= 2282, Mode=  0, Level=  0, CmdKey= 8, Option= 0&lt;br /&gt;
PnlMsgActionStringAdapter Already in Table: Code= 615e, Mode=  0, Level=  0, CmdKey= -1, Option= 0&lt;br /&gt;
log4cxx: No appender could be found for logger (BtCommon).&lt;br /&gt;
log4cxx: Please initialize the log4cxx system properly.&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Одно из предложенных решений это временно переименовать {{ic|/opt/intel/oneapi/compiler/2023.0.0/linux/lib/libOpenCL.so}} во что-нибудь другое.&lt;br /&gt;
&lt;br /&gt;
Смотрите пост на форуме [https://forum.blackmagicdesign.com/viewtopic.php?f=21&amp;amp;t=177985 tbb is replaced by onetbb and resolve cannot start on linux] для дальнейших обсуждений.&lt;br /&gt;
&lt;br /&gt;
=== Невозможно запустить (libpango/glib) ===&lt;br /&gt;
&lt;br /&gt;
Из-за того как [https://unix.stackexchange.com/questions/743572/fedora-38-davinci-resolve-Нет-longer-opens-after-updating-from-fedora-37-to-38 Resolve обрабатывает библиотеки], запуск программы может завершиться ошибкой если системная библиотека слишком сильно отличается от той которая поставляется с DR.&lt;br /&gt;
&lt;br /&gt;
 /opt/resolve/bin/resolve: symbol lookup error: /usr/lib64/libpango-1.0.so.0: undefined symbol: g_string_free_and_steal&lt;br /&gt;
&lt;br /&gt;
Чтобы ограничить это, вы можете заставить Resolve использовать системную версию:&lt;br /&gt;
&lt;br /&gt;
 $ LD_PRELOAD=&amp;quot;/usr/lib64/libglib-2.0.so&amp;quot; /opt/resolve/bin/resolve&lt;br /&gt;
&lt;br /&gt;
Resolve может не запуститься при первой попытке, но будет работать при следующих.&lt;br /&gt;
&lt;br /&gt;
Но может появиться другая ошибка:&lt;br /&gt;
&lt;br /&gt;
 /opt/resolve/bin/resolve: symbol lookup error: /usr/lib/libgdk_pixbuf-2.0.so.0: undefined symbol: g_task_set_static_name&lt;br /&gt;
&lt;br /&gt;
По состоянию 2024-05-23, решение для этой `g_task_set_static_name` ошибки ([https://bbs.archlinux.org/viewtopic.php?id=295687 взято отсюда с Arch форума]):&lt;br /&gt;
 $ LD_PRELOAD=&amp;quot;/usr/lib/libgio-2.0.so /usr/lib/libgmodule-2.0.so&amp;quot; /opt/resolve/bin/resolve&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другое решение это выкинуть несколько библиотек из директории Resolve. В таком случае Resolve будет вынужден использовать системные библиотеки, а не те что идут с ним. Так же смотрите AUR комментарии для пакета и для самого PKGBUILD для большей информации по этому трюку.&lt;br /&gt;
 /opt/resolve/libs/libglib-2.0.so*&lt;br /&gt;
 /opt/resolve/libs/libgio-2.0.so*&lt;br /&gt;
 /opt/resolve/libs/libgmodule-2.0.so*&lt;br /&gt;
&lt;br /&gt;
=== Невозможно запустить (wayland) ===&lt;br /&gt;
&lt;br /&gt;
В [[wayland]] сессии, переменная окружения {{ic|QT_QPA_PLATFORM{{=}}wayland}} уже может быть установлена для того чтобы другие QT программы запускались с поддержкой Wayland. Но всё же, DaVinci Resolve может упасть с этой ошибкой:&lt;br /&gt;
&lt;br /&gt;
 qt.qpa.plugin: Could Нетt find the Qt platform plugin &amp;quot;wayland&amp;quot; in &amp;quot;&amp;quot;&lt;br /&gt;
 This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.&lt;br /&gt;
&lt;br /&gt;
В таком случае можно заставить DaVinci Resolve использовать [[X11]] при использовании параметра:&lt;br /&gt;
&lt;br /&gt;
 QT_QPA_PLATFORM=xcb /opt/resolve/bin/resolve&lt;br /&gt;
&lt;br /&gt;
=== “Успешное падение” при запуске ===&lt;br /&gt;
&lt;br /&gt;
DaVinci Resolve может не запуститься, но при этом никогда не завершится неправильно (код выхода 0) и не выдаст логов. Стандартный вывод {{ic|/opt/resolve/bin/resolve}} выглядит как-то так:&lt;br /&gt;
&lt;br /&gt;
 ActCCMessage Already in Table: Code= c005, Mode= 13, Level=  1, CmdKey= -1, Option= 0&lt;br /&gt;
 ActCCMessage Already in Table: Code= c006, Mode= 13, Level=  1, CmdKey= -1, Option= 0&lt;br /&gt;
 ActCCMessage Already in Table: Code= c007, Mode= 13, Level=  1, CmdKey= -1, Option= 0&lt;br /&gt;
 ActCCMessage Already in Table: Code= 2282, Mode=  0, Level=  0, CmdKey= 8, Option= 0&lt;br /&gt;
 log4cxx: Нет appender could be found for logger (BtCommon).&lt;br /&gt;
 log4cxx: Please initialize the log4cxx system properly.&lt;br /&gt;
&lt;br /&gt;
Зачастую такое состояние происходит из-за блокировочных файлов. Resolve использует блокировочные файлы в {{ic|/tmp}} для проверки запущенного инстанса. По множеству причин, если Resolve не вышел правильно в последний раз, эти блокировочные файлы будут висеть и мешать запуску нового инстанса.&lt;br /&gt;
&lt;br /&gt;
Блокировочные файлы называются по схеме {{ic|qtsingleapp-DaVinc-xxx-lockfile}} где xxx это какой-либо ID. Вы можете вручную удалить эти файлы и Resolve должен запуститься снова.&lt;br /&gt;
&lt;br /&gt;
=== Невозможно загрузить Extras ===&lt;br /&gt;
&lt;br /&gt;
При использовании &amp;#039;&amp;#039;&amp;#039;Extras Download Manager&amp;#039;&amp;#039;&amp;#039; для загрузки AI Voice Training data или других аддонов, все загрузку мгновенно падают со статусом &amp;#039;&amp;#039;&amp;#039;Download failed&amp;#039;&amp;#039;&amp;#039;. Это происходит из-за [https://forum.blackmagicdesign.com/viewtopic.php?f=40&amp;amp;t=218788#p1141546 жёстко встроенных путей TLS сертификатов] в Resolve. Вы можете вручную добавить символьную ссылку чтобы встроенный менеджер загрузки работал.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/pki/&lt;br /&gt;
 ln -s /etc/ssl /etc/pki/tls&lt;br /&gt;
&lt;br /&gt;
Extras расположены в &amp;#039;&amp;#039;&amp;#039;/opt/resolve/Extras/&amp;#039;&amp;#039;&amp;#039;, убедитесь что там достаточно места и ваш аккаунт имеет права на запись.&lt;br /&gt;
&lt;br /&gt;
=== Невозможно активировать лицензию. Пожалуйста попробуйте позже ===&lt;br /&gt;
&lt;br /&gt;
Иногда появляется ошибка при активации Davinci Resolve Studio в первый раз после свежей установки или обновления. Обычно это исправляется выполнением&lt;br /&gt;
&lt;br /&gt;
 sudo chmod -R 7777 /opt/resolve/.license/&lt;br /&gt;
&lt;br /&gt;
В ином случае, если у вас ещё есть .license директория с вашей предыдущей установки эта проблема может быть решена копированием её поверх.&lt;br /&gt;
&lt;br /&gt;
=== Установленные шрифты не отображаются в DaVinci Resolve ===&lt;br /&gt;
&lt;br /&gt;
DaVinci Resolve “Текст” обьект пытается загрузить только [[fonts|шрифты]] установленные системно в {{ic|/usr/share/fonts}} или {{ic|/usr/local/share/fonts}} директории. Всё же, обьект “Текст+” (который так же используется для текста в Fusion композициях) загружает шрифты только из {{ic|/usr/share/fonts}}.&lt;br /&gt;
&lt;br /&gt;
Если вы не находите шрифт который установили, проверьтре что он в  {{ic|/usr/share/fonts}} (системные шрифты) вместо{{ic|/usr/local/share/fonts/}} (системные шрифты) или {{ic|~/.local/share/fonts}} (пользовательские шрифты). Можно просто создать символьную ссылку внутри {{ic|/usr/share/fonts}} которая указывает на {{ic|/usr/local/share/fonts}}. Но всё же это &amp;#039;&amp;#039;&amp;#039;Не рекомендуется&amp;#039;&amp;#039;&amp;#039;, так как эта директория управляется [[Pacman (Русский)|pacman]] и это может привести к конфликтам пакетов.&lt;br /&gt;
&lt;br /&gt;
=== Падение при нажатии кнопки во вкладке Fusion ===&lt;br /&gt;
&lt;br /&gt;
Скорее всего Fusion требует US-локаль, добавьте её и сгенерируйте локаль [[Locale (Русский)#Генерирование локалей]] :&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/locale.gen|&lt;br /&gt;
...&lt;br /&gt;
en_US.UTF-8 UTF-8&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
=== Воспроизведение возможно только в Fairlight ===&lt;br /&gt;
&lt;br /&gt;
DaVinci Resolve с Radeon 6700 XT (возможно и с подобными картами) кажется требует {{AUR|opencl-amd}} и не работает с {{Pkg|rocm-opencl-runtime}}.&lt;br /&gt;
&lt;br /&gt;
=== Davinci Resolve не запускается (ошибка сегментации) при использовании opencl-amd 7.2 ===&lt;br /&gt;
Решением будет откат до последней рабочей версии  {{AUR|opencl-amd}}:&lt;br /&gt;
 git clone https://aur.archlinux.org/opencl-amd.git&lt;br /&gt;
 cd opencl-amd&lt;br /&gt;
 git checkout 42c9eb7&lt;br /&gt;
 makepkg -si&lt;br /&gt;
Дополнительно, вы можете заблокировать пакет от обновления отредактировав ваш /etc/pacman.conf файл:&lt;br /&gt;
 IgnorePkg = opencl-amd&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.blackmagicdesign.com/viewtopic.php?f=21&amp;amp;t=56878&amp;amp;p=456990#p456924 Пост] на форуме Davinci Resolve с протестированными конфигурациями.&lt;br /&gt;
* PDF список [https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_19_Supported_Codec_List.pdf Поддерживаемых форматов и кодеков] для DaVinci Resolve 19&lt;br /&gt;
* [https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion Здесь] вы можете проверить выпустили ли BMD документ о новой версии. Также, он показывает нововведения для каждого релиза.&lt;br /&gt;
* [https://resolvedevdoc.readthedocs.io/en/latest/ ResolveDevDoc] - Неоффициальная документация для скриптинга. Форматировано с readthedocs и приятнее для чтения/изучения чем оригинальный txt файл.&lt;br /&gt;
* [https://github.com/pedrolabonia/pydavinci pydavinci] - переработанный api для скриптинга&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/OnexPlayer_X1_A</id>
		<title>OnexPlayer X1 A</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/OnexPlayer_X1_A"/>
		<updated>2026-04-16T10:35:15Z</updated>

		<summary type="html">&lt;p&gt;Elecleus: add some content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:OnexPlayer]]&lt;br /&gt;
{{Laptop style|Misses some section.}}&lt;br /&gt;
{| class=&amp;quot;wikitable archwiki-table-laptop&amp;quot;&lt;br /&gt;
! Hardware !! PCI/USB ID !! Working?&lt;br /&gt;
|-&lt;br /&gt;
| GPU || {{ic|1002:1900}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Wi-Fi || {{ic|8086:2725}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || {{ic|8087:0032}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Audio || {{ic|1022:15e3}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard/Pointer || {{ic|258a:001e}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Webcam || {{ic|3252:0004}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint || {{ic|2808:c652}} || {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || || {{Y|wrong device id}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
OnexPlayer X1 A is a 10.95&amp;quot; detectable laptop with a 1600x2560 portrait display, touchscreen, and accelerometer for tablet mode.&lt;br /&gt;
&lt;br /&gt;
== Screen orientation ==&lt;br /&gt;
&lt;br /&gt;
The display panel is physically portrait (1600x2560) and requires rotation for normal laptop use: see [[Tablet PC#Screen rotation]].&lt;br /&gt;
&lt;br /&gt;
== Touchscreen ==&lt;br /&gt;
&lt;br /&gt;
The touchscreen (NVTK0603) requires calibration to match the display rotation.&lt;br /&gt;
&lt;br /&gt;
== Turbo Button and LED ==&lt;br /&gt;
&lt;br /&gt;
A Turbo Button and its associated LED are located at the top right corner.  &lt;br /&gt;
The driver for these has been included in the mainline kernel.&lt;br /&gt;
&lt;br /&gt;
* {{ic|/sys/devices/platform/oxp-platform/tt_led}} controls/indicates the LED state.  &lt;br /&gt;
* {{ic|/sys/devices/platform/oxp-platform/tt_toggle}} configures the button behavior:&lt;br /&gt;
** When set to {{ic|1}}, pressing the button generates a keyboard event ({{ic|Super+Ctrl+Alt}}).  &lt;br /&gt;
** When set to {{ic|0}}, pressing the button only toggles the LED.&lt;/div&gt;</summary>
		<author><name>Elecleus</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Iscsi-util</id>
		<title>Iscsi-util</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Iscsi-util"/>
		<updated>2026-04-13T00:26:41Z</updated>

		<summary type="html">&lt;p&gt;Cerratonix: Added information about requirement for appimage to work propperly.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;iscsi-util&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Linux tool written in C# with Avalonia to discover, connect, and manage iSCSI targets easily through a graphical interface.&lt;br /&gt;
&lt;br /&gt;
Inspired by the Microsoft Windows iSCSI Initiator, this application provides a clean, intuitive GUI so any user can work with iSCSI without touching the terminal.&lt;br /&gt;
&lt;br /&gt;
🧩 Overview&lt;br /&gt;
iscsi-util is a self‑contained tool that requires no manual configuration and no command‑line usage once installed.&lt;br /&gt;
Although it was originally developed for Manjaro/Arch, portable binaries are available and work correctly on other Linux distributions.&lt;br /&gt;
&lt;br /&gt;
👉 Download AppImage:  &lt;br /&gt;
[https://github.com/mijocecr/Iniciador-iSCSI-GUI-Manjaro/releases/download/iscsi-util-1.0.6/ISCSI_Util-x86_64.AppImage iscsi-util]&lt;br /&gt;
&lt;br /&gt;
✨ Features&lt;br /&gt;
Graphical discovery and connection of iSCSI destinations&lt;br /&gt;
&lt;br /&gt;
Support for:&lt;br /&gt;
&lt;br /&gt;
 * Unidirectional CHAP&lt;br /&gt;
&lt;br /&gt;
 * Mutual/Bidirectional CHAP&lt;br /&gt;
&lt;br /&gt;
 * Ability to initialize new iSCSI disks with ext4 when no filesystem is present&lt;br /&gt;
&lt;br /&gt;
 * Option to persist connections across reboots&lt;br /&gt;
&lt;br /&gt;
The AppImage requires: open-iscsi&lt;br /&gt;
&lt;br /&gt;
No .NET runtime required (fully self‑contained build)&lt;br /&gt;
&lt;br /&gt;
The goal is simple: any user should be able to connect to their iSCSI storage without writing a single command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
📦 Installation&lt;br /&gt;
Manjaro / Arch Linux:  &amp;#039;&amp;#039;&amp;#039;yay -S iscsi-util&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manual build with dotnet&lt;br /&gt;
git clone https://github.com/mijocecr/ISCSI-Util.git iscsi-util&lt;br /&gt;
&lt;br /&gt;
cd iscsi-util&lt;br /&gt;
&lt;br /&gt;
dotnet build&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mijocecr/Iniciador-iSCSI-GUI-Manjaro iscsi-util  - Github Repository]&lt;/div&gt;</summary>
		<author><name>Cerratonix</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Fluxer</id>
		<title>Fluxer</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Fluxer"/>
		<updated>2026-04-08T21:31:33Z</updated>

		<summary type="html">&lt;p&gt;IlCande: Created the Fluxer page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Applications]]&lt;br /&gt;
[[Category:Internet]]&lt;br /&gt;
[[Category:Instant messaging]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{App|Fluxer|A modern, A chat app that puts you first.|https://fluxer.app/|{{AUR|fluxer-bin}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Fluxer&amp;#039;&amp;#039;&amp;#039; is a free and open-source communication platform that provides text, voice, and video chat capabilities. It is designed as a user-friendly alternative to proprietary platforms like Discord, focusing on privacy and customization.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Flatpak ===&lt;br /&gt;
&lt;br /&gt;
The preferred installation method is via [[Flatpak]].&lt;br /&gt;
&lt;br /&gt;
Use the command:&lt;br /&gt;
 # flatpak install flathub app.fluxer.Fluxer&lt;br /&gt;
&lt;br /&gt;
See the [https://flathub.org/en/apps/app.fluxer.Fluxer official flathub page] for addition info on the package.&lt;br /&gt;
&lt;br /&gt;
=== AUR ===&lt;br /&gt;
&lt;br /&gt;
Fluxer is also available in the [[Arch User Repository]].&lt;br /&gt;
&lt;br /&gt;
Install the Fluxer app via  {{AUR|fluxer-bin}} package (or {{AUR|fluxer-git}} for the latest commit)&lt;br /&gt;
&lt;br /&gt;
=== Other ways to install ===&lt;br /&gt;
&lt;br /&gt;
Alternatively, the project provides various formats such as &amp;#039;&amp;#039;&amp;#039;AppImage&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;tar.gz&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;RPM&amp;#039;&amp;#039;&amp;#039; and more.&lt;br /&gt;
&lt;br /&gt;
you can download it directly from the [https://fluxer.app/ official Fluxer website].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Launch Fluxer from your desktop environment&amp;#039;s application menu, or via the command line:&lt;br /&gt;
&lt;br /&gt;
 $ fluxer&lt;br /&gt;
&lt;br /&gt;
=== First Run ===&lt;br /&gt;
&lt;br /&gt;
Upon first launch, you will be prompted to create an account or log in.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
Configuration files are typically stored in the standard XDG directories.&lt;br /&gt;
&lt;br /&gt;
~/.config/fluxer/&lt;br /&gt;
&lt;br /&gt;
{{warning| The configuration folder location may change depending on the installation method.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Themes and Customization ===&lt;br /&gt;
&lt;br /&gt;
Fluxer supports custom themes via CSS.&lt;br /&gt;
&lt;br /&gt;
To apply a custom theme:&lt;br /&gt;
&lt;br /&gt;
1. Navigate to Settings → Look &amp;amp; Feel.&lt;br /&gt;
&lt;br /&gt;
2. Paste/Write your CSS code.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [https://fluxer.app/ Official Website]&lt;br /&gt;
* [https://github.com/fluxerapp/fluxer GitHub Repository]&lt;br /&gt;
* [https://flathub.org/en/apps/app.fluxer.Fluxer Flathub page]&lt;/div&gt;</summary>
		<author><name>IlCande</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/BitNet-git</id>
		<title>BitNet-git</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/BitNet-git"/>
		<updated>2026-04-04T12:25:36Z</updated>

		<summary type="html">&lt;p&gt;Indigo: /* Run inference with ease */ apply Help:Style/Formatting and punctuation#Cases by formatting/punctuation to configuration params&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Graphics]]&lt;br /&gt;
[https://aur.archlinux.org/packages/bitnet-git bitnet-git] provides the official inference framework for 1-bit Large Language Models (LLMs), based on [https://github.com/microsoft/BitNet Microsoft&amp;#039;s bitnet.cpp]. It is optimized for fast and energy-efficient inference on CPUs and GPUs using 1.58-bit quantization.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{Aur|bitnet-git}} package.&lt;br /&gt;
&lt;br /&gt;
== Hardware optimization ==&lt;br /&gt;
&lt;br /&gt;
The package automatically detects your architecture and uses the most appropriate kernels:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;x86_64:&amp;#039;&amp;#039;&amp;#039; Uses &amp;#039;&amp;#039;&amp;#039;TL2&amp;#039;&amp;#039;&amp;#039; (optimized Lookup Table kernel) for maximum performance.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;aarch64:&amp;#039;&amp;#039;&amp;#039; Uses &amp;#039;&amp;#039;&amp;#039;TL1&amp;#039;&amp;#039;&amp;#039; (optimized for ARMv8.2+).&lt;br /&gt;
&lt;br /&gt;
== Global models management ==&lt;br /&gt;
&lt;br /&gt;
To streamline your workflow, we recommend setting up a global models directory and a shell helper. This allows you to run models by name without typing full paths or URIs.&lt;br /&gt;
&lt;br /&gt;
==== Create the models directory ====&lt;br /&gt;
&lt;br /&gt;
Create a standard directory in your home folder:&lt;br /&gt;
 $ mkdir -p ~/.local/share/bitnet/models&lt;br /&gt;
&lt;br /&gt;
==== Configure your shell ====&lt;br /&gt;
&lt;br /&gt;
Add the following to your {{ic|~/.bashrc}} or {{ic|~/.zshrc}}:&lt;br /&gt;
&lt;br /&gt;
 # BitNet Models Directory&lt;br /&gt;
 export BITNET_MODELS_DIR=&amp;quot;$HOME/.local/share/bitnet/models&amp;quot;&lt;br /&gt;
 # BitNet Runner Helper&lt;br /&gt;
 bitnet-run() {&lt;br /&gt;
    if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Usage: bitnet-run &amp;lt;model_filename&amp;gt; [additional_args]&amp;quot;&lt;br /&gt;
        return 1&lt;br /&gt;
    fi&lt;br /&gt;
    local model_name=&amp;quot;$1&amp;quot;&lt;br /&gt;
    shift&lt;br /&gt;
    llama-cli -m &amp;quot;$BITNET_MODELS_DIR/$model_name&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Reload your shell: {{ic|source ~/.bashrc}} (or {{ic|~/.zshrc}}).&lt;br /&gt;
&lt;br /&gt;
==== Download a model ====&lt;br /&gt;
&lt;br /&gt;
Download a recommended model directly into your new directory:&lt;br /&gt;
&lt;br /&gt;
 # Download the BitNet 2B model&lt;br /&gt;
 wget -P &amp;quot;$BITNET_MODELS_DIR&amp;quot; https://huggingface.co/microsoft/BitNet-b1.58-2B-4T-gguf/resolve/main/ggml-model-i2_s.gguf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Run inference with ease ====&lt;br /&gt;
&lt;br /&gt;
Now you can run the model simply by referencing its filename:&lt;br /&gt;
&lt;br /&gt;
 bitnet-run ggml-model-i2_s.gguf -p &amp;quot;What are the benefits of 1-bit LLMs?&amp;quot; -cnv&lt;br /&gt;
&lt;br /&gt;
===== Options =====&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;-m &amp;lt;path&amp;gt;:&amp;#039;&amp;#039;&amp;#039; Path to the GGUF model file.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;-p &amp;lt;&amp;quot;prompt&amp;quot;&amp;gt;:&amp;#039;&amp;#039;&amp;#039; Initial prompt for the model.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;-t &amp;lt;threads&amp;gt;:&amp;#039;&amp;#039;&amp;#039; Number of CPU threads to use, e.g., {{ic|-t 4}}.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;-temp &amp;lt;value&amp;gt;:&amp;#039;&amp;#039;&amp;#039; Control randomness, e.g. {{ic|-temp 0.7}}.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;-cnv:&amp;#039;&amp;#039;&amp;#039; Enable conversation/chat mode.&lt;br /&gt;
&lt;br /&gt;
==== Serving the model via API ====&lt;br /&gt;
You can also run a local API server compatible with OpenAI&amp;#039;s API:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 bitnet-run -m ggml-model-i2_s.gguf --port 8080&lt;br /&gt;
&lt;br /&gt;
Then you can access it via http://localhost:8080.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ Recommended Models (x86_64)&lt;br /&gt;
|-&lt;br /&gt;
! Model !! Parameters !! Size (GGUF) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bitnet_b1_58-large || 0.7B || ~150 MB || Blazing fast, great for testing.&lt;br /&gt;
|-&lt;br /&gt;
| BitNet-b1.58-2B-4T || 2.4B  || ~500 MB || Best overall balance for daily use.&lt;br /&gt;
|-&lt;br /&gt;
| bitnet_b1_58-3B || 3.3B || ~700 MB || High performance, slightly more capable.&lt;br /&gt;
|-&lt;br /&gt;
| Llama3-8B-1.58 || 8.0B || ~1.6 GB || High quality, requires more RAM.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Build Failures:&amp;#039;&amp;#039;&amp;#039; Ensure you have [https://archlinux.org/packages/core/any/base-devel/ base-devel], [[CMake package guidelines|cmake]], and [[Clang|clang]] installed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Model Errors:&amp;#039;&amp;#039;&amp;#039; Verify the model file is a valid GGUF and resides in your &amp;#039;&amp;#039;&amp;#039;$BITNET_MODELS_DIR&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Orkut</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Media_Transfer_Protocol_(Magyar)</id>
		<title>Media Transfer Protocol (Magyar)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Media_Transfer_Protocol_(Magyar)"/>
		<updated>2026-03-30T18:02:47Z</updated>

		<summary type="html">&lt;p&gt;Torontal-varmegye: /* Csatlakoztatás */ Fordítás magyar nyelvre.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TranslationStatus (Magyar)|Media Transfer Protocol|2026.03.31|870267}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Storage (Magyar)]]&lt;br /&gt;
[[Category:Mobile devices (Magyar)]]&lt;br /&gt;
[[de:MTP]]&lt;br /&gt;
[[en:Media Transfer Protocol]]&lt;br /&gt;
[[ja:MTP]]&lt;br /&gt;
[[zh-hans:Media Transfer Protocol]]&lt;br /&gt;
{{Related articles start (Magyar)}}&lt;br /&gt;
{{Related|Android#Transferring files}}&lt;br /&gt;
{{Related|USB storage devices (Magyar)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
A [[Wikipedia:Media Transfer Protocol|Media Transfer Protocol]] (MTP protokoll) felhasználható médiafájlok átvitelére sok mobiltelefon (minden Windows Phone 7/8/10 készülék, a legtöbb újabb [[Android (Magyar)|Android]] készülék) és médialejátszó (pl. Creative Zen) között.&lt;br /&gt;
== Csatlakoztatás ==&lt;br /&gt;
&lt;br /&gt;
Az MTP protokollt felhasználva, a számítógéphez a következőképpen lehet hozzácsatlakoztatni a készüléket:&lt;br /&gt;
&lt;br /&gt;
* A készüléket USB vezeték segítségével kell hozzácsatlakoztatni a számítógéphez.&lt;br /&gt;
* Az MTP protokollt engedélyezni kell a készüléken.&lt;br /&gt;
* A készülék képernyőjét fel kell oldani (biztonsági okok miatt).&lt;br /&gt;
&lt;br /&gt;
== FUSE fájlrendszerek ==&lt;br /&gt;
&lt;br /&gt;
A következő programok lehetővé teszik azt, hogy Ön MTP készülékeket érjen el [[FUSE (Magyar)|FUSE]] fájlrendszeren keresztül.&lt;br /&gt;
{{Note (Magyar)|Az MTP zavaros, és a implementációja készülékenként eltérő. Próbálja ki az alábbi kliensprogramokat, és nézze meg, hogy melyik működik a legjobban az Ön székülékével.}}&lt;br /&gt;
{{Tip (Magyar)|Az MTP protokollal kapcsolatos szoftvercsomagok feltelepítése után ajánlott újraindítani a számítógépet.}}&lt;br /&gt;
A FUSE-alapú fájlrendszerek esetében előfordulhat, hogy először létre kell hozni a csatolási pont könyvtárát. Az alábbi példákban a {{ic|~/mnt}} könyvtárat használjuk.&lt;br /&gt;
&lt;br /&gt;
A FUSE felcsatolások általában a {{ic|fusermount -u &amp;#039;&amp;#039;felcsatolási pont&amp;#039;&amp;#039;}} paranccsal választhatók le a fájlrendszerünkről.&lt;br /&gt;
&lt;br /&gt;
=== Android File Transfer ===&lt;br /&gt;
&lt;br /&gt;
{{App|Android File Transfer|MTP kliensprogram. Parancssori felülettel, Qt grafikus felülettel, és FUSE szoftvercsomaggal rendelkezik, amely egy egyedi MTP implementációt használ.|https://whoozle.github.io/android-file-transfer-linux/|{{Pkg|android-file-transfer}}}}&lt;br /&gt;
&lt;br /&gt;
Csatolja fel az Ön készülékét a {{ic|~/mnt}} könyvtárba:&lt;br /&gt;
&lt;br /&gt;
 $ aft-mtp-mount ~/mnt&lt;br /&gt;
&lt;br /&gt;
Futtassa a fenti parancsot, hogy az album borítója megjelenjen, az album neve {{ic|albumart.xxx}} legyen, és elsőként kerüljön a célkönyvtárba. Ezután másolja a többi fájlt. Vegye figyelembe, hogy a fuse akár 7–8-szor lassabb lehet, mint a grafikus vagy parancssori fájlátvitel.&lt;br /&gt;
&lt;br /&gt;
Ha a parancssori felületen keresztül szeretne vele dolgozni, futtassa a következő parancsot:&lt;br /&gt;
&lt;br /&gt;
 $ aft-mtp-cli&lt;br /&gt;
&lt;br /&gt;
Parancssorban Ön írja be a &amp;#039;&amp;#039;help&amp;#039;&amp;#039; parancsot az összes elérhető parancs kilistázása érdekében, illetve az &amp;#039;&amp;#039;exit&amp;#039;&amp;#039; parancsot a kilépés érdekében.&lt;br /&gt;
&lt;br /&gt;
Ha Ön a grafikus felhasználói felületen keresztül szeretne vele dolgozni, akkor indítsa el az &amp;#039;&amp;#039;android-file-transfer&amp;#039;&amp;#039; alkalmazást, válasszon ki egy célkönyvtárat, majd kattintson a menüsor bármely gombjára. Az elérhető lehetőségek: &amp;#039;&amp;#039;Upload Album&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Upload Directory&amp;#039;&amp;#039; és &amp;#039;&amp;#039;Upload Files&amp;#039;&amp;#039;. Az utóbbi kettő magától értetődő. Az &amp;#039;&amp;#039;Upload Album&amp;#039;&amp;#039; a forráskönyvtárban keresi meg az albumborítókat, és beállítja a legjobb elérhető borítót.&lt;br /&gt;
&lt;br /&gt;
=== MTPfs ===&lt;br /&gt;
&lt;br /&gt;
{{App|MTPfs|A [[#libmtp|libmtp]] alapján működő FUSE fájlrendszer, amely támogatja a bármely MTP készülékről történő olvasást és írást.|https://www.adebenham.com/mtpfs/|{{Pkg|mtpfs}}}}&lt;br /&gt;
{{Note (Magyar)|A következő valószínűleg nem fog működni, és előfordulhat, hogy Önnek a [[libgphoto2 (Magyar)|libgphoto2]] használatára vagy egy gvfs fájlrendszert támogató fájlkezelőre, például a [[PCManFM (Magyar)|PCManFM]] fájlkezelőre kell hagyatkoznia. }}&lt;br /&gt;
&lt;br /&gt;
Először szerkessze a {{ic|/etc/fuse.conf}} fájlt, vegye ki a megjegyzést a következő sor elől:&lt;br /&gt;
&lt;br /&gt;
 user_allow_other&lt;br /&gt;
&lt;br /&gt;
Majd csatolja fel az Ön készülékét a {{ic|~/mnt}} könyvtárba:&lt;br /&gt;
&lt;br /&gt;
 $ mtpfs -o allow_other ~/mnt&lt;br /&gt;
&lt;br /&gt;
=== jmtpfs ===&lt;br /&gt;
&lt;br /&gt;
{{App|jmtpfs|A [[#libmtp|libmtp]] alapján az MTP (Media Transfer Protocol) készülékek eléréséhez.|https://github.com/JasonFerrara/jmtpfs|{{AUR|jmtpfs}}}}&lt;br /&gt;
&lt;br /&gt;
Csatolja fel a készüléket a {{ic|~/mnt}} könyvtárba:&lt;br /&gt;
&lt;br /&gt;
 $ jmtpfs ~/mnt&lt;br /&gt;
&lt;br /&gt;
Illessze a Linux többi részéhez (használja a szokásos mount/umount parancsokat) kettő lépésben:&lt;br /&gt;
&lt;br /&gt;
 $# ln -s &amp;lt;actual mount command&amp;#039;s path/name&amp;gt;  &amp;lt;a name consistent with Linux&amp;#039;s mount convention&amp;gt;&lt;br /&gt;
 $  ln -s /sbin/jmtpfs                        /sbin/mount.jmtpfs&lt;br /&gt;
&lt;br /&gt;
Adja hozzá ezt az {{ic|/etc/fstab}} fájlhoz:&lt;br /&gt;
&lt;br /&gt;
  #jmtpfs &amp;lt;mount path&amp;gt;        fuse nodev,allow_other,&amp;lt;other options&amp;gt;                             0    0&lt;br /&gt;
   jmtpfs /home/sam/run/motog fuse nodev,allow_other,rw,user,noauto,noatime,uid=1000,gid=1000    0    0&lt;br /&gt;
&lt;br /&gt;
Végül, csatolja fel a készüléket, és ellenőrizze, hogy az opciók &amp;quot;érvényesültek-e&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
  $ mount /home/sam/run/motog&lt;br /&gt;
  Device 0 (VID=22b8 and PID=2e82) is a Motorola Moto G (ID2).&lt;br /&gt;
  Android device detected, assigning default bug flags&lt;br /&gt;
  $ mount &lt;br /&gt;
   ...&lt;br /&gt;
   jmtpfs on /home/sam/run/motog type fuse.jmtpfs (rw,nosuid,nodev,noexec,noatime,user_id=1000,group_id=1000,allow_other,user=sam)&lt;br /&gt;
&lt;br /&gt;
=== SIMPLE-MTPFS ===&lt;br /&gt;
&lt;br /&gt;
{{App|SIMPLE-MTPFS|A [[#libmtp|libmtp]] alapú Simple Media Transfer Protocol FileSystem egy olyan fájlrendszer, amely képes a helyi számítógéphez USB vezeték segítségével csatalakoztatott MTP készülékeken lévő fájlok kezelésére.|https://github.com/phatina/simple-mtpfs/|{{AUR|simple-mtpfs}}}}&lt;br /&gt;
&lt;br /&gt;
Az észlelt készülékek kilistázása érdekében Ön futtassa a {{ic|simple-mtpfs -l}} parancsot.&lt;br /&gt;
&lt;br /&gt;
Annak érdekében, hogy a listából az első készülék a {{ic|~/mnt}} könyvtárba fel legyen csatolva, Ön futtassa a {{ic|simple-mtpfs --device 1 ~/mnt}} parancsot.&lt;br /&gt;
&lt;br /&gt;
=== go-mtpfs ===&lt;br /&gt;
&lt;br /&gt;
{{App|go-mtpfs|Egy FUSE fájlrendszer egyedi MTP implementációval. Go programozási nyelven lett megírva.|https://github.com/hanwen/go-mtpfs|{{AUR|go-mtpfs-git}}}}&lt;br /&gt;
&lt;br /&gt;
Telepítse fel a számítógépre az {{Pkg|android-udev}} szoftvercsomagot, amely lehetővé teszi a {{ic|/etc/udev/rules.d/51-android.rules}} fájl szerkesztését, és az Ön {{ic|idVendor}} valamint {{ic|idProduct}} értékeinek alkalmazását, amelyeket Ön az &amp;#039;&amp;#039;mtp-detect&amp;#039;&amp;#039; futtatása után láthat. A sor végére adja hozzá az Ön felhasználóját: {{ic|1=OWNER=&amp;quot;&amp;#039;&amp;#039;ide az Ön felhasználója kerül&amp;#039;&amp;#039;&amp;quot;}}.&lt;br /&gt;
&lt;br /&gt;
Csatolja fel a készüléket a {{ic|~/mnt}} könyvtárba:&lt;br /&gt;
&lt;br /&gt;
 $ go-mtpfs ~/mnt&lt;br /&gt;
&lt;br /&gt;
{{Note (Magyar)|&lt;br /&gt;
* Ha Ön több készüléket is használ, akkor érdemes a {{ic|-d}} kapcsolót használni egy bizonyos készülék megadása érdekében. (Ennek az egy bizonyos készüléknek az azonosítóját az {{ic|mtp-detect}} futtatásával lehet megtalálni).&lt;br /&gt;
* Ha külső SD-kártya van jelen, akkor a {{ic|go-mtpfs}} használatával történő felcsatolás sikertelen lehet. Ha Ön SD-kártyával próbálja elérni a készüléket, és a go-mtpfs hibát jelez, akkor próbálja meg eltávolítani az SD-kártyát, majd újból próbálja meg a felcsatolási műveletet végrehajtani.&lt;br /&gt;
* Ez a szoftvercsomag 2020 óta nincs karbantartva.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== libmtp ==&lt;br /&gt;
&lt;br /&gt;
A [https://libmtp.sourceforge.net/ libmtp] egy MTP implementációt nyújtó függvénykönyvtár, amely néhány például szolgáló parancssori programmal is érkezik. (Ezeket a programokat Ön felsorolhatja a {{ic|pacman -Ql libmtp}} parancs segítségével).&lt;br /&gt;
&lt;br /&gt;
[[Install (Magyar)|Telepítse fel]] a számítógépre a {{Pkg|libmtp}} szoftvercsomagot.&lt;br /&gt;
&lt;br /&gt;
Futtassa az {{ic|mtp-detect}} parancsot a készülék felismerése érdekében.&lt;br /&gt;
&lt;br /&gt;
Amennyiben Ön hibát kap vissza, akkor győződjön meg róla, hogy az Ön felhasználója tagja az {{ic|adbusers}} [[user group (Magyar)|felhasználói csoportnak]].&lt;br /&gt;
&lt;br /&gt;
A {{ic|libmtp}} tulajdonképpen függvénykönyvtárként való felhasználásra szolgál, nem végfelhasználók számár lett kitalálva. Az {{ic|mtp-detect}} parancson kívül a többi parancssori program a mindennapi munkához valószínűleg szükségtelen. A fejlesztő ezeket a programokat csak példaként említi. Úgymint például 2025 januárjában a [https://github.com/libmtp/libmtp/blob/676b208c5a84e5d9c001c2ae6dbcb34efb3eceb0/README#L115-L138 README fájl 115–138. sorainál]. Konkrétabb példáért tekintse meg a régi, de szemléltető [https://unix.stackexchange.com/a/328681 Fájl másolása MTP készülékről libmtp használatával (USB vezetéken keresztül)] című javaslatot. Ajánlott egy front end program használata.&lt;br /&gt;
&lt;br /&gt;
=== Front end programok ===&lt;br /&gt;
&lt;br /&gt;
{{App|gMTP|Egy grafikus felhasználói felülettel rendelkező front end program a libmtp számára. Lehetővé teszi Android készülékek felcsatlakoztatását és a fájlok kezelését asztali környezetfüggetlen grafikus felületen.|https://gmtp.sourceforge.io/|{{Pkg|gmtp}}}}&lt;br /&gt;
&lt;br /&gt;
== Médialejátszók ==&lt;br /&gt;
&lt;br /&gt;
Ön a saját MTP készülékét használhatja zenelejátszókkal együtt, például az [[Amarok (Magyar)|Amarok]] zenelejátszó programmal együtt is. A felhasználás érdekében előfordulhat, hogy Önnek szerkesztenie kell a {{ic|/etc/udev/rules.d/51-android.rules}} fájlt. (Az alábbi példában használt MTP készülék egy Galaxy Nexus mobiltelefon).  &lt;br /&gt;
Parancssorban futtassa a következő parancsot:&lt;br /&gt;
&lt;br /&gt;
 $ lsusb&lt;br /&gt;
&lt;br /&gt;
Keresse meg az Ön saját készülékét. Valószínűleg valami ilyesmi lesz:&lt;br /&gt;
&lt;br /&gt;
 Bus 003 Device 011: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II], GT-P7500 [Galaxy Tab 10.1]&lt;br /&gt;
&lt;br /&gt;
Továbbá, a {{ic|/etc/udev/rules.d/51-android.rules}} fájlba belekerülő bejegyzés így fog kinézni:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;04e8&amp;quot;, ATTR{idProduct}==&amp;quot;6860&amp;quot;, MODE=&amp;quot;0666&amp;quot;, OWNER=&amp;quot;[username]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Töltse be újra az udev szabályokat is:&lt;br /&gt;
&lt;br /&gt;
 # udevadm control --reload&lt;br /&gt;
&lt;br /&gt;
== Fájlkezelő integrációja ==&lt;br /&gt;
&lt;br /&gt;
Ön a saját Android készülékében lévő tárhely tartalmát megtekintheti (MTP protokollon keresztül) a fájlkezelőben a megfelelő bővítmény feltelepítésével:&lt;br /&gt;
&lt;br /&gt;
* Azokhoz a fájlkezelőkhöz, amelyek [[GVFS (Magyar)|GVFS]] fájlrendszert használnak (GNOME Files), telepítse fel a számítógépre a {{Pkg|gvfs-mtp}} szoftvercsomagot MTP protokollhoz vagy a {{Pkg|gvfs-gphoto2}} szoftvercsomagot telepítse fel a PTP protokoll támogatásához.&lt;br /&gt;
* Azokhoz a fájlkezelőkhöz, amelyek KIO (KDE Input/Output) keretrendszert használnak (KDE Dolphin), az MTP támogatás a {{Pkg|kio-extras}} szoftvercsomagban található (a dolphin szoftvercsomag-függősége).&lt;br /&gt;
&lt;br /&gt;
A szükséges szoftvercsomag számítógépre történő feltelepítése után a készüléknek automatikusan meg kell jelennie a fájlkezelőben, és elérhetővé válik egy URL címen keresztül, például {{ic|mtp://[usb:002,013]/}}.&lt;br /&gt;
&lt;br /&gt;
=== gvfs-mtp ===&lt;br /&gt;
&lt;br /&gt;
{{Merge|udev}}&lt;br /&gt;
&lt;br /&gt;
A {{Pkg|gvfs-mtp}} szoftvercsomag elérhető a hivatalos szoftvercsomag-tárolókban.&lt;br /&gt;
&lt;br /&gt;
Az {{ic|lsusb}} használatával információt kaphat az Ön saját készülékéről, ahol a Bus és Device számok a {{ic|gvfs-mtp}}-vel és az készülékazonosítóval együtt felhasználhatók egy [[udev (Magyar)|udev]] szabály létrehozásához.&lt;br /&gt;
&lt;br /&gt;
 Bus &amp;#039;&amp;#039;&amp;#039;002&amp;#039;&amp;#039;&amp;#039; Device &amp;#039;&amp;#039;&amp;#039;018&amp;#039;&amp;#039;&amp;#039;: ID &amp;#039;&amp;#039;&amp;#039;04b7&amp;#039;&amp;#039;&amp;#039;:&amp;#039;&amp;#039;&amp;#039;88a9&amp;#039;&amp;#039;&amp;#039; Compal Electronics, Inc.&lt;br /&gt;
&lt;br /&gt;
Az MTP protokollt használó készülékek megtekintése érdekében Ön&lt;br /&gt;
&lt;br /&gt;
használja a &amp;#039;&amp;#039;gio mount&amp;#039;&amp;#039; lehetőséget:&lt;br /&gt;
&lt;br /&gt;
{{hc|gio mount -li {{!}} grep -e ^Volume -e activation_root|2=&lt;br /&gt;
Volume(0): MT65xx Android Phone&lt;br /&gt;
  activation_root=mtp://[usb:&amp;#039;&amp;#039;&amp;#039;002&amp;#039;&amp;#039;&amp;#039;,&amp;#039;&amp;#039;&amp;#039;018&amp;#039;&amp;#039;&amp;#039;]/&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Használja az &amp;#039;&amp;#039;lsusb&amp;#039;&amp;#039; programot:&lt;br /&gt;
&lt;br /&gt;
{{hc|lsusb -v 2&amp;gt; /dev/null {{!}} grep -e Bus -e iInterface -e bInterfaceProtocol|&lt;br /&gt;
...&lt;br /&gt;
Bus 002 Device 018: ID 04b7:88a9 Compal Electronics, Inc. &lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 MTP&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
Az összes elérhető, csatlakoztatott MTP készülék felcsatolása érdekében Ön használjon inline szkriptet:&lt;br /&gt;
&lt;br /&gt;
 gio mount -li | awk -F= &amp;#039;{if(index($2,&amp;quot;mtp&amp;quot;) == 1)system(&amp;quot;gio mount &amp;quot;$2)}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A {{ic|gvfs-mtp}} parancs használatával (a Bus és Device számok segítségével) fel lehet csatolni vagy le lehet választani az készüléket. Például a felcsatolás érdekében: {{ic|gio mount mtp://[usb:001,007]/}}, a leválasztás érdekében pedig: {{ic|gio mount -u mtp://[usb:001,007]/}}.&lt;br /&gt;
A felcsatolt készülék egy olyan könyvtárban lesz elérhető, amely &amp;#039;&amp;#039;mtp:host=&amp;#039;&amp;#039; előtaggal kezdődik, és a &amp;#039;&amp;#039;/run/user/$UID/gvfs/&amp;#039;&amp;#039; alatt található.&lt;br /&gt;
&lt;br /&gt;
Az MTP készülékek automatikus felcsatolódásának letiltása érekében, Önnek a {{ic|gvfs}} használatával módosítania kell az &amp;#039;&amp;#039;AutoMount&amp;#039;&amp;#039; változó értékét &amp;#039;&amp;#039;true&amp;#039;&amp;#039; szövegről &amp;#039;&amp;#039;false&amp;#039;&amp;#039; szövegre. A változó a {{ic|/usr/share/gvfs/mounts/mtp.mount}} fájlban található.&lt;br /&gt;
&lt;br /&gt;
{{Note (Magyar)|A fájlkezelő programoknak lehetnek saját beállításaik az automatikus felcsatolás érdekében. Induláskor ellenőrzik az összes elérhető, felcsatolható készüléket.}}&lt;br /&gt;
&lt;br /&gt;
Amennyiben az Ön készüléke nem jelenik meg a fájlkezelőben, akkor a [[#libmtp]] nem rendelkezik natív támogatással, és jelenleg nem szerepel a [https://sourceforge.net/p/libmtp/code/ci/HEAD/tree/src/music-players.h támogatott készülékek] listájában.  &lt;br /&gt;
Ha parancssorból próbálja meg felcsatolni, akkor Ön hibát is kaphat.&lt;br /&gt;
&lt;br /&gt;
{{bc|1=Device 0 (VID=&amp;#039;&amp;#039;XXXX&amp;#039;&amp;#039; and PID=&amp;#039;&amp;#039;XXXX&amp;#039;&amp;#039;) is UNKNOWN.&lt;br /&gt;
Please report this VID/PID and the device model to the libmtp development team}}&lt;br /&gt;
&lt;br /&gt;
Egy [[udev]] szabályt kell megírni a készülékhez annak érdekében, hogy maga a készülék megjelenjen a fájlkezelőben. Ám nincs garancia arra, hogy MTP protokollon keresztül Ön majd fel is tudja csatolni a készüléket.&lt;br /&gt;
&lt;br /&gt;
Használja az azonosítószámot, amelyet a &amp;#039;&amp;#039;&amp;#039;vendorId&amp;#039;&amp;#039;&amp;#039;:&amp;#039;&amp;#039;&amp;#039;productID&amp;#039;&amp;#039;&amp;#039; minta képvisel, például &amp;#039;&amp;#039;&amp;#039;04b7&amp;#039;&amp;#039;&amp;#039;:&amp;#039;&amp;#039;&amp;#039;88a9&amp;#039;&amp;#039;&amp;#039;, és hozzon létre egy udev szabályt beállításfájl létrehozásával.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/51-android.rules|&amp;lt;NOWIKI&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;04b7&amp;quot;, ATTR{idProduct}==&amp;quot;88a9&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;uucp&amp;quot;, ENV{ID_MTP_DEVICE}=&amp;quot;1&amp;quot;, SYMLINK+=&amp;quot;libmtp&amp;quot;&amp;lt;/NOWIKI&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Töltse újra az udev szabályokat.&lt;br /&gt;
&lt;br /&gt;
 # udevadm control --reload&lt;br /&gt;
&lt;br /&gt;
A [[gvfs (Magyar)|gvfs]] támogatással rendelkező fájlkezelők képesek megjeleníteni és felcsatolni az MTP készülékeket, amennyiben a [[#libmtp]] támogatja őket. Ha azonban nincs támogatás, és a készülék nem nyitható meg, akkor a telefon beállításait PTP protokollra kell változtatni, valamint telepíteni kell a {{Pkg|gvfs-gphoto2}} szoftvercsomagot, annak érdekében, hogy Ön legalább a fényképekhez hozzáférjen a készüléken. A PTP parancssorban történő felcsatolása némileg hasonlít az MTP készülékek felcsatolásához: {{ic|gio mount gphoto2://[usb:002,019]/}}.&lt;br /&gt;
&lt;br /&gt;
{{Note (Magyar)|Amennyiben Ön csak korlátozott hozzáférést kap a készülékhez, és nem tudja használni a szokásos parancssori utasításokat (például a {{ic|cp}} vagy {{ic|ls}}), akkor keresse meg a [[gvfs (Magyar)|gvfs]] saját alternatíváit: {{ic|ls -1 /usr/bin/gvfs-*}} .}}&lt;br /&gt;
&lt;br /&gt;
== Hibaelhárítás ==&lt;br /&gt;
&lt;br /&gt;
=== libmtp (gvfs-mtp): A fájlkezelő (nautilus, pcmanfm, vifm stb.) lefagy az Android készülék DCIM/Camera könyvtárának az elérésekor ===&lt;br /&gt;
&lt;br /&gt;
Tünetek: Minden rendben működik egészen addig, amíg Ön be nem lép a DCIM/Camera könyvtárba. Ilyenkor a fájlkezelő lefagy, és Ön még parancssorból sem tudja lefuttatni az {{ic|ls}} parancsot azon a könyvtáron.&lt;br /&gt;
&lt;br /&gt;
Ez a probléma nagyon valószínű, hogy a libmtp függvénykönyvtár miatt fordul elő.&lt;br /&gt;
&lt;br /&gt;
Úgy tűnik, hogy ezt egy olyan fájl okozza, amelynek neve hasonló a {{ic|20180915_180351(0).jpg}} névhez. Például a Samsung telefonok gyakran hoznak létre ilyen nevű fájlokat.&lt;br /&gt;
&lt;br /&gt;
Több, a hibával kapcsolatos jelentés ([https://sourceforge.net/p/libmtp/bugs/1830/ egy], [https://sourceforge.net/p/libmtp/bugs/1808/ kettő] stb.) és kérdés ([https://askubuntu.com/questions/995383/nautilus-hangs-on-accessing-dcim-camera-on-android egy], [https://askubuntu.com/questions/1030736/cant-open-photos-stored-on-android-system-from-ubuntu/1148034#1148034 kettő]) foglalkozik a hibával.&lt;br /&gt;
&lt;br /&gt;
Lehetséges kerülőmegoldás, hogy Ön más MTP opciót használ a [[#FUSE fájlrendszerek]] közül. Például Ön a go-mtpfs fájlrendszert használja az ilyen könyvtárakhoz, vagy valamilyen módon megváltoztatja a telefon kamerájának fájlnévképzési szabályait (vagy áttér egy másik kameraalkalmazásra, például az [https://opencamera.sourceforge.io/ Open Camera] alkalmazásra).&lt;br /&gt;
&lt;br /&gt;
=== jmtpfs: Input/output hiba az első hozzáféréskor ===&lt;br /&gt;
&lt;br /&gt;
Tünetek: A jmtpfs sikeresen felcsatolódik, de Ön amint megpróbálja elérni a készüléken lévő fájlokat (például {{ic|ls}} segítségével), rögtön hiba jelentkezik:&lt;br /&gt;
&lt;br /&gt;
  cannot access &amp;lt;mount-point&amp;gt;: Input/output error&lt;br /&gt;
&lt;br /&gt;
Ez a hiba valójában biztonsági funkciónak tűnik: Amikor a telefon lezáródik a zárolóképernyővel, akkor az MTP nem működik. Oldja fel a telefont, és ismét működni fog a kommunikáció,amíg a kábel csatlakoztatva marad.&lt;br /&gt;
&lt;br /&gt;
=== kio-mtp: Nem lehet használni az &amp;quot;Open with File Manager&amp;quot; műveletet ===&lt;br /&gt;
&lt;br /&gt;
Amennyiben Ön nem tudja használni az &amp;quot;Open with File Manager&amp;quot; műveletet, akkor a problémát megkerülheti a {{ic|/usr/share/solid/actions/solid_mtp.desktop}} fájl szerkesztésével.&lt;br /&gt;
&lt;br /&gt;
Módosítsa az {{ic|1=Exec=kioclient exec mtp:udi=%i/}} sort az {{ic|1=Exec=dolphin &amp;quot;mtp:/&amp;quot;}} sorra.&lt;br /&gt;
&lt;br /&gt;
=== A kio-mtp egyidejű hívása különböző szolgáltatások által ===&lt;br /&gt;
&lt;br /&gt;
Kerülni kell az mtpfs és a kio-mtp párhuzamos használatát. Továbbá, ahogyan az említve van [https://bbs.archlinux.org/viewtopic.php?pid=1657736#p1657736 ebben a fórumban], kerülni kell a kio-mtp protokollokat használó, de közben ütközésben lévő szolgáltatások használatát (beleértve a zenelejátszókat is).&lt;br /&gt;
&lt;br /&gt;
Az Amarok MTP szolgáltatásokhoz tartozó bővítménye például megakadályozhatja, hogy a Dolphin (plasma) hozzáférjen különböző telefonmodellek fájljaihoz. Legalább egy felhasználónál megoldást jelentett a bővítmény kikapcsolása.&lt;/div&gt;</summary>
		<author><name>Torontal-varmegye</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Miniserve</id>
		<title>Miniserve</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Miniserve"/>
		<updated>2026-03-28T17:10:33Z</updated>

		<summary type="html">&lt;p&gt;Andrei Korshikov: /* Usage */ text style: add a colon (&amp;quot;:&amp;quot;) before CLI sample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:Web server]]&lt;br /&gt;
[https://github.com/svenstaro/miniserve miniserve] is a small, self-contained cross-platform CLI tool that allows you to serve files and directories over HTTP.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{Pkg|miniserve}} package.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To serve a directory:&lt;br /&gt;
&lt;br /&gt;
 $ miniserve /srv/http&lt;br /&gt;
&lt;br /&gt;
Refer to {{ic|miniserve --help}} or {{man|1|miniserve}} for additional options, such as custom index files, authentication,  interface binding, TLS, compressed folder download, and file upload capability.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Temporary ===&lt;br /&gt;
&lt;br /&gt;
miniserve does not use a configuration file. Instead, all options are passed via the CLI or set through environment variables. For example:&lt;br /&gt;
&lt;br /&gt;
 $ MINISERVE_VERBOSE=true MINISERVE_PORT=8081 miniserve --enable-webdav /srv/http&lt;br /&gt;
&lt;br /&gt;
This enables verbose logging, changes the port from the default 8080 to 8081, and starts miniserve with read-only WebDAV support.&lt;br /&gt;
&lt;br /&gt;
=== Permanent ===&lt;br /&gt;
&lt;br /&gt;
A hardened systemd template unit file {{ic|miniserve@.service}} is included with the package and can be customized via a [[drop-in file]].&lt;br /&gt;
&lt;br /&gt;
At first the path you wish to serve (e.g. {{ic|/srv/http}}) must be escaped for a valid systemd unit name. Use {{man|1|systemd-escape}} to format it correctly :&lt;br /&gt;
&lt;br /&gt;
{{hc|$ systemd-escape /srv/http|-srv-http}}&lt;br /&gt;
&lt;br /&gt;
{{ic|-srv-http}} is your desired path, translated into a valid instance name for the systemd unit.&lt;br /&gt;
&lt;br /&gt;
Use the escaped path as the instance name to configure miniserve with your desired settings:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/miniserve@&amp;#039;&amp;#039;&amp;#039;-srv-http&amp;#039;&amp;#039;&amp;#039;.d/environment.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
Environment=MINISERVE_VERBOSE=true&lt;br /&gt;
Environment=MINISERVE_PORT=8087&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You might additionally have to override {{ic|IPAddressAllow}} and {{ic|IPAddressDeny}} if you plan on making miniserve directly available on a public interface.&lt;br /&gt;
&lt;br /&gt;
[[Start]] and [[enable]] the unit with full instance name and inspect the [[journal]].&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Upon startup, miniserve reports the bound interface and a list of available IP addresses:&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Bound to [::]:8080, 0.0.0.0:8080&lt;br /&gt;
Serving path /srv/http&lt;br /&gt;
Available at (non-exhaustive list):&lt;br /&gt;
   http://127.0.0.1:8080&lt;br /&gt;
   http://192.168.0.50:8080&lt;br /&gt;
   http://[::1]:8080&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
A health check is implemented and should return &amp;quot;OK&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ curl &amp;lt;nowiki&amp;gt;http://127.0.0.1:8080/__miniserve_internal/healthcheck&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ua4000</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/HP_Laptop_15-fc0xxx</id>
		<title>HP Laptop 15-fc0xxx</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/HP_Laptop_15-fc0xxx"/>
		<updated>2026-03-27T22:25:44Z</updated>

		<summary type="html">&lt;p&gt;Erus Iluvatar: final edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Laptops/HP]]&lt;br /&gt;
{{Laptop style|Missing some IDs in the hardware table, details about [[fwupd]] in [[#Firmware]] and a proper &amp;quot;Function keys&amp;quot; table.}}&lt;br /&gt;
{| class=&amp;quot;wikitable archwiki-table-laptop&amp;quot;&lt;br /&gt;
! Hardware !! PCI/USB ID !! Working?&lt;br /&gt;
|-&lt;br /&gt;
| Graphics || {{ic|1002:1506}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Wi-Fi || {{ic|10ec:b85b}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || {{ic|10ec:b85b}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Webcam || || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Audio || {{ic|1022:15e3}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Touchpad || || {{Yes}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page covers the installation and configuration of the &amp;#039;&amp;#039;&amp;#039;HP Laptop 15-fc0xxx&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
This laptop ships with [[Secure Boot]] enabled. It must be disabled in the BIOS (accessed via {{ic|F10}}) to boot the Arch Linux ISO.&lt;br /&gt;
&lt;br /&gt;
== Graphics ==&lt;br /&gt;
&lt;br /&gt;
The [[AMDGPU]] driver is required. For optimal performance, install the {{pkg|mesa}} and {{pkg|vulkan-radeon}} packages.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
The {{pkg|amd-ucode}} package is required for CPU stability. It is also highly recommended to ensure {{pkg|linux-firmware}} is installed for Wi-Fi and Bluetooth support.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
The Realtek {{ic|RTL8852BE}} is supported by the kernel-tree driver {{ic|rtw89_8852be}}. If performance is unstable or Wi-Fi 6 issues occur, consider testing the {{aur|rtw89-dkms-git}} package from the AUR.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
Audio works out of the box using {{pkg|pipewire}} and {{pkg|wireplumber}}.&lt;br /&gt;
&lt;br /&gt;
== Function keys ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Visible? !! Function !! Command&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|F5}} || {{Yes}} || Mute || {{ic|XF86AudioMute}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|F6}} || {{Yes}} || Volume Down || {{ic|XF86AudioLowerVolume}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|F7}} || {{Yes}} || Volume Up || {{ic|XF86AudioRaiseVolume}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|F8}} || {{Yes}} || Mic Mute || {{ic|XF86AudioMicMute}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|F2}} || {{Yes}} || Brightness Down || {{ic|XF86MonBrightnessDown}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|F3}} || {{Yes}} || Brightness Up || {{ic|XF86MonBrightnessUp}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Anodark</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Anki_(Espa%C3%B1ol)</id>
		<title>Anki (Español)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Anki_(Espa%C3%B1ol)"/>
		<updated>2026-03-25T01:51:42Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: update interlanguage links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Applications (Español)]]&lt;br /&gt;
[[en:Anki]]&lt;br /&gt;
[[ja:anki]]&lt;br /&gt;
[https://ankisrs.net/ Anki] es un sistema de [[Wikipedia:Spaced repetition|repetición espaciada]] (SRS), un programa que te permite crear, organizar y estudiar [[Wikipedia:Flashcard|flashcards]]. Anki es muy flexible y permite la creación de machotes (templates). Se puede utilizar a través de applicaciones de Android y IOS asi como una interfaz web para interactuar con la base de datos de flashcards del usuario. Anki permite el uso de [https://ankiweb.net/shared/addons/ addons], escritos en [[Python]].&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
[[Instala]] el paquete {{Pkg|anki}}.&lt;br /&gt;
&lt;br /&gt;
De manera predeterminada, las tarjetas se sincronizan utilizando el servidor web de Anki. Anki 2.1.57+ incluye un [https://docs.ankiweb.net/sync-server.html servidor de sincronización interno].&lt;br /&gt;
&lt;br /&gt;
== Flashcards ==&lt;br /&gt;
&lt;br /&gt;
Las flashcards se pueden obtener de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
* Crearlas dentro de Anki, organizarlas en mazos y posiblmente tagearlas. Las tarjetas pueden contener audio, imagenes e incluso formulas de [[TeX]];&lt;br /&gt;
* Descargarlas, agrupada en un [https://ankiweb.net/shared/decks/ deck compartido] existente (e.g. Las 1000 palabras más usadas en un idioma);&lt;br /&gt;
* Generarlas como un archivo [[wikipedia:Comma-separated values|.csv]] que se importe a Anki.&lt;br /&gt;
&lt;br /&gt;
== Addons ==&lt;br /&gt;
&lt;br /&gt;
Anki makes many [https://ankiweb.net/shared/addons/ addons] available, which can perform a variety of functions, expanding and personalizing your use of Anki or even setting collaborative decks with [https://www.ankihub.net/ AnkiHub]. These are third-party and are not checked or vetted by Anki, so only use addons you trust. To install an addon, copy the code from the addon page, go to &amp;#039;&amp;#039;Tools &amp;gt; Add-ons &amp;gt; Get Add-ons...&amp;#039;&amp;#039; and paste the code. To manually install an addon file (with a {{ic|.ankiaddon}} extension) from sources like github, go to &amp;#039;&amp;#039;Tools &amp;gt; Add-ons &amp;gt; Install from file...&amp;#039;&amp;#039;. Some popular addons include [https://ankiweb.net/shared/info/1374772155 Image Occlusion Enhanced] and [https://ankiweb.net/shared/info/1771074083 Review Heatmap].&lt;br /&gt;
&lt;br /&gt;
== Consejos y Trucos ==&lt;br /&gt;
&lt;br /&gt;
=== Free Spaced Repetition Scheduler algorithm (FSRS) (Algoritmo Libre de Planificación de Repetición Espaciada)===&lt;br /&gt;
&lt;br /&gt;
Since version 23.10, Anki natively supports the use of a new scheduling algorithm, based on a variant of the DSR (Difficulty, Stability, Retrievability) model, which is used to predict memory states.&lt;br /&gt;
&lt;br /&gt;
The default FSRS parameters are based on 738 million reviews from 20.000 users and are more accurate in comparison to the standard SM2 algorithm, according to [https://github.com/open-spaced-repetition/fsrs-benchmark benchmarks].&lt;br /&gt;
&lt;br /&gt;
You can find more information about FSRS in the following GitHub repository [https://github.com/open-spaced-repetition Open Spaced Repetition ]&lt;br /&gt;
&lt;br /&gt;
=== Soporte del orden de trazos de Kanji ===&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{AUR|ttf-kanjistrokeorders}} package if you want to display kanji stroke orders in Anki. You have to select this font inside Anki in your deck properties after installation.&lt;br /&gt;
&lt;br /&gt;
=== Soporte de idiomas asiáticos ===&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{AUR|mecab-ipadic}} package and the {{pkg|kakasi}} package.&lt;br /&gt;
&lt;br /&gt;
Launch Anki, and inside Anki use &amp;#039;&amp;#039;File &amp;gt; Download &amp;gt; Shared Plugin&amp;#039;&amp;#039; to download and install the &amp;quot;Japanese Support&amp;quot; plugin, restart.&lt;br /&gt;
&lt;br /&gt;
After creating a new deck, you need to select &amp;quot;Japanese&amp;quot; as the deck model in &amp;quot;deck properties&amp;quot; to have Japanese support. Make sure that the Japanese Support plugin is installed, otherwise you cannot select &amp;quot;Japanese&amp;quot; as the model.&lt;br /&gt;
&lt;br /&gt;
=== Servidor de sincronización autoalojado ===&lt;br /&gt;
&lt;br /&gt;
AnkiWeb es un servicio privado. Si prefieres una alternativa autolaojada libre, puedes alojar tu propio servidor de anki-sync.&lt;br /&gt;
&lt;br /&gt;
Instala {{AUR|anki-sync-server}} y configuralo a través del archivo {{ic|/etc/default/anki-sync-server}}, de acurdo a las instrucciones de https://docs.ankiweb.net/sync-server.html.&lt;br /&gt;
&lt;br /&gt;
[[Inicia]] and [[habilita]] {{ic|anki-sync-server.service}}.&lt;br /&gt;
&lt;br /&gt;
Configura el cliente de Anki en &amp;#039;&amp;#039;Herramientas &amp;gt; Preferencias &amp;gt; Sincronización&amp;#039;&amp;#039;. Al final de la pagina ingresa el URL en el cual se encuentra tu servicio.&lt;br /&gt;
&lt;br /&gt;
=== Tema oscuro ===&lt;br /&gt;
&lt;br /&gt;
La interfaz de Anki puede ser ilegible con el tema oscuro de GTK. Puede activar el modo nocturno para arreglarlo (&amp;#039;&amp;#039;Herramientias &amp;gt; Preferencias... &amp;gt; Modo Nocturno&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Si tienes una version antigua necesitarás instalar el addon (e.g. [https://ankiweb.net/shared/info/1496166067 1496166067] y &amp;#039;&amp;#039;Vista &amp;gt; Modo Nocturno &amp;gt; Activar Modo Nocturno&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
== Solución de problemas ==&lt;br /&gt;
&lt;br /&gt;
=== No arranca ===&lt;br /&gt;
&lt;br /&gt;
The display driver can be adjusted by writing either {{ic|auto}} or {{ic|software}} to {{ic|~/.local/share/Anki2/gldriver6}} (Qt6) or {{ic|~/.local/share/Anki2/gldriver}} (Qt5). If Anki core dumps at launch with error &amp;#039;&amp;#039;qt: No suitable graphics backend found&amp;#039;&amp;#039; then setting it to {{ic|auto}} [https://web.archive.org/web/20210619085524/https://anki.tenderapp.com/discussions/ankidesktop/34554-instalation-not-run-after-install may resolve]: &lt;br /&gt;
&lt;br /&gt;
 $ echo auto &amp;gt; ~/.local/share/Anki2/gldriver&lt;br /&gt;
&lt;br /&gt;
When using the [[Nouveau]] driver, only {{ic|software}} is supported and it is known to be buggy (see [https://docs.ankiweb.net/platform/linux/display-issues.html#qt5]).&lt;br /&gt;
&lt;br /&gt;
=== Wayland ===&lt;br /&gt;
&lt;br /&gt;
Wayland support is available in Anki since [https://github.com/ankitects/anki/releases/tag/2.1.48 v2.1.48]. However it is not stable yet and disabled by default. If you want to use it in Wayland anyway, then set some [[environment variable]]s.&lt;br /&gt;
&lt;br /&gt;
 QT_QPA_PLATFORM=wayland&lt;br /&gt;
 ANKI_WAYLAND=1&lt;br /&gt;
&lt;br /&gt;
It may also be necessary to install the {{pkg|qt6-wayland}} package.&lt;br /&gt;
&lt;br /&gt;
Related bug report: [https://github.com/ankitects/anki/issues/1767 Github issue #1767]&lt;br /&gt;
&lt;br /&gt;
=== Imagenes aparecen incorrectamente en media sin utilizar ===&lt;br /&gt;
&lt;br /&gt;
Anki has a feature to check for unused media and delete them to free up space. When copying images from webpages and pasting them into the card editor, the image is often pasted along with an {{ic|alt}} attribute inside the {{ic|&amp;lt;img&amp;gt;}} tag. If this or any other attribute which is placed before the {{ic|src}} attribute contains a {{ic|&amp;gt;}} character, this image will show up in unused media and might get accidentally deleted even if it is still being used.&lt;br /&gt;
&lt;br /&gt;
For example, this image will show up in unused media:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;bad&amp;gt;text&amp;quot; src=&amp;quot;image.jpg&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To prevent this, remove any {{ic|&amp;gt;}} characters or place the {{ic|alt}} attribute after the {{ic|src}} attribute:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;img src=&amp;quot;image.jpg&amp;quot; alt=&amp;quot;bad&amp;gt;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the [https://github.com/ankitects/anki/issues/2304 bug report] and [https://forums.ankiweb.net/t/check-media-bug-symbol-in-alt-attribute/25997 forum post].&lt;br /&gt;
&lt;br /&gt;
{{Tip|Press {{ic|Ctrl+Shift+x}} to open the HTML editor inside the card editor.}}&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
&lt;br /&gt;
=== Oficial ===&lt;br /&gt;
&lt;br /&gt;
* [https://docs.ankiweb.net Anki manual]&lt;br /&gt;
* [https://faqs.ankiweb.net/ FAQs]&lt;br /&gt;
* [https://forums.ankiweb.net Forums]&lt;br /&gt;
* [https://anki.tenderapp.com/discussions Old forums archive]&lt;br /&gt;
* [https://anki.tenderapp.com/kb Knowledge base]&lt;br /&gt;
&lt;br /&gt;
=== Otros ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.supermemo.com/en/archives1990-2015/articles/20rules Guía para crear buenas tarjetas]&lt;br /&gt;
* [[Mnemosyne]] - Otro programa de flashcards de código libre que utiliza repetición espaciada.&lt;br /&gt;
* [https://orgmode.org/worg/org-contrib/org-drill.html org-drill] - Una extensión de repetición espaciada para org-mode de [[Emacs]].&lt;/div&gt;</summary>
		<author><name>Spike</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Undervolting_de_CPU_(Espa%C3%B1ol)</id>
		<title>Undervolting de CPU (Español)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Undervolting_de_CPU_(Espa%C3%B1ol)"/>
		<updated>2026-03-25T00:44:52Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: update interlanguage links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:CPU (Español)]]&lt;br /&gt;
[[Category:Power management (Español)]]&lt;br /&gt;
[[en:Undervolting CPU]]&lt;br /&gt;
[[ja:CPU の低電圧化]]&lt;br /&gt;
[[ru:Undervolting CPU]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|CPU frequency scaling}}&lt;br /&gt;
{{Related|Improving performance}}&lt;br /&gt;
{{Related|Benchmarking}}&lt;br /&gt;
{{Related|Fan speed control}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
El Undervolting es el proceso en el cual el voltaje del CPU es disminuido para reducir su gasto energético y temperatura sin afectar su rendimiento. Tenga en cuenta que la mayoría de las motherboards de escritorio permiten alterar la configuración del voltaje del CPU desde las BIOS.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Una configuración incorrecta del voltaje del CPU puede resultar en daño permanente del hardware. ¡Has sido avisado!}}&lt;br /&gt;
&lt;br /&gt;
== Antecedentes ==&lt;br /&gt;
&lt;br /&gt;
Los CPUs modernos implementan [[CPU frequency scaling|escalado de frecuencia]], mediante el cual la frecuencia es ajustada dinamicamente para ahorrar energía cuando se encuentra en reposo y aumentar el rendimiento cuando se requiere. Al aumentar la frecuencia, el voltaje requerido para abrir la compuerta rapidamente también aumenta, por lo tanto los CPUs tambien escalan el voltaje simultaneamnte con la frecuencia. La curva predeterminada de frecuencia-voltaje es relativamente conservadora y dependiendo de la &amp;#039;&amp;#039;loteria del silicón&amp;#039;&amp;#039; (que tanto pueden ganarle las compuertas lógicas de tu CPU a los parámetros esperados de la curva), un voltaje más bajo puede ser utilizado sin tener que bajar la frecuencia.&lt;br /&gt;
&lt;br /&gt;
Debido a que la disipación del poder esta relacionada con el voltaje al cuadrado, el undervolt puede permitir un ahorro significativo de energía y reducción del calor. Un menor voltaje esta usualmente asociado con una vida media más alargada para el dispositivo, debido a que la mayoría de los mecanismos de deterioro de los semiconductores (BTI, Electromigración) son al menos parcialmente dependientes de la temperatura y el voltaje.&lt;br /&gt;
&lt;br /&gt;
Los riesgos del undervolt incluyen un cálculo incorrecto de los resultados (posiblemente una incapacidad para el arranque) debido al uso de voltaje insuficiente para la frecuencia. Prepárese para reiniciar su sistema o resetear su BIOS a través del jumper JBAT para deshacer su undervolt.&lt;br /&gt;
&lt;br /&gt;
Para comprobar la estabilidad y exactitud de un undervolt, se recomienda el [[stress testing]] utilizando una aplicación con checks numericos (mprime, linpack). Solamente el arranque no es suficiente ya que errores en el calculo pueden resultar en comportamientos no esperados y potencialmente dañinos (demostrado por medio de los &amp;quot;atques de undervolt&amp;quot;). Conforme van envejenciendo los CPUs, sus compuertas se vuelven más lentas y requieren de un voltaje más elevado para estabilizarse, preparese para modificar la configuración de su undervolt.&lt;br /&gt;
&lt;br /&gt;
{{Warning| Puede llegar a hacer que la computadora se congele de manera aleatoria aun cuando la computadora se encuentre estable durante días, meses o años y se encuentre totalmente estable bajo otro sistema operativo con la misma configutación de undervolt. El CPU puede degradarse con el tiempo y solo comenzar a crashear o congelarse a los meses o años de haber aplicado su undervolt. Por lo tanto, es &amp;#039;&amp;#039;cruical&amp;#039;&amp;#039; que recuerde revertir a la configuración original en caso de que su computadora se congele de manera regular.}}&lt;br /&gt;
&lt;br /&gt;
=== Voltajes ===&lt;br /&gt;
On Intel CPUs you can separately control the core, cache, System Agent (also known as NB/SOC/Uncore) and the integrated GPU voltages. If there is integrated analog I/O you can control that part&amp;#039;s voltage too. The core and the cache are self-explanatory. The System Agent includes the memory controller.&lt;br /&gt;
&lt;br /&gt;
On Zen-based AMD CPUs you can separately control core, NB/SOC/Uncore, VDDG_CCD, VDDG_IOD, VDDP_CLDO, and PLL/1P8. The first two are similar to their Intel counterparts. VDDG_CCD is for signaling from cores to the IO die. VDDG_IOD is for signaling from the IO die to the cores. VDDP_CLDO is for the memory controller. The PLL/1P8 voltage is the voltage of the base clock signal.&lt;br /&gt;
&lt;br /&gt;
When you lower one voltage, make sure to run the corresponding test in mprime. For example, if you touch the memory controller or SOC-related voltages, run the Large test.&lt;br /&gt;
&lt;br /&gt;
=== ¿Qué tan lejos puedes llegar? ===&lt;br /&gt;
&lt;br /&gt;
Disminuir 100 a 200 mV de Intel CPU y CPU Cache suele ser estable (aparentemente). Disminuir más de 200mV puede resultar en crasheo, o no tener ningún efecto.&lt;br /&gt;
&lt;br /&gt;
=== ¿Cuando es necesario el undervolt? ===&lt;br /&gt;
&lt;br /&gt;
Se sabe que un gran número de motherboards AM5 (Ryzen 7xxx, 9xxx) aplican un voltaje del SOC/Uncore elevado cuando EXPO está habilitado. Esto puede llevar a fallas en el CPU con áreas de decoloración o protuberancias donde se encuentra el dado del IO. Se puede reparar con una actualización de la BIOS. Si no hay actualizaciones disponibles y el voltaje del SOC continua por encima de 1.3&amp;amp;nbsp;V, se debe realizar un undervolt manual en la BIOS.&lt;br /&gt;
&lt;br /&gt;
Hay un problema similar en CPUs Intel generación 13 y 14 en el cual el voltaje del núcleo se encuentra elevado, causando envejecimiento prematuro. Se soluciona con una actualización del microcodigo.&lt;br /&gt;
&lt;br /&gt;
== intel-undervolt ==&lt;br /&gt;
{{Note|After the patches for the [https://plundervolt.com Plundervolt] vulnerability, recommendations for most OEMs on older Intel CPUs have been to enable the Overclocking Lock MSR bit (which disables voltage control). That can usually be worked around. Newer processors (except &amp;#039;&amp;#039;K&amp;#039;&amp;#039;, &amp;#039;&amp;#039;HK&amp;#039;&amp;#039; and &amp;#039;&amp;#039;HX&amp;#039;&amp;#039; models) instead comes with hardware-fused Undervolt Protection, but some OEMs still allow for AC loadline undervolt.}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/kitsunyan/intel-undervolt Intel-undervolt] is a tool based on this [https://github.com/mihic/linux-intel-undervolt article] for undervolting Haswell and newer Intel CPUs using [[wikipedia:Model-specific_register|MSR]] and MCHBAR registers. In addition, it also allows to change power and temperature limits. It is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; compatible with Tiger Lake and above, but is compatible with {{ic|intel_pstate}}.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
&lt;br /&gt;
La herramienta puede ser instalada como {{Pkg|intel-undervolt}}.&lt;br /&gt;
&lt;br /&gt;
=== Configuración y uso ===&lt;br /&gt;
&lt;br /&gt;
el siguiente comando imprime la configuración del voltaje en uso:&lt;br /&gt;
&lt;br /&gt;
 # intel-undervolt read&lt;br /&gt;
&lt;br /&gt;
Ahora edite el fichero de configuración {{ic|/etc/intel-undervolt.conf}}. Aquí un ejemplo de configuración con undervolt del Cache del CPU con -100mV.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note| Parece que &amp;#039;CPU&amp;#039; y &amp;#039;GPU&amp;#039; no tienen efecto alguno en ciertas laptops (ej. [[ASUS Zenbook UX430UQ]]) pero si funciona en algunas otras (ej. ASUS ROG STRIX G502VY).&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/intel-undervolt.conf|&lt;br /&gt;
...&lt;br /&gt;
undervolt 0 &amp;#039;CPU&amp;#039; 0&lt;br /&gt;
undervolt 1 &amp;#039;GPU&amp;#039; 0&lt;br /&gt;
undervolt 2 &amp;#039;CPU Cache&amp;#039; -100&lt;br /&gt;
undervolt 3 &amp;#039;System Agent&amp;#039; 0&lt;br /&gt;
undervolt 4 &amp;#039;Analog I/O&amp;#039; 0&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Una vez guardado el archivo de la configuración se puede probar con el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 # intel-undervolt apply&lt;br /&gt;
&lt;br /&gt;
Debe mostrarse &amp;#039;&amp;#039;Success&amp;#039;&amp;#039; (Éxito) si la configuración fue aplicada. Puede asegurarse que la configuración esta siendo utilizada en ese momento al utilizar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 # intel-undervolt read&lt;br /&gt;
&lt;br /&gt;
Una vez encontrada la configuración estable, puede [[habilitar]] {{ic|intel-undervolt.service}} para hacer los cambios persistentes.&lt;br /&gt;
&lt;br /&gt;
== amdctl ==&lt;br /&gt;
&lt;br /&gt;
{{Out of date|amdctl solo soporta las familias de CPU hasta la 19h (Zen 3), y no CPUS más actuales.|section=amdctl support scope}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/kevinlekiller/amdctl/ amdctl] es una herramienta para hacer undervolt en CPUs AMD k10 y más actualizados.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
&lt;br /&gt;
La herramienta se puede instalar como {{AUR|amdctl-git}}.&lt;/div&gt;</summary>
		<author><name>Spike</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Lenovo_IdeaPad_Slim_3_14ABR8</id>
		<title>Lenovo IdeaPad Slim 3 14ABR8</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Lenovo_IdeaPad_Slim_3_14ABR8"/>
		<updated>2026-03-21T06:25:03Z</updated>

		<summary type="html">&lt;p&gt;DGibson: Wireless: restore information for rtw89_pci kernel module, I realized *my* 16ABR8 (but not every one) uses a different wireless chip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Lenovo]]&lt;br /&gt;
{{Laptop style|Needs an accessibility and proper function keys section.}}&lt;br /&gt;
The following page was adapted from the [[Lenovo IdeaPad Slim 3 16ABR8]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable archwiki-table-laptop&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Hardware !! PCI/USB ID !! Working?&lt;br /&gt;
|-&lt;br /&gt;
| Audio || {{ic|1022:15e3}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| GPU (Integrated) || {{ic|1002:15e7}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Wi-Fi || {{ic|10ec:b852}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || {{ic|0bda:4853}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Webcam || {{ic|04f2:b7ba}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Touchpad || {{ic|04F3:327E}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint || {{ic|04f3:0c4b}} || {{Y|Enrolls but doesn&amp;#039;t verify}}&lt;br /&gt;
|-&lt;br /&gt;
| TPM || {{ic|1022:15df}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| SD-card reader || {{ic|1217:8621}} || {{Y|Untested}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Before installing, disable [[Secure Boot]] in the BIOS. You can access the BIOS by pressing {{ic|F2}} at the Splash screen. The boot menu can also be accessed by pressing {{ic|F12}}.&lt;br /&gt;
&lt;br /&gt;
== Video ==&lt;br /&gt;
&lt;br /&gt;
X works natively with a current {{Pkg|linux}} and {{Pkg|xf86-video-amdgpu}}.&lt;br /&gt;
&lt;br /&gt;
If you are having video issues with only the {{Pkg|xf86-video-amdgpu}} installed, also install the AMD PRO package {{AUR|amdgpu-pro-oglp}}. See [[AMDGPU]].&lt;br /&gt;
&lt;br /&gt;
== Wireless ==&lt;br /&gt;
&lt;br /&gt;
You can use the native wireless driver with {{ic|disable_aspm_l1{{=}}y}} and {{ic|disable_aspm_l1ss{{=}}y}} [[Kernel module parameter]]  in the {{ic|rtw89_pci}} [[Kernel module]] is required in order for Wi-Fi to work. &lt;br /&gt;
&lt;br /&gt;
For Bluetooth use {{AUR|rtw89bt-dkms-git}} with {{ic|iommu{{=}}pt }} [[kernel parameter]].&lt;br /&gt;
&lt;br /&gt;
== Function keys ==&lt;br /&gt;
&lt;br /&gt;
No dedicated keys. The {{ic|Fn}} functions on the keyboard are recognized and should work.&lt;br /&gt;
&lt;br /&gt;
== Fingerprint ==&lt;br /&gt;
&lt;br /&gt;
You may use {{AUR|libfprint-2-tod1-goodix}} or {{AUR|libfprint-fpcmoh-git}}. The laptop can enroll but not verify fingerprints.&lt;br /&gt;
&lt;br /&gt;
For installation see [[fprintd]].&lt;br /&gt;
&lt;br /&gt;
== Power management ==&lt;br /&gt;
&lt;br /&gt;
The following section was adapted from [[Lenovo IdeaPad 5 15are05]].&lt;br /&gt;
&lt;br /&gt;
Battery Conservation Mode is a feature that limits battery charging to 55-60% of its capacity to improve battery life, being most useful when the laptop tends to run on external power much of the time. It can be controlled with {{AUR|ideapad-cm}}. With {{AUR|ideapad2024-power-management}} or {{AUR|battmngr}} it is possible to control both Battery Conservation and System performance modes.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is worth noting that the Lenovo Vantage software for Windows when turning on Battery Conservation mode also turns off [[#Rapid Charge]] (if it was on). The same is also valid for the [[#Rapid Charge]]: turning it on will bring the battery conservation mode down. The aforementioned ACPI call [[#Battery Conservation]] will not do this for you, but [[#Rapid Charge]] will. So it is possible to get the state where both battery conservation and rapid charge modes are active if you activate [[#Battery Conservation]] after [[#Rapid Charge]]. You generally do not want this, as Rapid Charging puts more strain on the battery than regular charging, defeating the purpose of Battery Conservation Mode.}}&lt;br /&gt;
&lt;br /&gt;
=== Kernel method ===&lt;br /&gt;
&lt;br /&gt;
Set the {{ic|1=ideapad_laptop.allow_v4_dytc=1}} [[kernel module parameter]].&lt;br /&gt;
&lt;br /&gt;
To use without reboot: &lt;br /&gt;
&lt;br /&gt;
 # rmmod ideapad_laptop&lt;br /&gt;
 # modprobe ideapad_laptop allow_v4_dytc=1&lt;br /&gt;
&lt;br /&gt;
[[Restart]] {{ic|power-profiles-daemon.service}}. Now [[power-profiles-daemon]] can do everything below.&lt;br /&gt;
&lt;br /&gt;
=== System Performance Mode ===&lt;br /&gt;
&lt;br /&gt;
{{Merge|Laptop/Lenovo#Lenovo|This is shared across multiple models and should be put on the generic page instead of duplicated for every model.}}&lt;br /&gt;
&lt;br /&gt;
There are 3 modes available: &amp;#039;&amp;#039;Intelligent Cooling&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Extreme Performance&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Battery Saving&amp;#039;&amp;#039;. To toggle it, you need to call some ACPI methods. &lt;br /&gt;
&lt;br /&gt;
First install {{Pkg|acpi_call}} (or {{Pkg|acpi_call-lts}} for LTS kernel, {{Pkg|acpi_call-dkms}} for other [[kernel]]s) and load the [[kernel module]]:&lt;br /&gt;
&lt;br /&gt;
 # modprobe acpi_call&lt;br /&gt;
&lt;br /&gt;
Set it to &amp;#039;&amp;#039;Intelligent Cooling&amp;#039;&amp;#039; mode:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x000FB001&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
&lt;br /&gt;
Set it to &amp;#039;&amp;#039;Extreme Performance&amp;#039;&amp;#039; mode:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x0012B001&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
&lt;br /&gt;
Set it to &amp;#039;&amp;#039;Battery Saving&amp;#039;&amp;#039; mode:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x0013B001&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
&lt;br /&gt;
To verify your setting:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.SPMO&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
 # cat /proc/acpi/call; printf &amp;#039;\n&amp;#039;&lt;br /&gt;
&lt;br /&gt;
As a result you get the value for the bit SPMO (either {{ic|0x0}}, {{ic|0x1}} or {{ic|0x2}}).&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.FCMO&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
 # cat /proc/acpi/call; printf &amp;#039;\n&amp;#039;&lt;br /&gt;
&lt;br /&gt;
As a result you get the value for the bit FCMO (either {{ic|0x0}}, {{ic|0x1}} or {{ic|0x2}}). To interpret the results the following table can be used:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SPMO !! FCMO !! Mode&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x0 || Intelligent Cooling&lt;br /&gt;
|-&lt;br /&gt;
| 0x1 || 0x1 || Extreme Performance&lt;br /&gt;
|-&lt;br /&gt;
| 0x2 || 0x2 || Battery Saving&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rapid Charge ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have set up {{Pkg|acpi_call}}.&lt;br /&gt;
&lt;br /&gt;
Turn on:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x07&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
&lt;br /&gt;
Turn off:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x08&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
&lt;br /&gt;
To verify your setting:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.QCHO&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
 # cat /proc/acpi/call; printf &amp;#039;\n&amp;#039;&lt;br /&gt;
&lt;br /&gt;
where {{ic|0x0}} stands for &amp;#039;&amp;#039;off&amp;#039;&amp;#039; and {{ic|0x1}} stands for &amp;#039;&amp;#039;on&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Battery Conservation ===&lt;br /&gt;
&lt;br /&gt;
Similarly to the [[#Rapid Charge]], make sure you have set up {{Pkg|acpi_call}}.&lt;br /&gt;
&lt;br /&gt;
Turn on:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x03&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
&lt;br /&gt;
Turn off:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x05&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
&lt;br /&gt;
To verify your setting:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;#039;\_SB.PCI0.LPC0.EC0.BTSM&amp;#039; &amp;gt; /proc/acpi/call&lt;br /&gt;
 # cat /proc/acpi/call; printf &amp;#039;\n&amp;#039;&lt;br /&gt;
&lt;br /&gt;
where {{ic|0x0}} stands for &amp;#039;&amp;#039;off&amp;#039;&amp;#039; and {{ic|0x1}} stands for &amp;#039;&amp;#039;on&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
There is also an [[Laptop/Lenovo#Battery conservation mode|alternative]] way to control the conservation mode of the battery.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
=== Keyboard ===&lt;br /&gt;
&lt;br /&gt;
The Keyboard and Lid Switch will be non-functional after waking up from suspend, this bug fixes itself after an reboot.&lt;br /&gt;
&lt;br /&gt;
A &amp;#039;&amp;#039;&amp;#039;kernel patch&amp;#039;&amp;#039;&amp;#039; that seems to reliably work around this problem is waiting to be merged into the kernel[https://lore.kernel.org/platform-driver-x86/20260501032655.283789-1-daniel@gibson.sh/T/], until then you can build the patched {{ic|amd_pmc}} module out-of-tree, and install it with DKMS, get it and instructions at the [https://github.com/DanielGibson/amd_pmc-ideapad amd_pmc-ideapad repository]&lt;br /&gt;
&lt;br /&gt;
With that patch no other keyboard-related workarounds should be necessary (except maybe updating the BIOS), but if you want to avoid using that kernel module, there are other workarounds that at least partly fix the problems:&lt;br /&gt;
&lt;br /&gt;
Adding the {{ic|i8042.nopnp}} [[kernel parameter]], see [https://bbs.archlinux.org/viewtopic.php?id=293597] keeps most of the keyboard functional after suspend, but the Fn/Multimedia keys and also the lid switch may continue to be broken. &lt;br /&gt;
&lt;br /&gt;
If that does not work, make a script:&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/lib/systemd/system-sleep|&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
case $1/$2 in&lt;br /&gt;
    pre/*)&lt;br /&gt;
        echo i8042 &amp;gt; /sys/bus/platform/drivers/i8042/unbind&lt;br /&gt;
        ;;&lt;br /&gt;
    post/*)&lt;br /&gt;
        echo i8042 &amp;gt; /sys/bus/platform/drivers/i8042/bind&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Remember to make it [[executable]].[https://discussion.fedoraproject.org/t/keyboard-not-working-after-sleep-and-some-bluetooth-problems/161174/6] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Note that the script likely will not fix the Fn-key and lid switch issues, but should at least make the rest of the keyboard usable after suspend.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Flashing BIOS from Linux#Lenovo|Updating the bios]] is generally a good idea, see [https://bbs.archlinux.org/viewtopic.php?pid=2251998#p2251998][https://bbs.archlinux.org/viewtopic.php?id=279102].&lt;br /&gt;
The patched kernel module has been tested with the latest BIOS (KYCN41WW), it&amp;#039;s unclear/untested if it works with (all) older BIOS versions.&lt;br /&gt;
&lt;br /&gt;
=== EFI Boot Manager fills up ===&lt;br /&gt;
&lt;br /&gt;
The EFI Boot Manager fills itself with old boot entries which need to be manually deleted after changing the OS. For that you can use {{AUR|efibooteditor}}.&lt;/div&gt;</summary>
		<author><name>Summerwya</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/HyperX_Cloud_Alpha_Wireless</id>
		<title>HyperX Cloud Alpha Wireless</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/HyperX_Cloud_Alpha_Wireless"/>
		<updated>2026-03-20T22:24:37Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: update Pkg/AUR templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:HyperX Cloud Alpha Wireless}}&lt;br /&gt;
[[Category:Sound]]&lt;br /&gt;
[[Category:Headsets]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Udev}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
The [https://hyperx.com/products/hyperx-cloud-alpha-wireless HyperX Cloud Alpha Wireless] is a wireless gaming headset from HyperX (HP, Inc). While the headset functions as a standard USB audio device on Linux, the companion features (battery monitoring, sleep timer, mic monitor, voice prompts) require additional software as the official HyperX NGENUITY application is Windows-only.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
The following features are available on Linux through the {{AUR|hyperx-alpha-wireless-git}} package:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature !! Status&lt;br /&gt;
|-&lt;br /&gt;
| Audio playback/recording || {{Yes|Works natively via USB audio}}&lt;br /&gt;
|-&lt;br /&gt;
| Battery monitoring || {{Yes|Supported}}&lt;br /&gt;
|-&lt;br /&gt;
| Sleep timer (10/20/30 min) || {{Yes|Supported}}&lt;br /&gt;
|-&lt;br /&gt;
| Mic monitor (sidetone) on/off || {{Yes|Supported}}&lt;br /&gt;
|-&lt;br /&gt;
| Voice prompts on/off || {{Yes|Supported}}&lt;br /&gt;
|-&lt;br /&gt;
| Mic mute status || {{Yes|Supported}}&lt;br /&gt;
|-&lt;br /&gt;
| Mic connect/disconnect || {{Yes|Supported}}&lt;br /&gt;
|-&lt;br /&gt;
| Charging status || {{Yes|Supported}}&lt;br /&gt;
|-&lt;br /&gt;
| System tray icon || {{Yes|Supported (legacy systray)}}&lt;br /&gt;
|-&lt;br /&gt;
| Settings persistence || {{Yes|Supported}}&lt;br /&gt;
|-&lt;br /&gt;
| Equalizer / DTS surround || {{No|Windows software-only (see [[#Equalizer]])}}&lt;br /&gt;
|-&lt;br /&gt;
| Sidetone volume level || {{No|Not supported by headset firmware}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Install {{AUR|hyperx-alpha-wireless-git}} from the [[AUR]].&lt;br /&gt;
&lt;br /&gt;
Alternatively, build from source:&lt;br /&gt;
&lt;br /&gt;
 $ git clone https://github.com/WaffleThief123/HyerpxAlpha-Linux&lt;br /&gt;
 $ cd HyerpxAlpha-Linux&lt;br /&gt;
 $ cmake -S . -B build&lt;br /&gt;
 $ cmake --build build&lt;br /&gt;
 $ ./install.sh&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|wxwidgets-gtk3}} - GUI framework&lt;br /&gt;
* {{Pkg|hidapi}} - USB HID communication&lt;br /&gt;
* {{Pkg|systemd-libs}} - udev support&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== udev rules ===&lt;br /&gt;
&lt;br /&gt;
The package installs a udev rule to {{ic|/etc/udev/rules.d/99-hyperx.rules}} that grants access to the headset&amp;#039;s HID interface without root privileges:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;hidraw&amp;quot;, ATTRS{idVendor}==&amp;quot;03f0&amp;quot;, ATTRS{idProduct}==&amp;quot;098d&amp;quot;, MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;03f0&amp;quot;, ATTRS{idProduct}==&amp;quot;098d&amp;quot;, MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&lt;br /&gt;
After installing, unplug and replug the headset&amp;#039;s USB dongle for the rules to take effect.&lt;br /&gt;
&lt;br /&gt;
{{Note|The {{ic|uaccess}} tag may not work on all session configurations. The package uses {{ic|MODE{{=}}&amp;quot;0666&amp;quot;}} for broad compatibility.}}&lt;br /&gt;
&lt;br /&gt;
=== Settings file ===&lt;br /&gt;
&lt;br /&gt;
Settings are stored in {{ic|$XDG_CONFIG_HOME/hyperx/config}} (defaults to {{ic|~/.config/hyperx/config}}). The file is a simple key-value format:&lt;br /&gt;
&lt;br /&gt;
 sleep_timer=2&lt;br /&gt;
 voice_prompts=1&lt;br /&gt;
 mic_monitor=1&lt;br /&gt;
&lt;br /&gt;
Settings are saved automatically when changed in the GUI and restored when the headset reconnects.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Launch the application:&lt;br /&gt;
&lt;br /&gt;
 $ Hyperx&lt;br /&gt;
&lt;br /&gt;
Launch minimized to the system tray:&lt;br /&gt;
&lt;br /&gt;
 $ Hyperx --systray&lt;br /&gt;
&lt;br /&gt;
Enable HID packet debug logging:&lt;br /&gt;
&lt;br /&gt;
 $ Hyperx --debug&lt;br /&gt;
&lt;br /&gt;
Flags can be combined:&lt;br /&gt;
&lt;br /&gt;
 $ Hyperx --systray --debug&lt;br /&gt;
&lt;br /&gt;
=== Autostart ===&lt;br /&gt;
&lt;br /&gt;
The package installs a desktop entry to {{ic|/usr/share/applications/hyperx-alpha.desktop}}. To start the tray app automatically at login, copy it to your autostart directory:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/share/applications/hyperx-alpha.desktop ~/.config/autostart/&lt;br /&gt;
&lt;br /&gt;
{{Note|The {{ic|install.sh}} script does this automatically. If installed via the AUR package, copy it manually.}}&lt;br /&gt;
&lt;br /&gt;
=== System tray ===&lt;br /&gt;
&lt;br /&gt;
The {{ic|--systray}} option requires legacy system tray support. This is available natively in [[KDE]], [[Xfce]], and [[LXQt]]. For [[GNOME]], install a tray extension such as {{Pkg|gnome-shell-extension-appindicator}}.&lt;br /&gt;
&lt;br /&gt;
== HID protocol ==&lt;br /&gt;
&lt;br /&gt;
The headset communicates via USB HID using vendor ID {{ic|0x03f0}} and product ID {{ic|0x098d}}. All commands use 31-byte packets prefixed with {{ic|0x21 0xBB}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Byte[2] !! Byte[3] !! Direction !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x03}} || {{ic|0x01/0x02}} || Receive || Connection state (disconnect/connect)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x05}} || || Send/Receive || Microphone state query&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x07}} || {{ic|0x0a/0x14/0x1e}} || Receive || Sleep timer state (10/20/30 min)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x09}} || {{ic|0x00/0x01}} || Receive || Voice prompts state (off/on)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x0b}} || {{ic|level}} || Receive || Battery percentage (0-100)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x0c}} || {{ic|0x00/0x01}} || Receive || Ping / charging status&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x10}} || {{ic|0x00/0x01}} || Send || Mic monitor off/on&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x12}} || {{ic|minutes}} || Send || Set sleep timer&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x13}} || {{ic|0x00/0x01}} || Send || Voice prompts off/on&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x20}} || {{ic|0x00/0x01}} || Receive || Mic disconnected/connected (physical)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x22}} || {{ic|0x00/0x01}} || Receive || Mic monitor off/on confirmation&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x23}} || {{ic|0x00/0x01}} || Receive || Mic unmuted/muted (physical button)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|0x24}} || {{ic|0x01/0x02}} || Receive || Power off/on&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Use {{ic|--debug}} to log raw HID packets to stdout for further protocol analysis.&lt;br /&gt;
&lt;br /&gt;
== Equalizer ==&lt;br /&gt;
&lt;br /&gt;
The equalizer and DTS Headphone:X spatial audio features in HyperX NGENUITY are implemented entirely in the Windows audio driver. They are not HID commands sent to the headset and cannot be replicated through this application.&lt;br /&gt;
&lt;br /&gt;
For equalizer functionality on Linux, use a PipeWire or PulseAudio equalizer plugin:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|easyeffects}} - GUI equalizer for PipeWire&lt;br /&gt;
* {{Pkg|pulseaudio-equalizer}} - for PulseAudio setups&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Device not found ===&lt;br /&gt;
&lt;br /&gt;
Verify the dongle is detected:&lt;br /&gt;
&lt;br /&gt;
 $ lsusb | grep 03f0:098d&lt;br /&gt;
&lt;br /&gt;
If it appears but the application cannot access it, check that the udev rules are installed and the dongle was replugged after installation.&lt;br /&gt;
&lt;br /&gt;
=== Settings not applying on reconnect ===&lt;br /&gt;
&lt;br /&gt;
The application delays settings restoration by 2 seconds after the headset powers on to allow the firmware to finish initializing. If settings still do not apply, power cycle the headset and wait for it to fully reconnect.&lt;br /&gt;
&lt;br /&gt;
=== System tray icon not appearing ===&lt;br /&gt;
&lt;br /&gt;
Ensure your desktop environment supports legacy system tray icons. See [[#System tray]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/WaffleThief123/HyerpxAlpha-Linux HyerpxAlpha-Linux on GitHub]&lt;br /&gt;
* [https://github.com/Sapd/HeadsetControl HeadsetControl] - Multi-headset tool with Cloud Alpha Wireless support&lt;/div&gt;</summary>
		<author><name>Qkb</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Meld</id>
		<title>Meld</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Meld"/>
		<updated>2026-03-19T16:55:34Z</updated>

		<summary type="html">&lt;p&gt;Ismailarilik: Remove a category which is not exist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[ja:Meld]]&lt;br /&gt;
&lt;br /&gt;
{{App|Meld|A visual diff and merge tool targeted at developers.|https://meldmerge.org/|{{Pkg|meld}}}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Meld helps you compare files, directories, and version controlled projects. It provides two- and three-way comparison of both files and directories, and has support for many popular version control systems.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Meld helps you review code changes and understand patches. It might even help you to figure out what&amp;#039;s going on in that merge you keep avoiding.&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Arch ===&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{Pkg|meld}} package for the stable version.&lt;br /&gt;
&lt;br /&gt;
Or the {{Aur|meld-git}} for the latest commit version.&lt;br /&gt;
&lt;br /&gt;
=== Flatpak ===&lt;br /&gt;
Also available as a Flatpak from [[Flathub]]. &lt;br /&gt;
&lt;br /&gt;
{{Tip|If you have not already set up Flatpak, [[install]] the {{Pkg|flatpak}} package.}}&lt;br /&gt;
&lt;br /&gt;
You can install Meld with:&lt;br /&gt;
&lt;br /&gt;
 $ flatpak install flathub org.gnome.Meld&lt;br /&gt;
&lt;br /&gt;
To run the Flatpak version:&lt;br /&gt;
&lt;br /&gt;
 $ flatpak run org.gnome.Meld&lt;br /&gt;
&lt;br /&gt;
{{Warning|If you plan to use Meld as a git difftool, the native Arch package is recommended to simplify path resolution and integration.}}&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Meld can be launched from the terminal or the application menu of your desktop environment.&lt;br /&gt;
&lt;br /&gt;
You can interact with meld via terminal or GUI&lt;br /&gt;
&lt;br /&gt;
=== Usage example===&lt;br /&gt;
Comparing two files via terminal&lt;br /&gt;
 $ meld file1.txt file2.txt&lt;br /&gt;
&lt;br /&gt;
Comparing two files via GUI&lt;br /&gt;
 New comparison &amp;gt; File &amp;gt; Choose file1.txt and file2.txt &amp;gt; Compare&lt;br /&gt;
&lt;br /&gt;
== Version Control Systems Integration ==&lt;br /&gt;
Meld integrates with many version control systems to let you review local changes and perform simple version control tasks.&lt;br /&gt;
&lt;br /&gt;
=== Git configuration ===&lt;br /&gt;
Meld can be set as the default difftool and mergetool for [[Git]].&lt;br /&gt;
&lt;br /&gt;
Run the following commands to configure Git to use Meld:&lt;br /&gt;
&lt;br /&gt;
 git config --global diff.guitool meld&lt;br /&gt;
 git config --global merge.tool meld&lt;br /&gt;
&lt;br /&gt;
Or edit your {{ic|~/.gitconfig}} manually:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.gitconfig|2=&lt;br /&gt;
[diff]&lt;br /&gt;
    guitool = meld&lt;br /&gt;
[merge]&lt;br /&gt;
    tool = meld&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== SVN ===&lt;br /&gt;
Is possible to use Meld with [[Subversion]].&lt;br /&gt;
&lt;br /&gt;
{{Tip|Make sure {{Pkg|subversion}} package installed on your machine.}}&lt;br /&gt;
&lt;br /&gt;
Use command:&lt;br /&gt;
 svn diff --diff-cmd meld nome_file&lt;br /&gt;
&lt;br /&gt;
== File Managers Integration ==&lt;br /&gt;
&lt;br /&gt;
=== Nautilus ===&lt;br /&gt;
To add &amp;quot;Compare&amp;quot; options to the context menu in [[Nautilus]], install the {{AUR|nautilus-compare}} package. Restart Nautilus for changes to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Thunar ===&lt;br /&gt;
In [[Thunar]], you can set up a [[Thunar#Custom actions|custom action]].&lt;br /&gt;
# Go to Edit &amp;gt; Configure custom actions.&lt;br /&gt;
# Add a new action.&lt;br /&gt;
# Command: {{ic|meld %F}}&lt;br /&gt;
# Appearance conditions: Check &amp;quot;Directories&amp;quot; and &amp;quot;Text files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== Color Schemes ===&lt;br /&gt;
Meld supports syntax highlighting for a better visualization. &lt;br /&gt;
&lt;br /&gt;
Specific color preferences can be changed inside Meld via the Preferences menu.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Context Menu in Nautilus ===&lt;br /&gt;
If the context menu items do not appear after installing {{AUR|nautilus-compare}}, ensure you have restarted the file manager completely:&lt;br /&gt;
&lt;br /&gt;
 $ nautilus -q&lt;br /&gt;
&lt;br /&gt;
Or try rebooting your machine.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://meldmerge.org/help/ Official Documentation]&lt;br /&gt;
* [https://flathub.org/en/apps/org.gnome.meld FlatHub page]&lt;/div&gt;</summary>
		<author><name>IlCande</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Lenovo_IdeaPad_U410</id>
		<title>Lenovo IdeaPad U410</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Lenovo_IdeaPad_U410"/>
		<updated>2026-03-19T05:29:06Z</updated>

		<summary type="html">&lt;p&gt;Rekindle0841: Add #See also section with hardware probe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Lenovo]]&lt;br /&gt;
{| class=&amp;quot;wikitable archwiki-table-laptop&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Hardware !! PCI/USB ID !! Working?&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || PS/2 || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| TouchPad || PS/2 || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| GPU (Intel) || {{ic|06cb:0166}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| GPU (NVIDIA) || {{ic|10de:1058}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Wi-Fi || {{ic|8086:0891}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || {{ic|10ec:8136}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Audio || {{ic|8086:1e20}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Webcam || {{ic|04f2:b2e1}} || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A rather interesting ultrabook from the early 2010s, featuring an HDD + SSD RAID, and a dedicated NVIDIA GT 610M GPU that is better off not being used.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
You&amp;#039;ll have to decide on whether to keep the preconfigured RAID configuration, which uses the main hard drive, or to ditch the RAID config and install on the SSD. The SSD is only 32GB, which can cause issues when installing large packages like desktop environments or games. It may be best to replace the 32GB mSATA drive with a higher-capacity one, replace the 500GB SATA HDD with an SSD, or [[Install Arch Linux on a removable medium|install on an SD card]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The laptop can also boot from it&amp;#039;s internal SD-card slot, so it can be used as another option to install the OS on, or from.&lt;br /&gt;
&lt;br /&gt;
== Accessibility ==&lt;br /&gt;
This laptop features a primarily text-based UEFI-supported BIOS which is easy to OCR.&lt;br /&gt;
&lt;br /&gt;
The easiest way of entering the boot menu is by pressing on the Novo button on the side, which allows you to bypass the trial and error button mashing. After pressing it you can either enter into the BIOS, boot menu, or One Key Recovery which looks for a recovery partition. Another way of getting into the boot menu is by pressing {{ic|F12}} during POST. Pressing {{ic|F2}} during POST will take you to the BIOS.&lt;br /&gt;
&lt;br /&gt;
The BIOS is primarily keyboard navigateable and doesn&amp;#039;t need a mouse or trackpad&lt;br /&gt;
&lt;br /&gt;
== Graphics ==&lt;br /&gt;
Most units were shipped with an NVIDIA GT 610M dedicated graphics card (GF119M). It is no longer properly supported by the proprietary NVIDIA driver. You have four options:&lt;br /&gt;
&lt;br /&gt;
* Use kernel mode setting (works out of the box)&lt;br /&gt;
&lt;br /&gt;
* Install {{Pkg|xf86-video-nouveau}} (small improvement)&lt;br /&gt;
&lt;br /&gt;
* Install {{aur|nvidia-390xx-dkms}} (does not support Wayland)&lt;br /&gt;
&lt;br /&gt;
Performance will not be great. Expect frequent freezes under moderate loads.&lt;br /&gt;
&lt;br /&gt;
The last option is to ditch the GPU entirely and use the integrated Intel HD 4000 graphics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
fwupd recognizes the device, but only lists the CPU, the drives, and miscellaneous items such as {{ic|ME}} and {{ic|B140XTN02.3}}&lt;br /&gt;
&lt;br /&gt;
== Function keys ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key&lt;br /&gt;
! Visible?&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
! Marked?&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
! Effect&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Function keys&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F1}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioMute}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F2}} || {{Yes}} || {{Yes}} || {{ic|XF86LowerVolume}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F3}} || {{Yes}} || {{Yes}} || {{ic|XF86RaiseVolume}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F4}} || {{Yes}} || {{Yes}} || Does nothing ({{ic|F4}} in xev)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F5}} || {{Yes}} || {{Yes}} || Does nothing ({{ic|F5}} in xev)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F6}} || {{Yes}} || {{Yes}} || Toggles touchpad on and off&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F7}} || {{Yes}} || {{Yes}} || {{ic|XF86RFKill}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F8}} || {{Yes}} || {{Yes}} || {{ic|plusminus}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F9}} || {{Yes}} || {{Yes}} || {{ic|XF86WebCam}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F10}} || {{Yes}} || {{Yes}} || Change external display options ({{ic|Super_L}} in xev)&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F11}} || {{Yes}} || {{Yes}} || {{ic|XF86MonBrightnessDown}}&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+F12}} || {{Yes}} || {{Yes}} || {{ic|XF86MonBrightnessUp}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Side keys&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+Home}} || {{Yes}} || {{Yes}} || Pause&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+End}} || {{Yes}} || {{Yes}} || Break&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+Page Up}} || {{Yes}} || {{Yes}} || Scroll Lock&lt;br /&gt;
|-&lt;br /&gt;
| {{ic|Fn+Page Down}} || {{Yes}} || {{Yes}} || Insert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# The key is visible to {{ic|xev}} and similar tools.&lt;br /&gt;
# The physical key has a symbol on it, which describes its function.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Laptop/Lenovo]]&lt;br /&gt;
* [https://linux-hardware.org/?probe=620c0310c4 Hardware Probe]&lt;/div&gt;</summary>
		<author><name>Rekindle0841</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Lemonade</id>
		<title>Lemonade</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Lemonade"/>
		<updated>2026-03-17T19:17:05Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz: remove category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lemonade helps users discover and run local AI apps by serving optimized LLMs, images, and speech right from their own GPUs and NPUs.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Lemonade is available in the [[AUR]]:&lt;br /&gt;
&lt;br /&gt;
* Install {{AUR|lemonade-server}} for the LLM server and router.&lt;br /&gt;
* Install {{AUR|lemonade-desktop}} for an electron GUI application. &lt;br /&gt;
&lt;br /&gt;
=== Recommended dependencies ===&lt;br /&gt;
&lt;br /&gt;
* Install {{Pkg|xrt}} and {{Pkg|xrt-plugin-amdxdna}} for AMD NPU support.&lt;br /&gt;
* Install {{Pkg|fastflowlm}} for running LLMs on the NPU.&lt;br /&gt;
&lt;br /&gt;
{{Note|For kernels older than 7.0, you also need to install  the {{AUR|amdxdna-dkms}} dkms driver in order for the NPU to be usable.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Systemd service ===&lt;br /&gt;
When Lemonade Server is installed, it includes a systemd service called {{ic|lemonade-server}} that allows you to manage the server process using standard systemd commands.&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;#039;&amp;#039;&amp;#039;Common Commands&amp;#039;&amp;#039;&amp;#039;|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Start the service &lt;br /&gt;
sudo systemctl start lemonade-server&lt;br /&gt;
&lt;br /&gt;
# Stop the service&lt;br /&gt;
sudo systemctl stop lemonade-server&lt;br /&gt;
&lt;br /&gt;
# Restart the service&lt;br /&gt;
sudo systemctl restart lemonade-server&lt;br /&gt;
&lt;br /&gt;
# Check service status&lt;br /&gt;
sudo systemctl status lemonade-server&lt;br /&gt;
&lt;br /&gt;
# Enable automatic startup on boot&lt;br /&gt;
sudo systemctl enable lemonade-server&lt;br /&gt;
&lt;br /&gt;
# Disable automatic startup on boot&lt;br /&gt;
sudo systemctl disable lemonade-server&lt;br /&gt;
&lt;br /&gt;
# View recent logs (follow mode)&lt;br /&gt;
sudo journalctl -u lemonade-server -f&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Service Features:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Automatic restart:&amp;#039;&amp;#039;&amp;#039; The service automatically restarts if the server crashes&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;User isolation:&amp;#039;&amp;#039;&amp;#039; Runs under the unprivileged {{ic|lemonade}} user for security&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Security hardening:&amp;#039;&amp;#039;&amp;#039; Includes systemd security options like {{ic|ProtectSystem{{=}}full}}, {{ic|ProtectHome{{=}}yes}}, and {{ic|NoNewPrivileges{{=}}yes}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== CLI usage ===&lt;br /&gt;
To see the available models and download them:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $ lemonade-server list&lt;br /&gt;
 $ lemonade-server pull Gemma-3-4b-it-GGUF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the backends available on your PC:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $ lemonade-server recipes&lt;br /&gt;
&lt;br /&gt;
To run and chat with Gemma 3:&lt;br /&gt;
&lt;br /&gt;
 $ lemonade-server run Gemma-3-4b-it-GGUF&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The Lemonade Server systemd service reads configuration in this order:&lt;br /&gt;
&lt;br /&gt;
* {{ic|/etc/lemonade/lemonade.conf}}&lt;br /&gt;
* {{ic|/etc/lemonade/conf.d/*.conf}}&lt;br /&gt;
&lt;br /&gt;
Use {{ic|/etc/lemonade/lemonade.conf}} for base settings, add local overrides as numbered drop-ins under {{ic|/etc/lemonade/conf.d/}}, and keep secrets like {{ic|LEMONADE_API_KEY}} in {{ic|/etc/lemonade/conf.d/zz-secrets.conf}}.&lt;br /&gt;
&lt;br /&gt;
Edit the base configuration file:&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano /etc/lemonade/lemonade.conf&lt;br /&gt;
&lt;br /&gt;
Create a drop-in override file:&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano /etc/lemonade/conf.d/50-local.conf&lt;br /&gt;
&lt;br /&gt;
Secrets, like {{ic|LEMONADE_API_KEY}}, are defined in {{ic|/etc/lemonade/conf.d/zz-secrets.conf}}:&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano /etc/lemonade/conf.d/zz-secrets.conf&lt;br /&gt;
&lt;br /&gt;
Using {{ic|/etc/lemonade/conf.d/}} for local overrides keeps them separate from the package-provided base config and is the recommended path for persistent customization.&lt;br /&gt;
&lt;br /&gt;
After making changes to the configuration files, restart the service for changes to take effect:&lt;br /&gt;
&lt;br /&gt;
 $ sudo systemctl restart lemonade-server&lt;br /&gt;
&lt;br /&gt;
=== Graphical User Interface ===&lt;br /&gt;
&lt;br /&gt;
The graphical user interface is both available in {{AUR|lemonade-server}} as a web-app, and in {{AUR|lemonade-desktop}} as an electron desktop application.&lt;br /&gt;
&lt;br /&gt;
This app provides a native desktop experience for managing models and chatting with LLMs running on {{ic|lemonade-router}}. It connects to the server via HTTP API and offers a modern, resizable panel-based interface.&lt;br /&gt;
&lt;br /&gt;
{{Note|&amp;#039;&amp;#039;&amp;#039;Key Features:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Model management (list, pull, load/unload)&lt;br /&gt;
* Chat interface with markdown/code rendering and LaTeX support&lt;br /&gt;
* Real-time server log viewer&lt;br /&gt;
* Persistent layout and inference settings&lt;br /&gt;
* Custom frameless window with zoom controls&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Luciddream</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Perl_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>Perl (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Perl_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-03-14T22:17:34Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: fix category, see Help:Category#i18n category name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming languages (Русский)]]&lt;br /&gt;
[[en:Perl]]&lt;br /&gt;
[[ja:Perl]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Programming languages (Русский)}}&lt;br /&gt;
{{Related|Perl package guidelines}}&lt;br /&gt;
{{Related|Perl Policy}}&lt;br /&gt;
{{Related|mod_perl}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|Perl|9 марта 2026|868547}}&lt;br /&gt;
&lt;br /&gt;
From [[Wikipedia:Perl|Wikipedia]]:&lt;br /&gt;
:Perl это высокоуровневый динамический язык общего применения с интерпретацией.&lt;br /&gt;
:Perl заимствует функции из других языков программирования включая C, sh, AWK, и sed. Он предоставляет конвейеры обработки текста без ограничений по длине данных, присущих основным утилитам UNIX.&lt;br /&gt;
:Perl завоевал широкую популярность в середине 90х как CGI скриптовый язык, отчасти из-за его мощных постоянных выражений и способностей парсинга строк.&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
[[Установите]] пакет {{Pkg|perl}}.&lt;br /&gt;
&lt;br /&gt;
== Команды ==&lt;br /&gt;
&lt;br /&gt;
Интерпретатор языка Perl:&lt;br /&gt;
&lt;br /&gt;
 $ perl&lt;br /&gt;
&lt;br /&gt;
Сообщение о багах Perl:&lt;br /&gt;
&lt;br /&gt;
 $ perlbug&lt;br /&gt;
&lt;br /&gt;
Открыть документацию Perl в формате [[Wikipedia:Plain Old Documentation|POD]]:&lt;br /&gt;
&lt;br /&gt;
 $ perldoc&lt;br /&gt;
&lt;br /&gt;
Отправить благодарственное письмо разработчикм и авторам Perl:&lt;br /&gt;
&lt;br /&gt;
 $ perlthanks&lt;br /&gt;
&lt;br /&gt;
== Управление пакетами ==&lt;br /&gt;
&lt;br /&gt;
[https://www.cpan.org/ Comprehensive Perl Archive Network (CPAN)] это репозиторий с более чем 250,000 програмными модулями и сопутствующей документацией написанными на языке Perl более чем 12,000 авторами.&lt;br /&gt;
&lt;br /&gt;
Также CPAN это имя Perl модуля, {{ic|CPAN.pm}}, который используется для загрузки и установки Perl программ из CPAN архива.&lt;br /&gt;
&lt;br /&gt;
=== Pacman и AUR ===&lt;br /&gt;
&lt;br /&gt;
Некоторое число популярных CPAN модулей доступны как [https://archlinux.org/packages/?q=perl- пакеты] в репозитории Arch. Ещё больше модулей доступны в [https://aur.archlinux.org/packages?SeB=n&amp;amp;K=perl- AUR].&lt;br /&gt;
&lt;br /&gt;
=== CPAN.pm ===&lt;br /&gt;
&lt;br /&gt;
Модуль {{ic|CPAN.pm}} включён в Perl. Он может быть использован интерактивно из терминала или в скрипте Perl.&lt;br /&gt;
&lt;br /&gt;
==== Конфигурация cpan ====&lt;br /&gt;
&lt;br /&gt;
Перед первым использованием, модуль должен быть сконфигурирован. Это делается интерактивно из терминала с (приведено немного вывода):&lt;br /&gt;
&lt;br /&gt;
{{hc|$ cpan|&lt;br /&gt;
CPAN.pm requires configuration, but most of it can be done automatically.&lt;br /&gt;
If you answer &amp;#039;no&amp;#039; below, you will enter an interactive dialog for each&lt;br /&gt;
configuration option instead.&lt;br /&gt;
&lt;br /&gt;
Would you like to configure as much as possible automatically? [yes]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Автоматическая конфигурация подходит для большинства пользователей. Ответив yes, конфигурация продолжится с:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
To install modules, you need to configure a local Perl library directory or&lt;br /&gt;
escalate your privileges. CPAN can help you by bootstrapping the local::lib&lt;br /&gt;
module or by configuring itself to use &amp;#039;sudo&amp;#039; (if available). You may also&lt;br /&gt;
resolve this problem manually if you need to customize your setup.&lt;br /&gt;
&lt;br /&gt;
What approach do you want?  (Choose &amp;#039;local::lib&amp;#039;, &amp;#039;sudo&amp;#039; or &amp;#039;manual&amp;#039;)&lt;br /&gt;
 [local::lib]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Если вы хотите чтобы {{ic|cpan}} устанавливал модули в вашу домашнюю директорию выберите {{ic|local::lib}}. Для установки по всей системе выберите {{ic|sudo}}. Выбрав {{ic|sudo}} конфигурация завершается:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
Autoconfiguration complete.&lt;br /&gt;
&lt;br /&gt;
commit: wrote &amp;#039;/home/&amp;#039;&amp;#039;пользователь&amp;#039;&amp;#039;/.cpan/CPAN/MyConfig.pm&amp;#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Выбор варианта {{ic|local::lib}} приведёт к установке дополнительных модулей.&lt;br /&gt;
&lt;br /&gt;
Выбор не использовать автоматическую конфигурацию позволяет пользователю установить опции {{ic|cpan}} интерактивно в терминале. Таблица ниже показывает некоторые имена опций с кратким описанием и значением по-умолчанию. Более детальная информация будет показана для каждой опции во время конфигурирования.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description !! Default&lt;br /&gt;
|-&lt;br /&gt;
| cpan_home || CPAN директория сборки и кэширования || $HOME/.cpan&lt;br /&gt;
|-&lt;br /&gt;
| keep_source_where || Загрузочная директория || $HOME/.cpan/sources&lt;br /&gt;
|-&lt;br /&gt;
| build_dir || Директория процесса сборки || $HOME/.cpan/build&lt;br /&gt;
|-&lt;br /&gt;
| prefs_dir || Директория с опциями кастомизируемых модулей || $HOME/.cpan/prefs&lt;br /&gt;
|-&lt;br /&gt;
| build_cache || Размер кэша для директории сборки || 100MB&lt;br /&gt;
|-&lt;br /&gt;
| cleanup_after_install || Удалить директорию сборки после успешной установки || No&lt;br /&gt;
|-&lt;br /&gt;
| shell || Предпочитаемая оболочка || /bin/bash&lt;br /&gt;
|-&lt;br /&gt;
| halt_on_failure || Ждать при неудаче || No&lt;br /&gt;
|-&lt;br /&gt;
| colorize_output || Включить цветной вывод || No&lt;br /&gt;
|-&lt;br /&gt;
| histfile || Расположение файла истории || $HOME/.cpan/histfile&lt;br /&gt;
|-&lt;br /&gt;
| histsize || Размер файла истории || 100 lines&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Кофигурационный файл {{ic|$HOME/.cpan/CPAN/MyConfig.pm}} может быть отредактирован текстовым редактором по вашему выбору.&lt;br /&gt;
&lt;br /&gt;
==== Примеры использования ====&lt;br /&gt;
&lt;br /&gt;
Чтобы просто установить модули пропишите их как параметры к {{ic|cpan}} (несколько имён модулей разделены пробелами):&lt;br /&gt;
&lt;br /&gt;
 $ cpan Acme::MetaSyntactic&lt;br /&gt;
&lt;br /&gt;
Приведённые примеры исполняются в интерактивной оболочке {{ic|cpan}}, открывающейся по команде:&lt;br /&gt;
&lt;br /&gt;
 $ cpan&lt;br /&gt;
&lt;br /&gt;
Отобразить информацию о модуле:&lt;br /&gt;
&lt;br /&gt;
{{hc|cpan[1]&amp;gt; m Acme::MetaSyntactic|2=&lt;br /&gt;
Reading &amp;#039;/home/&amp;#039;&amp;#039;пользователь&amp;#039;&amp;#039;/.cpan/Metadata&amp;#039;&lt;br /&gt;
  Database was generated on Fri, 08 Dec 2017 02:17:03 GMT&lt;br /&gt;
Module id = Acme::MetaSyntactic&lt;br /&gt;
    CPAN_USERID  BOOK (Philippe Bruhat (BooK) &amp;lt;book@cpan.org&amp;gt;)&lt;br /&gt;
    CPAN_VERSION 1.014&lt;br /&gt;
    CPAN_FILE    B/BO/BOOK/Acme-MetaSyntactic-1.014.tar.gz&lt;br /&gt;
    INST_FILE    (not installed)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Отобразить {{ic|README}} модуля:&lt;br /&gt;
&lt;br /&gt;
{{hc|cpan[2]&amp;gt; readme Acme::MetaSyntactic|2=&lt;br /&gt;
Acme::MetaSyntactic - Themed metasyntactic variables&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
When writing code examples, it&amp;#039;s always easy at the beginning:&lt;br /&gt;
&lt;br /&gt;
   my $foo = &amp;quot;bar&amp;quot;;&lt;br /&gt;
   $foo .= &amp;quot;baz&amp;quot;;   # barbaz&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Установите модуль:&lt;br /&gt;
&lt;br /&gt;
 cpan[3]&amp;gt; install Acme::MetaSyntactic&lt;br /&gt;
&lt;br /&gt;
Перезапустите конфигурацию cpan:&lt;br /&gt;
&lt;br /&gt;
 cpan[1]&amp;gt; o conf init&lt;br /&gt;
&lt;br /&gt;
== Привязка виджетов ==&lt;br /&gt;
&lt;br /&gt;
Доступны указанные [[Wikipedia:Widget toolkit|инструменты виджетов]] для привязки:&lt;br /&gt;
&lt;br /&gt;
* {{App|gtk2-perl|GTK2 привязки|https://gtk2-perl.sourceforge.net/|{{AUR|gtk2-perl}}}}&lt;br /&gt;
* {{App|perl-gtk3|GTK3 привязки|https://metacpan.org/release/Gtk3|{{Pkg|perl-gtk3}}}}&lt;br /&gt;
* {{App|Perl/TK|Tk привязки|https://search.cpan.org/dist/Tk/|{{Pkg|perl-tk}}}}&lt;br /&gt;
* {{App|wxPerl|wxWidgets привязки|http://www.wxperl.it/|{{AUR|perl-wx}}}}&lt;br /&gt;
* {{App|Prima|Мультиплатформенный графический набор инструментов Perl|https://metacpan.org/release/Prima|{{AUR|perl-prima}}}}&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать их с Perl, вам нужно установить соответствующие наборы виджетов.&lt;br /&gt;
&lt;br /&gt;
== Поддержка IDE ==&lt;br /&gt;
&lt;br /&gt;
=== Разработка в Jetbrains IDE ===&lt;br /&gt;
&lt;br /&gt;
Если вы используете JetBrains IDE, к примеру IntelliJ Idea, установите {{AUR|perl-bundle-camelcade}}. Затем установите [https://plugins.jetbrains.com/plugin/7796-perl Perl] плагин. Затем перейдите в &amp;#039;&amp;#039;Параметры &amp;gt; Языки и Фреймворки &amp;gt; Perl5&amp;#039;&amp;#039;. В поле &amp;#039;&amp;#039;Perl 5 Interpreter&amp;#039;&amp;#039; выберите &amp;#039;&amp;#039;Добавить Системный Perl&amp;#039;&amp;#039;. Теперь вы можете запускать/отлаживать конфигурацию для вашего проекта.&lt;br /&gt;
&lt;br /&gt;
== Советы и хитрости ==&lt;br /&gt;
&lt;br /&gt;
=== Perl среда разработки ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|perlbrew}} и {{AUR|plenv}} автоматизируют установку и управление несколькими версиями perl в вашей домашней директории, позволяя вам устанавливать модули локально без конфликтов с системным Perl.&lt;br /&gt;
&lt;br /&gt;
=== Улучшенное управление модулями ===&lt;br /&gt;
&lt;br /&gt;
==== cpanminus ====&lt;br /&gt;
&lt;br /&gt;
[https://metacpan.org/release/App-cpanminus cpanminus] расширяет управление модулями, стремясь быть без конфигурации и интегрироваться с {{ic|local::lib}}.&lt;br /&gt;
&lt;br /&gt;
[[Установите]] пакет {{Pkg|cpanminus}}.&lt;br /&gt;
&lt;br /&gt;
Смотрите [https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm cpanminus документацию] для примеров.&lt;br /&gt;
&lt;br /&gt;
==== ucpan ====&lt;br /&gt;
&lt;br /&gt;
[https://metacpan.org/pod/release/KPEE/App-ucpan-1.13/script/ucpan ucpan] это программа для обновления модулей CPAN (в особенности установленных в local-lib). Для установки,выполните:&lt;br /&gt;
&lt;br /&gt;
 $ cpan App::ucpan&lt;br /&gt;
&lt;br /&gt;
==== Bundle::CPAN ====&lt;br /&gt;
&lt;br /&gt;
Установка [https://metacpan.org/release/Bundle-CPAN Bundle::CPAN] добавит множество приятного функционала {{ic|CPAN.pm}}.&lt;br /&gt;
&lt;br /&gt;
 $ cpan Bundle::CPAN&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
&lt;br /&gt;
=== Perl ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.perl.org/ The Perl Programming Language (Perl homepage)]&lt;br /&gt;
* [[Wikipedia:Perl]]&lt;br /&gt;
* {{man|1|perl}}&lt;br /&gt;
* {{man|1|perldoc}}&lt;br /&gt;
&lt;br /&gt;
=== CPAN ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.cpan.org Comprehensive Perl Archive Network]&lt;br /&gt;
* [[wikipedia:CPAN]]&lt;br /&gt;
* [http://joshr.com/src/docs/CPANQuickReference.pdf CPAN / CPAN Shell / CPANPLUS Quick Reference Guide]&lt;br /&gt;
* [https://metacpan.org/pod/Task::Kensho#RECOMMENDED-MODULES List of recommended Perl modules]&lt;br /&gt;
&lt;br /&gt;
=== Обучающие материалы ===&lt;br /&gt;
&lt;br /&gt;
* [https://learn.perl.org/tutorials/ Perl Tutorials]&lt;br /&gt;
* [https://perldoc.perl.org/index-tutorials.html Tutorials at perldoc]&lt;br /&gt;
* [https://web.archive.org/web/20200214042813/http://learnperl.scratchcomputing.com/tutorials/configuration/ cpan configuration]&lt;br /&gt;
* [https://www.perlmonks.org/?node=Tutorials PerlMonks Tutorials]&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Incron_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>Incron (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Incron_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-03-14T18:42:27Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: fix category, see Help:Category#i18n category name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:System administration (Русский)]]&lt;br /&gt;
[[en:Incron]]&lt;br /&gt;
[[es:Incron]]&lt;br /&gt;
[[ja:Incron]]&lt;br /&gt;
[[pt:Incron]]&lt;br /&gt;
{{TranslationStatus (Русский)|Incron|2 сентября 2023|786696}}&lt;br /&gt;
[http://inotify.aiken.cz/?section=incron&amp;amp;page=about&amp;amp;lang=en incron] это &amp;quot;inotify cron&amp;quot; система. Она состоит из демона и таблицы манипулятора. Вы можете использовать это подобно обычному cron. Отличие в том что inotify cron поддерживает [[Autostarting_(Русский)#События файловой системы|события файловой системы]] лучше чем периоды. &lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
[[Установите]] пакет {{Pkg|incron}}.&lt;br /&gt;
&lt;br /&gt;
== Активация и автозапуск ==&lt;br /&gt;
&lt;br /&gt;
После установки, демон не будет включён по умолчанию. Вы можете [[включить]] {{ic|incrond.service}}.&lt;br /&gt;
&lt;br /&gt;
== Конфигурация ==&lt;br /&gt;
&lt;br /&gt;
Incrontabs никогда не должен быть изменен напрямую; вместо этого, пользователи должны использовать &amp;#039;&amp;#039;incrontab&amp;#039;&amp;#039; программу чтобы работать с их incrontabs.&lt;br /&gt;
&lt;br /&gt;
=== Использование incrontab ===&lt;br /&gt;
&lt;br /&gt;
Чтобы отобразить incrontabs, нужно выполнить:&lt;br /&gt;
&lt;br /&gt;
 $ incrontab -l&lt;br /&gt;
&lt;br /&gt;
Чтобы редактировать incrontabs, нужно выполнить:&lt;br /&gt;
&lt;br /&gt;
 $ incrontab -e&lt;br /&gt;
&lt;br /&gt;
Чтобы удалить incrontabs, нужно выполнить:&lt;br /&gt;
&lt;br /&gt;
 $ incrontab -r&lt;br /&gt;
&lt;br /&gt;
Чтобы перезагрузить &amp;#039;&amp;#039;incrond&amp;#039;&amp;#039; выполните:&lt;br /&gt;
&lt;br /&gt;
 $ incrontab -d&lt;br /&gt;
&lt;br /&gt;
Чтобы отредактировать чужой incrontab, выполните:&lt;br /&gt;
&lt;br /&gt;
 # incrontab -u &amp;#039;&amp;#039;пользователь&amp;#039;&amp;#039; -e&lt;br /&gt;
&lt;br /&gt;
=== Форматирование Incrontab ===&lt;br /&gt;
&lt;br /&gt;
Каждая строка в incrontab файле это таблица которую демон должен выполнить когда происходит событие с определённым файлом или директорией.&lt;br /&gt;
&lt;br /&gt;
Вот базовый формат incrontab:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;путь&amp;#039;&amp;#039; &amp;#039;&amp;#039;маска&amp;#039;&amp;#039; &amp;#039;&amp;#039;команда&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
;путь: это директория или файл за которыми &amp;#039;&amp;#039;incrond&amp;#039;&amp;#039; будет следить.&lt;br /&gt;
;маска: тип события файловой системы который будет ждать incrond. Этот параметр может быть отделён ковычками.&lt;br /&gt;
;команда: команда которая будет выполнена после ожидаемого события.&lt;br /&gt;
&lt;br /&gt;
==== Тип маски ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;incrontab&amp;#039;&amp;#039; использует типы масок для точного указания что должно произойти в файловой системе. Для подробностей см. {{man|7|inotify}}&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл прочитан:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_ACCESS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда метадата файла или сам файл изменён (к примеру &amp;#039;&amp;#039;timestamps&amp;#039;&amp;#039;,  &amp;#039;&amp;#039;permissons&amp;#039;&amp;#039;):&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_ATTRIB&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл открытый для записи закрывается:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_CLOSE_WRITE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл не открытый для записи закрывается:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_CLOSE_NOWRITE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл или директория создаётся в отслеживаемой директории:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_CREATE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл или директория удаляется из отслеживаемой директории:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_DELETE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл или директория удаляется из отслеживаемой директории (или перемещён в другую файловую систему):&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_DELETE_SELF&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл был изменён:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_MODIFY&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл или директория перемещена файловой системой:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_MOVE_SELF&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл или директория перемещена вне отслеживаемой директории:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_MOVED_FROM&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл или директория перемещена в отслеживаемую директорию:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_MOVED_TO&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Выполнить команду когда файл или директория открыта:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_OPEN&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Произвольные типы маски ====&lt;br /&gt;
&lt;br /&gt;
Incrond предоставляет дополнительные произвольные события для модификации отслеживаемого состояния.&lt;br /&gt;
&lt;br /&gt;
К примеру, чтобы остановить отслеживание событий пока одно из них не выполнится, добавьте &amp;#039;&amp;#039;loopable=true&amp;#039;&amp;#039; в список событий:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;IN_CLOSE,loopable=true&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Событие с зацикленным событием не будет запущено пока соответствующая команда не будет выполнена снова.&lt;br /&gt;
&lt;br /&gt;
Смотрите {{man|5|incrontab}} для полного списка произвольных типов масок.&lt;/div&gt;</summary>
		<author><name>Shipa 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Na%C3%AFveProxy_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>NaïveProxy (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Na%C3%AFveProxy_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-03-13T20:19:05Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: fix category, see Help:Category#i18n category name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Proxy servers (Русский)]]&lt;br /&gt;
[[en:NaïveProxy]]&lt;br /&gt;
[[ja:NaïveProxy]]&lt;br /&gt;
[[zh-hans:NaïveProxy]]&lt;br /&gt;
{{Related articles start (Русский)}}&lt;br /&gt;
{{Related|Trojan}}&lt;br /&gt;
{{Related|Shadowsocks}}&lt;br /&gt;
{{Related|V2Ray}}&lt;br /&gt;
{{Related|WireGuard}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/klzgrad/naiveproxy NaïveProxy] — кроссплатформенный прокси, использующий сетевой стек Chromium для маскировки трафика и обхода блокировок с низким шансом обнаружения [[Wikipedia:ru:Золотой щит|Великим китайским файрволом]]. Он смягчает проблемы с TLS fingerprint, которые приводят к обнаружению и обходит [https://github.com/net4people/bbs/issues/129 крупные блокировки TLS-based средств обхода блокировок в Китае]. Для его работы требуются клиент {{ic|naiveproxy}} и [[Caddy]] с установленным {{ic|forwardproxy}}.&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
Установите {{AUR|naiveproxy}} и запустите {{ic|naiveproxy config.json}}. Ниже пример конфигурации:&lt;br /&gt;
&lt;br /&gt;
{{hc|config.json|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;listen&amp;quot;: &amp;quot;socks://127.0.0.1:1080&amp;quot;,&lt;br /&gt;
  &amp;quot;proxy&amp;quot;: &amp;quot;https://myUsername:myStrongPassword@my.domain&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Настройка ==&lt;br /&gt;
&lt;br /&gt;
Naiveproxy не может работать без Caddy сервера с модулем {{ic|forwardproxy}}. Вы можете собрать его с помощью {{ic|xcaddy}}:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
$ go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest&lt;br /&gt;
$ ~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2{{=}}github.com/klzgrad/forwardproxy@naive&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Ниже дана конфигурация для Caddy:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/caddy/Caddyfile|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  order forward_proxy before file_server&lt;br /&gt;
}&lt;br /&gt;
:443, my.domain:443 {&lt;br /&gt;
  tls /etc/caddy/ssl.cer /etc/caddy/ssl.key&lt;br /&gt;
  forward_proxy {&lt;br /&gt;
    basic_auth myUsername myStrongPassword&lt;br /&gt;
    hide_ip&lt;br /&gt;
    hide_via&lt;br /&gt;
    probe_resistance&lt;br /&gt;
  }&lt;br /&gt;
  file_server {&lt;br /&gt;
    root /var/www/html&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Учтите, что {{ic|:443}} должен стоять &amp;#039;&amp;#039;&amp;#039;первым&amp;#039;&amp;#039;&amp;#039;, чтобы Caddyfile работал корректно. См. [https://caddyserver.com/docs/caddyfile/directives/tls документацию Caddyfile] о настройке TLS-сертификатов.&lt;br /&gt;
&lt;br /&gt;
После запустите Caddy:&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_bind_service{{=}}+ep ./caddy &amp;amp;&amp;amp; ./caddy start&lt;br /&gt;
&lt;br /&gt;
Вы также можете [https://github.com/klzgrad/naiveproxy/wiki/Run-Caddy-as-a-daemon запустить Caddy как демон].&lt;/div&gt;</summary>
		<author><name>Uebach</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Iptables_(Polski)</id>
		<title>Iptables (Polski)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Iptables_(Polski)"/>
		<updated>2026-03-13T19:48:07Z</updated>

		<summary type="html">&lt;p&gt;Wacek: drobne&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:Firewalls (Polski)]]&lt;br /&gt;
[[de:Iptables]]&lt;br /&gt;
[[es:Iptables]]&lt;br /&gt;
[[en:Iptables]]&lt;br /&gt;
[[fr:Iptables]]&lt;br /&gt;
[[hu:Iptables]]&lt;br /&gt;
[[ja:Iptables]]&lt;br /&gt;
[[ru:Iptables]]&lt;br /&gt;
[[zh-hans:Iptables]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|nftables}}&lt;br /&gt;
{{Related|Fail2ban}}&lt;br /&gt;
{{Related|sshguard}}&lt;br /&gt;
{{Related|Simple stateful firewall}}&lt;br /&gt;
{{Related|Sysctl#TCP/IP stack hardening}}&lt;br /&gt;
{{Related|Uncomplicated Firewall}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;iptables&amp;#039;&amp;#039; to narzędzie wiersza poleceń do konfigurowania zapory sieciowej jądra Linuksa, zaimplementowanej w projekcie [[Wikipedia:Netfilter|Netfilter]]. Termin &amp;#039;&amp;#039;iptables&amp;#039;&amp;#039; jest również powszechnie używany w odniesieniu do tej zapory sieciowej na poziomie jądra. Można ją konfigurować bezpośrednio przy użyciu iptables lub za pomocą jednego z wielu interfejsów [[#Console|konsoli]] i [[#Graphical|graficznych]]. &amp;#039;&amp;#039;iptables&amp;#039;&amp;#039; jest używane dla [[Wikipedia:IPv4|IPv4]], a &amp;#039;&amp;#039;ip6tables&amp;#039;&amp;#039; dla [[Wikipedia:IPv6|IPv6]]. Zarówno &amp;#039;&amp;#039;iptables&amp;#039;&amp;#039;, &lt;br /&gt;
jak i &amp;#039;&amp;#039;ip6tables&amp;#039;&amp;#039; mają tę samą składnię, ale niektóre opcje są specyficzne dla IPv4 lub IPv6.&lt;br /&gt;
&lt;br /&gt;
{{Note|&amp;#039;&amp;#039;iptables&amp;#039;&amp;#039; to przestarzały framework, [[nftables]] ma na celu zapewnienie nowoczesnego zamiennika, zawierającego warstwę kompatybilności.}}&lt;br /&gt;
&lt;br /&gt;
== Instalacja ==&lt;br /&gt;
&lt;br /&gt;
Standardowe jądro Arch Linux jest kompilowane z obsługą iptables. Wystarczy zainstalować narzędzia przestrzeni użytkownika, które zapewnia pakiet {{Pkg|iptables}}. Pakiet {{Pkg|iptables}} jest pośrednią zależnością metapakietu {{Pkg|base}}, dlatego powinien być domyślnie zainstalowany w systemie.&lt;br /&gt;
&lt;br /&gt;
=== Front-ends ===&lt;br /&gt;
&lt;br /&gt;
==== Console ====&lt;br /&gt;
&lt;br /&gt;
* {{App|Zapora Arno|Bezpieczna zapora dla maszyn z jednym lub wieloma interfejsami sieciowymi. Bardzo łatwa w konfiguracji, wygodna w zarządzaniu i wysoce konfigurowalna. Obsługuje: NAT i SNAT, przekierowanie portów, modemy Ethernet ADSL ze statycznymi i dynamicznie przydzielanymi adresami IP, filtrowanie adresów MAC, wykrywanie ukrytego skanowania portów, przekierowanie DMZ i DMZ-2-LAN, ochronę przed zalewaniem SYN/ICMP, zaawansowane logowanie konfigurowalne przez użytkownika z ograniczaniem liczby wpisów zapobiegającym zalewaniu dziennika, wszystkie protokoły IP oraz sieci VPN takie jak IPsec, obsługa wtyczek do rozszerzania funkcjonalności.|https://rocky.eld.leidenuniv.nl/|{{AUR|arno-iptables-firewall}}}}&lt;br /&gt;
* {{App|ferm|Narzędzie do zarządzania złożonymi firewallami bez konieczności wielokrotnego przepisywania reguł. Umożliwia przechowywanie całego zestawu reguł w osobnym pliku i ładowanie go jednym poleceniem. Konfiguracja wykorzystuje składnię przypominającą strukturalny język programowania, obsługującą zagnieżdżenia i listy.|http://ferm.foo-projects.org/|{{Pkg|ferm}}}}&lt;br /&gt;
* {{App|[[Wikipedia:FireHOL|FireHOL]]|Język do wyrażania reguł firewalla, a nie tylko skrypt tworzący firewall. Umożliwia łatwe budowanie nawet zaawansowanych firewall&amp;#039;i – dokładnie w taki sposób, jaki chcesz.|https://firehol.sourceforge.net/|{{AUR|firehol}}}}&lt;br /&gt;
* {{App|Firetable|Narzędzie do zarządzania zaporą iptables. Każdy interfejs można konfigurować oddzielnie za pomocą własnego pliku konfiguracyjnego z prostą i czytelną składnią.|https://gitlab.com/hsleisink/firetable|{{AUR|firetable}}}}&lt;br /&gt;
* {{App|[[firewalld]] (firewall-cmd)|Demon i interfejs konsoli do konfigurowania stref firewall&amp;#039;a oraz ustalania reguł zapory.|https://firewalld.org/|{{Pkg|firewalld}}}}&lt;br /&gt;
* {{App|[[Shorewall]]|Narzędzie wysokiego poziomu do konfiguracji Netfilter. Konfigurację firewall/gateway definiuje się poprzez wpisy w plikach konfiguracyjnych.|http://www.shorewall.net/|{{AUR|shorewall}}}}&lt;br /&gt;
* {{App|[[Uncomplicated Firewall]]|Prosty interfejs użytkownika dla iptables.|https://launchpad.net/ufw|{{Pkg|ufw}}}}&lt;br /&gt;
* {{App|[[PeerGuardian Linux|PeerGuardian]] (pglcmd)|Aplikacja zapory sieciowej ukierunkowana na bezpieczeństwo. Blokuje połączenia do i z hostów określonych na listach blokowania (zawierające tysiące lub miliony zakresów IP).|https://sourceforge.net/projects/peerguardian/|{{AUR|pgl}}}}&lt;br /&gt;
* {{App|Vuurmuur|Potężny menedżer zapory. Ma prostą i łatwą w obsłudze konfigurację, umożliwiającą zarówno proste, jak i złożone scenariusze. Całą konfigurację można przeprowadzić za pośrednictwem interfejsu GUI opartego na {{Pkg|ncurses}}, który umożliwia bezpieczne zdalne administrowanie przez SSH lub konsolę. Vuurmuur obsługuje kształtowanie ruchu i oferuje zaawansowane funkcje monitorowania, pozwalające administratorowi obserwować logi, połączenia i wykorzystanie przepustowości w czasie rzeczywistym.|https://www.vuurmuur.org/|{{AUR|vuurmuur}}}}&lt;br /&gt;
&lt;br /&gt;
==== Graphical ====&lt;br /&gt;
&lt;br /&gt;
* {{App|Firewall Builder|Narzędzie do konfiguracji i zarządzania zaporą sieciową obsługujące iptables (netfilter), ipfilter, pf, ipfw, Cisco PIX (FWSM, ASA) oraz listy dostępu routerów Cisco. Program działa w systemach Linux, FreeBSD, OpenBSD, Windows i macOS, umożliwiając zarządzanie zaporami lokalnymi i zdalnymi.|https://fwbuilder.sourceforge.net/|{{Pkg|fwbuilder}}}}&lt;br /&gt;
* {{App|[[Wikipedia:firewalld|firewalld]] (firewall-config)|Usługa i graficzny interfejs do konfigurowania stref zapory oraz reguł firewall&amp;#039;a.|https://firewalld.org/|{{Pkg|firewalld}}}}&lt;br /&gt;
* {{App|[[Uncomplicated Firewall#Gufw|Gufw]]|Oparty na GTK front-end do {{Pkg|ufw}}, który jest jednocześnie front-endem CLI do iptables (gufw-&amp;gt;ufw-&amp;gt;iptables). Jest niezwykle łatwy i prosty w użyciu.|https://gufw.org/|{{Pkg|gufw}}}}&lt;br /&gt;
* {{App|[[PeerGuardian Linux|PeerGuardian]] GUI (pglgui)|Aplikacja zapory sieciowej zorientowana na prywatność. Blokuje połączenia do i od hostów określonych na rozbudowanych listach blokowania (tysiące lub miliony zakresów IP).|https://sourceforge.net/projects/peerguardian/|{{AUR|pgl}}}}&lt;br /&gt;
* {{App|Portmaster|Portmaster to darmowa i otwartoźródłowa zapora sieciowa z domyślnymi ustawieniami, które zwiększają Twoją prywatność.|https://safing.io/|{{AUR|portmaster-bin}}}}&lt;br /&gt;
&lt;br /&gt;
== Podstawowe koncepcje ==&lt;br /&gt;
&lt;br /&gt;
iptables służy do inspekcji, modyfikacji, przekazywania, przekierowywania i/lub odrzucania pakietów IP. Kod filtrowania pakietów IP jest wbudowany w jądro i zorganizowany w zbiór tabeli, z których każda ma określone przeznaczenie. Tabele składają się z predefiniowanych łańcuchów, zawierających reguły przeglądane sekwencyjnie. Każda reguła zawiera predykat potencjalnych dopasowań i odpowiadającą akcję (zwaną celem), wykonaną gdy predykat jest spełniony. Jeśli pakiet IP dotrze do końca łańcucha (w tym łańcucha pustego), jego ostateczne przeznaczenie określa polityka łańcucha. iptables to narzędzie użytkownika umożliwiające pracę z łańcuchami i regułami. Większość początkujących użytkowników postrzega routing IP w Linuksie jako złożony, jednak w praktyce typowe zastosowania (NAT lub podstawowa zapora sieciowa) są znacznie prostsze.&lt;br /&gt;
&lt;br /&gt;
Kluczem do zrozumienia działania **iptables** jest [https://www.frozentux.net/iptables-tutorial/images/tables_traverse.jpg ten diagram]. Słowo małymi literami na górze to tabela, a słowo dużymi literami poniżej to łańcuch. Każdy pakiet IP przychodzący na dowolnym interfejsie sieciowym przechodzi przez ten diagram przepływu od góry do dołu. Powszechnym błędnym przekonaniem jest założenie, że pakiety przychodzące z interfejsu wewnętrznego są obsługiwane inaczej niż pakiety z interfejsu zwróconego do Internetu. Wszystkie interfejsy są obsługiwane w ten sam sposób; to od Ciebie zależy zdefiniowanie reguł, które będą je traktować inaczej. Oczywiście niektóre pakiety są przeznaczone dla procesów lokalnych i przychodzą z góry diagramu, zatrzymując się w punkcie &amp;lt;Local Process&amp;gt;, podczas gdy inne są generowane przez procesy lokalne; zaczynają się w punkcie &amp;lt;Local Process&amp;gt; i przechodzą w dół diagramu. Szczegółowe wyjaśnienie tego diagramu można znaleźć [https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#TRAVERSINGOFTABLES tutaj].&lt;br /&gt;
&lt;br /&gt;
W zdecydowanej większości przypadków użycia nie będzie potrzeby korzystania z tabel &amp;#039;&amp;#039;&amp;#039;raw&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;mangle&amp;#039;&amp;#039;&amp;#039; ani &amp;#039;&amp;#039;&amp;#039;security&amp;#039;&amp;#039;&amp;#039;. W związku z tym poniższy wykres przedstawia uproszczony przepływ pakietów sieciowych przez „iptables”:&lt;br /&gt;
&lt;br /&gt;
{{Text art|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
                               XXXXXXXXXXXXXXXXXX&lt;br /&gt;
                             XXX     Network    XXX&lt;br /&gt;
                               XXXXXXXXXXXXXXXXXX&lt;br /&gt;
                                       +&lt;br /&gt;
                                       |&lt;br /&gt;
                                       v&lt;br /&gt;
 +-------------+              +------------------+&lt;br /&gt;
 |table: filter| &amp;lt;---+        | table: nat       |&lt;br /&gt;
 |chain: INPUT |     |        | chain: PREROUTING|&lt;br /&gt;
 +-----+-------+     |        +--------+---------+&lt;br /&gt;
       |             |                 |&lt;br /&gt;
       v             |                 v&lt;br /&gt;
 [local process]     |           ****************          +--------------+&lt;br /&gt;
       |             +---------+ Routing decision +------&amp;gt; |table: filter |&lt;br /&gt;
       v                         ****************          |chain: FORWARD|&lt;br /&gt;
****************                                           +------+-------+&lt;br /&gt;
Routing decision                                                  |&lt;br /&gt;
****************                                                  |&lt;br /&gt;
       |                                                          |&lt;br /&gt;
       v                        ****************                  |&lt;br /&gt;
+-------------+       +------&amp;gt;  Routing decision  &amp;lt;---------------+&lt;br /&gt;
|table: nat   |       |         ****************&lt;br /&gt;
|chain: OUTPUT|       |               +&lt;br /&gt;
+-----+-------+       |               |&lt;br /&gt;
      |               |               v&lt;br /&gt;
      v               |      +-------------------+&lt;br /&gt;
+--------------+      |      | table: nat        |&lt;br /&gt;
|table: filter | +----+      | chain: POSTROUTING|&lt;br /&gt;
|chain: OUTPUT |             +--------+----------+&lt;br /&gt;
+--------------+                      |&lt;br /&gt;
                                      v&lt;br /&gt;
                               XXXXXXXXXXXXXXXXXX&lt;br /&gt;
                             XXX    Network     XXX&lt;br /&gt;
                               XXXXXXXXXXXXXXXXXX&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Tabele ===&lt;br /&gt;
&lt;br /&gt;
iptables zawiera pięć tabel:&lt;br /&gt;
&lt;br /&gt;
# {{ic|raw}} służy wyłącznie do konfigurowania pakietów w taki sposób, aby nie były one objęte śledzeniem połączeń.&lt;br /&gt;
# {{ic|filter}} to domyślna tabela, w której odbywają się wszystkie czynności zwykle kojarzone z zaporą sieciową.&lt;br /&gt;
# {{ic|nat}} służy do [[Wikipedia:Network address translation|network address translation]] (np. przekierowania portów).&lt;br /&gt;
# {{ic|mangle}} służy do specjalistycznych zmian pakietów.&lt;br /&gt;
# {{ic|security}} służy do określania reguł sieciowych [[Mandatory Access Control]] (np. SELinux — więcej szczegółów można znaleźć w [https://lwn.net/Articles/267140/ tym artykule]).&lt;br /&gt;
&lt;br /&gt;
W większości przypadków użytkownik będzie potrzebować tylko dwóch z nich: &amp;#039;&amp;#039;&amp;#039;filter&amp;#039;&amp;#039;&amp;#039; i &amp;#039;&amp;#039;&amp;#039;nat&amp;#039;&amp;#039;&amp;#039;. Pozostałe tabele są przeznaczone dla złożonych konfiguracji z wieloma routerami i decyzjami routingu, co wykracza poza zakres tego wprowadzenia.&lt;br /&gt;
&lt;br /&gt;
=== Więzy ===&lt;br /&gt;
&lt;br /&gt;
Tabele składają się z „łańcuchów&amp;quot;, czyli list reguł przetwarzanych sekwencyjnie. Główna tabela {{ic|filter}} zawiera trzy wbudowane łańcuchy: {{ic|INPUT}}, {{ic|OUTPUT}} i {{ic|FORWARD}}, które są aktywowane w różnych punktach procesu filtrowania pakietów, jak pokazano na [https://www.frozentux.net/iptables-tutorial/images/tables_traverse.jpg diagramie przepływu]. Tabela {{ic|nat}} zawiera łańcuchy {{ic|PREROUTING}}, {{ic|POSTROUTING}} i {{ic|OUTPUT}}.&lt;br /&gt;
&lt;br /&gt;
zobacz {{man|8|iptables}} — opis wbudowanych łańcuchów w innych tabelach.&lt;br /&gt;
&lt;br /&gt;
Domyślnie żaden z łańcuchów nie zawiera żadnych reguł. Musisz dołączyć reguły do łańcuchów, których chcesz używać. Łańcuchy posiadają domyślną politykę, która jest zazwyczaj ustawiona na {{ic|ACCEPT}}, ale można ją zresetować na {{ic|DROP}}, aby upewnić się, że nic nie przejdzie przez zestaw reguł. Polityka domyślna zawsze obowiązuje tylko na końcu łańcucha. Pakiet musi przejść przez wszystkie istniejące reguły w łańcuchu, zanim polityka domyślna zostanie zastosowana.&lt;br /&gt;
&lt;br /&gt;
Łańcuchy użytkownika można dodawać, aby uczynić zestawy reguł bardziej efektywnymi lub łatwiejszymi w modyfikacji. Przykład użycia łańcuchów użytkownika znajduje się w artykule [[Simple stateful firewall]]&lt;br /&gt;
&lt;br /&gt;
=== Zasady ===&lt;br /&gt;
&lt;br /&gt;
Filtrowanie pakietów opiera się na regułach, które są określone przez wiele warunków (kryteria, które pakiet musi spełnić, aby reguła mogła być zastosowana) oraz jeden cel (akcja wykonywana gdy pakiet spełnia wszystkie warunki). Typowe kryteria, na podstawie których reguła może się stosować, to interfejs, na którym pakiet się pojawił (np. eth0 lub eth1), typ pakietu (ICMP, TCP lub UDP) lub port docelowy pakietu.&lt;br /&gt;
&lt;br /&gt;
Targety są określane opcją {{ic|-j}} lub {{ic|--jump}}. Targety mogą być łańcuchami zdefiniowanymi przez użytkownika (jeśli warunki są spełnione, wykonywany jest skok do wskazanego łańcucha i przetwarzanie kontynuuje się tam), jednym ze specjalnych wbudowanych targetów lub rozszerzeniem target&amp;#039;u. Wbudowane targety to {{ic|ACCEPT}}, {{ic|DROP}}, {{ic|QUEUE}} i {{ic|RETURN}}; rozszerzeniami target&amp;#039;u są na przykład {{ic|REJECT}} i {{ic|LOG}}. Gdy targetem jest wbudowany target, los pakietu jest ustalany natychmiast i przetwarzanie pakietu w bieżącej tabeli się kończy. Gdy targetem jest łańcuch użytkownika, a przetwarzanie tego łańcucha nie ustali losu pakietu, pakiet zostanie porównany z pozostałymi regułami oryginalnego łańcucha. Rozszerzenia target&amp;#039;u mogą być &amp;#039;&amp;#039;kończące&amp;#039;&amp;#039; (jak wbudowane targety) lub &amp;#039;&amp;#039;niekończące&amp;#039;&amp;#039; (jak łańcuchy  użytkownika); szczegóły — {{man|8|iptables-extensions}}.&lt;br /&gt;
&lt;br /&gt;
=== Traversing Chains ===&lt;br /&gt;
&lt;br /&gt;
Pakiet sieciowy odebrany na dowolnym interfejsie przechodzi przez traffic control chains tabel w kolejności pokazanej na [https://www.frozentux.net/iptables-tutorial/images/tables_traverse.jpg schemacie przepływu]. Pierwsza decyzja routingu polega na określeniu, czy ostatecznym celem pakietu jest maszyna lokalna (wtedy pakiet przechodzi przez {{ic|INPUT}} chains), czy inny host (wtedy pakiet przechodzi przez {{ic|FORWARD}} chains). Kolejne decyzje routingu dotyczą wyboru interfejsu dla pakietu wychodzącego. W każdym chain na ścieżce każda reguła jest oceniana w kolejności, a gdy reguła się dopasuje, wykonywana jest odpowiadająca jej akcja target/jump. Trzy najczęściej używane targety to {{ic|ACCEPT}}, {{ic|DROP}} oraz skok do chain zdefiniowanego przez użytkownika. Podczas gdy wbudowane chains mogą mieć domyślne policy, user-defined chains nie mogą. Jeśli żadna reguła w chain, do którego nastąpił skok, nie zapewni pełnego dopasowania, pakiet wraca do chain wywołującego; patrz [https://www.frozentux.net/iptables-tutorial/images/table_subtraverse.jpg ilustracja]. Gdy reguła z targetem {{ic|DROP}} się dopasuje, pakiet jest odrzucany i dalsze przetwarzanie zostaje zatrzymane. Jeśli pakiet osiągnie target ACCEPT, nie przechodzi już przez pozostałe reguły chain ani kolejne chains tabeli — przetwarzanie przechodzi do pierwszego chain kolejnej tabeli. Patrz również [https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#TRAVERSINGOFTABLES Traversing of tables and chains] oraz [https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#ACCEPTTARGET Accept Target] w tutorialu frozentux.&lt;br /&gt;
&lt;br /&gt;
=== Moduły ===&lt;br /&gt;
&lt;br /&gt;
Istnieje wiele modułów, które można wykorzystać do rozszerzenia iptables, takich jak connlimit, conntrack, limit i recent. Moduły te dodają dodatkową funkcjonalność, umożliwiając stosowanie złożonych reguł filtrowania.&lt;br /&gt;
&lt;br /&gt;
== Konfiguracja i użytkowanie ==&lt;br /&gt;
&lt;br /&gt;
Domyślnie {{Pkg|iptables}} udostępnia pusty zestaw reguł w pliku {{ic|/etc/iptables/iptables.rules}}. Aby automatycznie ładować reguły iptables podczas rozruchu, możesz [[enable|włączyć]] jednostkę {{ic|iptables.service}} udostępnianą przez iptables lub [[start|uruchomić]] ją za pomocą systemd, aby załadować reguły natychmiast.&lt;br /&gt;
&lt;br /&gt;
Podobnie, reguły iptables dla IPv6 są domyślnie przechowywane w pliku {{ic|/etc/iptables/ip6tables.rules}}, który jest odczytywany przez {{ic|ip6tables.service}}. Możesz go uruchomić w ten sam sposób, jak powyżej.&lt;br /&gt;
&lt;br /&gt;
Po dodaniu reguł za pomocą wiersza poleceń, jak pokazano w poniższych sekcjach, plik konfiguracyjny nie zmienia się automatycznie — należy go zapisać ręcznie:&lt;br /&gt;
&lt;br /&gt;
 # iptables-save -f /etc/iptables/iptables.rules&lt;br /&gt;
&lt;br /&gt;
Jeśli edytujesz plik konfiguracyjny ręcznie, musisz [[reload]] iptables.&lt;br /&gt;
&lt;br /&gt;
Można też załadować go bezpośrednio przez iptables:&lt;br /&gt;
&lt;br /&gt;
 # iptables-restore /etc/iptables/iptables.rules&lt;br /&gt;
&lt;br /&gt;
=== Z wiersza poleceń ===&lt;br /&gt;
&lt;br /&gt;
==== Wyświetlanie aktualnej reguły ====&lt;br /&gt;
&lt;br /&gt;
Podstawowym poleceniem do wyświetlenia listy bieżących reguł jest {{ic|--list-rules}} ({{ic|-S}}), które ma podobny format wyjściowy do narzędzia &amp;#039;&amp;#039;iptables-save&amp;#039;&amp;#039;. Główna różnica: &amp;#039;&amp;#039;iptables-save&amp;#039;&amp;#039; domyślnie wyświetla reguły wszystkich tabel, podczas gdy polecenia &amp;#039;&amp;#039;iptables&amp;#039;&amp;#039; domyślnie działają na tabeli {{ic|filter}}.**&lt;br /&gt;
&lt;br /&gt;
Podczas pracy z iptables w wierszu poleceń polecenie {{ic|--list}} ({{ic|-L}}) przyjmuje więcej opcji i wyświetla więcej informacji. Na przykład możesz wyświetlić bieżący zestaw reguł i liczbę dopasowań na regułę, używając polecenia:&lt;br /&gt;
&lt;br /&gt;
{{hc|# iptables -nvL|&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jeśli wynik wygląda jak powyżej, oznacza to, że w domyślnej tabeli {{ic|filter}} nie ma żadnych reguł (tj. nic nie jest blokowane). Inne tabele można określić za pomocą opcji {{ic|-t}}.&lt;br /&gt;
&lt;br /&gt;
Aby wyświetlić numery wierszy podczas wyświetlania reguł, dodaj do tego pola {{ic|--line-numbers}}. Numery wierszy są przydatnym skrótem podczas [[#Editing rules]] w wierszu poleceń.&lt;br /&gt;
&lt;br /&gt;
==== Resetowanie reguł ====&lt;br /&gt;
&lt;br /&gt;
Możesz wyczyścić i przywrócić domyślne ustawienia iptables za pomocą następujących poleceń:&lt;br /&gt;
&lt;br /&gt;
 # iptables -F&lt;br /&gt;
 # iptables -X&lt;br /&gt;
 # iptables -t nat -F&lt;br /&gt;
 # iptables -t nat -X&lt;br /&gt;
 # iptables -t mangle -F&lt;br /&gt;
 # iptables -t mangle -X&lt;br /&gt;
 # iptables -t raw -F&lt;br /&gt;
 # iptables -t raw -X&lt;br /&gt;
 # iptables -t security -F&lt;br /&gt;
 # iptables -t security -X&lt;br /&gt;
 # iptables -P INPUT ACCEPT&lt;br /&gt;
 # iptables -P FORWARD ACCEPT&lt;br /&gt;
 # iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
Polecenie {{ic|-F}} bez argumentów opróżnia wszystkie łańcuchy w bieżącej tabeli. Podobnie, {{ic|-X}} usuwa wszystkie puste, inne niż domyślne łańcuchy w tabeli.&lt;br /&gt;
&lt;br /&gt;
Poszczególne łańcuchy można opróżnić lub usunąć, podając po {{ic|-F}} i {{ic|-X}} argument {{ic|[chain]}}.&lt;br /&gt;
&lt;br /&gt;
==== Zasady edycji ====&lt;br /&gt;
&lt;br /&gt;
Reguły można edytować poprzez: dołączenie {{ic|-A}} reguły do łańcucha, wstawienie {{ic|-I}} jej w określonym miejscu łańcucha, zastąpienie {{ic|-R}} istniejącej reguły lub usunięcie {{ic|-D}} jej. Poniżej przedstawiono przykłady trzech pierwszych poleceń.&lt;br /&gt;
&lt;br /&gt;
Po pierwsze, komputer nie jest routerem (chyba że [[Router|jest routerem]]). Chcemy zmienić domyślną politykę łańcucha {{ic|FORWARD}} z {{ic|ACCEPT}} na {{ic|DROP}}.&lt;br /&gt;
&lt;br /&gt;
 # iptables -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
{{Warning|Pozostała część tej sekcji omawia składnię i koncepcje reguł iptables. Nie stanowi ona przewodnika do zabezpieczania serwerów. Aby poprawić bezpieczeństwo systemu, zobacz [[Simple stateful firewall]] (minimalnie bezpieczna konfiguracja iptables) oraz [[Security]] (hardening Arch Linux).}}&lt;br /&gt;
&lt;br /&gt;
Funkcja synchronizacji LAN [[Wikipedia:Dropbox (usługa)|Dropbox]] [https://isc.sans.edu/port.html?port=17500 rozgłasza pakiety co 30 sekund] do wszystkich dostępnych komputerów. Jeśli w sieci LAN znajdują się klienty Dropbox, a ta funkcja nie jest używana, można rozważyć odrzucenie tych pakietów.&lt;br /&gt;
&lt;br /&gt;
 # iptables -A INPUT -p tcp --dport 17500 -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
&lt;br /&gt;
{{hc|# iptables -nvL --line-numbers|&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
1        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:17500 reject-with icmp-port-unreachable&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD (policy DROP 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Tutaj używamy {{ic|REJECT}} zamiast {{ic|DROP}}, ponieważ [[RFC:1122#page-69|RFC 1122]] wymaga, aby hosty zwracały błędy ICMP w miarę możliwości, zamiast porzucać pakiety. [https://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject Ta strona] wyjaśnia, dlaczego prawie zawsze lepiej jest używać REJECT niż DROP.}}&lt;br /&gt;
&lt;br /&gt;
Załóżmy, że rezygnujemy z Dropboxa i chcemy go zainstalować na naszym komputerze. Chcemy również włączyć synchronizację LAN, ale tylko z jednym konkretnym adresem IP w naszej sieci. Powinniśmy zatem użyć {{ic|-R}}, aby zastąpić starą regułę. Gdzie {{ic|10.0.0.85}} to inny adres IP w sieci:&lt;br /&gt;
&lt;br /&gt;
 # iptables -R INPUT 1 -p tcp --dport 17500 ! -s 10.0.0.85 -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
&lt;br /&gt;
{{hc|# iptables -nvL --line-numbers|&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
1        0     0 REJECT     tcp  --  *      *      !10.0.0.85            0.0.0.0/0            tcp dpt:17500 reject-with icmp-port-unreachable&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD (policy DROP 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Zastąpiliśmy naszą pierwotną regułę regułą, która zezwala adresowi IP {{ic|10.0.0.85}} na dostęp do portu {{ic|17500}} na naszym urządzeniu. Uświadamiamy sobie jednak, że to rozwiązanie nie jest skalowalne. Jeśli użytkownik Dropbox próbuje uzyskać dostęp do portu {{ic|17500}} na naszym urządzeniu, powinniśmy go natychmiast dopuścić, zamiast testować względem kolejnych reguł zapory sieciowej.&lt;br /&gt;
&lt;br /&gt;
Piszemy nową regułę, aby natychmiast zezwolić zaufanemu użytkownikowi. Używając {{ic|-I}}, wstawiamy nową regułę przed starą:&lt;br /&gt;
&lt;br /&gt;
 # iptables -I INPUT -p tcp --dport 17500 -s 10.0.0.85 -j ACCEPT -m comment --comment &amp;quot;Friendly Dropbox&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{hc|# iptables -nvL --line-numbers|&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
1        0     0 ACCEPT     tcp  --  *      *       10.0.0.85            0.0.0.0/0            tcp dpt:17500 /* Friendly Dropbox */&lt;br /&gt;
2        0     0 REJECT     tcp  --  *      *      !10.0.0.85            0.0.0.0/0            tcp dpt:17500 reject-with icmp-port-unreachable&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD (policy DROP 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Następnie zastąp naszą drugą regułę taką, która odrzuca wszystko na porcie {{ic|17500}}:&lt;br /&gt;
&lt;br /&gt;
 # iptables -R INPUT 2 -p tcp --dport 17500 -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
&lt;br /&gt;
Nasza ostateczna lista zasad wygląda następująco:&lt;br /&gt;
&lt;br /&gt;
{{hc|# iptables -nvL --line-numbers|&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
1        0     0 ACCEPT     tcp  --  *      *       10.0.0.85            0.0.0.0/0            tcp dpt:17500 /* Friendly Dropbox */&lt;br /&gt;
2        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:17500 reject-with icmp-port-unreachable&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD (policy DROP 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
num   pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Allowing multicast traffic ===&lt;br /&gt;
&lt;br /&gt;
Protokoły wykorzystujące identyfikację multicast (np. [[SANE]] wyszukujące skanery sieciowe) wysyłają ruch na adres broadcast sieci, a odpowiedzi przychodzą z adresu IP konkretnego klienta. Ponieważ adresy IP są różne, iptables nie rozpozna odpowiedzi jako {{ic|RELATED}} ani {{ic|ESTABLISHED}}, i je zablokuje. Aby zaakceptować ruch multicast bez tworzenia zbyt permisywnej zapory, zobacz [https://serverfault.com/a/911286].&lt;br /&gt;
&lt;br /&gt;
Najpierw utwórz kontener hash [[ipset]]. Limit czasu to okno czasowe na akceptację odpowiedzi klienta.&lt;br /&gt;
 # ipset create upnp hash:ip,port timeout 3&lt;br /&gt;
&lt;br /&gt;
Po drugie, utwórz regułę, aby dodać ruch wychodzący multicast do hasha ipset.&lt;br /&gt;
 # iptables -A OUTPUT -d 239.255.255.250/32 -p udp -m udp -j SET --add-set upnp src,src --exist&lt;br /&gt;
&lt;br /&gt;
Po trzecie, utwórz regułę zezwalającą na ruch przychodzący zgodny z hashem ipset.&lt;br /&gt;
 # iptables -A INPUT -p udp -m set --match-set upnp dst,dst -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Na koniec pamiętaj o zapisaniu nowych reguł (zobacz [[#Configuration and usage]] i [[ipset#Making ipset persistent]]) i upewnij się, że {{ic|iptables.service}} i {{ic|ipset.service}} są [[enable]]d, aby reguły załadowały się przy starcie systemu.&lt;br /&gt;
&lt;br /&gt;
=== Przewodniki ===&lt;br /&gt;
&lt;br /&gt;
* [[Simple stateful firewall]]&lt;br /&gt;
* [[Router]]&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
&lt;br /&gt;
Cel {{ic|LOG}} może służyć do rejestrowania pakietów spełniających regułę. W przeciwieństwie do innych celów, takich jak {{ic|ACCEPT}} lub {{ic|DROP}}, pakiet będzie nadal przechodzić przez łańcuch po napotkaniu celu {{ic|LOG}}. Oznacza to, że aby włączyć rejestrowanie wszystkich odrzuconych pakietów, należy dodać duplikat reguły {{ic|LOG}} przed każdą regułą {{ic|DROP}}. Ponieważ zmniejsza to wydajność i zmniejsza przejrzystość, zamiast tego można utworzyć łańcuch {{ic|logdrop}}.&lt;br /&gt;
&lt;br /&gt;
Utwórz łańcuch za pomocą:&lt;br /&gt;
&lt;br /&gt;
 # iptables -N logdrop&lt;br /&gt;
&lt;br /&gt;
Następnie dodaj następujące reguły do ​​nowo utworzonego łańcucha:&lt;br /&gt;
&lt;br /&gt;
 # iptables -A logdrop -m limit --limit 5/m --limit-burst 10 -j LOG&lt;br /&gt;
 # iptables -A logdrop -j DROP&lt;br /&gt;
&lt;br /&gt;
Wyjaśnienie opcji {{ic|limit}} i {{ic|limit-burst}} podano [[#Limiting log rate|poniżej]].&lt;br /&gt;
&lt;br /&gt;
Teraz, gdy chcemy odrzucić pakiet i zalogować to, po prostu przeskakujemy do łańcucha {{ic|logdrop}}, na przykład:&lt;br /&gt;
&lt;br /&gt;
 # iptables -A INPUT -m conntrack --ctstate INVALID -j logdrop&lt;br /&gt;
&lt;br /&gt;
=== Limiting log rate ===&lt;br /&gt;
&lt;br /&gt;
Powyższy łańcuch {{ic|logdrop}} wykorzystuje moduł limit, aby zapobiec nadmiernemu wzrostowi logu iptables lub niepotrzebnym zapisom na dysku. Bez limitowania błędnie skonfigurowana usługa próbująca się połączyć lub atakujący mógłby zapełnić dysk (lub przynajmniej partycję {{ic|/var}} poprzez wpisy do logu iptables.&lt;br /&gt;
&lt;br /&gt;
Moduł limit jest wywoływany za pomocą {{ic|-m limit}}. Następnie można użyć {{ic|--limit}} do ustawienia średniego tempa oraz {{ic|--limit-burst}} do ustawienia tempa początkowego. W powyższym przykładzie {{ic|logdrop}}:&lt;br /&gt;
&lt;br /&gt;
 iptables -A logdrop -m limit --limit 5/m --limit-burst 10 -j LOG&lt;br /&gt;
&lt;br /&gt;
Dodaje regułę, która loguje wszystkie pakiety przechodzące przez nią. Pierwsze 10 kolejnych pakietów będą logowane, a następnie tylko 5 pakietów na minutę. Licznik limit burst jest resetowany za każdym razem, gdy limit rate nie zostanie przekroczony, czyli logowanie automatycznie wraca do normy.&lt;br /&gt;
&lt;br /&gt;
=== Przeglądanie zarejestrowanych pakietów ===&lt;br /&gt;
&lt;br /&gt;
Zarejestrowane pakiety są widoczne jako komunikaty jądra w [[systemd journal]].&lt;br /&gt;
&lt;br /&gt;
Aby wyświetlić wszystkie pakiety zarejestrowane od momentu ostatniego uruchomienia komputera:&lt;br /&gt;
&lt;br /&gt;
 # journalctl -k --grep=&amp;quot;IN=.*OUT=.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== syslog-ng ===&lt;br /&gt;
&lt;br /&gt;
Zakładając, że używasz [[syslog-ng]], możesz kontrolować, gdzie w pliku {{ic|syslog-ng.conf}} będą zapisywane wyniki logów iptables. Zastąp:&lt;br /&gt;
&lt;br /&gt;
 filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
&lt;br /&gt;
 filter f_everything { level(debug..emerg) and not facility(auth, authpriv) and not filter(f_iptables); };&lt;br /&gt;
&lt;br /&gt;
Spowoduje to zatrzymanie rejestrowania danych wyjściowych iptables w {{ic|/var/log/everything.log}}.&lt;br /&gt;
&lt;br /&gt;
Jeśli chcesz, aby iptables logował do innego pliku niż {{ic|/var/log/iptables.log}}, możesz po prostu zmienić wartość pliku docelowego {{ic|d_iptables}} tutaj (nadal w {{ic|syslog-ng.conf}}):&lt;br /&gt;
&lt;br /&gt;
 destination d_iptables { file(&amp;quot;/var/log/iptables.log&amp;quot;); };&lt;br /&gt;
&lt;br /&gt;
=== ulogd ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|ulogd}} to specjalistyczny demon rejestrujący pakiety przestrzeni użytkownika dla netfilter, który może zastąpić domyślny cel {{ic|LOG}}.&lt;br /&gt;
&lt;br /&gt;
== Zobacz także ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:iptables|Wikipedia article]]&lt;br /&gt;
* [[Port knocking]]&lt;br /&gt;
* [https://www.netfilter.org/projects/iptables/index.html Official iptables web site]&lt;br /&gt;
* [https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html iptables Tutorial 1.2.2] by Oskar Andreasson&lt;br /&gt;
* [[debian:iptables|Debian Wiki - iptables]]&lt;br /&gt;
* [https://home.regit.org/netfilter-en/secure-use-of-helpers/ Secure use of connection tracking helpers]&lt;/div&gt;</summary>
		<author><name>Wacek</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/VLC_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)</id>
		<title>VLC (Русский)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/VLC_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"/>
		<updated>2026-03-13T07:35:22Z</updated>

		<summary type="html">&lt;p&gt;Shipa 2: actualize and add translation status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Video (Русский)]]&lt;br /&gt;
[[Category:Audio (Русский)]]&lt;br /&gt;
[[Category:Streaming (Русский)]]&lt;br /&gt;
[[de:VLC]]&lt;br /&gt;
[[en:VLC media player]]&lt;br /&gt;
[[es:VLC media player]]&lt;br /&gt;
[[ja:VLC media player]]&lt;br /&gt;
[[zh-hans:VLC]]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus (Русский)|VLC media player|16 апреля 2026|871326}}&lt;br /&gt;
&lt;br /&gt;
С официальной страницы проекта [https://www.videolan.org/vlc/]:&lt;br /&gt;
&lt;br /&gt;
:VLC — это бесплатный и свободный кроссплатформенный мультимедийный проигрыватель и фреймворк, который воспроизводит большинство мультимедийных файлов, а также DVD, Audio CD, VCD и различные протоколы потокового вещания.&lt;br /&gt;
&lt;br /&gt;
== Установка ==&lt;br /&gt;
&lt;br /&gt;
[[Install|Установите]] [[split package|разделенный пакет]] {{Pkg|vlc}}, который зависит от подмножества плагинов VLC. Ознакомьтесь с дополнительными зависимостями для расширения функциональности.&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|vlc-plugins-base}} предоставляет базовый набор плагинов, необходимый во всех системах.&lt;br /&gt;
* {{Pkg|vlc-plugins-extra}} предоставляет дополнительные плагины, включая демультиплексор Matroska/WebM, демультиплексор MPEG Transport Stream, видеодекодер MPEG I/II, а также поддержку воспроизведения DVD и Audio CD.&lt;br /&gt;
* {{Pkg|vlc-plugins-visualization}} предоставляет плагины визуализации звука, включая эффекты Goom и [[ProjectM]].&lt;br /&gt;
* {{Pkg|vlc-plugins-all}} предоставляет все доступные плагины, включая аудио/видео декодер [[FFmpeg]], видеодекодер [[VA-API]], кодировщики H.264/AVC и H.265/HEVC, а также MIDI-синтезатор [[FluidSynth]].&lt;br /&gt;
&lt;br /&gt;
{{Tip|Для воспроизведения видео в форматах H.264/AVC и H.265/HEVC установите пакет {{Pkg|vlc-plugin-ffmpeg}} (входит в состав {{Pkg|vlc-plugins-all}}).}}&lt;br /&gt;
&lt;br /&gt;
Альтернативные интерфейсы:&lt;br /&gt;
* {{Pkg|vlc-cli}} для интерфейса командной строки (запуск через {{ic|cvlc}} или {{ic|rvlc}}).&lt;br /&gt;
* {{Pkg|vlc-gui-ncurses}} для TUI на базе ncurses (запуск через {{ic|nvlc}}).&lt;br /&gt;
* {{Pkg|vlc-gui-skins2}} для графического интерфейса со скинами (запуск через {{ic|svlc}}).&lt;br /&gt;
&lt;br /&gt;
== Язык ==&lt;br /&gt;
&lt;br /&gt;
В VLC нет опции смены языка в меню &amp;#039;&amp;#039;Настройки&amp;#039;&amp;#039;. Однако вы можете использовать [[Locale#LANGUAGE: fallback locales|переменную окружения LANGUAGE]]. Например, измените [[desktop entry|ярлык приложения]] {{ic|vlc.desktop}}, заменив:&lt;br /&gt;
&lt;br /&gt;
 Exec=/usr/bin/vlc %U&lt;br /&gt;
&lt;br /&gt;
на:&lt;br /&gt;
&lt;br /&gt;
 Exec=env LANGUAGE=&amp;#039;&amp;#039;ru&amp;#039;&amp;#039; /usr/bin/vlc %U&lt;br /&gt;
&lt;br /&gt;
чтобы переключить интерфейс VLC на русский язык.&lt;br /&gt;
&lt;br /&gt;
== Скины (обложки) ==&lt;br /&gt;
&lt;br /&gt;
Внешний вид VLC можно изменить с помощью скинов. Их можно найти на [https://www.videolan.org/vlc/skins.php официальном сайте].&lt;br /&gt;
&lt;br /&gt;
Чтобы установить скин, скачайте его и переместите в {{ic|~/.local/share/vlc/skins2/}}.&lt;br /&gt;
&lt;br /&gt;
Откройте VLC, перейдите в &amp;#039;&amp;#039;Инструменты &amp;gt; Настройки&amp;#039;&amp;#039;. В открывшемся окне вы должны находиться на вкладке «Интерфейс».&lt;br /&gt;
&lt;br /&gt;
Выберите вариант «Использовать пользовательский стиль» и выберите загруженный файл скина.&lt;br /&gt;
&lt;br /&gt;
Перезапустите VLC, чтобы изменения вступили в силу.&lt;br /&gt;
&lt;br /&gt;
== Веб-интерфейс ==&lt;br /&gt;
&lt;br /&gt;
Запустите VLC с параметром {{ic|1=--extraintf=http}}, чтобы использовать одновременно десктопный и веб-интерфейс. Параметр {{ic|--http-host}} задает адрес для привязки (по умолчанию {{ic|localhost}}). Чтобы установить пароль, используйте {{ic|--http-password}}, иначе VLC не позволит войти в систему.&lt;br /&gt;
&lt;br /&gt;
 $ vlc --extraintf=http --http-host 0.0.0.0 --http-port 8080 --http-password &amp;#039;&amp;#039;ваш_пароль&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Чтобы включить веб-интерфейс через графическое меню, перейдите в &amp;#039;&amp;#039;Вид &amp;gt; Добавить интерфейс &amp;gt; Веб-интерфейс&amp;#039;&amp;#039;. Пароль устанавливается в &amp;#039;&amp;#039;Инструменты &amp;gt; Настройки &amp;gt; Показывать настройки: Все &amp;gt; Интерфейс &amp;gt; Основные интерфейсы &amp;gt; Lua &amp;gt; Lua HTTP &amp;gt; Пароль&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
По умолчанию VLC использует порт {{ic|8080}}: http://localhost:8080&lt;br /&gt;
&lt;br /&gt;
== Советы и рекомендации ==&lt;br /&gt;
&lt;br /&gt;
=== Стриминг Twitch.tv через VLC ===&lt;br /&gt;
&lt;br /&gt;
См. [[Streamlink#Twitch]].&lt;br /&gt;
&lt;br /&gt;
=== Воспроизведение контента с локального DLNA-сервера ===&lt;br /&gt;
&lt;br /&gt;
Если при попытке воспроизведения UPnP/DLNA-контента (через &amp;#039;&amp;#039;Вид &amp;gt; Плейлист &amp;gt; Локальная сеть &amp;gt; Universal Plug&amp;#039;n&amp;#039;Play&amp;#039;&amp;#039;) VLC не видит сервер, убедитесь, что брандмауэр не блокирует порт 1900 UDP. Открытие этого порта критически важно для работы UPnP/DLNA.&lt;br /&gt;
&lt;br /&gt;
=== Управление горячими клавишами или через CLI ===&lt;br /&gt;
&lt;br /&gt;
Установите {{Pkg|openbsd-netcat}}.&lt;br /&gt;
&lt;br /&gt;
Скачайте скрипт с [https://web.archive.org/web/20150209150507/http://crunchbang.org/forums/viewtopic.php?pid=112035 архива форумов CrunchBang].&lt;br /&gt;
&lt;br /&gt;
Следуйте инструкциям в скрипте для настройки сокета для VLC.&lt;br /&gt;
&lt;br /&gt;
Вы можете запускать скрипт из командной строки или назначить его на горячие клавиши в настройках вашего рабочего окружения.&lt;br /&gt;
&lt;br /&gt;
Также для взаимодействия с VLC можно использовать [[MPRIS]].&lt;br /&gt;
&lt;br /&gt;
Кроме того, VLC можно запустить с ncurses-интерфейсом:&lt;br /&gt;
&lt;br /&gt;
 $ vlc -I ncurses&lt;br /&gt;
&lt;br /&gt;
Подробности см. в [https://wiki.videolan.org/Documentation:Modules/ncurses/ документации].&lt;br /&gt;
&lt;br /&gt;
=== Предотвращение запуска нескольких копий ===&lt;br /&gt;
&lt;br /&gt;
По умолчанию VLC открывает новое окно программы каждый раз, когда вы запускаете его с файлом. Это может мешать, если вы слушаете музыку. Вы можете открывать несколько файлов сразу, выбрав их в файловом менеджере, или отключить такое поведение в меню: &amp;#039;&amp;#039;Инструменты &amp;gt; Настройки (режим «Простой») &amp;gt; Интерфейс &amp;gt; Плейлист и экземпляры &amp;gt; Разрешить только одну копию&amp;#039;&amp;#039;. Также отметьте «Добавлять файлы в плейлист в режиме одного экземпляра», чтобы текущий файл продолжал играть, а новые добавлялись в список.&lt;br /&gt;
&lt;br /&gt;
Также есть опция «Использовать только одну копию при запуске из файлового менеджера» — при её включении все файлы из менеджера будут открываться в одном окне.&lt;br /&gt;
&lt;br /&gt;
{{Note|В VLC есть актуальный [https://code.videolan.org/videolan/vlc/-/issues/28077 баг]: если включить «Использовать только одну копию при запуске из файлового менеджера», не включив общую опцию «Разрешить только одну копию», вы не сможете изменить состояние чекбокса добавления файлов в плейлист.}}&lt;br /&gt;
&lt;br /&gt;
=== Аппаратное ускорение видео ===&lt;br /&gt;
&lt;br /&gt;
См. [[Hardware video acceleration|Аппаратное ускорение видео]].&lt;br /&gt;
&lt;br /&gt;
VLC автоматически пытается использовать доступный API, но вы можете переопределить его в разделе &amp;#039;&amp;#039;Инструменты &amp;gt; Настройки &amp;gt; Ввод и кодеки &amp;gt; Аппаратное декодирование&amp;#039;&amp;#039;, выбрав, например, {{ic|Video Acceleration (VA) API}} для VA-API или {{ic|Video Decode and Presentation API for Unix (VDPAU)}} для VDPAU.&lt;br /&gt;
&lt;br /&gt;
=== Служба systemd ===&lt;br /&gt;
&lt;br /&gt;
Веб-интерфейс VLC можно запускать через systemd. Сначала создайте пользователя:&lt;br /&gt;
&lt;br /&gt;
 # useradd -c &amp;quot;VLC daemon&amp;quot; -d / -G audio -M -p \! -r -s /usr/bin/nologin -U vlcd&lt;br /&gt;
&lt;br /&gt;
Затем создайте файл службы:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/vlc.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=VideoOnLAN Service&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=forking&lt;br /&gt;
User=vlcd&lt;br /&gt;
ExecStart=/usr/bin/vlc --daemon --syslog -I http --http-port 8090 --http-password&amp;lt;/nowiki&amp;gt; &amp;#039;&amp;#039;пароль&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Restart=on-abort&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
[[Start|Запустите]] и [[enable|включите]] {{ic|vlc.service}}. Зайдите на http://&amp;#039;&amp;#039;ваш_ip&amp;#039;&amp;#039;:8090/ (имя пользователя пустое, пароль из файла службы).&lt;br /&gt;
&lt;br /&gt;
=== Поддержка Chromecast ===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии 3.0, VLC может транслировать видео на устройства Chromecast в локальной сети.&lt;br /&gt;
&lt;br /&gt;
Установите пакеты:&lt;br /&gt;
* {{Pkg|libmicrodns}} — для обнаружения устройств (появятся в меню &amp;#039;&amp;#039;Воспроизведение &amp;gt; Исполнитель&amp;#039;&amp;#039;).&lt;br /&gt;
* {{Pkg|protobuf}} — для активации стриминга на выбранное устройство.&lt;br /&gt;
&lt;br /&gt;
Отредактируйте {{ic|/etc/nsswitch.conf}}, добавив {{ic|1=mdns_minimal [NOTFOUND=return]}} в строку {{ic|hosts}} перед {{ic|resolve}} и {{ic|dns}}:&lt;br /&gt;
&lt;br /&gt;
 hosts: ... &amp;#039;&amp;#039;&amp;#039;mdns_minimal [NOTFOUND=return]&amp;#039;&amp;#039;&amp;#039; resolve [!UNAVAIL=return] dns ...&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* Если возникли задержки при разрешении {{ic|.local}} имен, попробуйте {{ic|mdns4_minimal}}.&lt;br /&gt;
* Подробности см. в статье [[avahi]].}}&lt;br /&gt;
&lt;br /&gt;
=== Плагин для паузы по клику ===&lt;br /&gt;
&lt;br /&gt;
Установите {{AUR|vlc-pause-click-plugin}}, который позволяет ставить видео на паузу простым кликом по кадру.&lt;br /&gt;
&lt;br /&gt;
После установки его нужно активировать вручную в настройках, как описано в [https://github.com/nurupo/vlc-pause-click-plugin#usage инструкции].&lt;br /&gt;
&lt;br /&gt;
=== Стриминг с устройства захвата V4L2 ===&lt;br /&gt;
&lt;br /&gt;
Например, трансляция с USB-веб-камеры или карты захвата HDMI.&lt;br /&gt;
&lt;br /&gt;
Найдите узел устройства V4L2:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ v4l2-ctl --list-devices|&lt;br /&gt;
HDMI Capture: HDMI Capture (usb-0000:07:00.1-2):&lt;br /&gt;
	/dev/video2&lt;br /&gt;
	/dev/video3&lt;br /&gt;
	/dev/media1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Обычно это первый узел {{ic|/dev/video*}} в списке (здесь — {{ic|/dev/video2}}).&lt;br /&gt;
&lt;br /&gt;
Затем найдите источник PulseAudio:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=$ pactl list short sources {{!}} grep --invert-match --regexp=.monitor|2=&lt;br /&gt;
(...некоторые устройства пропущены...)&lt;br /&gt;
8750	alsa_input.usb-XF_HDMI_Capture_20000130041415-02.iec958-stereo	PipeWire	s16le 2ch 48000Hz	SUSPENDED&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
В данном примере это {{ic|alsa_input.usb-XF_HDMI_Capture_20000130041415-02.iec958-stereo}}.&lt;br /&gt;
&lt;br /&gt;
==== Через графический интерфейс ====&lt;br /&gt;
&lt;br /&gt;
Откройте VLC и выберите &amp;#039;&amp;#039;Медиа &amp;gt; Открыть устройство захвата...&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В поле «Название видеоустройства» укажите {{ic|/dev/video2}}. Поле «Название аудиоустройства» оставьте пустым.&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внизу отметьте «Показать дополнительные параметры». В поле «Изменить параметры» добавьте в конец через пробел:&lt;br /&gt;
&lt;br /&gt;
 :input-slave=pulse://alsa_input.usb-XF_HDMI_Capture_20000130041415-02.iec958-stereo&lt;br /&gt;
&lt;br /&gt;
Нажмите «Воспроизвести».&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; Это связано с тем, что VLC здесь предлагает только устройства [[ALSA]], которые обычно уже заняты [[PipeWire]] или [[PulseAudio]].&lt;br /&gt;
&lt;br /&gt;
==== Через командную строку ====&lt;br /&gt;
&lt;br /&gt;
 $ vlc --v4l2-standard= --live-caching=300 --input-slave=pulse://alsa_input.usb-XF_HDMI_Capture_20000130041415-02.iec958-stereo -- v4l2:///dev/video2&lt;br /&gt;
&lt;br /&gt;
== Решение проблем ==&lt;br /&gt;
&lt;br /&gt;
=== Проблемы с видео или иные ошибки после обновления ===&lt;br /&gt;
&lt;br /&gt;
Иногда конфигурация VLC ломается даже при минорных обновлениях. Прежде чем отправлять баг-репорт, удалите или переименуйте папку настроек {{ic|~/.config/vlc}}.&lt;br /&gt;
&lt;br /&gt;
Если вы используете версию ffmpeg из AUR, убедитесь, что она также обновлена. Pacman не обновляет её автоматически при необходимости.&lt;br /&gt;
&lt;br /&gt;
=== Ошибка сегментирования (Segmentation fault) ===&lt;br /&gt;
&lt;br /&gt;
==== При запуске VLC ====&lt;br /&gt;
&lt;br /&gt;
Если VLC вылетает с segfault при старте, попробуйте следующее:&lt;br /&gt;
&lt;br /&gt;
 # /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins&lt;br /&gt;
&lt;br /&gt;
Затем переустановите VLC.&lt;br /&gt;
&lt;br /&gt;
==== При воспроизведении видео ====&lt;br /&gt;
&lt;br /&gt;
Если VLC воспроизводит аудио, но падает на видео, вероятно, неверно настроено [[Hardware video acceleration|аппаратное ускорение]], особенно если в системе несколько видеокарт.&lt;br /&gt;
&lt;br /&gt;
=== Отсутствуют иконки в меню ===&lt;br /&gt;
&lt;br /&gt;
В XFCE могут пропадать иконки в выпадающих меню. Для исправления:&lt;br /&gt;
&lt;br /&gt;
 $ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true&lt;br /&gt;
 $ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true&lt;br /&gt;
&lt;br /&gt;
=== Не удалось открыть бэкенд VDPAU ===&lt;br /&gt;
&lt;br /&gt;
См. [[Hardware video acceleration#Failed to open VDPAU backend]]. Если ваша система не поддерживает VDPAU, укажите VLC использовать VA-API.&lt;br /&gt;
&lt;br /&gt;
=== VLC не открывается второй раз после закрытия ===&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|Два утверждения на этой странице — «VLC автоматически пытается использовать доступный API» и «VLC по умолчанию выбирает VDPAU, который у многих не работает» — кажутся противоречивыми и требуют проверки.}}&lt;br /&gt;
&lt;br /&gt;
Вручную установите использование VA-API в &amp;#039;&amp;#039;Настройки -&amp;gt; Ввод/Кодеки&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Не воспроизводятся файлы с пробелами в именах через SFTP ===&lt;br /&gt;
&lt;br /&gt;
Убедитесь, что установлен пакет {{Pkg|sshfs}}. Если авторизация запрашивается повторно, измените строку Exec в {{ic|vlc.desktop}}:&lt;br /&gt;
&lt;br /&gt;
 Exec=/usr/bin/vlc --started-from-file %F&lt;br /&gt;
&lt;br /&gt;
=== VLC на iOS/tvOS не подключается к Arch через SFTP ===&lt;br /&gt;
&lt;br /&gt;
Из-за ограничений App Store используется неполная реализация SSH. В {{ic|/etc/ssh/sshd_config.d/vlc.conf}} на стороне сервера добавьте:&lt;br /&gt;
&lt;br /&gt;
 HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
 KexAlgorithms +diffie-hellman-group16-sha512&lt;br /&gt;
&lt;br /&gt;
Затем [[reload|перезагрузите]] {{ic|sshd.service}}.&lt;br /&gt;
&lt;br /&gt;
=== Не открывается DVD ===&lt;br /&gt;
&lt;br /&gt;
Установите опциональные зависимости {{Pkg|vlc-plugin-dvd}} и {{Pkg|libdvdcss}}. Если всё установлено, но диск не открывается, попробуйте удалить папку {{ic|~/.dvdcss}}.&lt;br /&gt;
&lt;br /&gt;
=== Не открывается Blu-Ray / не грузится меню ===&lt;br /&gt;
См. [[Blu-ray#VLC]].&lt;br /&gt;
&lt;br /&gt;
=== Медиа не загружается ===&lt;br /&gt;
&lt;br /&gt;
Если потоки (RTP, RTSP) или Blu-ray бесконечно буферизуются без ошибок, установите {{Pkg|vlc-plugin-aribb24}}.&lt;br /&gt;
&lt;br /&gt;
=== Поддержка Wayland ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|vlc-git}} собирается с поддержкой Wayland по умолчанию. Установите [[environment variable|переменную окружения]] {{ic|1=QT_QPA_PLATFORM=wayland}}.&lt;br /&gt;
&lt;br /&gt;
В стандартном пакете {{Pkg|vlc}} (версии 3.0) поддержка Wayland может быть нестабильной, и часто используется [[Xwayland]]. Чтобы запустить VLC 3 нативно через Wayland, используйте:&lt;br /&gt;
 $ env -u DISPLAY vlc&lt;br /&gt;
&lt;br /&gt;
=== Ошибка подключения к RTSP потоку ===&lt;br /&gt;
&lt;br /&gt;
Если возникает ошибка {{ic|failed to setup rtsp session}}, [[install|установите]] {{Pkg|vlc-plugin-live555}}.&lt;br /&gt;
&lt;br /&gt;
=== Странные цвета при использовании Streamlink ===&lt;br /&gt;
&lt;br /&gt;
Установите {{Pkg|vlc-plugin-aribb24}}.&lt;br /&gt;
&lt;br /&gt;
=== Зависание системы при проигрывании HEVC на AMDGPU ===&lt;br /&gt;
&lt;br /&gt;
Если система полностью зависает при воспроизведении H.265, измените параметр «Модуль вывода» или «Аппаратный конвертер OpenGL/GLES» с «Автоматически» на конкретный вариант (например, {{ic|VA-API OpenGL surface converter}}).&lt;br /&gt;
&lt;br /&gt;
=== Звук кратковременно пропадает при перемотке ===&lt;br /&gt;
&lt;br /&gt;
Установите «Модуль вывода» в настройках аудио на тот аудиосервер, который вы используете. Для [[PipeWire]] установите {{aur|vlc-plugin-pipewire}}.&lt;br /&gt;
&lt;br /&gt;
=== VLC не показывает субтитры и OSD ===&lt;br /&gt;
&lt;br /&gt;
Убедитесь, что установлен пакет {{Pkg|vlc-plugin-freetype}} (входит в {{Pkg|vlc-plugins-extra}}).&lt;br /&gt;
&lt;br /&gt;
=== Ошибка кодека для субтитров в MKV ===&lt;br /&gt;
&lt;br /&gt;
Если внешние субтитры работают, а встроенные в MKV — нет, скорее всего, отсутствует {{Pkg|vlc-plugin-matroska}} (входит в {{Pkg|vlc-plugins-extra}}).&lt;br /&gt;
&lt;br /&gt;
=== KDE Plasma не применяет тёмную тему для VLC ===&lt;br /&gt;
&lt;br /&gt;
Прочитайте первый совет в [[KDE#Themes]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:VLC media player|Статья в Википедии]]&lt;br /&gt;
* [[List of applications/Multimedia|Список мультимедиа-приложений]]&lt;br /&gt;
* [https://www.videolan.org/vlc/ Домашняя страница VLC]&lt;br /&gt;
* [https://github.com/acrisci/playerctl playerctl]: Утилита командной строки для управления плеерами.&lt;/div&gt;</summary>
		<author><name>Tehna</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Micro</id>
		<title>Micro</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Micro"/>
		<updated>2026-03-12T20:35:43Z</updated>

		<summary type="html">&lt;p&gt;Tehna: Add ru translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[ru:Micro]]&lt;br /&gt;
[[Category:Text editors]]&lt;br /&gt;
[[Category:Console applications]]&lt;br /&gt;
[[Category:GNU]]&lt;br /&gt;
[https://micro-editor.github.io/index.html micro] is a terminal-based text editor that aims to be easy to use and intuitive, while taking advantage of the full capabilities of modern terminals. It is shipped as a single, static binary with no dependencies.&lt;br /&gt;
&lt;br /&gt;
As the name suggests, &amp;#039;&amp;#039;micro&amp;#039;&amp;#039; aims to be a successor to the &amp;#039;&amp;#039;nano&amp;#039;&amp;#039; editor, as it is easy to install and use, but &amp;#039;&amp;#039;micro&amp;#039;&amp;#039; also strives to be pleasant to use on a daily basis.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{Pkg|micro}} package.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&amp;#039;&amp;#039;Micro&amp;#039;&amp;#039; uses {{ic|$MICRO_CONFIG_HOME}} or {{ic|$XDG_CONFIG_HOME/micro}} as its configuration directory. If these variables are not set, it defaults to {{ic|~/.config/micro}}.&lt;br /&gt;
The main settings are defined in the {{ic|settings.json}} file. You can find all available options [https://github.com/zyedidia/micro/blob/master/runtime/help/options.md here].&lt;br /&gt;
&lt;br /&gt;
{{Tip|To display the main help file, press {{ic|Ctrl+g}}.}}&lt;br /&gt;
&lt;br /&gt;
=== Syntax highlighting ===&lt;br /&gt;
The colorscheme can be changed via the configuration file or from the &amp;#039;&amp;#039;micro&amp;#039;&amp;#039; command line. To do this, press {{ic|Ctrl+e}} and type the command {{bc|set colorscheme [name]}}&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
To install a plugin, use the command {{bc|plugin install [name]}} inside &amp;#039;&amp;#039;micro&amp;#039;&amp;#039;. To remove one, use {{ic|plugin remove [name]}}. The plugin help guide is available by running the command {{ic|help plugins}}.&lt;br /&gt;
&lt;br /&gt;
{{Tip|If you want to create a plugin, follow the instructions in the [https://github.com/zyedidia/micro/blob/master/runtime/help/plugins.md official documentation].}}&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
=== Replace vi with micro ===&lt;br /&gt;
&lt;br /&gt;
To replace {{Ic|vi}} with {{Ic|micro}} as the default text editor for commands such as [[Sudo#Using visudo|visudo]], set the {{ic|VISUAL}} and {{ic|EDITOR}} [[Environment variables#Defining variables|environment variables]]:&lt;br /&gt;
&lt;br /&gt;
 export VISUAL=micro&lt;br /&gt;
 export EDITOR=micro&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://micro-editor.github.io micro homepage]&lt;/div&gt;</summary>
		<author><name>Tehna</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Hyprland_(Portugu%C3%AAs)</id>
		<title>Hyprland (Português)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Hyprland_(Portugu%C3%AAs)"/>
		<updated>2026-03-11T17:00:38Z</updated>

		<summary type="html">&lt;p&gt;Slz: /* Definindo resolução da tela */ Fix code block indentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Wayland compositors (Português)]]&lt;br /&gt;
[[en:Hyprland]]&lt;br /&gt;
[[ja:Hyprland]]&lt;br /&gt;
[[ru:Hyprland]]&lt;br /&gt;
[[zh-hans:Hyprland]]&lt;br /&gt;
{{StatusTradução|Hyprland|2026-03-11|868754}}&lt;br /&gt;
{{Traduzir|Artigo em processo de tradução.}}&lt;br /&gt;
{{Related articles start (Português)}}&lt;br /&gt;
{{Related|Gerenciador de janela}}&lt;br /&gt;
{{Related|Wayland (Português)}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://hypr.land/ Hyprland] é um [[Wayland (Português)#Compositores|compositor Wayland]] de tiling independente escrito em C++. Funções notórias do Hyprland incluem tiling dinâmico, janelas espaçadas, uma base de código C++ limpa e legível, e um renderizador customizado que provê animações de janela, bordas arredondadas, e blur em janelas transparentes. Uso geral e configuração estão extensivamente documentados em [https://wiki.hypr.land/ Hyprland wiki].&lt;br /&gt;
&lt;br /&gt;
== Instalação ==&lt;br /&gt;
&lt;br /&gt;
[[Instale]] o pacote {{Pkg|hyprland}}.&lt;br /&gt;
&lt;br /&gt;
Desde [https://github.com/hyprwm/Hyprland/pull/6608 #6608], o Hyprland usa {{Pkg|aquamarine}} como sua própria biblioteca backend de renderização. Antes disso, ele vinha junto com sua própria versão do &amp;#039;&amp;#039;wlroots&amp;#039;&amp;#039;, which closely followed {{AUR|wlroots-git}}.&lt;br /&gt;
&lt;br /&gt;
{{Nota|&lt;br /&gt;
* Usuários de GPUs da [[NVIDIA (Português)|NVIDIA]] devem certificar-se de seguir as instruções na página NVIDIA specific page on the [https://wiki.hypr.land/Nvidia/ upstream Wiki] antes de tentar inicializar o Hyprland. Failure to do so will likely result em diversos bugs incluindo incapacidade de logar, janelas piscantes e alto uso de placa de vídeo.&lt;br /&gt;
* O uso de GPUs da NVIDIA com o Hyprland não é suportado. Muitos usuários conseguiram mas se algo não estiver funcionando, você está por si só.&lt;br /&gt;
* Certifique-se de instalar o pacote [[Polkit]], ou [[inicie]] e [[habilite]] {{ic|seatd.service}}. Falha em cumprir essas etapas causará com que o Hyprland falhe ao tentar iniciar.&lt;br /&gt;
* Usuários de VMware/VirtualBox podem precisar habilitar a aceleração 3D para executar o Hyprland propriamente.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Configuração ==&lt;br /&gt;
&lt;br /&gt;
{{Nota|Maior parte das opções listadas (e mais) são explicadas em detalhe na página de variáveis [https://wiki.hypr.land/Configuring/Variables/ hyprland Wiki].}}&lt;br /&gt;
&lt;br /&gt;
A configuração é feita por meio de um único arquivo de configuração, [https://github.com/hyprwm/Hyprland/blob/main/example/hyprland.conf hyprland.conf], entretanto, é possível dividir a configuração em múltiplos arquivos e incluí-los em {{ic|hyprland.conf}}. O arquivo padrão é {{ic|/usr/share/hypr/hyprland.conf}} e, depois de logar pela primeira vez, {{ic|~/.config/hypr/hyprland.conf}}.&lt;br /&gt;
&lt;br /&gt;
{{ic|hyprland.conf}} Inclui diretivas para configurar seus dispositivos (teclados, mouses, trackpads, monitores), assim como configurações para animações, decorações, layouts etc. Você pode definir teclas de atalho, regras para janelas, e executar comandos (tanto uma vez ou toda vez) que a configuração é recarregada. settings for animations, decorations, layout, etc.&lt;br /&gt;
&lt;br /&gt;
A configuração é automaticamente recarregada toda vez que você atualiza e salva o arquivo. Você também pode usar {{ic|hyprctl reload}} para obter o mesmo resultado. Para algumas configurações (particularmente configurações de input), você pode precisar reiniciar a sua sessão Hyprland.&lt;br /&gt;
&lt;br /&gt;
Configurações também podem ser alteradas em tempo real com &amp;#039;&amp;#039;hyprctl&amp;#039;&amp;#039; mas elas não serão salvas.&lt;br /&gt;
&lt;br /&gt;
=== Teclado ===&lt;br /&gt;
&lt;br /&gt;
==== Mapa de teclado ====&lt;br /&gt;
&lt;br /&gt;
Por padrão o Hyprland usa o layout {{ic|US Qwerty}}; você pode configurar outro layout da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# German Colemak layout&lt;br /&gt;
input {&lt;br /&gt;
...&lt;br /&gt;
kb_layout = de&lt;br /&gt;
kb_variant = colemak&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para uma lista com todas as opções disponíveis, veja a [https://wiki.hypr.land/Configuring/Variables/#input Hyprland Wiki].&lt;br /&gt;
&lt;br /&gt;
{{Nota|O Hyprland sobrescreverá definições [[locale (Português)|locale]] então é necessário mudar o mapa de teclado se você não usa um teclado com layout {{ic|US}}.}}&lt;br /&gt;
&lt;br /&gt;
==== Atraso e ritmo de repetição de teclas ====&lt;br /&gt;
&lt;br /&gt;
Usuários Xorg podem estar acostumados com essa configuração [[Xorg/Keyboard configuration#Adjusting typematic delay and rate|definida no nível do servidor]], no Wayland cada compositor gerencia essa configuração de sua própria forma:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Repeat rate and delay&lt;br /&gt;
input {&lt;br /&gt;
...&lt;br /&gt;
repeat_rate = 25&lt;br /&gt;
repeat_delay = 600&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Luzes de fundo do teclado ====&lt;br /&gt;
&lt;br /&gt;
Usar os controles de brilho de seu teclado por meio do Hyprland é possível. [[Instale]] {{Pkg|brightnessctl}} e então adicione as teclas relacionadas (substitua {{ic|&amp;#039;&amp;#039;keyboard_brightness_*&amp;#039;&amp;#039;}} por {{ic|SUPER, F&amp;#039;&amp;#039;X&amp;#039;&amp;#039;}} ou {{ic|XF86KbdBrightness}} dependendo de como o seu hardware expõe a [[Keyboard backlight (Português)|luz de fundo do teclado]]):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Keyboard backlight&lt;br /&gt;
bind = , &amp;#039;&amp;#039;keyboard_brightness_up_shortcut&amp;#039;&amp;#039;, exec, brightnessctl -d *::kbd_backlight set +33%&lt;br /&gt;
bind = , &amp;#039;&amp;#039;keyboard_brightness_down_shortcut&amp;#039;&amp;#039;, exec, brightnessctl -d *::kbd_backlight set 33%-&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Também é possível ter [[#Notificações na tela|notificações na tela]] que são mostradas quando mudanças são feitas.&lt;br /&gt;
&lt;br /&gt;
==== Teclas de controle de mídia ====&lt;br /&gt;
&lt;br /&gt;
É possível controlar a reprodução de mídia por meio de teclas de atalho usando as símbolos de tecla do {{ic|XF86Audio}} e uma aplicação como {{Pkg|pavucontrol}} ou {{Pkg|pamixer}} e [[playerctl]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Volume and Media Control&lt;br /&gt;
bind = , XF86AudioRaiseVolume, exec, pamixer -i 5&lt;br /&gt;
bind = , XF86AudioLowerVolume, exec, pamixer -d 5&lt;br /&gt;
bind = , XF86AudioMicMute, exec, pamixer --default-source -m&lt;br /&gt;
bind = , XF86AudioMute, exec, pamixer -t&lt;br /&gt;
bind = , XF86AudioPlay, exec, playerctl play-pause&lt;br /&gt;
bind = , XF86AudioPause, exec, playerctl play-pause&lt;br /&gt;
bind = , XF86AudioNext, exec, playerctl next&lt;br /&gt;
bind = , XF86AudioPrev, exec, playerctl previous&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Também é possível ter [[#Notificações na tela|notificações na tela]] que são mostradas quando mudanças são feitas.&lt;br /&gt;
&lt;br /&gt;
=== Gestos touchpad ===&lt;br /&gt;
&lt;br /&gt;
Por ser um compositor [[Wayland (Português)|Wayland]], o Hyprland tem suporte total a gestos touchpad. Por padrão, estes estão desabilitados. Para habilita-los, faça a seguinte edição:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Enable touchpad gestures&lt;br /&gt;
gesture = 3, horizontal, workspace&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Veja a [https://wiki.hypr.land/Configuring/Gestures/ wiki upstream] para uma lista com todas as opções disponíveis.&lt;br /&gt;
&lt;br /&gt;
=== Configurações de exibição ===&lt;br /&gt;
&lt;br /&gt;
==== Transmissão de tela ====&lt;br /&gt;
&lt;br /&gt;
Veja a página relevante de transmissão de tela na [https://wiki.hypr.land/Useful-Utilities/Screen-Sharing/ wiki upstream]&lt;br /&gt;
&lt;br /&gt;
Por ser um compositor compatível como o wlroots, o Hyprland pode utilizar {{Pkg|xdg-desktop-portal-wlr}} para habilitar a captura de tela em diversos aplicativos por meio do pacote [[xdg-desktop-portal]].&lt;br /&gt;
&lt;br /&gt;
Hyprland também mantém {{Pkg|xdg-desktop-portal-hyprland}}, que suporta transmissão de tela (incluindo transmissões de regiões e transmissões de janelas), teclas de atalho globais, e uma ferramenta gráfica de seleção de cores. O uso do portal é mais detalhadamente documentado na [https://wiki.hypr.land/Hypr-Ecosystem/xdg-desktop-portal-hyprland/ Hyprland wiki].&lt;br /&gt;
&lt;br /&gt;
Vale enfasar que xdg-desktop-portal-hyprland não inclui um seletor de arquivos, para isso usuários podem optar por instalar {{Pkg|xdg-desktop-portal-gtk}}.&lt;br /&gt;
&lt;br /&gt;
==== Definindo resolução da tela ====&lt;br /&gt;
&lt;br /&gt;
O Hyprland tentará detectar a resolução de sua tela automaticamente e selecionar uma escala de 1x. 1.5x ou 2x para a tela. [https://github.com/hyprwm/Hyprland/blob/5ca48231287d67e75a3f21dbdbc47d6dc65752c4/src/helpers/Monitor.cpp#L563-L579] Entretanto, algumas vezes essa detecção falhará e usará uma configuração padrão à prova de falhas, isso geralmente ocorre quando há múltiplas telas ou se você possui um laptop híbrido. Se tudo na sua tela estiver muito grande então você precisa configurar o monitor padrão e a resolução manualmente.&lt;br /&gt;
&lt;br /&gt;
Ache o seu monitor padrão usando &amp;#039;&amp;#039;hyprctl&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ hyprctl monitors|2=&lt;br /&gt;
Monitor &amp;#039;&amp;#039;&amp;#039;eDP-1&amp;#039;&amp;#039;&amp;#039; (ID 0):&lt;br /&gt;
        &amp;#039;&amp;#039;&amp;#039;1920x1080@144&amp;#039;&amp;#039;&amp;#039;.003006 at &amp;#039;&amp;#039;&amp;#039;0x0&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
        description: Chimei Innolux Corporation 0x153C (eDP-1)&lt;br /&gt;
        ...&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
Então adicione o monitor à configuração:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
# Monitor details&lt;br /&gt;
monitorv2 {&lt;br /&gt;
    output = eDP-1&lt;br /&gt;
    mode = 1920x1080@144&lt;br /&gt;
    position = 0x0&lt;br /&gt;
    scale = 1&lt;br /&gt;
}&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
{{ic|0x0}} é o offset de posição usado para setups com múltiplas telas e o {{ic|1}} no final é o fator de escala da tela.&lt;br /&gt;
&lt;br /&gt;
Confira [https://wiki.hypr.land/Configuring/Monitors/ Hyprland Monitors Wiki] para mais detalhes.&lt;br /&gt;
&lt;br /&gt;
==== GUI de configurações ====&lt;br /&gt;
&lt;br /&gt;
O pacote {{Pkg|nwg-displays}} disponibiliza uma aplicação GUI para organização de monitores e suporta o Hyprland. Ele é parte do pacote [[nwg-shell]] (mas funciona sozinho), veja [https://github.com/nwg-piotr/nwg-displays nwg-displays github] para mais detalhes.&lt;br /&gt;
&lt;br /&gt;
==== Luz de fundo da tela ====&lt;br /&gt;
&lt;br /&gt;
[[Instale]] {{Pkg|brightnessctl}} e então adicione as seguintes teclas:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Screen brightness&lt;br /&gt;
bind = , XF86MonBrightnessUp, exec, brightnessctl s +5%&lt;br /&gt;
bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Também é possível ter [[#Notificações na tela|notificações na tela]] que são mostradas quando mudanças são feitas.&lt;br /&gt;
&lt;br /&gt;
== Uso ==&lt;br /&gt;
&lt;br /&gt;
=== Iniciando ===&lt;br /&gt;
&lt;br /&gt;
==== Gerenciador de Sessões Universal para Wayland ====&lt;br /&gt;
&lt;br /&gt;
O [[Universal Wayland Session Manager|Gerenciador de Sessões Universal para Wayland]] embrulha o compositor e aplicações configuradas de acordo e daemons por meio de arquivos de units do systemd, permitindo que você controle-as com &amp;#039;&amp;#039;systemctl&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
O Hyprland pode ser iniciado via um [[Display manager (Português)|gerenciador de exibição]] com &amp;#039;&amp;#039;uwsm&amp;#039;&amp;#039; selecionando &amp;#039;&amp;#039;hyprland (uwsm-managed)&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Você pode iniciar o Hyprland com o uwsm tanto em um [[Getty (Português)|getty]] quanto com o seguinte script no seu [[login shell|shell de login]]:&lt;br /&gt;
&lt;br /&gt;
{{bc|if uwsm check may-start &amp;amp;&amp;amp; uwsm select; then&lt;br /&gt;
  exec systemd-cat -t uwsm_start uwsm start default&lt;br /&gt;
fi}}&lt;br /&gt;
&lt;br /&gt;
{{Nota|&lt;br /&gt;
* {{ic|uwsm check may-start}} verifica se está tudo bem inicializar a sessão wayland, em particular caso esteja rodando em um [[login shell|shell de login]]. Entretanto, você ainda deveria evitar usar isso dentro de {{ic|.bashrc}} ou outros arquivos providos até por shells que não são de login.&lt;br /&gt;
&lt;br /&gt;
* O Hyprland deixou de [https://github.com/hyprwm/hyprland-wiki/commit/7611480bc4c6a5cae1734cd7d6ea480b55e4c368 recomendar] iniciar suas sessões com &amp;#039;&amp;#039;uwsm&amp;#039;&amp;#039; uma vez que a ferramenta é considerada experimental e direcionada a usuários experientes que entendem suas implicações e [https://github.com/hyprwm/Hyprland/discussions/11255#discussioncomment-13938618 peculiaridades].}}&lt;br /&gt;
&lt;br /&gt;
{{Dica| Se você deseja pular o menu de seleção de compositor e iniciar o Hyprland diretamente, use esse código em seu [[login shell|shell de login]]:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
if uwsm check may-start; then&lt;br /&gt;
  exec uwsm start hyprland.desktop&lt;br /&gt;
fi&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{Atenção| Se você optou por iniciar o Hyprland via &amp;#039;&amp;#039;uwsm&amp;#039;&amp;#039; então você deve ajustar suas configurações de acordo. Em particular:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Você deve evitar usar o dispatcher {{ic|exit}} ou finalizar o processo do Hyprland diretamente já que isso interferiria com o processo de finalização padrão&amp;#039;&amp;#039;&amp;#039;. Use {{ic|uwsm stop}} ou {{ic|loginctl terminate-user &amp;quot;&amp;quot;}} para finalizar o Hyprland e sair da sessão de usuário, por exemplo:&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|bind {{=}} $mainMod, M, exec, uwsm stop}}&lt;br /&gt;
* Não coloque variáveis de ambiente em {{ic|hyprland.conf}}, ao invés disso, use os arquivos do &amp;#039;&amp;#039;uwsm&amp;#039;&amp;#039; {{ic|~/.config/uwsm/env}} para variáveis comuns para todas as sessões gráficas gerenciadas pelo uwsm (GTK, Qt, xcursor, ...) e {{ic|~/.config/uwms/env-hyprland}} para variáveis de ambiente exclusivas para o Hyprland (variáveis {{ic|Hypr*}} e {{ic|AQ_*}} por exemplo). O formato desses arquivos é {{ic|export &amp;#039;&amp;#039;KEY&amp;#039;&amp;#039;{{=}}&amp;#039;&amp;#039;VALUE&amp;#039;&amp;#039;}} em cada linha sem comentários. É fortemente indicado que, caso você use múltiplas GPUs, que coloque as variável de ambiente {{ic|AQ_DRM_DEVICES}} dentro de {{ic|env-hyprland}} para evitar conflitos com outros compositores.&lt;br /&gt;
&lt;br /&gt;
Leia a [https://wiki.hypr.land/Useful-Utilities/Systemd-start/ página relacionada na Wiki upstream] para informações adicionais sobre configuração com uwsm.}}&lt;br /&gt;
&lt;br /&gt;
==== Terminal ====&lt;br /&gt;
&lt;br /&gt;
Você pode iniciar o Hyprland por um [[getty (Português)|getty]] com o seguinte comando:&lt;br /&gt;
&lt;br /&gt;
 $ start-hyprland&lt;br /&gt;
&lt;br /&gt;
{{Nota|O Hyprland deixou de [https://hypr.land/news/update53/ recomendar] iniciar suas sessões com {{ic|Hyprland}} já que o novo comando prove recuperação de travamento e um modo seguro.}}&lt;br /&gt;
&lt;br /&gt;
==== Gerenciadores de exibição ====&lt;br /&gt;
&lt;br /&gt;
Apesar de iniciar o Hyprland por meio de um [[display manager (Português)|gerenciador de exibição]] não ser oficialmente suportado, usuários obtiveram sucesso usando [[GDM (Português)|GDM]], [[SDDM]] e outros. A [https://wiki.hypr.land/Getting-Started/Master-Tutorial/#launching-hyprland wiki upstream] mantém uma lista de compatibilidade com gerenciadores de exibição. O pacote {{Pkg|hyprland}} contem dois [[desktop entries]], e todos pacotes AUR do Hyprland também irão gerar um automaticamente.&lt;br /&gt;
&lt;br /&gt;
Ambos os métodos geram resultados idênticos, com mais ou menos variáveis de ambiente e serviços.&lt;br /&gt;
&lt;br /&gt;
==== Login automático ====&lt;br /&gt;
&lt;br /&gt;
Usuários podem logar automaticamente usando um [[display manager (Português)|gerenciador de exibição]] ou adaptando o método descrito em [[Xinit (Português)#Inicializar_automaticamente_o_X_no_login]].&lt;br /&gt;
&lt;br /&gt;
=== hyprctl e IPC ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;hyprctl&amp;#039;&amp;#039; é um ferramenta de linhas de comando que vem instalada juntamente do Hyprland para comunicar com o servidor de exibição. Ela permite que você envie comandos para o servidor (equivalente aos comandos no arquivo de configuração, mas com uma sintaxe levemente diferente), defina keywords, envie consultas e peça por informações. Veja a [https://wiki.hypr.land/Configuring/Using-hyprctl/ documentação completa].&lt;br /&gt;
&lt;br /&gt;
O Hyprland também expõe [https://wiki.hypr.land/IPC/ 2 soquetes UNIX] para controlar e receber informações sobre o Hyprland por meio de código ou linhas de comando. Esses soquetes transmitem informações quando ocorrem eventos de mudança de foco (janelas, áreas de trabalho, monitores), criação de janelas/áreas de trabalho, etc.&lt;br /&gt;
&lt;br /&gt;
Ambos &amp;#039;&amp;#039;hyprctl&amp;#039;&amp;#039; e os sockets IPC podem ser usados em scripts para controlar o Hyprland e performar tarefas complexas.&lt;br /&gt;
&lt;br /&gt;
=== Inicialização automática ===&lt;br /&gt;
&lt;br /&gt;
Ao iniciar aplicações é importante usar o tipo correto de dispatcher, usar {{ic|exec}} incorretamente pode causar com que aplicações sejam iniciadas múltiplas vezes, tomando recursos do sistema e nos piores casos, causando condições de corrida que podem travar seu sistema.&lt;br /&gt;
&lt;br /&gt;
{{Nota|Como mencionado em [[#Configuração]], O Hyprland automaticamente reavalia o {{ic|hyprland.conf}} &amp;#039;&amp;#039;&amp;#039;toda vez que uma mudança ao arquivo é feita e salva&amp;#039;&amp;#039;&amp;#039;: não use {{ic|exec}} para tudo.&lt;br /&gt;
&lt;br /&gt;
Na maioria dos casos você deve usar {{ic|exec-once}} para executar aplicações e daemons ao iniciar o Hyprland, esse comando não irá rodar esse comando novamente ao recarregar, apenas use {{ic|exec}} caso você &amp;#039;&amp;#039;&amp;#039;realmente&amp;#039;&amp;#039;&amp;#039; queira que esse comando rode novamente cada vez que o arquivo de configuração recarregar.}}&lt;br /&gt;
&lt;br /&gt;
{{Dica|Se você inicializou o Hyprland por meio do gerenciador de sessões universal para wayland (uwsm) e a aplicação que você quer rodar possui uma unit do systemd então você pode [[habilitar]] ela para que ela seja inicializada automaticamente quando o Hyprland estiver pronto. Você pode, alternativamente, passar esta aplicação para {{ic|uwsm app}} como um argumento para que ela seja gerenciada pelo &amp;#039;&amp;#039;uwsm&amp;#039;&amp;#039;. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|exec-once {{=}} uwsm app -- mycommand --arg1 --arg2&lt;br /&gt;
bind {{=}} SUPER, E, exec, uwsm app -- pcmanfm-qt.desktop}}}}&lt;br /&gt;
&lt;br /&gt;
=== Definindo variáveis de ambiente ===&lt;br /&gt;
&lt;br /&gt;
É possível definir [[Environment variables (Português)|variáveis de ambiente]] diretamente no {{ic|hyprland.conf}} usando a keyword &amp;#039;&amp;#039;env&amp;#039;&amp;#039;, que possui uma sintaxe diferente do comando UNIX &amp;#039;env&amp;#039; usado por shells.&lt;br /&gt;
&lt;br /&gt;
As diferenças são explicadas na [https://wiki.hypr.land/Configuring/Environment-variables/ Wiki upstream].&lt;br /&gt;
&lt;br /&gt;
== Ecossistema-Hypr ==&lt;br /&gt;
&lt;br /&gt;
{{Atenção|Algumas das ferramentas mostradas nas seções a seguir ainda são um trabalho em progresso. Portanto, bugs são esperados. Por essa razão, instruções completas e exemplos serão omitidos até que estejam maturas o suficiente para serem estáveis. Instruções detalhadas sobre o uso dessas ferramentas é documentado na [https://wiki.hypr.land/Hypr-Ecosystem/ Wiki upstream].}}&lt;br /&gt;
&lt;br /&gt;
O time de desenvolvimento do Hyprland está construindo um ecossistema de aplicações feitos especificamente para serem usados com o Hyprland, essas ferramentas incluem dispatchers que permitem elas sejam usadas com {{ic|hyprctl}} ao invés de depender de scripts.&lt;br /&gt;
&lt;br /&gt;
Atualmente o ecossistema consiste de:&lt;br /&gt;
&lt;br /&gt;
=== Hyprpaper ===&lt;br /&gt;
&lt;br /&gt;
Hyprpaper é uma ferramenta de papéis de parede; ela pode ser instalada com o pacote {{Pkg|hyprpaper}}.&lt;br /&gt;
&lt;br /&gt;
=== Hyprpicker ===&lt;br /&gt;
&lt;br /&gt;
Hyprpicker é uma ferramenta para selecionar uma cor de um desktop; ela pode ser instalada com o pacote {{Pkg|hyprpicker}}. Ela não requere configuração.&lt;br /&gt;
&lt;br /&gt;
=== Hypridle ===&lt;br /&gt;
&lt;br /&gt;
Hypridle é um daemon de gerenciamento de inatividade; ele pode ser instalado com o pacote {{Pkg|hypridle}}.&lt;br /&gt;
&lt;br /&gt;
=== Hyprlock ===&lt;br /&gt;
&lt;br /&gt;
[[Hyprlock]] é um gerenciador de trancamento de tela; ele pode ser instalado com o pacote {{Pkg|hyprlock}}.&lt;br /&gt;
&lt;br /&gt;
=== Hyprcursor ===&lt;br /&gt;
&lt;br /&gt;
Hyprcursor é o novo formato para lidar com cursores de ela que oferece diversas melhorias em comparação ao método tradicional; ele pode ser instalado com o pacote {{Pkg|hyprcursor}}.&lt;br /&gt;
&lt;br /&gt;
==== Temas do Hyprcursor ====&lt;br /&gt;
&lt;br /&gt;
{{Dica|Se você instalar o hyprcursor e não instalar nenhum tema junto dele então ele irá usar as suas configurações de cursor antigas}}&lt;br /&gt;
&lt;br /&gt;
Temas para cursor podem ser instalados pela [[AUR (Português)|AUR]], por exemplo:&lt;br /&gt;
&lt;br /&gt;
* {{AUR|sweet-cursors-hyprcursor-git}}&lt;br /&gt;
* {{AUR|nordzy-hyprcursors}}&lt;br /&gt;
* {{AUR|xcursor-pro-hyprcursor}} &lt;br /&gt;
* {{AUR|hyprcursor-dracula-kde-git}}&lt;br /&gt;
&lt;br /&gt;
Instruções para portar temas existentes para o Hyprcursor estão disponíveis no [https://github.com/hyprwm/hyprcursor/tree/main/docs repositório github do projeto].&lt;br /&gt;
&lt;br /&gt;
=== XDG-Desktop-Portal-Hyprland ===&lt;br /&gt;
&lt;br /&gt;
Implementação do [[XDG Desktop Portal]] do Hyprland. Compatível com outros compositores baseados em wlroots, mas provê funcionalidades extra quando usado com o Hyprland. Disponível através do pacote {{Pkg|xdg-desktop-portal-hyprland}}.&lt;br /&gt;
&lt;br /&gt;
=== Hyprpolkitagent ===&lt;br /&gt;
&lt;br /&gt;
Hyprpolkitagent é um daemon de autenticação [[polkit]]. Ele pode ser instalado com o pacote {{Pkg|hyprpolkitagent}}.&lt;br /&gt;
&lt;br /&gt;
=== Hyprsunset ===&lt;br /&gt;
&lt;br /&gt;
Hyprsunset é uma pequena ferramente que disponibiliza um filtro de luz azul para sua tela. Ele pode ser instalado pelo pacote {{Pkg|hyprsunset}}.&lt;br /&gt;
&lt;br /&gt;
=== Hyprsysteminfo ===&lt;br /&gt;
&lt;br /&gt;
Hyprsysteminfo é um programa de pega informações de seu sistema, similarmente ao {{AUR|neofetch}} ou {{Pkg|fastfetch}}. Ele pode ser instalado pelo pacote AUR {{AUR|hyprsysteminfo}}.&lt;br /&gt;
&lt;br /&gt;
== Dicas e truques ==&lt;br /&gt;
&lt;br /&gt;
{{Nota|&lt;br /&gt;
* Para todas as seções abaixo geralmente haverá mais do que uma maneira para atingir um mesmo resultado, todos os pedaços de código aqui servem como exemplos básicos.&lt;br /&gt;
* Para uma lista compreensiva de alternativas veja [[List of applications (Português)|Lista de aplicações]], uma lista específica para Hyprland pode ser encontrada na [https://wiki.hypr.land/Useful-Utilities/ Wiki upstream].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Gerenciador de arquivos ===&lt;br /&gt;
&lt;br /&gt;
O Hyprland requere uma aplicação externa compatível com wayland caso um gerenciador de arquivos gráficos for desejado. Usando {{Pkg|thunar}} como exemplo, basta definirmos uma tecla de atalho:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, E, exec, thunar&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Inicializador de aplicações ===&lt;br /&gt;
&lt;br /&gt;
O Hyprland requere uma aplicação externa compatível com wayland para iniciar aplicações. Usando {{Pkg|wofi}} como exemplo, basta definirmos uma tecla de atalho:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, F, exec, wofi --show drun&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Inatividade ===&lt;br /&gt;
&lt;br /&gt;
O Hyprland requere uma aplicação externa compatível com wayland caso um daemon de gerenciamento de inatividade for desejado. A configuração mais comum é usar os pacotes {{Pkg|hypridle}} e {{Pkg|hyprlock}}. Você pode trancar sua tela manualmente usando a seguinte tecla de atalho:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, L, exec, hyprlock&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Trancamento de tela automático e suspensão ====&lt;br /&gt;
&lt;br /&gt;
Crie o seguinte arquivo:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hypridle.conf|2=&lt;br /&gt;
general {&lt;br /&gt;
    lock_cmd = pidof hyprlock {{!}}{{!}} hyprlock&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
listener {&lt;br /&gt;
    timeout = 300&lt;br /&gt;
    on-timeout = loginctl lock-session&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
listener {&lt;br /&gt;
    timeout = 600&lt;br /&gt;
    on-timeout = systemctl suspend&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Dica| Você pode ajustar os intervalos de tempo modificando os valores numéricos, em segundos. 300 é 5 minutos, 600 é 10 minutos etc.}}&lt;br /&gt;
&lt;br /&gt;
E então execute ele:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = hypridle&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Desligando a tela usando DPMS depois de um período de tempo ====&lt;br /&gt;
&lt;br /&gt;
O Hyprland possui um dispatcher integrado para lidar com requisições DPMS entretanto usá-lo diretamente com uma tecla de atalho não é recomendado, fazer isso causará com que você não consiga ligar sua tela de volta, te obrigando a reiniciar sua máquina.&lt;br /&gt;
&lt;br /&gt;
Edite o arquivo acima e altere-o para ficar da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hypridle.conf|2=&lt;br /&gt;
general {&lt;br /&gt;
    lock_cmd = pidof hyprlock {{!}}{{!}} hyprlock&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
listener {&lt;br /&gt;
    timeout = 300&lt;br /&gt;
    on-timeout = loginctl lock-session&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
listener {&lt;br /&gt;
    timeout = 600&lt;br /&gt;
    on-timeout = hyprctl dispatch dpms off&lt;br /&gt;
    on-resume = hyprctl dispatch dpms on&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
listener {&lt;br /&gt;
    timeout = 900&lt;br /&gt;
    on-timeout = systemctl suspend&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Barra de status ===&lt;br /&gt;
&lt;br /&gt;
O Hyprland requere uma aplicação externa compatível com o wayland para exibir uma barra de status. Usando o pacote {{Pkg|waybar}} como exemplo, nós só precisamos chama-la da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = waybar&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Overview da área de trabalho ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|waybar}} possui um módulo já integrado que suporta áreas de trabalho do Hyprland nativamente e é altamente customizável.&lt;br /&gt;
&lt;br /&gt;
Veja a waybar Wiki [https://github.com/Alexays/Waybar/wiki/Module:-Workspaces] para mais detalhes.&lt;br /&gt;
&lt;br /&gt;
=== Autenticação Polkit ===&lt;br /&gt;
&lt;br /&gt;
Autenticação [[Polkit]] requer o uso de um [[Polkit#Authentication agents|agente de autenticação]] externo. O Hyprland recomenda usar {{Pkg|hyprpolkitagent}} mas qualquer um deve funcionar.&lt;br /&gt;
&lt;br /&gt;
Chame-o da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = systemctl --user start hyprpolkitagent&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Papel de parede do desktop ===&lt;br /&gt;
&lt;br /&gt;
O Hyprland requere uma aplicação externa compatível com o wayland para gerenciar papéis de parede. Usando {{Pkg|hyprpaper}} como exemplo, nós podemos chama-lo da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = hyprpaper&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Adicionalmente, já que {{Pkg|hyprpaper}} requer um arquivo de configuração para iniciar; crie o arquivo da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprpaper.conf|2=&lt;br /&gt;
wallpaper {&lt;br /&gt;
    monitor = &amp;#039;&amp;#039;monitor&amp;#039;&amp;#039;&lt;br /&gt;
    path = /home/me/amongus.png&lt;br /&gt;
    fit_mode = cover&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Substitua &amp;#039;&amp;#039;monitor&amp;#039;&amp;#039; com o monitor que você deseja que o papel de parede seja aplicado, você pode obter uma lista usando {{ic|hyprctl monitors}}. {{ic|monitor}} também pode ser deixado em branco para que a regra se aplique a todos os monitores.&lt;br /&gt;
&lt;br /&gt;
==== Usando um script para randomizar o papel de parede ====&lt;br /&gt;
&lt;br /&gt;
Crie o seguinte script e certifique-se de que ele é [[executável]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/hyprpaper-random|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
WALLPAPER_DIR=&amp;quot;$HOME/.config/hypr/wallpapers/&amp;quot;&lt;br /&gt;
CURRENT_WALL=$(hyprctl hyprpaper listloaded)&lt;br /&gt;
&lt;br /&gt;
# Get a random wallpaper that is not the current one&lt;br /&gt;
WALLPAPER=$(find &amp;quot;$WALLPAPER_DIR&amp;quot; -type f ! -name &amp;quot;$(basename &amp;quot;$CURRENT_WALL&amp;quot;)&amp;quot; | shuf -n 1)&lt;br /&gt;
&lt;br /&gt;
# Apply the selected wallpaper&lt;br /&gt;
hyprctl hyprpaper reload ,&amp;quot;$WALLPAPER&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Agora crie um novo &amp;#039;&amp;#039;diretório&amp;#039;&amp;#039; para armazenar papéis de parede, algo como {{ic|~/.config/hypr/wallpapers}} deve funcionar, e insira nele as imagens que você deseja.&lt;br /&gt;
&lt;br /&gt;
Por fim, chame o script quando a tecla de atalho &amp;#039;&amp;#039;especifica&amp;#039;&amp;#039; é pressionada:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
$mainMod = super&lt;br /&gt;
&lt;br /&gt;
bind = $mainMod, r, exec, ~/.config/hypr/scripts/hyprpaper-random&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Notificações na tela ===&lt;br /&gt;
&lt;br /&gt;
Notificações na tela para ações como alterações de brilho ou volume são possíveis usando um daemon de notificações externo. Este é um tópico muito complexo e cobri-lo completamente é além do escopo dessa página. Ao invés disso, essa sessão irá focar no pacote {{Pkg|mako}}, portanto, [[instale]] ele.&lt;br /&gt;
&lt;br /&gt;
Veja [[Desktop notifications|Notificações de desktop]] para mais instruções e [[Desktop_notifications#Standalone]] para uma lista de alternativas.&lt;br /&gt;
&lt;br /&gt;
{{Nota|&lt;br /&gt;
* Todos os scripts aqui oferecidos são exemplos e vão, muito provavelmente, precisar ser ajustados para seu setup.&lt;br /&gt;
* Todos os scripts nessa sessão devem ser [[executáveis]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Mako ====&lt;br /&gt;
&lt;br /&gt;
{{Style|This section goes beyond the scope of this page and probably deserves its own dedicated page.}}&lt;br /&gt;
&lt;br /&gt;
Mako is a lightweight notification daemon, you can read {{man|5|mako}} for details. Its configuration file is {{ic|~/.config/mako/config}}, icons used for OSD are stored at {{ic|~/.config/mako/icons/}} and should be in PNG format. &lt;br /&gt;
&lt;br /&gt;
For the rest of this section all the images used by the scripts are available from [https://github.com/SolDoesTech/HyprV4/tree/main/HyprV/mako/icons this GitHub folder].&lt;br /&gt;
&lt;br /&gt;
===== Keyboard backlight notifications =====&lt;br /&gt;
&lt;br /&gt;
First create the following script:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/kbbacklight|2=&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
iDIR=&amp;quot;$HOME/.config/mako/icons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Get brightness&lt;br /&gt;
get_backlight() {&lt;br /&gt;
	LIGHT=&amp;quot;$(cat /sys/class/leds/*::kbd_backlight/brightness)&amp;quot;&lt;br /&gt;
	echo &amp;quot;${LIGHT}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get icons&lt;br /&gt;
get_icon() {&lt;br /&gt;
	current=&amp;quot;$(cat /sys/class/leds/*::kbd_backlight/brightness)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	if [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;0&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;1&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-20.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;1&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;2&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-60.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;2&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;3&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-100.png&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Notify&lt;br /&gt;
notify_user() {&lt;br /&gt;
	notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$icon&amp;quot; &amp;quot;Keyboard Brightness : $(brightnessctl -d &amp;#039;*::kbd_backlight&amp;#039; g)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Increase brightness&lt;br /&gt;
inc_backlight() {&lt;br /&gt;
	brightnessctl -d *::kbd_backlight set 33%+ &amp;amp;&amp;amp; get_icon &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Decrease brightness&lt;br /&gt;
dec_backlight() {&lt;br /&gt;
	brightnessctl -d *::kbd_backlight set 33%- &amp;amp;&amp;amp; get_icon &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Zero brightness&lt;br /&gt;
zero_backlight() {&lt;br /&gt;
	brightnessctl -d *::kbd_backlight s 0%&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Full brightness&lt;br /&gt;
full_backlight() {&lt;br /&gt;
	brightnessctl -d *::kbd_backlight s 100%&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Execute accordingly&lt;br /&gt;
if [[ &amp;quot;$1&amp;quot; == &amp;quot;--get&amp;quot; ]]; then&lt;br /&gt;
	brightnessctl -d &amp;#039;*::kbd_backlight&amp;#039; g&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--inc&amp;quot; ]]; then&lt;br /&gt;
	inc_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--dec&amp;quot; ]]; then&lt;br /&gt;
	dec_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--zero&amp;quot; ]]; then&lt;br /&gt;
	zero_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--full&amp;quot; ]]; then&lt;br /&gt;
	full_backlight&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
	get_backlight&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Then add a new bind, or edit any [[#Keyboard backlight|existing one]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Keyboard brightness&lt;br /&gt;
bind = &amp;#039;&amp;#039;keyboard_brightness_up_shortcut&amp;#039;&amp;#039;, exec, ~/.config/hypr/scripts/kbbacklight --inc&lt;br /&gt;
bind = &amp;#039;&amp;#039;keyboard_brightness_down_shortcut&amp;#039;&amp;#039;, exec, ~/.config/hypr/scripts/kbbacklight --dec&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== Media key notifications =====&lt;br /&gt;
&lt;br /&gt;
First create the following script:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/volume|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
iDIR=&amp;quot;$HOME/.config/mako/icons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Get Volume&lt;br /&gt;
get_volume() {&lt;br /&gt;
	volume=$(pamixer --get-volume)&lt;br /&gt;
	echo &amp;quot;$volume&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get icons&lt;br /&gt;
get_icon() {&lt;br /&gt;
	current=$(get_volume)&lt;br /&gt;
	if [[ &amp;quot;$current&amp;quot; -eq &amp;quot;0&amp;quot; ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/volume-mute.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;0&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;30&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/volume-low.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;30&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;60&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/volume-mid.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;60&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;100&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/volume-high.png&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Notify&lt;br /&gt;
notify_user() {&lt;br /&gt;
	notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$(get_icon)&amp;quot; &amp;quot;Volume : $(get_volume) %&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Increase Volume&lt;br /&gt;
inc_volume() {&lt;br /&gt;
	pamixer -i 5 &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Decrease Volume&lt;br /&gt;
dec_volume() {&lt;br /&gt;
	pamixer -d 5 &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Toggle Mute&lt;br /&gt;
toggle_mute() {&lt;br /&gt;
	if [ &amp;quot;$(pamixer --get-mute)&amp;quot; == &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
		pamixer -m &amp;amp;&amp;amp; notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$iDIR/volume-mute.png&amp;quot; &amp;quot;Volume Switched OFF&amp;quot;&lt;br /&gt;
	elif [ &amp;quot;$(pamixer --get-mute)&amp;quot; == &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
		pamixer -u &amp;amp;&amp;amp; notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$(get_icon)&amp;quot; &amp;quot;Volume Switched ON&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Toggle Mic&lt;br /&gt;
toggle_mic() {&lt;br /&gt;
	if [ &amp;quot;$(pamixer --default-source --get-mute)&amp;quot; == &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
		pamixer --default-source -m &amp;amp;&amp;amp; notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$iDIR/microphone-mute.png&amp;quot; &amp;quot;Microphone Switched OFF&amp;quot;&lt;br /&gt;
	elif [ &amp;quot;$(pamixer --default-source --get-mute)&amp;quot; == &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
		pamixer -u --default-source u &amp;amp;&amp;amp; notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$iDIR/microphone.png&amp;quot; &amp;quot;Microphone Switched ON&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
# Get icons&lt;br /&gt;
get_mic_icon() {&lt;br /&gt;
	current=$(pamixer --default-source --get-volume)&lt;br /&gt;
	if [[ &amp;quot;$current&amp;quot; -eq &amp;quot;0&amp;quot; ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/microphone.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;0&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;30&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/microphone.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;30&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;60&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/microphone.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;60&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;100&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/microphone.png&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
# Notify&lt;br /&gt;
notify_mic_user() {&lt;br /&gt;
	notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$(get_mic_icon)&amp;quot; &amp;quot;Mic-Level : $(pamixer --default-source --get-volume) %&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Increase MIC Volume&lt;br /&gt;
inc_mic_volume() {&lt;br /&gt;
	pamixer --default-source -i 5 &amp;amp;&amp;amp; notify_mic_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Decrease MIC Volume&lt;br /&gt;
dec_mic_volume() {&lt;br /&gt;
	pamixer --default-source -d 5 &amp;amp;&amp;amp; notify_mic_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Execute accordingly&lt;br /&gt;
if [[ &amp;quot;$1&amp;quot; == &amp;quot;--get&amp;quot; ]]; then&lt;br /&gt;
	get_volume&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--inc&amp;quot; ]]; then&lt;br /&gt;
	inc_volume&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--dec&amp;quot; ]]; then&lt;br /&gt;
	dec_volume&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--toggle&amp;quot; ]]; then&lt;br /&gt;
	toggle_mute&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--toggle-mic&amp;quot; ]]; then&lt;br /&gt;
	toggle_mic&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--get-icon&amp;quot; ]]; then&lt;br /&gt;
	get_icon&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--get-mic-icon&amp;quot; ]]; then&lt;br /&gt;
	get_mic_icon&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--mic-inc&amp;quot; ]]; then&lt;br /&gt;
	inc_mic_volume&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--mic-dec&amp;quot; ]]; then&lt;br /&gt;
	dec_mic_volume&lt;br /&gt;
else&lt;br /&gt;
	get_volume&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Then add the following (or edit any existing binds):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Volume&lt;br /&gt;
bind = , XF86AudioRaiseVolume, exec, ~/.config/hypr/scripts/volume --inc &lt;br /&gt;
bind = , XF86AudioLowerVolume, exec, ~/.config/hypr/scripts/volume --dec &lt;br /&gt;
bind = , XF86AudioMicMute, exec, ~/.config/hypr/scripts/volume --toggle-mic &lt;br /&gt;
bind = , XF86AudioMute, exec, ~/.config/hypr/scripts/volume --toggle &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== Screen backlight notifications =====&lt;br /&gt;
&lt;br /&gt;
First create the following script:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/backlight|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
iDIR=&amp;quot;$HOME/.config/mako/icons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Get brightness&lt;br /&gt;
get_backlight() {&lt;br /&gt;
	LIGHT=$(printf &amp;quot;%.0f\n&amp;quot; $(brightnessctl g))&lt;br /&gt;
	echo &amp;quot;${LIGHT}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get icons&lt;br /&gt;
get_icon() {&lt;br /&gt;
	current=&amp;quot;$(get_backlight)&amp;quot;&lt;br /&gt;
	if [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;0&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;19200&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-20.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;19200&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;38400&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-40.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;38400&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;57600&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-60.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;57600&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;76800&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-80.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;76800&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;96000&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-100.png&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Notify&lt;br /&gt;
notify_user() {&lt;br /&gt;
	notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$icon&amp;quot; &amp;quot;Brightness : $(get_backlight)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Increase brightness&lt;br /&gt;
inc_backlight() {&lt;br /&gt;
	brightnessctl s +5% &amp;amp;&amp;amp; get_icon &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Decrease brightness&lt;br /&gt;
dec_backlight() {&lt;br /&gt;
	brightnessctl s 5%- &amp;amp;&amp;amp; get_icon &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Execute accordingly&lt;br /&gt;
if [[ &amp;quot;$1&amp;quot; == &amp;quot;--get&amp;quot; ]]; then&lt;br /&gt;
	get_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--inc&amp;quot; ]]; then&lt;br /&gt;
	inc_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--dec&amp;quot; ]]; then&lt;br /&gt;
	dec_backlight&lt;br /&gt;
else&lt;br /&gt;
	get_backlight&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Then add the following (or edit any existing binds):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Screen brightness&lt;br /&gt;
bind = , XF86MonBrightnessUp, exec, ~/.config/hypr/scripts/backlight --inc &lt;br /&gt;
bind = , XF86MonBrightnessDown, exec, ~/.config/hypr/scripts/backlight --dec &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== Keyboard language notifications =====&lt;br /&gt;
&lt;br /&gt;
To run this script, you need a command-line JSON processor {{AUR|gojq}}.&lt;br /&gt;
&lt;br /&gt;
First create the following script:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/lang|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
icon=&amp;quot;$HOME/.config/mako/icons/language.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Get language&lt;br /&gt;
get_lang() {&lt;br /&gt;
	lang=$(hyprctl devices -j | gojq -r &amp;#039;.keyboards[] | select(.name == &amp;quot;at-translated-set-2-keyboard&amp;quot;) | .active_keymap&amp;#039; | cut -c 1-2 | tr &amp;#039;A-Z&amp;#039; &amp;#039;a-z&amp;#039;)&lt;br /&gt;
	case $lang in&lt;br /&gt;
		en)&lt;br /&gt;
			lang=&amp;quot;English language&amp;quot;&lt;br /&gt;
			;;&lt;br /&gt;
		ru)&lt;br /&gt;
			lang=&amp;quot;Русский язык&amp;quot;&lt;br /&gt;
			;;&lt;br /&gt;
		uk)&lt;br /&gt;
			lang=&amp;quot;Українська мова&amp;quot;&lt;br /&gt;
			;;&lt;br /&gt;
	esac&lt;br /&gt;
	echo $lang&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Notify&lt;br /&gt;
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$icon&amp;quot; &amp;quot;$(get_lang)&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Then add the following (or edit any existing binds):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
device:at-translated-set-2-keyboard {&lt;br /&gt;
    kb_layout = us,ru,ua&lt;br /&gt;
    kb_variant = lang&lt;br /&gt;
    kb_options = grp:win_space_toggle&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Language&lt;br /&gt;
bind = SUPER, SPACE, exec, ~/.config/hypr/scripts/lang&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Controle de alimentação ===&lt;br /&gt;
&lt;br /&gt;
O Hyprland requere uma aplicação externa compatível com o wayland para controlar a alimentação do sistema. Usando {{Pkg|nwg-bar}} como exemplo, podemos simplesmente adicionar a seguinte tecla de atalho:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, ESCAPE, exec, nwg-bar&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Pranchetas ===&lt;br /&gt;
&lt;br /&gt;
Quando copiamos dados para uma prancheta em [[Wayland]] esses dados são deletados ao fecharmos a aplicação cuja copiamos esses dados. Outros ambientes desktop contornam esse problema usando um gerenciador de prancheta dedicado e no Hyprland existem diversas opções compatíveis para escolher. Veja a [https://wiki.hypr.land/Useful-Utilities/Clipboard-Managers/ wiki upstream] para mais informações.&lt;br /&gt;
&lt;br /&gt;
Essa seção ira cobrir o pacote {{Pkg|cliphist}} já que ele suporta copiar tanto imagens como texto, comece adicionando o seguinte ao arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = wl-paste --type text --watch cliphist store&lt;br /&gt;
exec-once = wl-paste --type image --watch cliphist store&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Então crie uma tecla de atalho para puxar o histórico no seu [[#Inicializador de aplicações|inicializador de aplicativos]] de preferência:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, V, exec, cliphist list {{!}} wofi --dmenu {{!}} cliphist decode {{!}} wl-copy&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Agora ao pressionar {{ic|Super+v}} vai abrir uma janela {{ic|wofi}} com uma lista com o histórico da prancheta.&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/desabilitar dispositivos ===&lt;br /&gt;
&lt;br /&gt;
Para habilitar/desabilitar dispositivos (ex.: touchpad), primeiro use:&lt;br /&gt;
 $ hyprctl devices&lt;br /&gt;
para obter o nome do seu dispositivo.&lt;br /&gt;
&lt;br /&gt;
Coloque essas linhas de código no seu arquivo de configuração (substitua &amp;lt;device_name&amp;gt; com o nome do dispositivo obtido acima) para ligar/desligar o dispositivo:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
&lt;br /&gt;
device {&lt;br /&gt;
  name = &amp;lt;device_name&amp;gt;&lt;br /&gt;
  enabled = {true/false}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Para dinamicamente ligar/desligar o dispositivo use hyprctl:&lt;br /&gt;
&lt;br /&gt;
 $ hyprctl keyword &amp;quot;device[&amp;lt;device_name&amp;gt;]:enabled&amp;quot; {true|false}&lt;br /&gt;
&lt;br /&gt;
Você também pode criar teclas de atalho, ex.:&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = $mainMod, t, exec, hyprctl keyword &amp;quot;device[pixa3854:00-093a:0274-touchpad]:enabled&amp;quot; false&lt;br /&gt;
bind = $mainMod Shift, t, exec, hyprctl keyword &amp;quot;device[pixa3854:00-093a:0274-touchpad]:enabled&amp;quot; true&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Perfil dconf separado ===&lt;br /&gt;
&lt;br /&gt;
Caso você não queira infectar as configurações de outros ambientes desktops baseados em GTK, você pode usar um perfil {{ic|dconf}} separado. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
Declare um novo perfil global dconf:&lt;br /&gt;
{{hc|/etc/dconf/profile/hyprland|2=&lt;br /&gt;
user-db:hyprland&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
env = DCONF_PROFILE, hyprland&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Agora você pode usar &amp;#039;&amp;#039;gsettings&amp;#039;&amp;#039; e isso não deve afetar outros ambientes desktop.&lt;br /&gt;
&lt;br /&gt;
=== Aplicações KDE Plasma não seguindo o tema Qt ===&lt;br /&gt;
&lt;br /&gt;
Mesmo com um tema Qt definido, alguns aplicativos plasma podem não segui-lo. Isso pode ser resolvido instalando {{AUR|qt6ct-kde}} e escolhendo um KColorScheme ou adicionando essa linha de configuração em kdeglobals:&lt;br /&gt;
&lt;br /&gt;
{{hc |~/.config/kdeglobals|2=&lt;br /&gt;
[UiSettings]&lt;br /&gt;
ColorScheme=&amp;#039;&amp;#039;NameOfTheProfile&amp;#039;&amp;#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Solução de problemas ==&lt;br /&gt;
&lt;br /&gt;
=== Aplicativos electron nativos (wayland) piscando em GPUs NVIDIA ===&lt;br /&gt;
&lt;br /&gt;
Esse é um problema comum entre usuários da NVIDIA no Hyprland [https://github.com/hyprwm/Hyprland/issues/6701], [https://github.com/hyprwm/Hyprland/issues/6703] devido à falta de suporte para sincronização explicita no Hyprland [https://github.com/hyprwm/Hyprland/issues/4857]. A solução temporária recomendada é usar X11 (XWayland) com aplicações problemáticas passando-as {{ic|--ozone-platform-hint{{=}}x11}} ou definindo {{ic|env {{=}} ELECTRON_OZONE_PLATFORM_HINT,x11}} em {{ic|~/.config/hypr/hyprland.conf}} para forçar todas as aplicações electron a serem executadas usando XWayland.&lt;br /&gt;
&lt;br /&gt;
=== Problemas de foco em aplicativos da Jetbrains ===&lt;br /&gt;
&lt;br /&gt;
Aplicativos da Jetbrains (Pycharm, Intellij) podem apresentar problemas estranhos de foco como:&lt;br /&gt;
&lt;br /&gt;
* Não é possível arrastar uma aba da barra de abas [https://github.com/hyprwm/Hyprland/issues/1120] para um split ou outra pilha de abas sem que o foco seja roubado e a aba seja largada assim que você arrasta ela para fora da barra de abas atual.&lt;br /&gt;
&lt;br /&gt;
* Janela popup de auto completar roubando o foco até o mouse ser movido.&lt;br /&gt;
&lt;br /&gt;
Para mitigar esse problema adicione isso ao arquivo de configuração do &amp;#039;&amp;#039;Hyprland&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
 windowrule = match:xwayland true, no_initial_focus on&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Veja também ==&lt;br /&gt;
&lt;br /&gt;
* [https://hypr.land/ Website do Hyprland]&lt;br /&gt;
* [https://wiki.hypr.land/ A documentação oficial]&lt;br /&gt;
* [https://github.com/hyprwm/Hyprland/ Página Github do Hyprland]&lt;br /&gt;
* [https://github.com/hyprland-community/awesome-hyprland lista de ferramentas, plugins e extensões mantidas pela comunidade]&lt;br /&gt;
* [https://github.com/SolDoesTech/HyprV4 Repositório Github de SolDoesTech - Criador de scripts de notificação]&lt;/div&gt;</summary>
		<author><name>Slz</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF/Troubleshooting</id>
		<title>PCI passthrough via OVMF/Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF/Troubleshooting"/>
		<updated>2026-03-09T19:43:28Z</updated>

		<summary type="html">&lt;p&gt;Engdyn: /* AMD GPU not resetting properly yielding &amp;quot;Error: internal error: Unknown PCI header type ‘127’&amp;quot; (Separate issue from the one above) */  fix broken package link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If your issue is not mentioned below, you may want to browse [[QEMU#Troubleshooting]].&lt;br /&gt;
&lt;br /&gt;
== QEMU 4.0: Unable to load graphics drivers/BSOD/Graphics stutter after driver install using Q35 ==&lt;br /&gt;
&lt;br /&gt;
Starting with [[QEMU]] 4.0, the Q35 machine type changes the default {{ic|kernel_irqchip}} from {{ic|off}} to {{ic|split}}, which breaks some guest devices, such as [[NVIDIA]] graphics (the driver fails to load / black screen / code 43 / graphics stutters, usually when mouse moving). &lt;br /&gt;
&lt;br /&gt;
Switch to full [[KVM]] mode instead by adding {{ic|1=&amp;lt;ioapic driver=&amp;#039;kvm&amp;#039;/&amp;gt;}} under [[libvirt]]&amp;#039;s {{ic|&amp;lt;features&amp;gt;}} tag in your virtual machine configuration or by adding {{ic|1=kernel_irqchip=on}} in the {{ic|-machine}} QEMU arg.&lt;br /&gt;
&lt;br /&gt;
== QEMU 5.0: host-passthrough with kernel version 5.5 to 5.8.1 when using Zen 2 processors: Windows 10 BSOD loop &amp;#039;KERNEL SECURITY CHECK FAILURE&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
{{Note|As of kernel version 5.8.2, disabling STIBP is not required anymore.}}&lt;br /&gt;
&lt;br /&gt;
Starting with QEMU 5.0 virtual machines running on Zen 2 and kernels newer than 5.4 will cause a BSOD loop of: &amp;#039;KERNEL SECURITY CHECK FAILURE&amp;#039;. This can be fixed by either updating to kernel version 5.8.2 or higher, or disabling STIBP:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;cpu mode=&amp;#039;host-passthrough&amp;#039; ...&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;feature policy=&amp;#039;disable&amp;#039; name=&amp;#039;amd-stibp&amp;#039;/&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
  &amp;lt;/cpu&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This requires libvirt 6.5 or higher. On older versions, several workarounds exist:&lt;br /&gt;
&lt;br /&gt;
* Switch CPU mode from {{ic|host-passthrough}} to {{ic|host-model}}. This only works on libvirt 6.4 or lower.&lt;br /&gt;
* Manually patch {{Pkg|qemu-desktop}} in order to revert [https://github.com/qemu/qemu/commit/143c30d4d346831a09e59e9af45afdca0331e819 this commit].&lt;br /&gt;
* On qemu commandline, add {{ic|1=amd-stibp=off}} to the cpu flags string. This can also be invoked through libvirt via a {{ic|&amp;lt;qemu:commandline&amp;gt;}} entry.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Error 43: Driver failed to load&amp;quot; with mobile (Optimus/max-q) NVIDIA GPUs ==&lt;br /&gt;
&lt;br /&gt;
This error occurs because the NVIDIA driver wants to check the status of the power supply. If no battery is present, the driver does not work. Whether [[Libvirt]] or QEMU, by default none of them provide the possibility to simulate a battery. This might also result in a reduced screen resolution and the NVIDIA Desktop Manager refusing to load when right-clicking the desktop, saying it requires Windows 10, a compatible GPU and the NVIDIA graphics driver.&lt;br /&gt;
&lt;br /&gt;
You can however create and add a custom acpi table file to the virtual machine which will do the work.&lt;br /&gt;
&lt;br /&gt;
First you have to create the custom acpi table file by saving the following file as SSDT1.dat (base64 encoded here):&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
echo &amp;#039;U1NEVKEAAAAB9EJPQ0hTAEJYUENTU0RUAQAAAElOVEwYEBkgoA8AFVwuX1NCX1BDSTAGABBMBi5f&lt;br /&gt;
U0JfUENJMFuCTwVCQVQwCF9ISUQMQdAMCghfVUlEABQJX1NUQQCkCh8UK19CSUYApBIjDQELcBcL&lt;br /&gt;
cBcBC9A5C1gCCywBCjwKPA0ADQANTElPTgANABQSX0JTVACkEgoEAAALcBcL0Dk=&amp;#039; | base64 -d &amp;gt; SSDT1.dat&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Next you must add the processed file to the main domain of the virtual machine:&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;domain xmlns:qemu=&amp;quot;http://libvirt.org/schemas/domain/qemu/1.0&amp;quot; type=&amp;quot;kvm&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;qemu:commandline&amp;gt;&lt;br /&gt;
    &amp;lt;qemu:arg value=&amp;quot;-acpitable&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;qemu:arg value=&amp;quot;file=/path/to/your/SSDT1.dat&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/qemu:commandline&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Make sure your XML file has the correct namespace in the {{ic|&amp;lt;domain&amp;gt;}} tag as visible above, otherwise the XML verification will fail [https://www.reddit.com/r/VFIO/comments/ebo2uk/nvidia_geforce_rtx_2060_mobile_success_qemu_ovmf/].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;BAR 3: cannot reserve [mem]&amp;quot; error in dmesg after starting virtual machine ==&lt;br /&gt;
&lt;br /&gt;
{{Expansion|This error is actually related to the boot_vgs issue and should be merged together with everything else concerning GPU ROMs.|section=UEFI (OVMF) Compatibility in VBIOS}}&lt;br /&gt;
&lt;br /&gt;
With respect to [https://www.linuxquestions.org/questions/linux-kernel-70/kernel-fails-to-assign-memory-to-pcie-device-4175487043/ this article]:&lt;br /&gt;
&lt;br /&gt;
If you still have code 43 check {{man|1|dmesg}} for memory reservation errors after starting up your virtual machine, if you have similar it could be the case:&lt;br /&gt;
&lt;br /&gt;
 vfio-pci 0000:09:00.0: BAR 3: cannot reserve [mem 0xf0000000-0xf1ffffff 64bit pref]&lt;br /&gt;
&lt;br /&gt;
Find out a PCI Bridge your graphics card is connected to. This will give actual hierarchy of devices:&lt;br /&gt;
&lt;br /&gt;
 $ lspci -t&lt;br /&gt;
&lt;br /&gt;
Before starting the virtual machine run the following lines, replacing IDs with actual values from previous output.&lt;br /&gt;
&lt;br /&gt;
 # echo 1 &amp;gt; /sys/bus/pci/devices/0000\:00\:03.1/remove&lt;br /&gt;
 # echo 1 &amp;gt; /sys/bus/pci/rescan&lt;br /&gt;
&lt;br /&gt;
{{Note|Probably setting [[kernel parameter]] {{ic|1=video=efifb:off}} is required as well. [https://pve.proxmox.com/wiki/Pci_passthrough#BAR_3:_can.27t_reserve_.5Bmem.5D_error]}}&lt;br /&gt;
&lt;br /&gt;
In addition try adding kernel parameter {{ic|1=pci=realloc}} which also [https://github.com/Dunedan/mbp-2016-linux/issues/60#issuecomment-396311301 helps with hotplugging issues].&lt;br /&gt;
&lt;br /&gt;
== UEFI (OVMF) compatibility in VBIOS ==&lt;br /&gt;
&lt;br /&gt;
{{Remove|Flashing your guest GPU for the purpose of a GPU passthrough is &amp;#039;&amp;#039;&amp;#039;never&amp;#039;&amp;#039;&amp;#039; good advice. A full section should be dedicated to VBIOS compatibility.|section= UEFI (OVMF) Compatibility in VBIOS}}&lt;br /&gt;
&lt;br /&gt;
With respect to [https://pve.proxmox.com/wiki/Pci_passthrough#How_to_known_if_card_is_UEFI_.28ovmf.29_compatible this article]:&lt;br /&gt;
&lt;br /&gt;
Error 43 can be caused by the GPU&amp;#039;s VBIOS without UEFI support. To check whenever your VBIOS supports it, you will have to use [https://github.com/awilliam/rom-parser rom-parser]:&lt;br /&gt;
&lt;br /&gt;
 $ git clone https://github.com/awilliam/rom-parser&lt;br /&gt;
 $ cd rom-parser &amp;amp;&amp;amp; make&lt;br /&gt;
&lt;br /&gt;
Dump the GPU VBIOS:&lt;br /&gt;
&lt;br /&gt;
 # echo 1 &amp;gt; /sys/bus/pci/devices/0000:01:00.0/rom&lt;br /&gt;
 # cat /sys/bus/pci/devices/0000:01:00.0/rom &amp;gt; /tmp/image.rom&lt;br /&gt;
 # echo 0 &amp;gt; /sys/bus/pci/devices/0000:01:00.0/rom&lt;br /&gt;
&lt;br /&gt;
And test it for compatibility:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ./rom-parser /tmp/image.rom|&lt;br /&gt;
Valid ROM signature found @600h, PCIR offset 190h&lt;br /&gt;
	PCIR: type 0 (x86 PC-AT), vendor: 10de, device: 1184, class: 030000&lt;br /&gt;
	PCIR: revision 0, vendor revision: 1&lt;br /&gt;
Valid ROM signature found @fa00h, PCIR offset 1ch&lt;br /&gt;
	PCIR: type 3 (EFI), vendor: 10de, device: 1184, class: 030000&lt;br /&gt;
	PCIR: revision 3, vendor revision: 0&lt;br /&gt;
		EFI: Signature Valid, Subsystem: Boot, Machine: X64&lt;br /&gt;
	Last image&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To be UEFI compatible, you need a &amp;quot;type 3 (EFI)&amp;quot; in the result. If it is not there, try updating your GPU VBIOS. GPU manufacturers often share VBIOS upgrades on their support pages. A large database of known compatible and working VBIOSes (along with their UEFI compatibility status!) is available on [https://www.techpowerup.com/vgabios/ TechPowerUp].&lt;br /&gt;
&lt;br /&gt;
Updated VBIOS can be used in the virtual machine without flashing. To load it in QEMU:&lt;br /&gt;
&lt;br /&gt;
 -device vfio-pci,host=07:00.0,......,romfile=/path/to/your/gpu/bios.bin \&lt;br /&gt;
&lt;br /&gt;
And in libvirt:&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
   &amp;lt;hostdev&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt;rom file=&amp;#039;/path/to/your/gpu/bios.bin&amp;#039;/&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
   &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
One should compare VBIOS versions between host and guest systems using [https://www.techpowerup.com/download/nvidia-nvflash/ nvflash] (Linux versions under &amp;#039;&amp;#039;Show more versions&amp;#039;&amp;#039;) or [https://www.techpowerup.com/download/techpowerup-gpu-z/ GPU-Z] (in Windows guest). To check the currently loaded VBIOS:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ./nvflash --version|&lt;br /&gt;
...&lt;br /&gt;
Version               : 80.04.XX.00.97&lt;br /&gt;
...&lt;br /&gt;
UEFI Support          : No&lt;br /&gt;
UEFI Version          : N/A&lt;br /&gt;
UEFI Variant Id       : N/A ( Unknown )&lt;br /&gt;
UEFI Signer(s)        : Unsigned&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
And to check a given VBIOS file:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ./nvflash --version NV299MH.rom|&lt;br /&gt;
...&lt;br /&gt;
Version               : 80.04.XX.00.95&lt;br /&gt;
...&lt;br /&gt;
UEFI Support          : Yes&lt;br /&gt;
UEFI Version          : 0x10022 (Jul  2 2013 @ 16377903 )&lt;br /&gt;
UEFI Variant Id       : 0x0000000000000004 ( GK1xx )&lt;br /&gt;
UEFI Signer(s)        : Microsoft Corporation UEFI CA 2011&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
If the external ROM did not work as it should in the guest, you will have to flash the newer VBIOS image to the GPU. In some cases it is possible to create your own VBIOS image with UEFI support using [https://www.win-raid.com/t892f16-AMD-and-Nvidia-GOP-update-No-requests-DIY.html GOPUpd] tool, however this is risky and may result in GPU brick.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Failure during flashing may &amp;quot;brick&amp;quot; your GPU - recovery may be possible, but rarely easy and often requires additional hardware. &amp;#039;&amp;#039;&amp;#039;DO NOT&amp;#039;&amp;#039;&amp;#039; flash VBIOS images for other GPU models (different boards may use different VBIOSes, clocks, fan configuration). If it breaks, you get to keep all the pieces.}}&lt;br /&gt;
&lt;br /&gt;
In order to avoid the irreparable damage to your graphics adapter it is necessary to unload the NVIDIA kernel driver first:&lt;br /&gt;
&lt;br /&gt;
 # modprobe -r nvidia_modeset nvidia&lt;br /&gt;
&lt;br /&gt;
Flashing the VBIOS can be done with:&lt;br /&gt;
&lt;br /&gt;
 # ./nvflash romfile.bin&lt;br /&gt;
&lt;br /&gt;
{{Warning|&amp;#039;&amp;#039;&amp;#039;DO NOT&amp;#039;&amp;#039;&amp;#039; interrupt the flashing process, even if it looks like it is stuck. Flashing should take about a minute on most GPUs, but may take longer.}}&lt;br /&gt;
&lt;br /&gt;
== Slowed down audio pumped through HDMI on the video card ==&lt;br /&gt;
&lt;br /&gt;
For some users, the virtual machine&amp;#039;s audio slows down/starts stuttering/becomes demonic after a while when it is pumped through HDMI on the video card. This usually also slows down graphics.&lt;br /&gt;
A possible solution consists of enabling MSI (Message Signal-Based Interrupts) instead of the default (Line-Based Interrupts).&lt;br /&gt;
&lt;br /&gt;
In order to check whether MSI is supported or enabled, run the following command as root:&lt;br /&gt;
&lt;br /&gt;
 # lspci -vs &amp;#039;&amp;#039;device&amp;#039;&amp;#039; | grep &amp;#039;MSI:&amp;#039;&lt;br /&gt;
&lt;br /&gt;
where {{ic|&amp;#039;&amp;#039;device&amp;#039;&amp;#039;}} is the GPU&amp;#039;s PCI address (e.g. {{ic|01:00.0}}).&lt;br /&gt;
&lt;br /&gt;
The output should be similar to:&lt;br /&gt;
&lt;br /&gt;
 Capabilities: [60] MSI: Enable&amp;#039;&amp;#039;&amp;#039;-&amp;#039;&amp;#039;&amp;#039; Count=1/1 Maskable- 64bit+&lt;br /&gt;
&lt;br /&gt;
A {{ic|-}} after {{ic|Enable}} means MSI is supported, but not used by the virtual machine, while a {{ic|+}} says that the virtual machine is using it.&lt;br /&gt;
&lt;br /&gt;
The procedure to enable it is quite complex, instructions and an overview of the setting can be found [https://forums.guru3d.com/showthread.php?t=378044 here].&lt;br /&gt;
&lt;br /&gt;
On a Linux guest you can use {{man|8|modinfo}} to see if there is option to enable MSI, for example:&lt;br /&gt;
&lt;br /&gt;
 $ modinfo snd_hda_intel | grep msi&lt;br /&gt;
&lt;br /&gt;
If there is, one can enable it by adding the relevant option to a [[Kernel_module#Using_modprobe.d|custom modprobe.d file]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/modprobe.d/snd-hda-intel.conf|2=&lt;br /&gt;
options snd-hda-intel enable_msi=1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Other hints can be found on the [https://lime-technology.com/wiki/index.php/UnRAID_6/VM_Guest_Support#Enable_MSI_for_Interrupts_to_Fix_HDMI_Audio_Support lime-technology&amp;#039;s wiki]{{Dead link|2023|05|06|status=404}}, or [https://vfio.blogspot.it/2014/09/vfio-interrupts-and-how-to-coax-windows.html in this article].&lt;br /&gt;
&lt;br /&gt;
A UI tool called [https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts-msi-tool.378044/ MSI Utility (FOSS Version 2)] works with Windows 10 64-bit and simplifies the process.&lt;br /&gt;
&lt;br /&gt;
In order to fix the issues, enabling MSI on the {{ic|.0}} function of a NVIDIA card &lt;br /&gt;
&lt;br /&gt;
 01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1) (prog-if 00 [VGA controller])&lt;br /&gt;
&lt;br /&gt;
is not enough; it will also be required to enable it on the other function &lt;br /&gt;
&lt;br /&gt;
 01:00.1 Audio device: NVIDIA Corporation Device 0fba (rev a1)&lt;br /&gt;
&lt;br /&gt;
to fix the issue.&lt;br /&gt;
&lt;br /&gt;
== No HDMI audio output on host when intel_iommu is enabled ==&lt;br /&gt;
&lt;br /&gt;
If after enabling {{ic|intel_iommu}} the HDMI output device of Intel GPU becomes unusable on the host, setting the [[kernel parameters]] {{ic|1=intel_iommu=on,igfx_off}} might bring the audio back. Please read [https://docs.kernel.org/arch/x86/iommu.html#graphics-problems iommu.html] for details about setting {{ic|igfx_off}}.&lt;br /&gt;
&lt;br /&gt;
== X does not start after enabling vfio_pci ==&lt;br /&gt;
&lt;br /&gt;
This is related to the host GPU being detected as a secondary GPU, which causes X to fail/crash when it tries to load a driver for the guest GPU. To circumvent this, a [[Xorg#Configuration|Xorg configuration file]] specifying the BusID for the host GPU is required. The correct BusID can be acquired from {{ic|lspci -n}} or the Xorg log [https://www.redhat.com/archives/vfio-users/2016-August/msg00025.html]. Note that the value from the {{ic|lspci}} output is hexadecimal and should be converted to decimal in the {{ic|.conf}} file.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/10-intel.conf|&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;Intel GPU&amp;quot;&lt;br /&gt;
        Driver &amp;quot;modesetting&amp;quot;&lt;br /&gt;
        BusID  &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Chromium ignores integrated graphics for acceleration ==&lt;br /&gt;
&lt;br /&gt;
[[Chromium]] and friends will try to detect as many GPUs as they can in the system and pick which one is preferred (usually discrete NVIDIA/AMD graphics). &lt;br /&gt;
&lt;br /&gt;
It tries to pick a GPU by looking at PCI devices, not OpenGL renderers available in the system. The result is that Chromium may ignore the integrated GPU available for rendering and try to use the dedicated GPU bound to the {{ic|vfio-pci}} driver (and unusable on the host system), regardless of whenever a guest virtual machine is running or not. &lt;br /&gt;
&lt;br /&gt;
This results in software rendering being used (leading to higher CPU load, which may also result in choppy video playback, scrolling and general lack of smoothness).&lt;br /&gt;
&lt;br /&gt;
This can be fixed by [[Chromium/Tips and tricks#Forcing specific GPU|explicitly telling Chromium which GPU you want to use]].&lt;br /&gt;
&lt;br /&gt;
== Virtual machine only uses one core ==&lt;br /&gt;
&lt;br /&gt;
For some users, even if [[IOMMU]] is enabled and the core count is set to more than {{ic|1}}, the virtual machine still only uses one CPU core and thread. To solve this enable &amp;quot;Manually set CPU topology&amp;quot; in [[virt-manager]] and set it to the desirable amount of CPU sockets, cores and threads. Keep in mind that &amp;quot;Threads&amp;quot; refers to the thread count per CPU core, not the total count.&lt;br /&gt;
&lt;br /&gt;
== Passthrough seems to work but no output is displayed ==&lt;br /&gt;
&lt;br /&gt;
If you are using [[virt-manager]], ensure that [[UEFI]] firmware is selected for your virtual machine. Also, make sure you have passed the correct device to the virtual machine.&lt;br /&gt;
&lt;br /&gt;
== Host lockup after virtual machine shutdown ==&lt;br /&gt;
&lt;br /&gt;
This issue seems to primarily affect users running a Windows 10 guest and usually after the virtual machine has been run for a prolonged period of time: the host will experience multiple CPU core lockups (see [https://bbs.archlinux.org/viewtopic.php?id=206050&amp;amp;p=2]). &lt;br /&gt;
&lt;br /&gt;
To fix this try enabling Message Signal-Based Interrupts (MSI) on the GPU passed through to the guest. A good guide for how to do this can be found in [https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts.378044/]. You can also download this application for Windows here [https://github.com/TechtonicSoftware/MSIInturruptEnabler] that should make the process easier.&lt;br /&gt;
&lt;br /&gt;
== Host lockup if guest is left running during sleep ==&lt;br /&gt;
&lt;br /&gt;
VFIO-enabled virtual machines tend to become unstable if left running through a sleep/wakeup cycle and have been known to cause the host machine to lockup when an attempt is then made to shut them down. &lt;br /&gt;
&lt;br /&gt;
In order to avoid this, one can simply prevent the host from going into sleep while the guest is running using the following [[Libvirt#Hooks|libvirt hook]] script and [[Systemd#Writing unit files|systemd unit]]. The hook file needs [[executable]] permissions to work.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/libvirt/hooks/qemu|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
OBJECT=&amp;quot;$1&amp;quot;&lt;br /&gt;
OPERATION=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$OPERATION&amp;quot; in&lt;br /&gt;
    prepare)&lt;br /&gt;
        systemctl start libvirt-nosleep@&amp;quot;$OBJECT&amp;quot;&lt;br /&gt;
        ;;&lt;br /&gt;
    release)&lt;br /&gt;
        systemctl stop libvirt-nosleep@&amp;quot;$OBJECT&amp;quot;&lt;br /&gt;
        ;;&lt;br /&gt;
    *)&lt;br /&gt;
        exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/libvirt-nosleep@.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Preventing sleep while libvirt domain &amp;quot;%i&amp;quot; is running&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/systemd-inhibit --what=sleep --why=&amp;quot;Libvirt domain \&amp;quot;%i\&amp;quot; is running&amp;quot; --who=%U --mode=block sleep infinity&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Bluescreen at boot since Windows 10 1803 ==&lt;br /&gt;
&lt;br /&gt;
Since Windows 10 1803, there is a problem when you are using &amp;quot;host-passthrough&amp;quot; as cpu model. The machine may be unable to boot and it either starts boot looping or you may get a BSOD.&lt;br /&gt;
You can workaround this by using the following [[kernel parameter]]:&lt;br /&gt;
&lt;br /&gt;
 # echo 1 &amp;gt; /sys/module/kvm/parameters/ignore_msrs&lt;br /&gt;
&lt;br /&gt;
To make it permanently you can create a [[Kernel module#Using modprobe.d|modprobe.d file]] {{ic|kvm.conf}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/modprobe.d/kvm.conf|2=&lt;br /&gt;
options kvm ignore_msrs=1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To prevent clogging up [[dmesg]] with &amp;quot;ignored rdmsr&amp;quot; messages you can additionally add:&lt;br /&gt;
&lt;br /&gt;
 options kvm report_ignored_msrs=0&lt;br /&gt;
&lt;br /&gt;
== AMD Ryzen / BIOS updates (AGESA) yields &amp;quot;Error: internal error: Unknown PCI header type ‘127’&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
AMD users have been experiencing breakage of their KVM setups after updating the BIOS on their motherboard. There is a kernel [https://clbin.com/VCiYJ patch]{{Dead link|2024|07|30|status=404}}, (see [[Kernel/Arch build system]] for instruction on compiling kernels with custom patches) that can resolve the issue as of now (28th July 2019), but this is not the first time AMD has made an error of this very nature, so take this into account if you are considering updating your BIOS in the future as a VFIO user.&lt;br /&gt;
&lt;br /&gt;
== AMD GPU not resetting properly yielding &amp;quot;Error: internal error: Unknown PCI header type ‘127’&amp;quot; (Separate issue from the one above) ==&lt;br /&gt;
&lt;br /&gt;
Passing through an AMD GPU may result into a problem known as the &amp;quot;AMD reset bug&amp;quot;. Upon power cycling the guest, the GPU does not properly reset its state, which causes the device to malfunction until the host is also rebooted. This is usually paired with a {{ic|code 43}} driver error in a Windows guest, and the message {{ic|Error: internal error: Unknown PCI header type &amp;#039;127&amp;#039;}} in the libvirt log on the host.&lt;br /&gt;
&lt;br /&gt;
In the past, this meant having to use workarounds to manually reset the GPU, or resorting to the use of kernel patches that were unlikely to land in upstream. &lt;br /&gt;
Currently, the recommended solution that does not require patching of the kernel is to install {{AUR|vendor-reset-git}} or {{AUR|vendor-reset-lowell80-dkms-git}} and making sure the {{ic|vendor-reset}} kernel module is loaded before booting the guest. &lt;br /&gt;
&lt;br /&gt;
For convenience, you can load the module automatically, either [[Kernel module#systemd|at boot time]] or with a [[Libvirt#Hooks|libvirt hook]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/libvirt/hooks/qemu|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
OPERATION=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$OPERATION&amp;quot; in&lt;br /&gt;
    prepare)&lt;br /&gt;
        modprobe -s vendor-reset&lt;br /&gt;
        ;;&lt;br /&gt;
    release)&lt;br /&gt;
        modprobe -sr vendor-reset&lt;br /&gt;
        ;;&lt;br /&gt;
    *)&lt;br /&gt;
        exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Make the file [[executable]], if needed.&lt;br /&gt;
&lt;br /&gt;
{{Note| Make sure you do not have any of the AMD reset bug kernel patches installed if you are using {{AUR|vendor-reset-git}} or {{AUR|vendor-reset-lowell80-dkms-git}}.}}&lt;br /&gt;
&lt;br /&gt;
== Host crashes when hotplugging NVIDIA card with USB ==&lt;br /&gt;
&lt;br /&gt;
If attempting to hotplug an NVIDIA card with a USB port, you may have to blacklist the {{ic|i2c_nvidia_gpu}} driver. You can achieve this by creating a [[Kernel_module#Using_modprobe.d|modprobe.d file]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/modprobe.d/blacklist.conf|&lt;br /&gt;
blacklist i2c_nvidia_gpu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Host unable to boot and stuck in black screen after enabling vfio ==&lt;br /&gt;
&lt;br /&gt;
If debug kernel messages during boot are enabled by adding with the {{ic|debug ignore_loglevel}} [[kernel parameters]], you may see boot stuck with the last message similar to:&lt;br /&gt;
&lt;br /&gt;
 vfio-pci 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=none&lt;br /&gt;
&lt;br /&gt;
This can be mitigated by disconnecting the passed-through GPU from your monitor. You may reconnect the passed-through GPU to a monitor after the host has booted.&lt;br /&gt;
&lt;br /&gt;
If you do not want to plug the cable in each time you boot the host, you can disable the framebuffer in your boot loader to bypass this message. For [[UEFI]] systems you can add {{ic|video{{=}}efifb:off}} as a [[kernel parameter]]. For legacy support, use {{ic|video{{=}}vesafb:off}} instead or in conjunction. Note that doing this may cause issues with [[Xorg]].&lt;br /&gt;
&lt;br /&gt;
If you encounter problems with Xorg, the following solution may help (remember to substitute with your own values):&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/10-amd.conf|&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;AMD GPU&amp;quot;&lt;br /&gt;
        Driver &amp;quot;amdgpu&amp;quot;&lt;br /&gt;
        BusID  &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
EndSection}}&lt;br /&gt;
&lt;br /&gt;
== AER errors when passing through PCIe USB hub ==&lt;br /&gt;
&lt;br /&gt;
In some cases, passing through a PCIe USB hub, such as one connected to the guest GPU, might fail with AER errors similar to the following:&lt;br /&gt;
&lt;br /&gt;
 kernel: pcieport 0000:00:01.1: AER: Uncorrected (Non-Fatal) error received: 0000:00:01.1&lt;br /&gt;
 kernel: pcieport 0000:00:01.1: AER: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID)&lt;br /&gt;
 kernel: pcieport 0000:00:01.1: AER:   device [8086:1905] error status/mask=00100000/00000000&lt;br /&gt;
 kernel: pcieport 0000:00:01.1: AER:    [20] UnsupReq               (First)&lt;br /&gt;
 kernel: pcieport 0000:00:01.1: AER:   TLP Header: 00000000 00000000 00000000 00000000&lt;br /&gt;
 kernel: pcieport 0000:00:01.1: AER: device recovery successful&lt;br /&gt;
&lt;br /&gt;
== Reserved Memory Region Reporting (RMRR) Conflict ==&lt;br /&gt;
&lt;br /&gt;
If you run into an issue passing through a device because of the BIOS&amp;#039;s usage of RMRR, like the error below:&lt;br /&gt;
&lt;br /&gt;
 vfio-pci 0000:01:00.1: Device is ineligible for IOMMU domain attach due to platform RMRR requirement. Contact your platform vendor.&lt;br /&gt;
&lt;br /&gt;
You can try the patches here: [https://github.com/kiler129/relax-intel-rmrr]&lt;br /&gt;
&lt;br /&gt;
== Too-low frequency limit for AMD GPU passed-through to virtual machine ==&lt;br /&gt;
&lt;br /&gt;
On some machines with AMD GPUs, binding the devices to {{ic|vfio-pci}} may be insufficient to prevent interference from the host, since the [[amdgpu]] driver on the host may query global ATIF methods which can alter the behavior of the GPU. &lt;br /&gt;
&lt;br /&gt;
For example, a user with a Dell Precision 7540 laptop containing a Radon Pro WX 3200 AMD GPU reported that, with the AMD GPU bound to {{ic|vfio-pci}}, the passed-through AMD GPU was limited to {{ic|501 MHz}} instead of the correct {{ic|1295 MHz}} limit. [[Blacklisting]] the amdgpu kernel module using the kernel command line was a workaround.&lt;br /&gt;
&lt;br /&gt;
See [https://lore.kernel.org/regressions/092b825a-10ff-e197-18a1-d3e3a097b0e3@leemhuis.info/T/ this kernel mailing list discussion] for further details.&lt;br /&gt;
&lt;br /&gt;
== Host clocksource is HPET rather than TSC ==&lt;br /&gt;
&lt;br /&gt;
If the clocksource of your host machine is HPET, you may see severely crippled performance in games. While this issue also occurs when running games outside of a virtual machine, unaware users will likely begin troubleshooting their virtual machine when the issue is actually with their host system.&lt;br /&gt;
&lt;br /&gt;
To see your current clocksource, run this command on your host machine:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/devices/system/clocksource/clocksource*/current_clocksource&lt;br /&gt;
&lt;br /&gt;
If your clocksource is HPET, you can try to force it to TSC by setting the [[kernel parameters]] {{ic|1=clocksource=tsc}} and {{ic|1=tsc=reliable}}. See [https://www.reddit.com/r/linux_gaming/comments/rsvjqb/psa_if_your_clocksource_is_hpet_rather_than_tsc/ this Reddit thread] for more information.&lt;br /&gt;
&lt;br /&gt;
== Code 43 while Resizable Bar is turned on in the bios ==&lt;br /&gt;
&lt;br /&gt;
If you own a GPU that supports Resizable BAR / SAM and have the corresponding BIOS option enabled, you might get code 43 because this feature is disabled in QEMU [https://github.com/qemu/qemu/commit/3412d8ec9810b819f8b79e8e0c6b87217c876e32]. Linux Kernel release 6.1 added option to manipulate PCIe Resizable BARs through [[Wikipedia:sysfs|sysfs]], so you can try permanently resizing it using a [[udev]] rule:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/01-amd.rules|2=&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;pci&amp;quot;, ATTR{vendor}==&amp;quot;0x1002&amp;quot;, ATTR{device}==&amp;quot;0x73bf&amp;quot;, ATTR{resource0_resize}=&amp;quot;14&amp;quot;&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;pci&amp;quot;, ATTR{vendor}==&amp;quot;0x1002&amp;quot;, ATTR{device}==&amp;quot;0x73bf&amp;quot;, ATTR{resource2_resize}=&amp;quot;8&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Alternatively, to temporarily resize the PCIe BAR, you can write the new size to {{ic|/sys/bus/pci/devices/&amp;#039;&amp;#039;&amp;#039;device_address&amp;#039;&amp;#039;&amp;#039;/resource&amp;#039;&amp;#039;&amp;#039;number&amp;#039;&amp;#039;&amp;#039;_resize}}, where &amp;#039;&amp;#039;device_address&amp;#039;&amp;#039; is the address of your GPU, such as {{ic|0000:03:00.0}} (note that for changing this parameter, no driver can be loaded for the device).&lt;br /&gt;
&lt;br /&gt;
You can confirm values using {{ic|lspci -vvvxxxx}}.&lt;br /&gt;
&lt;br /&gt;
AMD graphics processors may require a specific value to be set for BAR 2, which is 8 MB, even though the maximum supported value is 256 MB. However, this requirement may depend on several factors, such as the QEMU version on your system. If you have already exhausted other options to prevent error code 43, set the value to {{ic|3}} in the {{ic|1=resource2_resize}} file, which will force BAR 2 to be set to 8 MB.&lt;br /&gt;
&lt;br /&gt;
== Operating system hangs ==&lt;br /&gt;
&lt;br /&gt;
If your virtualized OS (particularly Windows) hangs when the GPU is attached, you can also try opening your motherboard&amp;#039;s settings and:&lt;br /&gt;
&lt;br /&gt;
* disabling {{ic|Re-Size BAR Support}},&lt;br /&gt;
* disabling {{ic|Above 4G memory / Crypto Currency mining}},&lt;br /&gt;
* enabling {{ic|SR-IOV}},&lt;br /&gt;
* changing {{ic|Max TOLUD}} from {{ic|dynamic}} to a specific value,&lt;br /&gt;
* switching your {{ic|Initiate Graphic Adapter}} from {{ic|PEG}} to {{ic|IGD}}.&lt;br /&gt;
&lt;br /&gt;
At the very least, VEGA cards seem to be picky about those settings and won&amp;#039;t actually work unless you change them.&lt;br /&gt;
&lt;br /&gt;
== GPU timeouts when running games in the virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Starting with recent kernels (6.12+ for AMD, 5.x for Intel), split lock detection is enabled by default. This causes a forced 10ms pause for the process creating the split lock, which can result in GPU timeouts and similar virtual machine hanging. This behavior can be disabled by running:&lt;br /&gt;
&lt;br /&gt;
 # sysctl -w kernel.split_lock_mitigate=0&lt;br /&gt;
&lt;br /&gt;
This can be applied automatically with a [[sysctl]] configuration file:&lt;br /&gt;
{{hc|head=/etc/sysctl.d/split-lock.conf|output=kernel.split_lock_mitigate {{=}} 0}}&lt;br /&gt;
&lt;br /&gt;
== vfio: DMA mapping failed, unable to continue ==&lt;br /&gt;
&lt;br /&gt;
When starting the virtual machine, an error like {{ic|qemu: hardware error: vfio: DMA mapping failed, unable to continue}} may occur and prevent the VM from booting. To fix this, add the following to the XML file: [https://github.com/tianocore/edk2/discussions/4662#discussioncomment-6541549]&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cpu&amp;gt;&lt;br /&gt;
   &amp;lt;maxphysaddr mode=&amp;quot;passthrough&amp;quot; limit=&amp;quot;&amp;#039;&amp;#039;&amp;#039;40&amp;#039;&amp;#039;&amp;#039;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/cpu&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If directly using QEMU, the example above would be {{ic|-cpu host,host-phys-bits-limit{{=}}&amp;#039;&amp;#039;&amp;#039;0x28&amp;#039;&amp;#039;&amp;#039;}}.&lt;br /&gt;
&lt;br /&gt;
If the VM still doesn&amp;#039;t work, try decreasing the value (like &amp;#039;&amp;#039;&amp;#039;39&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;0x27&amp;#039;&amp;#039;&amp;#039;, respectively).&lt;br /&gt;
&lt;br /&gt;
You can use {{man|1|lscpu}} to see the actual address size of your CPU and use it rather than the values shown above. Unless you need a large address space, it&amp;#039;s safer to choose the physical address size intead of the virtual size.&lt;br /&gt;
&lt;br /&gt;
== vIOMMU: Failed to set vIOMMU: aw-bits X &amp;gt; host aw-bits Y ==&lt;br /&gt;
&lt;br /&gt;
When starting the virtual machine, an error like the following may occur:&lt;br /&gt;
&lt;br /&gt;
 libvirt.libvirtError: internal error: QEMU unexpectedly closed the monitor (vm=&amp;#039;win11&amp;#039;): 2025-08-30T21:38:26.333149Z qemu-system-x86_64: -device {&amp;quot;driver&amp;quot;:&amp;quot;vfio-pci&amp;quot;,&amp;quot;host&amp;quot;:&amp;quot;0000:03:00.0&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;hostdev0&amp;quot;,&amp;quot;bus&amp;quot;:&amp;quot;pci.5&amp;quot;,&amp;quot;addr&amp;quot;:&amp;quot;0x0&amp;quot;}: vfio 0000:03:00.0: Failed to set vIOMMU: aw-bits 48 &amp;gt; host aw-bits 39&lt;br /&gt;
&lt;br /&gt;
Add {{ic|caching_mode{{=}}&amp;quot;on&amp;quot; aw_bits{{=}}&amp;quot;&amp;#039;&amp;#039;&amp;#039;number_of_bits&amp;#039;&amp;#039;&amp;#039;&amp;quot;}}  to the following section in your XML. Usually on x86 the default is either 39 or 48 bits [https://patchew.org/QEMU/20240123181753.413961-1-eric.auger@redhat.com/], but [[#vfio: DMA mapping failed, unable to continue|you can use your own CPU&amp;#039;s address size instead]].&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
 &amp;lt;devices&amp;gt;&lt;br /&gt;
  ... other entries ...&lt;br /&gt;
  &amp;lt;iommu model=&amp;quot;intel&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;driver intremap=&amp;quot;on&amp;quot; caching_mode=&amp;quot;on&amp;quot; eim=&amp;quot;on&amp;quot; aw_bits=&amp;quot;&amp;#039;&amp;#039;&amp;#039;39&amp;#039;&amp;#039;&amp;#039;&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/iommu&amp;gt;&lt;br /&gt;
 &amp;lt;/devices&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For more information:&lt;br /&gt;
&lt;br /&gt;
* [https://forum.proxmox.com/threads/vm-wont-start-with-pci-passthrough-after-upgrade-to-9-0.169586/post-795732 Proxmox forum thread discussing this]&lt;br /&gt;
* [https://libvirt.org/formatdomain.html#iommu-devices libvirt options]&lt;br /&gt;
&lt;br /&gt;
== The VM stucks during boot when using Looking Glass ==&lt;br /&gt;
&lt;br /&gt;
Sometimes, when using [[PCI_passthrough_via_OVMF#Using_Looking_Glass_to_stream_guest_screen_to_the_host|Looking Glass]], the VM may get stuck indefinitely at the boot process [https://www.reddit.com/r/VFIO/comments/16a8xzb/comment/k87n4ai/]. This might be caused by divergences between P-Core and E-Core specs on new processors with hybrid architectures.&lt;br /&gt;
&lt;br /&gt;
To solve this, follow [[#vfio: DMA mapping failed, unable to continue|these instructions]]. It&amp;#039;s better to pick the physical address size instead of the virtual address size [https://www.reddit.com/r/VFIO/comments/16a8xzb/comment/le7obu0/].&lt;/div&gt;</summary>
		<author><name>0xMrRobot</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Fail2ban_(Polski)</id>
		<title>Fail2ban (Polski)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Fail2ban_(Polski)"/>
		<updated>2026-03-05T17:05:25Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: fix category, see Help:Category#i18n category name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Firewalls (Polski)]]&lt;br /&gt;
[[Category:Secure Shell (Polski)]]&lt;br /&gt;
[[en:Fail2ban]]&lt;br /&gt;
[[es:Fail2ban]]&lt;br /&gt;
[[ja:Fail2ban]]&lt;br /&gt;
[[ru:Fail2ban]]&lt;br /&gt;
[[zh-hans:Fail2ban]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|sshguard}}&lt;br /&gt;
{{Related|Security}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] skanuje pliki dziennika (np. {{ic|/var/log/httpd/error_log}}) i banuje adresy IP wykazujące podejrzane działania, takie jak zbyt wiele nieudanych prób uwierzytelnienia, skanowanie w poszukiwaniu podatności itp. Zazwyczaj Fail2ban jest używany do aktualizacji reguł [[firewall]] w celu odrzucania adresów IP na określony czas, chociaż można również skonfigurować dowolną inną akcję (np. wysłanie e-maila).]&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* Użycie oprogramowania blokującego adresy IP zatrzyma trywialne ataki, ale wymaga dodatkowego demona i prawidłowego rejestrowania zdarzeń.&lt;br /&gt;
* Zwykle nie ma sensu używać fail2ban z [[sshd]], gdy włączone jest tylko uwierzytelnianie za pomocą klucza publicznego lub podobne.&lt;br /&gt;
* Nie zastępuje on sieci VPN. Nie udostępniaj swoich usług w Internecie, chyba że jest to konieczne.&lt;br /&gt;
* Dodatkowo, jeśli atakujący zna Twój adres IP, może wysłać pakiety ze sfałszowanym nagłówkiem źródła i doprowadzić do zablokowania Twojego adresu IP. Upewnij się, że określiłeś swój adres IP w {{ic|ignoreip}}.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Instalacja ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] pakiet {{Pkg|fail2ban}}&lt;br /&gt;
&lt;br /&gt;
== Używanie ==&lt;br /&gt;
&lt;br /&gt;
[[#Configuration|Configure]] Fail2ban and [[enable/start]] {{ic|fail2ban.service}}.&lt;br /&gt;
&lt;br /&gt;
=== fail2ban-client ===&lt;br /&gt;
&lt;br /&gt;
Fail2ban-client pozwala monitorować jails (reload, restart, status, itp.). Aby wyświetlić wszystkie dostępne polecenia:&lt;br /&gt;
&lt;br /&gt;
 $ fail2ban-client&lt;br /&gt;
&lt;br /&gt;
Aby wyświetlić wszystkie włączone jails:&lt;br /&gt;
&lt;br /&gt;
 # fail2ban-client status&lt;br /&gt;
&lt;br /&gt;
Aby sprawdzić status jail, np. dla „sshd”:&lt;br /&gt;
&lt;br /&gt;
{{hc|# fail2ban-client status sshd|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Status for the jail: sshd&lt;br /&gt;
|- Filter&lt;br /&gt;
|  |- Currently failed: 1&lt;br /&gt;
|  |- Total failed:     9&lt;br /&gt;
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd&lt;br /&gt;
`- Actions&lt;br /&gt;
   |- Currently banned: 1&lt;br /&gt;
   |- Total banned:     1&lt;br /&gt;
   `- Banned IP list:   0.0.0.0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Kompaktowa wersja dla wszystkich jail, w tym zablokowanych IP:&lt;br /&gt;
&lt;br /&gt;
{{hc|# fail2ban-client banned|&lt;br /&gt;
[{&amp;#039;sshd&amp;#039;: [&amp;#039;192.168.100.50&amp;#039;]}, {&amp;#039;apache-auth&amp;#039;: []}]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Konfiguracja ==&lt;br /&gt;
&lt;br /&gt;
{{Expansion|Add a note about {{ic|dbpurgeage}}, see [https://wiki.meurisse.org/wiki/Fail2Ban#Recidive].}}&lt;br /&gt;
&lt;br /&gt;
Ze względu na możliwość utworzenia [[Pacnew and Pacsave files]] dla {{ic|/etc/fail2ban/jail.conf}} podczas [[upgrade]], {{man|5|jail.conf|CONFIGURATION FILES FORMAT}} zaleca użytkownikom [[create]] pliku {{ic|/etc/fail2ban/jail.local}} w celu „ułatwienia aktualizacji”.&lt;br /&gt;
&lt;br /&gt;
Na przykład, aby zmienić domyślny czas bana na 1 dzień:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fail2ban/jail.local|2=&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
bantime = 1d&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Możesz też utworzyć osobne pliki {{ic|&amp;#039;&amp;#039;name&amp;#039;&amp;#039;.local}} w katalogu {{ic|/etc/fail2ban/jail.d}}, np. {{ic|/etc/fail2ban/jail.d/sshd.local}}.&lt;br /&gt;
&lt;br /&gt;
[[Reload]] {{ic|fail2ban.service}}, aby zastosować zmiany konfiguracji.&lt;br /&gt;
&lt;br /&gt;
=== Włączanie jails ===&lt;br /&gt;
&lt;br /&gt;
Domyślnie wszystkie jail są wyłączone. [[Append]] {{ic|1=enabled = true}} do jail, który chcesz użyć, na przykład aby włączyć jail [[OpenSSH]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fail2ban/jail.local|2=&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled = true&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Zobacz [[#Custom SSH jail]].&lt;br /&gt;
&lt;br /&gt;
=== Otrzymaj powiadomienie e-mailem ===&lt;br /&gt;
&lt;br /&gt;
Jeśli chcesz otrzymywać wiadomość e-mail po zablokowaniu użytkownika, musisz skonfigurować klienta SMTP (np. [[msmtp]]) i zmienić domyślne działanie, jak opisano poniżej.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fail2ban/jail.local|2=&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
destemail = yourname@example.com&lt;br /&gt;
sender = yourname@example.com&lt;br /&gt;
&lt;br /&gt;
# to ban &amp;amp; send an e-mail with whois report to the destemail.&lt;br /&gt;
action = %(action_mw)s&lt;br /&gt;
&lt;br /&gt;
# same as action_mw but also send relevant log lines&lt;br /&gt;
#action = %(action_mwl)s&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Firewall i usługi ===&lt;br /&gt;
&lt;br /&gt;
Domyślnie Fail2ban używa [[iptables]]. Jednak konfiguracja większości [[firewall]] i usług jest prosta. Na przykład, aby użyć [[nftables]]:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fail2ban/jail.local|2=&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
banaction = nftables&lt;br /&gt;
banaction_allports = nftables[type=allports]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Zobacz {{ic|/etc/fail2ban/action.d/}}, aby zapoznać się z innymi przykładami, np. [https://github.com/fail2ban/fail2ban/blob/master/config/action.d/ufw.conf ufw.conf].&lt;br /&gt;
&lt;br /&gt;
== Porady i wskazówki ==&lt;br /&gt;
&lt;br /&gt;
=== Custom SSH jail ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|Jeśli atakujący zna Twój adres IP, może wysłać pakiety z fałszywym nagłówkiem źródłowym i spowodować zablokowanie dostępu Twojego adresu IP do serwera. [[SSH keys]] stanowią eleganckie rozwiązanie problemu ataku siłowego bez tych problemów.}}&lt;br /&gt;
&lt;br /&gt;
Edytuj {{ic|/etc/fail2ban/jail.d/sshd.local}}, dodaj tę sekcję i zaktualizuj listę zaufanych adresów IP w {{ic|ignoreip}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fail2ban/jail.d/sshd.local|2=&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled   = true&lt;br /&gt;
filter    = sshd&lt;br /&gt;
banaction = iptables&lt;br /&gt;
backend   = systemd&lt;br /&gt;
maxretry  = 5&lt;br /&gt;
findtime  = 1d&lt;br /&gt;
bantime   = 2w&lt;br /&gt;
ignoreip  = 127.0.0.1/8 ::1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* Może być konieczne ustawienie {{ic|LogLevel VERBOSE}} w {{ic|/etc/ssh/sshd_config}}, aby umożliwić pełne monitorowanie fail2ban, w przeciwnym razie nieudane logowania mogą nie być poprawnie logowane.&lt;br /&gt;
* Fail2ban obsługuje IPv6 od wersji 0.10. Dostosuj odpowiednio swoją [[firewall]], np. [[start]]/[[enable]] {{ic|ip6tables.service}}.&lt;br /&gt;
* Podczas korzystania z journal namespaces (poprzez dodanie {{ic|1=LogNamespace=&amp;#039;&amp;#039;something&amp;#039;&amp;#039;}} do pliku jednostki), możesz skonfigurować fail2ban do odczytywania tych logów, ustawiając {{ic|backend}} w następujący sposób: {{ic|1=backend = systemd[journalfiles=&amp;quot;/var/log/journal/*.&amp;#039;&amp;#039;something&amp;#039;&amp;#039;/system.journal&amp;quot;]}}.]}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* W przypadku korzystania z interfejsów użytkownika [[iptables]], takich jak [[ufw]], można użyć {{ic|1=banaction = ufw}} zamiast iptables.&lt;br /&gt;
* Używając [[Shorewall]], można użyć {{ic|1=banaction = shorewall}} i ustawić {{ic|BLACKLIST}} na {{ic|ALL}} w {{ic|/etc/shorewall/shorewall.conf}}; w przeciwnym razie reguła ban dodana do adresu IP będzie dotyczyć tylko nowych połączeń.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== systemd backend: journald filtering ===&lt;br /&gt;
&lt;br /&gt;
W przypadku korzystania z zaplecza „systemd” w celu poprawy wydajności, skonfiguruj filtr za pomocą {{ic|journalmatch}}. Na przykład, aby analizować tylko komunikaty dziennika na poziomie jądra:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fail2ban/filter.d/fwdrop.local|2=&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = ^.*DROP_.*SRC=&amp;lt;ADDR&amp;gt; DST=.*$&lt;br /&gt;
journalmatch = _TRANSPORT=kernel&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Zobacz także {{man|7|systemd.journal-fields}}.&lt;br /&gt;
&lt;br /&gt;
=== Service hardening ===&lt;br /&gt;
&lt;br /&gt;
Obecnie Fail2ban musi być uruchamiany jako &amp;#039;root&amp;#039;. Z tego powodu zaleca się hardening procesu za pomocą [[systemd]].&lt;br /&gt;
&lt;br /&gt;
[[Create]] a [[drop-in file]] dla {{ic|fail2ban.service}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/fail2ban.service.d/override.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
PrivateDevices=yes&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
ProtectHome=read-only&lt;br /&gt;
ProtectSystem=strict&lt;br /&gt;
ReadWritePaths=-/var/run/fail2ban&lt;br /&gt;
ReadWritePaths=-/var/lib/fail2ban&lt;br /&gt;
ReadWritePaths=-/var/log/fail2ban.log&lt;br /&gt;
ReadWritePaths=-/var/spool/postfix/maildrop&lt;br /&gt;
ReadWritePaths=-/run/xtables.lock&lt;br /&gt;
CapabilityBoundingSet=CAP_AUDIT_READ CAP_DAC_READ_SEARCH CAP_NET_ADMIN CAP_NET_RAW&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parametry {{ic|CAP_DAC_READ_SEARCH}} zestawu {{ic|CapabilityBoundingSet}} umożliwią Fail2banowi pełny dostęp do odczytu każdego katalogu i pliku. {{ic|CAP_NET_ADMIN}} i {{ic|CAP_NET_RAW}} umożliwiają Fail2banowi działanie na dowolnej zaporze sieciowej z interfejsem [[command-line shell]]. Więcej informacji można znaleźć w {{man|7|capabilities}}.&lt;br /&gt;
&lt;br /&gt;
Dzięki użyciu {{ic|1=ProtectSystem=strict}} hierarchia [[filesystem]] będzie dostępna tylko do odczytu, {{ic|ReadWritePaths}} umożliwia Fail2banowi dostęp do zapisu na wymaganych ścieżkach.&lt;br /&gt;
&lt;br /&gt;
Na koniec wykonaj polecenie [[daemon-reload]], aby zastosować zmiany w jednostce i [[restart]] {{ic|fail2ban.service}}.&lt;br /&gt;
&lt;br /&gt;
== Zobacz także ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.the-art-of-web.com/system/fail2ban-action-whitelist/ Using a Fail2Ban Jail to Whitelist a User]&lt;br /&gt;
* [https://www.the-art-of-web.com/system/fail2ban-filters/ Optimising your Fail2Ban filters]&lt;br /&gt;
* [https://www.the-art-of-web.com/system/fail2ban-sendmail/ Fail2Ban and sendmail]&lt;br /&gt;
* [https://www.the-art-of-web.com/system/fail2ban/ Fail2Ban and iptables]&lt;br /&gt;
* [https://www.the-art-of-web.com/system/fail2ban-howto/ Fail2Ban 0.8.3 Howto]&lt;br /&gt;
* [https://www.the-art-of-web.com/system/fail2ban-log/ Monitoring the fail2ban log]&lt;/div&gt;</summary>
		<author><name>Wacek</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.org/title/Openssh_(Polski)</id>
		<title>Openssh (Polski)</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.org/title/Openssh_(Polski)"/>
		<updated>2026-03-04T09:17:46Z</updated>

		<summary type="html">&lt;p&gt;Lahwaacz.bot: fix category, see Help:Category#i18n category name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Secure Shell (Polski)]]&lt;br /&gt;
[[Category:Servers (Polski)]]&lt;br /&gt;
[[Category:OpenBSD (Polski)]]&lt;br /&gt;
[[de:SSH]]&lt;br /&gt;
[[en:OpenSSH]]&lt;br /&gt;
[[es:OpenSSH]]&lt;br /&gt;
[[fr:OpenSSH]]&lt;br /&gt;
[[ja:OpenSSH]]&lt;br /&gt;
[[ru:OpenSSH]]&lt;br /&gt;
[[zh-hans:OpenSSH]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|SSH keys}}&lt;br /&gt;
{{Related|Pam abl}}&lt;br /&gt;
{{Related|fail2ban}}&lt;br /&gt;
{{Related|sshguard}}&lt;br /&gt;
{{Related|Sshfs}}&lt;br /&gt;
{{Related|Syslog-ng}}&lt;br /&gt;
{{Related|SFTP chroot}}&lt;br /&gt;
{{Related|SCP and SFTP}}&lt;br /&gt;
{{Related|VPN over SSH}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:OpenSSH|OpenSSH]] (OpenBSD Secure Shell) to zestaw programów zapewniających szyfrowane sesje SSH w sieci komputerowej. Stworzony jako alternatywa open source dla zastrzeżonego pakietu [[Secure Shell]] oferowanego przez SSH Communications Security. OpenSSH jest rozwijany w ramach projektu OpenBSD, prowadzonego przez Theo de Raadta.&lt;br /&gt;
&lt;br /&gt;
OpenSSH jest czasem mylony z podobnie nazwanym OpenSSL, jednak projekty mają różne cele i są rozwijane przez różne zespoły — podobna nazwa pochodzi jedynie z podobnych celów.&lt;br /&gt;
&lt;br /&gt;
== Instalacja ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{Pkg|openssh}} package.&lt;br /&gt;
&lt;br /&gt;
== Client usage ==&lt;br /&gt;
&lt;br /&gt;
Aby połączyć się z serwerem, uruchom:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -p &amp;#039;&amp;#039;port&amp;#039;&amp;#039; &amp;#039;&amp;#039;user&amp;#039;&amp;#039;@&amp;#039;&amp;#039;server-address&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Jeśli serwer zezwala wyłącznie na uwierzytelnianie kluczem publicznym, wykonaj poniższe kroki [[SSH keys]].&lt;br /&gt;
&lt;br /&gt;
=== Konfiguracja ===&lt;br /&gt;
&lt;br /&gt;
{{Expansion|{{Pkg|openssh}} 9.4p1-2 added {{ic|Include /etc/ssh/ssh_config.d/*.conf}} to {{ic|/etc/ssh/ssh_config}}. The instructions can now be made to use drop-in files.}}&lt;br /&gt;
&lt;br /&gt;
Klienta można skonfigurować do przechowywania wspólnych opcji i hostów. Wszystkie opcje można zadeklarować globalnie lub ograniczyć do konkretnych hostów. Na przykład:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|# global options&lt;br /&gt;
User &amp;#039;&amp;#039;user1&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# host-specific options&lt;br /&gt;
Host &amp;#039;&amp;#039;myserver&amp;#039;&amp;#039;&lt;br /&gt;
    Hostname &amp;#039;&amp;#039;server-address&amp;#039;&amp;#039;&lt;br /&gt;
    Port     &amp;#039;&amp;#039;port&amp;#039;&amp;#039;&lt;br /&gt;
    User     &amp;#039;&amp;#039;user2&amp;#039;&amp;#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Przy takiej konfiguracji następujące polecenia są równoważne&lt;br /&gt;
&lt;br /&gt;
 $ ssh -p &amp;#039;&amp;#039;port&amp;#039;&amp;#039; &amp;#039;&amp;#039;user2&amp;#039;&amp;#039;@&amp;#039;&amp;#039;server-address&amp;#039;&amp;#039;&lt;br /&gt;
 $ ssh &amp;#039;&amp;#039;myserver&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
See {{man|5|ssh_config}} for more information.&lt;br /&gt;
&lt;br /&gt;
Some options do not have command line switch equivalents, but you can specify configuration options on the command line with {{ic|-o}}. For example {{ic|1=-oKexAlgorithms=+diffie-hellman-group1-sha1}}.&lt;br /&gt;
&lt;br /&gt;
== Server usage ==&lt;br /&gt;
&lt;br /&gt;
{{Expansion|{{Pkg|openssh}} 9.4p1-2 added {{ic|Include /etc/ssh/sshd_config.d/*.conf}} to {{ic|/etc/ssh/sshd_config}}. The instructions can now be made to use drop-in files.}}&lt;br /&gt;
&lt;br /&gt;
{{ic|sshd}} to demon OpenSSH, skonfigurowany w {{ic|/etc/ssh/sshd_config}} i zarządzany przez {{ic|sshd.service}}. Przy każdej zmianie konfiguracji &lt;br /&gt;
użyj {{ic|sshd}} w trybie testowym przed ponownym uruchomieniem usługi, &lt;br /&gt;
aby upewnić się, że uruchomi się prawidłowo. Prawidłowe konfiguracje nie generują żadnych danych wyjściowych.&lt;br /&gt;
&lt;br /&gt;
 # sshd -t&lt;br /&gt;
&lt;br /&gt;
=== Konfiguracja ===&lt;br /&gt;
&lt;br /&gt;
Aby zezwolić na dostęp tylko niektórym użytkownikom, dodaj następujący wiersz:&lt;br /&gt;
&lt;br /&gt;
 AllowUsers    &amp;#039;&amp;#039;user1 user2&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Aby zezwolić na dostęp tylko niektórym grupom:&lt;br /&gt;
&lt;br /&gt;
 AllowGroups   &amp;#039;&amp;#039;group1 group2&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Aby dodać miłą wiadomość powitalną (np. z pliku {{ic|/etc/issue}}), skonfiguruj opcję {{ic|Banner}}:&lt;br /&gt;
&lt;br /&gt;
 Banner /etc/issue&lt;br /&gt;
&lt;br /&gt;
Publiczne i prywatne klucze hosta są automatycznie generowane w {{ic|/etc/ssh}} przez usługę {{ic|sshdgenkeys}} [[#Daemon management|zarządzania demonem]] i regenerowane w przypadku ich braku, nawet jeśli opcja {{ic|HostKeyAlgorithms}} w {{ic|sshd_config}} ogranicza się do wybranych algorytmów. Generowane są trzy pary kluczy na podstawie algorytmów [[SSH keys#Choosing the authentication key type|ed25519, ecdsa i rsa]]. Aby sshd używał konkretnego klucza, określ następującą opcję:&lt;br /&gt;
&lt;br /&gt;
 HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
&lt;br /&gt;
Jeżeli serwer ma być wystawiony na sieć WAN, zaleca się zmianę domyślnego portu z 22 na losowy, wyższy port, w następujący sposób:&lt;br /&gt;
 Port 39901&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* Aby wybrać alternatywny port niezapisany dla typowej usługi, sprawdź [[Wikipedia:List of TCP and UDP port numbers|listę numerów portów TCP i UDP]]. Informacje o portach dostępne są również lokalnie w {{ic|/etc/services}}. Zmiana portu z domyślnego 22 zmniejszy liczbę wpisów dziennika spowodowanych zautomatyzowanymi próbami uwierzytelnienia, ale ich nie wyeliminuje. Więcej informacji w [[Port knocking]].&lt;br /&gt;
* Zaleca się całkowite wyłączenie logowania hasłem. To znacznie zwiększy bezpieczeństwo. Więcej informacji można znaleźć w artykule [[#Force public key authentication]] Więcej zalecanych metod zabezpieczeń można znaleźć w artykule [[#Protection]]&lt;br /&gt;
* OpenSSH może nasłuchiwać na wielu portach, wystarczy umieścić w pliku konfiguracyjnym kilka wierszy {{ic|Port &amp;#039;&amp;#039;port_number&amp;#039;&amp;#039;}}.&lt;br /&gt;
* Nowe (lub brakujące) pary kluczy hosta można wygenerować, usuwając parę(y), które chcesz zastąpić, z {{ic|/etc/ssh}} i uruchamiając {{ic|ssh-keygen -A}} jako root.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Zarządzanie demonami ===&lt;br /&gt;
&lt;br /&gt;
[[Start/enable]] {{ic|sshd.service}}. Utrzyma demona SSH w stanie aktywnym &lt;br /&gt;
i będzie fork&amp;#039;ować dla każdego przychodzącego połączenia.&lt;br /&gt;
&lt;br /&gt;
==== Socket activation ====&lt;br /&gt;
&lt;br /&gt;
W wersji {{Pkg|openssh}} 8.0p1-3 usunięto {{ic|sshd.socket}}, który korzystał z socket activation systemd, &lt;br /&gt;
ponieważ był podatny na denial of service. Zobacz {{Bug|62248}} aby uzyskać szczegóły. &lt;br /&gt;
Jeśli {{ic|sshd.socket}} jest włączony podczas aktualizacji do {{Pkg|openssh}} 8.0p1-3, &lt;br /&gt;
jednostki {{ic|sshd.socket}} i {{ic|sshd@.service}} zostaną skopiowane do {{ic|/etc/systemd/system/}} &lt;br /&gt;
i [[reenable]]d. Jest to zrobione tylko po to, aby nie uszkodzić istniejących konfiguracji; &lt;br /&gt;
użytkownikom nadal zaleca się migracja do {{ic|sshd.service}}.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Jeśli nadal będziesz używać {{ic|sshd.socket}}, pamiętaj o jego problemach:&lt;br /&gt;
* Jednostka {{ic|sshd.socket}} może ulec awarii (np. z powodu braku pamięci), a parametru {{ic|1=Restart=always}} nie można określić w jednostkach z gniazdem. Zobacz [https://github.com/systemd/systemd/issues/11553, problem systemd nr 11553].&lt;br /&gt;
* Użycie aktywacji gniazda może skutkować odmową usługi, ponieważ zbyt duża liczba połączeń może uniemożliwić dalszą aktywację usługi. Zobacz {{Bug|62248}}.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Użycie {{ic|sshd.socket}} neguje ustawienie {{ic|ListenAddress}}, co umożliwia połączenia przez dowolny adres. Aby uzyskać efekt ustawienia {{ic|ListenAddress}}, należy określić port i adres IP dla {{ic|ListenStream}} (np. {{ic|1=ListenStream=192.168.1.100:22}}) poprzez [[edit]] pliku {{ic|sshd.socket}}. Należy również dodać {{ic|1=FreeBind=true}} w sekcji {{ic|[Socket]}}, w przeciwnym razie ustawienie adresu IP będzie miało tę samą wadę co ustawienie {{ic|ListenAddress}}: socket nie uruchomi się, jeśli sieć nie będzie aktywna w odpowiednim czasie.&lt;br /&gt;
&lt;br /&gt;
Podczas aktywacji przez socket, dla każdego połączenia uruchamiana jest tymczasowa instancja {{ic|sshd@.service}} (z różnymi nazwami instancji). W związku z tym ani {{ic|sshd.socket}}, ani zwykła {{ic|sshd.service}} nie pozwalają monitorować prób połączeń w logach. Logi instancji SSH aktywowanych przez socket można wyświetlić jako root poleceniami: {{ic|journalctl -u &amp;quot;sshd@*&amp;quot;}} i {{ic|journalctl /usr/bin/sshd}}&lt;br /&gt;
&lt;br /&gt;
=== Ochrona ===&lt;br /&gt;
&lt;br /&gt;
Zezwolenie na zdalne logowanie przez SSH jest niezbędne do celów administracyjnych, ale stanowi zagrożenie dla bezpieczeństwa serwera. SSH jest częstym celem ataków siłowych. Dostęp SSH musi być odpowiednio ograniczony, aby zapobiegać nieautoryzowanemu dostępowi.&lt;br /&gt;
&lt;br /&gt;
{{Pkg|ssh-audit}} oferuje automatyczną analizę konfiguracji serwera i klienta. Dostępnych jest kilka innych dobrych poradników i narzędzi na ten temat, na przykład:&lt;br /&gt;
&lt;br /&gt;
* [https://infosec.mozilla.org/guidelines/openssh.html Article by Mozilla Infosec Team]&lt;br /&gt;
* [https://www.ssh-audit.com/hardening_guides.html SSH Hardening Guides]&lt;br /&gt;
&lt;br /&gt;
==== Wymuś uwierzytelnianie kluczem publicznym ====&lt;br /&gt;
&lt;br /&gt;
Jeśli klient nie może uwierzytelniać się za pomocą klucza publicznego, serwer SSH domyślnie powraca do uwierzytelniania hasłem, umożliwiając w ten sposób atakującemu próbę uzyskania dostępu poprzez [[#Ochrona przed atakami brute-force|brute-force]] hasła. Jednym z najskuteczniejszych sposobów ochrony przed tym atakiem jest całkowite wyłączenie logowania hasłem i wymuszenie użycia [[klucze SSH|kluczy SSH]]. Można to osiągnąć, ustawiając następujące opcje w pliku konfiguracyjnym serwera:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config.d/20-force_publickey_auth.conf|&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
AuthenticationMethods publickey&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|Zanim dodasz to do konfiguracji, upewnij się, że wszystkie konta wymagające dostępu SSH mają skonfigurowane uwierzytelnianie kluczem publicznym w odpowiednich plikach {{ic|authorized_keys}}. Patrz [[SSH keys#Copying the public key to the remote server]] Aby uzyskać więcej informacji.}}&lt;br /&gt;
&lt;br /&gt;
==== Uwierzytelnianie dwuskładnikowe i klucze publiczne ====&lt;br /&gt;
&lt;br /&gt;
Protokół SSH można skonfigurować tak, aby wymagał wielu metod uwierzytelniania. Wymagane metody uwierzytelniania można sprawdzić za pomocą opcji {{ic|AuthenticationMethods}}. Umożliwia to korzystanie z kluczy publicznych oraz autoryzacji dwuskładnikowej.&lt;br /&gt;
&lt;br /&gt;
===== Dostawcy uwierzytelniania =====&lt;br /&gt;
&lt;br /&gt;
Aby skonfigurować [[Google Authenticator]], zapoznaj się z informacjami na jej temat.&lt;br /&gt;
&lt;br /&gt;
For [https://duo.com/ Duo], [[install]] {{AUR|duo_unix}} which will supply the {{ic|pam_duo.so}} module. Read the [https://duo.com/docs/duounix Duo Unix documentation] for instructions on how to setup the necessary Duo credentials (Integration Key, Secret Key, API Hostname).&lt;br /&gt;
&lt;br /&gt;
===== Konfiguracja PAM =====&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|1=The distribution defaults to {{ic|KbdInteractiveAuthentication no}} since [https://gitlab.archlinux.org/archlinux/packaging/packages/openssh/-/commit/1d834b1fb688e148797c39cffd95eac3404ef894]. Later, the lexical order of the defaults was adjusted due to {{Bug|79285}} to allow for higher priority user snippets, which would match below {{ic|20-pam.conf}}. However, a [https://bbs.archlinux.org/viewtopic.php?id=300451 BBS thread] appears to be resolved by ordering custom after {{ic|99-archlinux.conf}} defaults only.}}&lt;br /&gt;
&lt;br /&gt;
Aby użyć [[PAM]] z OpenSSH, edytuj następujące pliki:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config.d/20-pam.conf|&lt;br /&gt;
KbdInteractiveAuthentication yes&lt;br /&gt;
AuthenticationMethods publickey keyboard-interactive:pam&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Następnie możesz zalogować się kluczem publicznym &amp;#039;&amp;#039;&amp;#039;lub&amp;#039;&amp;#039;&amp;#039; hasłem użytkownika, zgodnie z wymaganiami konfiguracji PAM.&lt;br /&gt;
&lt;br /&gt;
Jeśli natomiast wymagane jest uwierzytelnianie kluczem publicznym &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; metodą PAM jednocześnie, oddziel je przecinkiem zamiast spacją w opcji AuthenticationMethods:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config.d/20-pam.conf|&lt;br /&gt;
KbdInteractiveAuthentication yes&lt;br /&gt;
AuthenticationMethods publickey&amp;#039;&amp;#039;&amp;#039;,&amp;#039;&amp;#039;&amp;#039;keyboard-interactive:pam&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jeśli wymagany jest klucz publiczny &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; uwierzytelnianie PAM, możesz wyłączyć wymaganie podania hasła:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pam.d/sshd|&lt;br /&gt;
auth      required  pam_securetty.so     #disable remote root&lt;br /&gt;
#Require google authenticator&lt;br /&gt;
auth      required  pam_google_authenticator.so&lt;br /&gt;
#But not password&lt;br /&gt;
#auth      include   system-remote-login&lt;br /&gt;
account   include   system-remote-login&lt;br /&gt;
password  include   system-remote-login&lt;br /&gt;
session   include   system-remote-login&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Ochrona przed atakami siłowymi ====&lt;br /&gt;
&lt;br /&gt;
Brute forcing to prosta metoda: wielokrotne próby zalogowania się do strony internetowej lub serwera (np. SSH) przy użyciu dużej liczby losowych kombinacji nazwy użytkownika i hasła.&lt;br /&gt;
&lt;br /&gt;
Zobacz [[ufw#Rate limiting with ufw]] lub [[Simple stateful firewall#Bruteforce attacks]] dla [[iptables]].&lt;br /&gt;
&lt;br /&gt;
Od wersji 9.8 zaimplementowano podstawową ochronę podobną do [[fail2ban]]: opcja {{ic|PerSourcePenalties}} posiada rozsądne wartości domyślne. Kary za różne warunki są egzekwowane na podstawie adresu źródłowego klienta, co powoduje odrzucenie połączenia na określony czas.&lt;br /&gt;
&lt;br /&gt;
Alternatywą jest ochrona przed atakami siłowymi poprzez użycie zautomatyzowanego skryptu, który blokuje każdego, kto próbuje wedrzeć się do Twojego systemu siłą.&lt;br /&gt;
* Zezwalaj tylko na połączenia przychodzące SSH z zaufanych lokalizacji&lt;br /&gt;
* Użyj [[fail2ban]] lub [[sshguard]], aby automatycznie blokować adresy IP, które zbyt wiele razy nie przejdą uwierzytelniania hasłem.&lt;br /&gt;
* Użyj [https://github.com/h0tw1r3/pam_shield pam_shield], aby zablokować adresy IP, które podejmują zbyt wiele prób logowania w określonym czasie. W przeciwieństwie do [[fail2ban]] lub [[sshguard]], ten program nie bierze pod uwagę powodzenia ani niepowodzenia logowania.&lt;br /&gt;
&lt;br /&gt;
==== Ogranicz logowanie roota ====&lt;br /&gt;
&lt;br /&gt;
{{Out of date|Root login has been disabled by default upstream in the current version.  Unclear to me what parts of this section and subsections are redundant.}}&lt;br /&gt;
&lt;br /&gt;
Zezwalanie użytkownikowi root na nieograniczone logowanie się przez SSH jest powszechnie uważane za złą praktykę. Istnieją dwie metody ograniczenia dostępu użytkownika root przez SSH w celu zwiększenia bezpieczeństwa.&lt;br /&gt;
&lt;br /&gt;
===== Deny =====&lt;br /&gt;
&lt;br /&gt;
sudo selektywnie przyznaje uprawnienia roota do operacji wymagających tych uprawnień bez konieczności uwierzytelniania się wobec konta root. Pozwala to na zablokowanie konta root przed dostępem przez SSH i stanowi potencjalną ochronę przed atakami brute-force, ponieważ atakujący musi teraz odgadnąć nazwę użytkownika oprócz hasła.&lt;br /&gt;
&lt;br /&gt;
SSH można skonfigurować, aby zabronić zdalnych logowań użytkownika root, edytując sekcję „Authentication&amp;quot; w pliku konfiguracyjnym daemona. Wystarczy ustawić {{ic|PermitRootLogin}} na wartość {{ic|no}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config.d/20-deny_root.conf|PermitRootLogin no}}&lt;br /&gt;
&lt;br /&gt;
Następnie [[restart]] demona SSH.&lt;br /&gt;
&lt;br /&gt;
Od teraz nie będziesz w stanie zalogować się przez SSH jako root, ale nadal będziesz mógł zalogować się za pomocą zwykłego konta użytkownika i używać [[su]] lub [[sudo]] do administrowania systemem.&lt;br /&gt;
&lt;br /&gt;
===== Restrict =====&lt;br /&gt;
&lt;br /&gt;
Niektóre zadania automatyczne, takie jak zdalna kopia zapasowa całego systemu, wymagają pełnego dostępu root. Aby umożliwić to bezpiecznie zamiast wyłączać logowanie root przez SSH, można ograniczyć logowanie root do wybranych poleceń. Można to osiągnąć, edytując {{ic|~root/.ssh/authorized_keys}} i poprzedzając żądany klucz, np.:&lt;br /&gt;
&lt;br /&gt;
 command=&amp;quot;rrsync -ro /&amp;quot; ssh-ed25519 ...&lt;br /&gt;
&lt;br /&gt;
Umożliwi to każdemu użytkownikowi z tym kluczem wykonanie tylko polecenia w cudzysłowie&lt;br /&gt;
&lt;br /&gt;
Zwiększoną powierzchnię ataku z ujawnieniem nazwy użytkownika root można ograniczyć, dodając do {{ic|sshd_config}}:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin forced-commands-only&lt;br /&gt;
&lt;br /&gt;
To ustawienie nie tylko ograniczy polecenia, które użytkownik root może wykonywać za pośrednictwem protokołu SSH, ale także wyłączy używanie haseł, wymuszając użycie uwierzytelniania za pomocą klucza publicznego dla konta root.&lt;br /&gt;
&lt;br /&gt;
Nieco mniej restrykcyjna alternatywa pozwoli na dowolne polecenie dla użytkownika root, ale uniemożliwi ataki siłowe poprzez wymuszenie uwierzytelniania kluczem publicznym. W przypadku tej opcji należy ustawić:&lt;br /&gt;
&lt;br /&gt;
 PermitRootLogin prohibit-password&lt;br /&gt;
&lt;br /&gt;
==== Blokowanie pliku authorized_keys ====&lt;br /&gt;
&lt;br /&gt;
{{Warning|Zablokowanie tego pliku chroni jedynie przed błędami użytkownika i przed konkretnym atakiem fizycznym. &amp;#039;&amp;#039;&amp;#039;Nie&amp;#039;&amp;#039;&amp;#039; zapewnia ochrony przed złośliwymi programami ani włamaniami. Użyj uwierzytelniania wieloskładnikowego, zapory sieciowej i ochrony warstwowej, aby zapobiegać włamaniom od początku.}}&lt;br /&gt;
&lt;br /&gt;
Jeżeli z jakiegoś powodu uważasz, że dany użytkownik nie powinien mieć możliwości dodawania lub zmieniania istniejących kluczy, możesz uniemożliwić mu manipulowanie plikiem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na serwerze ustaw plik {{ic|authorized_keys}} jako tylko do odczytu dla użytkownika i zablokuj wszystkie inne uprawnienia:&lt;br /&gt;
&lt;br /&gt;
 $ chmod 400 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Aby uniemożliwić użytkownikowi zmianę uprawnień, [[File permissions and attributes#File attributes|set the immutable bit]] na pliku {{ic|authorized_keys}}. Aby uniemożliwić zmianę nazwy katalogu {{ic|~/.ssh}} i utworzenie nowego katalogu {{ic|~/.ssh}} oraz pliku {{ic|authorized_keys}}, ustaw atrybut immutable również na katalogu {{ic|~/.ssh}}. Aby dodać lub usunąć klucze, musisz tymczasowo usunąć atrybut immutable z pliku {{ic|authorized_keys}} i przyznać uprawnienia zapisu.&lt;br /&gt;
&lt;br /&gt;
{{Tip|Zaleca się rejestrowanie zmian w dowolnym pliku {{ic|authorized_keys}} np. za pomocą [[Audit framework#Audit files and directories access|auditd]].}}&lt;br /&gt;
&lt;br /&gt;
==== Certyfikaty SSH ====&lt;br /&gt;
&lt;br /&gt;
Chociaż zwykłe klucze SSH i ręczna weryfikacja fingerprinti mogą być łatwe w użyciu w przypadku niewielkiej liczby hostów zarządzanych przez jednego administratora, ta metoda uwierzytelniania w żaden sposób się nie skaluje. Gdy wielu serwerów musi być dostępnych dla kilku użytkowników przez SSH, ręczna weryfikacja fingerprinti kluczy publicznych SSH każdego hosta staje się niemal niemożliwa do przeprowadzenia w sposób bezpieczny i niezawodny.&lt;br /&gt;
&lt;br /&gt;
Rozwiązaniem jest użycie certyfikatów SSH, które zapewniają automatyczną weryfikację tożsamości klucza publicznego poprzez łańcuch zaufania, znacznie lepiej skalujący się niż domyślne podejście SSH oparte na TOFU (trust-on-first-use). Certyfikaty SSH to zwykłe klucze publiczne SSH z dodatkowym podpisem od zaufanego urzędu certyfikacji (CA), który weryfikuje tożsamość klucza.&lt;br /&gt;
&lt;br /&gt;
===== Utwórz klucz urzędu certyfikacji hosta dla swojej infrastruktury =====&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -t ed25519 -f ~/.ssh/ca_host_key -C &amp;#039;Host certificate authority for *.example.com&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Prywatny klucz urzędu certyfikacji powinien być przechowywany bezpiecznie, najlepiej na karcie inteligentnej lub tokenie sprzętowym, który uniemożliwia wyodrębnienie klucza, np. [[Nitrokey]] lub [[YubiKey]].&lt;br /&gt;
&lt;br /&gt;
===== Podpisz publiczny klucz hosta SSH serwera =====&lt;br /&gt;
&lt;br /&gt;
Skopiuj klucz serwera publicznego do lokalnego systemu zawierającego klucz prywatny urzędu certyfikacji, aby go podpisać:&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -h -s ~/.ssh/ca_key -I certLabel -n server01.example.com ./ssh_host_ed25519_key.pub&lt;br /&gt;
&lt;br /&gt;
===== Przenieś nowy certyfikat i skonfiguruj sshd, aby go używać =====&lt;br /&gt;
&lt;br /&gt;
Wygenerowany certyfikat {{ic|ssh_host_ed25519_key-cert.pub}} należy skopiować na serwer w katalogu {{ic|/etc/ssh/}}.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config.d/20-ed25519_key.conf|&lt;br /&gt;
HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== Skonfiguruj wszystkich klientów tak, aby ufali urzędowi certyfikacji =====&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/known_hosts|&lt;br /&gt;
@cert-authority  *.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKL8gB/pjuff005YNazwMCqJpgsXAbQ3r4VStd/CRKwU Host certificate authority for *.example.com&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Warning| Jeśli serwer nie dostarczy certyfikatu do identyfikacji, domyślnie jako rozwiązanie awaryjne używane jest uwierzytelnianie za pomocą klucza publicznego.}}&lt;br /&gt;
&lt;br /&gt;
===== Certyfikaty użytkownika SSH =====&lt;br /&gt;
&lt;br /&gt;
W zależności od liczby użytkowników i metody wdrożenia, klucze użytkownika SSH mogą być również używane z certyfikatami. W przypadku organizacji z wieloma użytkownikami SSH zdecydowanie zaleca się bezpieczne zarządzanie wdrażaniem kluczy użytkownika. &lt;br /&gt;
&lt;br /&gt;
Wdrażanie certyfikatów użytkowników działa zasadniczo tak samo, jak w przypadku tożsamości serwerów. Więcej szczegółów i instrukcji można znaleźć w [[Wikibooks:OpenSSH/Cookbook/Certificate-based Authentication]].&lt;br /&gt;
&lt;br /&gt;
===== Automatyzacja wdrażania certyfikatów =====&lt;br /&gt;
&lt;br /&gt;
Automatyczne wdrażanie certyfikatów SSH można zapewnić za pomocą wielu narzędzi open source. Popularne przykłady to:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.ansible.com/ansible/latest/collections/community/crypto/openssh_cert_module.html Ansible - openssh_cert module]&lt;br /&gt;
* [https://www.privacyidea.org/ privacyIDEA - authentication server]&lt;br /&gt;
* [https://theoapp.readthedocs.io/en/latest/ Theo App - authorized keys manager]&lt;br /&gt;
&lt;br /&gt;
==== SSHFP record ====&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:Rekord SSHFP|Rekord odcisku palca Secure Shell (SSHFP)]] to opcjonalny rekord zasobu DNS, który przypisuje klucze SSH do nazwy hosta. Może być używany do weryfikacji odcisku palca SSH na serwerach publicznych za pomocą DNSSEC zamiast wdrażania zaufanych certyfikatów CA, co pozwala nawet niezarządzanym klientom na weryfikację ważności odcisków kluczy.&lt;br /&gt;
&lt;br /&gt;
===== Wygeneruj wpis rekordu =====&lt;br /&gt;
&lt;br /&gt;
Aby wygenerować wymagany szesnastkowy odcisk klucza do umieszczenia w rekordzie DNS, wygeneruj hash na serwerze docelowym.&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -r host.example.com&lt;br /&gt;
&lt;br /&gt;
Spowoduje to odczytanie wszystkich dostępnych kluczy SSH dla określonej domeny i wygenerowanie prawidłowych rekordów SSHFP, które można następnie zapisać we wpisach DNS danej domeny.&lt;br /&gt;
&lt;br /&gt;
===== Konfiguracja klienta =====&lt;br /&gt;
&lt;br /&gt;
Aby automatycznie pobierać i ufać odciskom kluczy SSH w rekordach SSHFP, dodaj to do pliku konfiguracji SSH:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|&lt;br /&gt;
# global options&lt;br /&gt;
Match all&lt;br /&gt;
    VerifyHostKeyDNS yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jeśli host docelowy ma prawidłowy rekord SSHFP zweryfikowany prawidłowym podpisem DNSSEC, fingerprint zostaje automatycznie zaakceptowany bez pytania użytkownika o weryfikację tożsamości hosta. W przypadku braku weryfikacji DNSSEC rekordu DNS użytkownik zostaje poproszony o weryfikację fingerprintu w zwykły sposób.&lt;br /&gt;
&lt;br /&gt;
{{note|For SSHFP records to work, make sure that {{ic|trust-ad}} option is set in {{ic|/etc/resolv.conf}}.}}&lt;br /&gt;
&lt;br /&gt;
===== Generuj rekordy SSHFP =====&lt;br /&gt;
&lt;br /&gt;
Aby ustalić fingerprint SSH konkretnej domeny, użyj polecenia &amp;#039;&amp;#039;ssh-keyscan&amp;#039;&amp;#039; do pobrania fingerprintów SSH w prawidłowym formacie rekordu DNS. (Domyślnie odciski palców dla każdego dostępnego typu klucza są podawane zarówno w SHA1 jak i SHA256.)&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ssh-keyscan -D github.com|&lt;br /&gt;
; github.com:22 SSH-2.0-babeld-57ca1323&lt;br /&gt;
; github.com:22 SSH-2.0-babeld-57ca1323&lt;br /&gt;
github.com IN SSHFP 1 1 6f4c60375018bae0918e37d9162bc15ba40e6365&lt;br /&gt;
github.com IN SSHFP 1 2 b8d895ced92c0ac0e171cd2ef5ef01ba3417554a4a6480d331ccc2be3ded0f6b&lt;br /&gt;
; github.com:22 SSH-2.0-babeld-57ca1323&lt;br /&gt;
github.com IN SSHFP 3 1 3358ab5dd3e306c461c840f7487e93b697e30600&lt;br /&gt;
github.com IN SSHFP 3 2 a764003173480b54c96167883adb6b55cf7cfd1d415055aedff2e2c8a8147d03&lt;br /&gt;
; github.com:22 SSH-2.0-babeld-57ca1323&lt;br /&gt;
github.com IN SSHFP 4 1 e9619e2ed56c2f2a71729db80bacc2ce9ccce8d4&lt;br /&gt;
github.com IN SSHFP 4 2 f83898df0bef57a4ee24985ba598ac17fccb0c0d333cc4af1dd92be14bc23aa5&lt;br /&gt;
; github.com:22 SSH-2.0-babeld-57ca1323&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Ponieważ rekord SSHFP przechowuje odciski kluczy w formacie heksadecymalnym, a typowe dane wyjściowe odcisków SSH to skrót SHA256 klucza publicznego zakodowany w base64, konieczna jest konwersja rekordu do formatu base64 w celu porównania go z wartościami w pliku known_hosts lub inną dokumentacją, która zwykle przechowuje odciski w formacie SHA256 base64.&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;quot;SSHFP-fingerprint&amp;quot; | xxd -r -p | base64&lt;br /&gt;
&lt;br /&gt;
Przykład dla github.com wykorzystujący wartość szesnastkową odcisku palca sha256 klucza ed25519&lt;br /&gt;
&lt;br /&gt;
{{hc|$ echo &amp;quot;f83898df0bef57a4ee24985ba598ac17fccb0c0d333cc4af1dd92be14bc23aa5&amp;quot; {{!}} xxd -r -p {{!}} base64|2=&lt;br /&gt;
+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Porównaj z wpisami known_hosts:&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -l -f ~/.ssh/known_hosts&lt;br /&gt;
&lt;br /&gt;
===== Ręczne pobieranie rekordów SSHFP z DNS =====&lt;br /&gt;
&lt;br /&gt;
 $ dig SSHFP targetdomain.tld +short&lt;br /&gt;
&lt;br /&gt;
== Porady i wskazówki ==&lt;br /&gt;
&lt;br /&gt;
=== Szyfrowany tunel SOCKS ===&lt;br /&gt;
&lt;br /&gt;
Może to być przydatne dla użytkowników laptopów podłączonych do niebezpiecznych sieci bezprzewodowych. Wymogiem jest serwer SSH działający w bezpiecznym miejscu, takim jak dom lub miejsce pracy. Zalecane jest użycie dynamicznej usługi DNS, na przykład [https://dyn.com/dns/ DynDNS], aby nie trzeba było pamiętać adresu IP.&lt;br /&gt;
&lt;br /&gt;
==== Rozpocznij połączenie ====&lt;br /&gt;
&lt;br /&gt;
 $ ssh -TND 4711 &amp;#039;&amp;#039;user&amp;#039;&amp;#039;@&amp;#039;&amp;#039;host&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Flaga {{Ic|N}} wyłącza interaktywny monit, a flaga {{Ic|D}} określa lokalny port, na którym nasłuchiwać (możesz wybrać dowolny numer portu). Flaga {{Ic|T}} wyłącza alokację pseudo-tty.&lt;br /&gt;
&lt;br /&gt;
Można dodać flagę verbose ({{Ic|-v}}), aby zweryfikować połączenie.&lt;br /&gt;
&lt;br /&gt;
==== Skonfiguruj swoją przeglądarkę (lub inne programy) ====&lt;br /&gt;
&lt;br /&gt;
Powyższy krok jest przydatny tylko w połączeniu z przeglądarką lub innym programem. Ponieważ SSH obsługuje zarówno SOCKS v4, jak i SOCKS v5, możesz skonfigurować jeden z nich.&lt;br /&gt;
&lt;br /&gt;
* For Firefox:&lt;br /&gt;
# Go to &amp;#039;&amp;#039;Preferences &amp;gt; General &amp;gt; Network Settings&amp;#039;&amp;#039; and click on &amp;#039;&amp;#039;Settings...&amp;#039;&amp;#039;.&lt;br /&gt;
# In the new  window, check the &amp;#039;&amp;#039;Manual proxy configuration&amp;#039;&amp;#039; option and enter {{ic|localhost}} in the &amp;#039;&amp;#039;SOCKS host&amp;#039;&amp;#039; text field, and the port number in the &amp;#039;&amp;#039;Port&amp;#039;&amp;#039; text field ({{ic|4711}} in the example above).&lt;br /&gt;
# Restart Firefox.&lt;br /&gt;
:{{Note|Firefox nie wysyła automatycznie żądań DNS przez tunel SOCKS. Można temu zapobiec, sprawdzając opcję „Serwer proxy DNS podczas korzystania z SOCKS vN” (wersja 4 lub 5).}}&lt;br /&gt;
* Dla Chromium:&lt;br /&gt;
# Możesz ustawić ustawienia SOCKS jako zmienne środowiskowe lub opcje wiersza poleceń. Na przykład, dodaj jedną z następujących funkcji do swojego {{ic|.bashrc}}: {{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
secure_chromium() {&lt;br /&gt;
    local port=4711&lt;br /&gt;
    export SOCKS_SERVER=localhost:$port&lt;br /&gt;
    export SOCKS_VERSION=5&lt;br /&gt;
    (chromium &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
secure_chromium() {&lt;br /&gt;
    local port=4711&lt;br /&gt;
    (chromium --proxy-server=&amp;quot;socks://localhost:$port&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
# Otwórz terminal i uruchom: {{bc|$ secure_chromium}}&lt;br /&gt;
&lt;br /&gt;
==== Skonfiguruj lokalny interfejs TUN ====&lt;br /&gt;
&lt;br /&gt;
Początkowo wymaga to bardziej zaawansowanej konfiguracji, ale pozwala uniknąć konieczności ręcznego konfigurowania każdej aplikacji do użycia proxy SOCKS. Wymaga to skonfigurowania lokalnego interfejsu TUN i routowania ruchu przez niego.&lt;br /&gt;
&lt;br /&gt;
Zobacz [[VPN over SSH#Set up badvpn and tunnel interface]].&lt;br /&gt;
&lt;br /&gt;
=== Przekierowanie X11 ===&lt;br /&gt;
&lt;br /&gt;
Przekierowanie X11 to mechanizm umożliwiający wyświetlanie graficznych interfejsów programów X11 działających w systemie zdalnym na lokalnym komputerze klienckim. Do przekierowania X11 zdalny host nie musi mieć zainstalowanego pełnego systemu X11, jednak musi mieć zainstalowany co najmniej &amp;#039;&amp;#039;xauth&amp;#039;&amp;#039;. &amp;#039;&amp;#039;xauth&amp;#039;&amp;#039; to narzędzie, które zarządza konfiguracją {{ic|Xauthority}} używaną przez serwer i klient do uwierzytelniania sesji X11 ([http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html źródło]).&lt;br /&gt;
&lt;br /&gt;
{{Warning|Przekierowanie X11 ma istotne implikacje bezpieczeństwa, które powinny być co najmniej uwzględnione poprzez zapoznanie się z istotnymi sekcjami podręczników {{man|1|ssh}}, {{man|5|sshd_config}} i {{man|5|ssh_config}}. Zobacz również [https://security.stackexchange.com/questions/14815/security-concerns-with-x11-forwarding to pytanie na StackExchange.]}}&lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
&lt;br /&gt;
===== Zdalny =====&lt;br /&gt;
&lt;br /&gt;
* [[install|zainstaluj]] pakiety {{Pkg|xorg-xauth}}&lt;br /&gt;
* w {{ic|/etc/ssh/ssh&amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039;_config}}:&lt;br /&gt;
** ustaw {{ic|X11Forwarding}} na &amp;#039;&amp;#039;yes&amp;#039;&amp;#039;&lt;br /&gt;
** sprawdź, czy opcje {{ic|AllowTcpForwarding}} i {{ic|X11UseLocalhost}} są ustawione na &amp;#039;&amp;#039;tak&amp;#039;&amp;#039; i czy {{ic|X11DisplayOffset}} jest ustawione na &amp;#039;&amp;#039;10&amp;#039;&amp;#039; (są to wartości domyślne, jeśli nic nie zostało zmienione, zobacz {{man|5|sshd_config}})&lt;br /&gt;
* następnie [[restart|uruchom ponownie]] [[#Daemon management|&amp;#039;&amp;#039;sshd&amp;#039;&amp;#039; daemon]].&lt;br /&gt;
&lt;br /&gt;
===== Klient =====&lt;br /&gt;
&lt;br /&gt;
* [[install|zainstaluj]] pakiety {{Pkg|xorg-xauth}}&lt;br /&gt;
* enable the {{ic|ForwardX11}} option by either specifying the {{ic|-X}} switch on the command line for opportunistic connections, or by setting {{ic|ForwardX11}} to &amp;#039;&amp;#039;yes&amp;#039;&amp;#039; in the [[#Configuration|client&amp;#039;s configuration]].&lt;br /&gt;
&lt;br /&gt;
{{Tip|You can enable the {{ic|ForwardX11Trusted}} option ({{ic|-Y}} switch on the command line) if GUI is drawing badly or you receive errors; this will prevent X11 forwardings from being subjected to the [https://www.x.org/wiki/Development/Documentation/Security/ X11 SECURITY extension] controls. Be sure you have read [[#X11 forwarding|the warning]] at the beginning of this section if you do so.}}&lt;br /&gt;
&lt;br /&gt;
==== Używanie ====&lt;br /&gt;
&lt;br /&gt;
Zaloguj się do maszyny zdalnej, podając przełącznik {{ic|-X}}, jeśli {{ic|ForwardX11}} nie został włączony w pliku konfiguracyjnym klienta:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -X &amp;#039;&amp;#039;user@host&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Jeśli otrzymasz błędy przy uruchamianiu aplikacji graficznych, spróbuj zamiast tego &amp;#039;&amp;#039;ForwardX11Trusted&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -Y &amp;#039;&amp;#039;user@host&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Jeśli otrzymasz wynik {{ic|X11 forwarding request failed}}, powtórz konfigurację na maszynie zdalnej. Po pomyślnym wykonaniu żądania przekierowania X11 możesz uruchomić dowolny program X na serwerze zdalnym, a zostanie on przekierowany do sesji lokalnej:&lt;br /&gt;
&lt;br /&gt;
 $ xclock&lt;br /&gt;
&lt;br /&gt;
Komunikat błędu {{ic|Can&amp;#039;t open display}} wskazuje, że {{ic|DISPLAY}} jest źle ustawione.&lt;br /&gt;
&lt;br /&gt;
Należy uważać na niektóre aplikacje, które sprawdzają, czy na lokalnym komputerze istnieje uruchomiona instancja. Przykładem jest [[Firefox]]: zamknij uruchomioną instancję lub użyj następującego parametru uruchomienia, aby uruchomić drugą instancję na lokalnym komputerze:&lt;br /&gt;
&lt;br /&gt;
 $ firefox --no-remote&lt;br /&gt;
&lt;br /&gt;
Jeśli podczas łączenia pojawia się błąd „X11 forwarding request failed on channel 0&amp;quot; &lt;br /&gt;
(a serwer wyświetla w {{ic|/var/log/errors.log}} komunikat „Failed to allocate &lt;br /&gt;
internet-domain X11 display socket&amp;quot;), upewnij się, że pakiet {{Pkg|xorg-xauth}} &lt;br /&gt;
jest zainstalowany. Jeśli instalacja nie powiedzie się, spróbuj jednej z poniższych &lt;br /&gt;
opcji:&lt;br /&gt;
&lt;br /&gt;
* włącz opcję {{ic|AddressFamily any}} w {{ic|ssh&amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039;_config}} na &amp;#039;&amp;#039;serwerze&amp;#039;&amp;#039; lub&lt;br /&gt;
* Ustaw opcję {{ic|AddressFamily}} w pliku {{ic|ssh&amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039;_config}} na serwerze na inet.&lt;br /&gt;
Ustawienie jej na inet może rozwiązać problemy z klientami Ubuntu na IPv4.&lt;br /&gt;
&lt;br /&gt;
Aby uruchomić aplikacje X jako inny użytkownik na serwerze SSH, należy za pomocą {{Ic|xauth add}} dodać linię uwierzytelniania pobraną z wyniku {{Ic|xauth list}} zalogowanego użytkownika SSH.&lt;br /&gt;
&lt;br /&gt;
{{Tip|[https://unix.stackexchange.com/a/12772 Here] are [https://unix.stackexchange.com/a/46748 some] useful [https://superuser.com/a/805060 links] for troubleshooting {{ic|X11 Forwarding}} issues.}}&lt;br /&gt;
&lt;br /&gt;
=== Przekierowywanie innych portów ===&lt;br /&gt;
&lt;br /&gt;
Oprócz wbudowanej obsługi X11, SSH można również użyć do bezpiecznego tunelowania dowolnego połączenia TCP za pomocą lokalnego lub zdalnego przekierowania portów.&lt;br /&gt;
&lt;br /&gt;
Przekierowanie lokalne otwiera port na maszynie lokalnej, do którego połączenia są przekierowywane do hosta zdalnego, a następnie do określonego celu. Najczęściej cel przekierowania jest taki sam jak host zdalny, zapewniając bezpieczną powłokę i, np. bezpieczne połączenie [[VNC]] do tej samej maszyny. Przekierowanie lokalne realizuje się przełącznikiem {{Ic|-L}} ze specyfikacją {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 1000:mail.google.com:25 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
Użyje protokołu SSH do zalogowania się i otwarcia powłoki na maszynie {{ic|192.168.0.100}}, &lt;br /&gt;
a także utworzy tunel z portu TCP 1000 maszyny lokalnej do mail.google.com na porcie 25. &lt;br /&gt;
Po nawiązaniu połączenia, połączenia do {{ic|localhost:1000}} będą łączyć się z portem SMTP &lt;br /&gt;
Gmaila. Google będzie uważać, że każde takie połączenie (choć niekoniecznie przesyłane &lt;br /&gt;
przez nie dane) pochodzi z {{ic|192.168.0.100}}, a dane będą bezpieczne między maszyną &lt;br /&gt;
lokalną a maszyną 192.168.0.100, ale nie między {{ic|192.168.0.100}} a Google, chyba że &lt;br /&gt;
zastosowane będą dodatkowe środki.&lt;br /&gt;
&lt;br /&gt;
Podobnie:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -L 2000:192.168.0.100:6001 192.168.0.100&lt;br /&gt;
&lt;br /&gt;
umożliwi połączenia do {{ic|localhost:2000}}, które będą transparentnie przesyłane do zdalnego hosta na porcie 6001. Przykład ten jest przydatny dla połączeń VNC przy użyciu narzędzia vncserver — części pakietu [[tightvnc]] — które, choć bardzo przydatne, nie gwarantuje bezpieczeństwa.&lt;br /&gt;
&lt;br /&gt;
Zdalne przekierowywanie pozwala zdalnemu hostowi połączyć się poprzez tunel SSH z dowolnym hostem za pośrednictwem maszyny lokalnej, stanowiąc odwrócenie lokalnego przekierowywania. Jest przydatne w sytuacjach, gdy zdalny host ma ograniczoną łączność z powodu zapory. Włącza się je przełącznikiem {{Ic|-R}} i specyfikacją przekierowywania w postaci {{Ic|&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
Zatem:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -R 3000:irc.libera.chat:6667 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
otworzy powłokę na {{ic|192.168.0.200}}, a połączenia z {{ic|192.168.0.200}} na porcie 3000 ({{ic|localhost:3000}} zdalnego hosta) będą przekierowywane przez tunel do maszyny lokalnej, a następnie do irc.libera.chat na porcie 6667. W tym przykładzie umożliwia to używanie programów IRC na zdalnym hoście, nawet jeśli port 6667 byłby normalnie dla niego zablokowany.&lt;br /&gt;
&lt;br /&gt;
Zarówno lokalne, jak i zdalne przekierowywanie może być używane do zapewnienia bezpiecznej „bramy&amp;quot;, umożliwiając innym komputerom korzystanie z tunelu SSH bez faktycznego uruchamiania SSH lub serwera SSH poprzez podanie adresu powiązania dla początku tunelu jako części specyfikacji przekierowywania, np. {{Ic|&amp;lt;tunnel address&amp;gt;:&amp;lt;tunnel port&amp;gt;:&amp;lt;destination address&amp;gt;:&amp;lt;destination port&amp;gt;}}. {{Ic|&amp;lt;tunnel address&amp;gt;}} może być dowolnym adresem na maszynie na początku tunelu. Adres {{Ic|localhost}} zezwala na połączenia przez {{Ic|localhost}} lub interfejs loopback, a pusty adres lub {{Ic|*}} zezwala na połączenia przez dowolny interfejs. Domyślnie przekierowywanie jest ograniczone do połączeń z maszyny na „początku&amp;quot; tunelu, tj. {{Ic|&amp;lt;tunnel address&amp;gt;}} jest ustawione na {{Ic|localhost}}. Lokalne przekierowywanie nie wymaga dodatkowej konfiguracji; jednak zdalne przekierowywanie jest ograniczone przez konfigurację serwera SSH na zdalnej maszynie. Szczegóły znajdują się w opcji {{Ic|GatewayPorts}} w {{man|5|sshd_config}} oraz opcji {{Ic|-L}} w {{man|1|ssh}}.&lt;br /&gt;
&lt;br /&gt;
=== Jump hosts ===&lt;br /&gt;
&lt;br /&gt;
W pewnych scenariuszach może nie być bezpośredniego połączenia z docelowym demonem SSH i wymagane jest użycie jump servera (lub [[Wikipedia:bastion host|bastion hosta]]). W związku z tym próbujemy połączyć dwa lub więcej tuneli SSH, zakładając, że klucze lokalne są autoryzowane na każdym serwerze w łańcuchu. Jest to możliwe dzięki przekierowaniu agenta SSH ({{ic|-A}}) i alokacji pseudo-terminala ({{ic|-t}}), które umożliwiają przekazanie klucza lokalnego za pomocą następującej składni:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -A -t -l user1 bastion1 \&lt;br /&gt;
   ssh -A -t -l user2 intermediate2 \&lt;br /&gt;
   ssh -A -t -l user3 target&lt;br /&gt;
&lt;br /&gt;
Można to zautomatyzować za pomocą opcji ProxyCommand:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -o ProxyCommand=&amp;quot;ssh -W %h:%p bastion.example.org&amp;quot; targetserver.example.org&lt;br /&gt;
&lt;br /&gt;
Łatwiejszym i bezpieczniejszym sposobem wykonania tego zadania jest użycie opcji ProxyJump z flagą {{ic|-J}}:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -J user1@bastion1,user2@intermediate2 user3@target&lt;br /&gt;
&lt;br /&gt;
W dyrektywie {{ic|-J}} wiele hostów można rozdzielić przecinkiem; będą podłączane w podanej kolejności. Część {{ic|user...@}} jest opcjonalna, ale może być użyta. Specyfikacje hostów dla {{ic|-J}} korzystają z pliku konfiguracyjnego ssh, więc w razie potrzeby można tam ustawić opcje dla każdego hosta.&lt;br /&gt;
&lt;br /&gt;
Główną różnicą między opcjami ProxyCommand i ProxyJump jest to, że ProxyJump nie wymaga powłoki systemowej na jump hoście. W konsekwencji serwer jump host nie wymaga dostępu do danych logowania użytkownika ani przekazywania agenta SSH. Dzięki opcji ProxyJump klient SSH łączy się bezpośrednio przez jump host z serwerem docelowym, ustalając zaszyfrowany kanał end-to-end między klientem a serwerem docelowym.&lt;br /&gt;
&lt;br /&gt;
Odpowiednikiem flagi {{ic|-J}} w pliku konfiguracyjnym jest opcja {{ic|ProxyJump}}; szczegóły można znaleźć w {{man|5|ssh_config}}.&lt;br /&gt;
&lt;br /&gt;
=== Odwrotny SSH przez przekaźnik ===&lt;br /&gt;
&lt;br /&gt;
{{Style|The idea of SSH tunneling is classic, so some references for detailed explanation would be nice. E.g. [https://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work/118650#118650] which includes other scenarios.}}&lt;br /&gt;
&lt;br /&gt;
Koncepcja: klient łączy się z serwerem poprzez przekaźnik, a serwer połączony jest z tym samym przekaźnikiem odwrotnym tunelem SSH. Jest to przydatne, gdy serwer znajduje się za NAT-em, a przekaźnik to publicznie dostępny serwer SSH. Warunkami wstępnymi są: klucze klienta autoryzowane na przekaźniku i serwerze, oraz klucze serwera autoryzowane na przekaźniku dla odwrotnego tunelu SSH&lt;br /&gt;
&lt;br /&gt;
Poniższy przykład konfiguracji zakłada, że {{ic|&amp;#039;&amp;#039;user1&amp;#039;&amp;#039;}} to konto użytkownika na kliencie, {{ic|&amp;#039;&amp;#039;user2&amp;#039;&amp;#039;}} na przekaźniku i {{ic|&amp;#039;&amp;#039;user3&amp;#039;&amp;#039;}} na serwerze. Zakładając użycie portu 2222, serwer musi ustanowić tunel odwrotny za pomocą:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -R 2222:localhost:22 -N &amp;#039;&amp;#039;user2&amp;#039;&amp;#039;@&amp;#039;&amp;#039;relay&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Which can also be automated with a startup script, systemd service, [[#Autossh - automatically restarts SSH sessions and tunnels|autossh]] or {{AUR|sidedoor}}.&lt;br /&gt;
&lt;br /&gt;
Po stronie klienta połączenie nawiązywane jest za pomocą:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -t &amp;#039;&amp;#039;user2&amp;#039;&amp;#039;@&amp;#039;&amp;#039;relay&amp;#039;&amp;#039; ssh &amp;#039;&amp;#039;user3&amp;#039;&amp;#039;@localhost -p 2222&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|ssh &amp;#039;&amp;#039;user3&amp;#039;&amp;#039;@&amp;#039;&amp;#039;relay&amp;#039;&amp;#039; -p 2222}} wymagałoby otwarcia tego portu w zaporze serwera relay, a także zezwolenia na połączenia do tego portu z innych adresów.}}&lt;br /&gt;
&lt;br /&gt;
Zdalne polecenie do ustanowienia połączenia tunelu odwrotnego można również zdefiniować w pliku {{ic| authorized_keys}} serwera pośredniczącego, uwzględniając pole {{ic|command}} w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/authorized_keys|command{{=}}&amp;quot;ssh &amp;#039;&amp;#039;user3&amp;#039;&amp;#039;@localhost -p 2222&amp;quot; &amp;#039;&amp;#039;ssh-ed25519&amp;#039;&amp;#039; &amp;#039;&amp;#039;KEY2&amp;#039;&amp;#039; &amp;#039;&amp;#039;user1&amp;#039;&amp;#039;@&amp;#039;&amp;#039;client&amp;#039;&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
W tym przypadku połączenie jest nawiązywane za pomocą:&lt;br /&gt;
&lt;br /&gt;
 $ ssh &amp;#039;&amp;#039;user2&amp;#039;&amp;#039;@&amp;#039;&amp;#039;relay&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Alternatywnie możesz dodać wpis do konfiguracji SSH, który określa zarówno {{ic|RemoteCommand}}, jak i {{ic|RequestTTY}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|&lt;br /&gt;
Host &amp;#039;&amp;#039;jump-destination&amp;#039;&amp;#039;&lt;br /&gt;
    Hostname &amp;#039;&amp;#039;relay&amp;#039;&amp;#039;&lt;br /&gt;
    User &amp;#039;&amp;#039;user2&amp;#039;&amp;#039;&lt;br /&gt;
    RemoteCommand ssh &amp;#039;&amp;#039;user3&amp;#039;&amp;#039;@localhost -p 2222&lt;br /&gt;
    RequestTTY yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Co zmniejszy liczbę połączeń z:&lt;br /&gt;
&lt;br /&gt;
 $ ssh &amp;#039;&amp;#039;jump-destination&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|Funkcja autouzupełniania SCP w terminalu klienta nie będzie działać. Nawet same transfery SCP nie będą działać w niektórych konfiguracjach.}}&lt;br /&gt;
&lt;br /&gt;
=== Multiplexing ===&lt;br /&gt;
&lt;br /&gt;
Demon SSH zazwyczaj nasłuchuje portu 22. Jednak powszechną praktyką wielu publicznych sieci Wi-Fi jest blokowanie całego ruchu na portach innych niż standardowe HTTP/S (odpowiednio 80 i 443), co w praktyce blokuje połączenia SSH. Rozwiązaniem jest skonfigurowanie {{ic|sshd}} do nasłuchiwania dodatkowo na jednym z portów dozwolonych:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
Port 22&lt;br /&gt;
Port 443&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jednak port 443 jest prawdopodobnie już używany przez serwer web udostępniający zawartość HTTPS. W takim przypadku można użyć multipleksera, takiego jak {{Pkg|sslh}}, który nasłuchuje na porcie multipleksera i może kierować pakiety do wielu usług.&lt;br /&gt;
&lt;br /&gt;
=== Przyspieszanie SSH ===&lt;br /&gt;
&lt;br /&gt;
{{Expansion|Changing cipher from default might introduce security implications and must be noted here &amp;#039;&amp;#039;if applicable&amp;#039;&amp;#039;|Talk:OpenSSH#Trading_security_for_performance?}}&lt;br /&gt;
&lt;br /&gt;
Istnieje kilka opcji [[#Configuration|client configuration]], które mogą przyspieszyć połączenia globalnie lub dla określonych hostów. Pełny opis tych opcji można znaleźć w {{man|5|ssh_config}}.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;Użyj szybszego szyfru&amp;#039;&amp;#039;: na nowoczesnych procesorach z instrukcjami AESNI, {{ic|aes128-gcm@openssh.com}} i {{ic|aes256-gcm@openssh.com}} powinny zapewniać znacznie lepszą wydajność od domyślnego szyfru openssh, zwykle {{ic|chacha20-poly1305@openssh.com}}. Szyfr można wybrać flagą {{ic|-c}}. Aby uzyskać efekt trwały, umieść opcję {{ic|Ciphers}} w {{ic|~/.ssh/config}} z szyframi w żądanej kolejności, np.:{{bc|Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr}}&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;Włączanie i wyłączanie kompresji&amp;#039;&amp;#039; kompresja może zwiększyć prędkość na wolnych połączeniach; włącza się za pomocą opcji {{ic|Compression yes}} lub flagi {{ic|-C}}. Jednak używany algorytm kompresji to stosunkowo wolny {{man|1|gzip}}, który stanowi wąskie gardło w szybkich sieciach. Aby przyspieszyć połączenie, należy wyłączyć kompresję za pomocą opcji {{ic|Compression no}} w sieciach lokalnych i szybkich.&lt;br /&gt;
&lt;br /&gt;
* „Udostępnianie połączenia&amp;quot;: możesz sprawić, że wszystkie sesje do tego samego hosta współdzielą jedno połączenie, używając poniższych opcji:{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ControlMaster auto&lt;br /&gt;
ControlPersist yes&lt;br /&gt;
ControlPath ~/.ssh/sockets/socket-%r@%h:%p&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
: gdzie {{ic|~/.ssh/sockets}} może być dowolnym katalogiem, do którego inni użytkownicy nie mają prawa zapisu.&lt;br /&gt;
&lt;br /&gt;
* {{ic|ControlPersist}} określa, jak długo master powinien czekać w tle  na nowych klientów po zamknięciu początkowego połączenia. Możliwe wartości to: &lt;br /&gt;
** {{ic|no}}, aby natychmiast zamknąć połączenie po rozłączeniu się ostatniego klienta,&lt;br /&gt;
** czas w sekundach,&lt;br /&gt;
** {{ic|yes}} aby czekać w nieskończoność, połączenie nigdy nie zostanie zamknięte automatycznie.&lt;br /&gt;
&lt;br /&gt;
* Czas logowania można skrócić poprzez pominięcie wyszukiwania IPv6 za pomocą opcji {{ic|AddressFamily inet}} lub flagi {{ic|-4}}.&lt;br /&gt;
&lt;br /&gt;
* Na koniec, jeśli zamierzasz używać SSH do SFTP lub SCP, [https://www.psc.edu/index.php/hpn-ssh High Performance SSH/SCP] może znacząco zwiększyć przepustowość poprzez dynamiczne zwiększanie rozmiarów buforów SSH. Zainstaluj pakiet {{AUR|openssh-hpn}}, aby korzystać z poprawionej wersji OpenSSH z tym ulepszeniem.&lt;br /&gt;
&lt;br /&gt;
=== Montowanie zdalnego systemu plików za pomocą SSHFS ===&lt;br /&gt;
&lt;br /&gt;
Zapoznaj się z artykułem [[SSHFS]], aby zamontować zdalny system dostępny przez SSH w katalogu lokalnym. Umożliwi Ci to wykonywanie dowolnych operacji na zamontowanych plikach za pomocą dowolnego narzędzia (kopiowanie, zmiana nazwy, edycja za pomocą vim itd.). &amp;#039;&amp;#039;sshfs&amp;#039;&amp;#039; jest generalnie preferowany w stosunku do &amp;#039;&amp;#039;shfs&amp;#039;&amp;#039;, które nie było aktualizowane od 2004 roku.&lt;br /&gt;
&lt;br /&gt;
=== Keep alive ===&lt;br /&gt;
&lt;br /&gt;
Domyślnie sesja SSH automatycznie się wylogowuje po upływie określonego czasu braku aktywności. Aby podtrzymać sesję, klient może wysłać do serwera sygnał keep-alive, jeśli przez pewien czas nie odebrano danych, lub serwer może wysyłać komunikaty w regularnych odstępach, jeśli nie otrzyma danych od klienta.&lt;br /&gt;
&lt;br /&gt;
* Po stronie serwera {{ic|ClientAliveInterval}} ustawia limit czasu w sekundach, po którym, jeśli serwer nie otrzyma żadnych danych od klienta, sshd wyśle żądanie odpowiedzi. Wartość domyślna to 0 (komunikat nie jest wysyłany). Na przykład, aby żądać odpowiedzi od klienta co 60 sekund, ustaw opcję {{ic|ClientAliveInterval 60}} w [[#Configuration_2|konfiguracji serwera]]. Patrz też opcje {{ic|ClientAliveCountMax}} i {{ic|TCPKeepAlive}}.&lt;br /&gt;
* Po stronie &amp;#039;&amp;#039;&amp;#039;klienta&amp;#039;&amp;#039;&amp;#039;, {{ic|ServerAliveInterval}} określa interwał wysyłania żądań o potwierdzenie z klienta do serwera. Na przykład, aby wysyłać potwierdzenie co 120 sekund, dodaj opcję {{ic|ServerAliveInterval 120}} do [[#Configuration|client configuration]]. Patrz również: {{ic|ServerAliveCountMax}} i {{ic|TCPKeepAlive}}.&lt;br /&gt;
&lt;br /&gt;
{{Note| Aby zapewnić utrzymanie sesji, tylko jeden z nich — klient lub serwer — musi wysyłać żądania podtrzymania. Jeśli kontrolujesz zarówno serwery, jak i klientów, rozsądnym rozwiązaniem jest skonfigurowanie tylko klientów wymagających stałej sesji z dodatnim parametrem {{ic|ServerAliveInterval}}, a pozostałe klienty i serwery pozostawić w konfiguracji domyślnej.}}&lt;br /&gt;
&lt;br /&gt;
=== Automatyczne ponowne uruchamianie tuneli SSH za pomocą systemd ===&lt;br /&gt;
&lt;br /&gt;
[[systemd]] może automatycznie nawiązywać połączenia SSH podczas rozruchu/logowania i restartować je w przypadku zerwania. Dzięki temu jest to przydatne narzędzie do obsługi tuneli SSH.&lt;br /&gt;
&lt;br /&gt;
Poniższa usługa może uruchomić tunel SSH po zalogowaniu, korzystając z ustawień połączenia w [[#Configuration ssh configuration]]. Jeśli połączenie zostanie zamknięte z jakiegokolwiek powodu, odczeka 10 sekund przed ponownym uruchomieniem:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/tunnel.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SSH tunnel to myserver&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=10&lt;br /&gt;
ExecStart=/usr/bin/ssh -F %h/.ssh/config -N myserver&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Następnie [[enable]] i [[start]] [[user unit]]. Zobacz [[#Keep alive]], aby dowiedzieć się, jak zapobiec przekroczeniu limitu czasu tunelu. Jeśli chcesz uruchomić tunel podczas rozruchu, możesz [systemd#Writing unit files|rewrite the unit]] jako usługę systemową.&lt;br /&gt;
&lt;br /&gt;
=== Autossh – automatycznie restartuje sesje i tunele SSH ===&lt;br /&gt;
&lt;br /&gt;
Jeśli nie można utrzymać sesji lub tunelu, na przykład z powodu złych warunków sieciowych powodujących rozłączenia klientów, można użyć {{Pkg|autossh}}, aby automatycznie je ponownie uruchomić.&lt;br /&gt;
&lt;br /&gt;
Przykłady użycia:&lt;br /&gt;
&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; username@example.com&lt;br /&gt;
&lt;br /&gt;
W połączeniu z [[SSHFS]]:&lt;br /&gt;
&lt;br /&gt;
 $ sshfs -o reconnect,compression=yes,transform_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,ssh_command=&amp;#039;autossh -M 0&amp;#039; username@example.com: /mnt/example &lt;br /&gt;
&lt;br /&gt;
Łączenie przez proxy SOCKS ustawione w [[Proxy settings]]:&lt;br /&gt;
&lt;br /&gt;
 $ autossh -M 0 -o &amp;quot;ServerAliveInterval 45&amp;quot; -o &amp;quot;ServerAliveCountMax 2&amp;quot; -NCD 8080 username@example.com &lt;br /&gt;
&lt;br /&gt;
Za pomocą opcji {{ic|-f}} można uruchomić autossh jako proces w tle. Jednak uruchomienie go w ten sposób oznacza, że ​​nie można wprowadzić hasła interaktywnie.&lt;br /&gt;
&lt;br /&gt;
Sesja zakończy się w momencie wpisania polecenia {{ic|exit}} lub gdy proces autossh otrzyma sygnał SIGTERM, SIGINT lub SIGKILL.&lt;br /&gt;
&lt;br /&gt;
==== Uruchom autossh automatycznie podczas rozruchu za pomocą systemd ====&lt;br /&gt;
&lt;br /&gt;
Jeśli chcesz automatycznie uruchamiać autossh, możesz utworzyć plik jednostki systemd:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/autossh.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=AutoSSH service for port 2222&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Environment=&amp;quot;AUTOSSH_GATETIME=0&amp;quot;&lt;br /&gt;
ExecStart=/usr/bin/autossh -M 0 -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Tutaj {{ic|1=AUTOSSH_GATETIME=0}} to zmienna środowiskowa określająca, jak długo ssh musi być aktywne, zanim autossh uzna połączenie za udane. Ustawienie jej na 0 powoduje, że autossh ignoruje również błąd pierwszego uruchomienia ssh. Może to być przydatne przy starcie systemu. Inne zmienne środowiskowe dostępne są w {{man|1|autossh}}. W razie potrzeby można tę jednostkę bardziej skomplikować (szczegóły w dokumentacji systemd), a także użyć własnych opcji dla autossh. Należy jednak pamiętać, że opcja {{ic|-f}} wraz z {{ic|1=AUTOSSH_GATETIME=0}} nie działa z systemd.&lt;br /&gt;
&lt;br /&gt;
Pamiętaj, aby później [[start]] i/lub [[enable]] usługę.&lt;br /&gt;
&lt;br /&gt;
Może być również konieczne wyłączenie {{ic|ControlMaster}}:&lt;br /&gt;
&lt;br /&gt;
 ExecStart=/usr/bin/autossh -M 0 -o ControlMaster=no -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com&lt;br /&gt;
&lt;br /&gt;
{{Tip|Łatwo jest również utrzymywać kilka procesów autossh, aby utrzymać kilka tuneli aktywnych. Wystarczy utworzyć wiele plików usług o różnych nazwach.}}&lt;br /&gt;
&lt;br /&gt;
=== Usługa alternatywna na wypadek awarii demona SSH ===&lt;br /&gt;
&lt;br /&gt;
W przypadku serwerów zdalnych lub bezobsługowych, które polegają wyłącznie na protokole SSH, niepowodzenie uruchomienia demona SSH (np. po uaktualnieniu systemu) może uniemożliwić dostęp administracyjny. [[systemd]] oferuje proste rozwiązanie za pomocą opcji {{ic|OnFailure}}.&lt;br /&gt;
&lt;br /&gt;
Załóż, że serwer uruchamia {{ic|sshd}}, a [[telnet]] jest rozwiązaniem awaryjnym. Utwórz następujący plik. &amp;#039;&amp;#039;&amp;#039;Nie&amp;#039;&amp;#039;&amp;#039; [[enable]] {{ic|telnet.socket}}!**&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/sshd.service.d/override.conf|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
OnFailure=telnet.socket&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To wszystko. Telnet jest niedostępny, gdy uruchomiony jest {{ic|sshd}}. Jeśli {{ic|sshd}} nie uruchomi się, można otworzyć sesję telnet w celu odzyskania połączenia.&lt;br /&gt;
&lt;br /&gt;
=== Kolor tła terminala w zależności od hosta ===&lt;br /&gt;
&lt;br /&gt;
Aby lepiej rozróżniać, kiedy znajdujesz się na różnych hostach, możesz ustawić [https://bryangilbert.com/post/etc/term/dynamic-ssh-terminal-background-colors/ inny kolor tła w zależności od rodzaju hosta].&lt;br /&gt;
&lt;br /&gt;
To rozwiązanie działa, ale nie jest uniwersalne (tylko ZSH).&lt;br /&gt;
&lt;br /&gt;
=== Konfiguracja specyficzna dla sieci ===&lt;br /&gt;
&lt;br /&gt;
Możesz użyć konfiguracji hosta specyficznej dla sieci, do której jesteś podłączony, używając polecenia {{ic|Match exec}}.&lt;br /&gt;
&lt;br /&gt;
Na przykład, gdy używane jest {{man|1|nmcli}}, a połączenie jest skonfigurowane (ręcznie lub przez DHCP) z domeną wyszukiwania:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/.ssh/config|output=&lt;br /&gt;
Match exec &amp;quot;nmcli {{!}} grep domains: {{!}} grep example.com&amp;quot;&lt;br /&gt;
  CanonicalDomains example.com&lt;br /&gt;
  # Should you use a different username on this network&lt;br /&gt;
  #User username&lt;br /&gt;
  # Use a different known_hosts file (for private network or synchronisation)&lt;br /&gt;
  #UserKnownHostsFile &amp;lt;network&amp;gt;_known_hosts&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Inny przykład dla {{ic|Match host ... exec &amp;quot;...&amp;quot;}}: Weź pod uwagę, że połączenie z {{ic|internal.example.com}} wymaga bastion/proxy (przez {{ic|ProxyJump}}), chyba że jesteś już połączony przez VPN. Fragment {{ic|!exec &amp;quot;host internal.example.com&amp;quot;}} ma zastosowanie tylko wtedy, gdy {{ic|internal.example.com}} nie da się rozwiązać przez DNS. Różne alternatywy omówiono w [https://serverfault.com/q/536043/117525].&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/.ssh/config|output=&lt;br /&gt;
Match host internal.example.com !exec &amp;quot;host internal.example.com&amp;quot;&lt;br /&gt;
  ProxyJump bastion.example.com&lt;br /&gt;
Host internal.example.com&lt;br /&gt;
  User foobar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Weryfikacja kluczy hosta sieci prywatnych ===&lt;br /&gt;
&lt;br /&gt;
Ponieważ różne serwery w różnych sieciach prawdopodobnie korzystają ze wspólnego prywatnego adresu IP, możesz chcieć je obsłużyć w różny sposób.&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|Najlepszym rozwiązaniem byłoby takie, które nie wymagałoby ostrzeżenia o użyciu czegoś innego w praktyce.}}&lt;br /&gt;
&lt;br /&gt;
Najlepszym rozwiązaniem jest użycie [[#Network specific configuration]], aby używać innego pliku {{ic|UserKnownHostsFile}} w zależności od sieci. Drugim rozwiązaniem, zalecane jako domyślne podczas pracy w nowych/prototypowych sieciach, jest po prostu ignorowanie hostkeys w sieciach prywatnych:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/.ssh/config|output=&lt;br /&gt;
Host 10.* 192.168.*.* 172.31.* 172.30.* 172.2?.* 172.1?.*&lt;br /&gt;
    # Disable HostKey verification&lt;br /&gt;
    # Trust HostKey automatically&lt;br /&gt;
    StrictHostKeyChecking no&lt;br /&gt;
    # Do not save the HostKey&lt;br /&gt;
    UserKnownHostsFile=/dev/null&lt;br /&gt;
    # Do not display: &amp;quot;Warning: Permanently Added ...&amp;quot;&lt;br /&gt;
    LogLevel Error&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|Plik {{ic|known_hosts}} rejestruje adres IP nawet wtedy, gdy do uzyskania dostępu do serwera używasz nazwy hosta.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|W środowisku produkcyjnym należy upewnić się, że dostęp do hosta odbywa się za pomocą nazwy hosta i/lub że używane są specyficzne dla sieci pliki known_hosts.}}&lt;br /&gt;
&lt;br /&gt;
=== Uruchom polecenie podczas logowania ===&lt;br /&gt;
&lt;br /&gt;
Jeśli używasz sesji interaktywnej, istnieje kilka sposobów wykonania polecenia po zalogowaniu:&lt;br /&gt;
&lt;br /&gt;
* użyj pliku {{ic|authorized_keys}} na zdalnym hoście (zobacz {{man|8|sshd|AUTHORIZED_KEYS FILE FORMAT}})&lt;br /&gt;
* użyj {{ic|~/.ssh/rc}} na zdalnym hoście, jeśli serwer włączył opcję {{ic|PermitUserRC}}&lt;br /&gt;
* użyj pliku konfiguracyjnego powłoki na zdalnym hoście, np. {{ic|.bashrc}}&lt;br /&gt;
&lt;br /&gt;
=== Przekierowanie agenta ===&lt;br /&gt;
&lt;br /&gt;
Przekierowanie agenta SSH pozwala na korzystanie z kluczy lokalnych po połączeniu z serwerem. Zaleca się [https://security.stackexchange.com/questions/7480/risks-of-ssh-to-an-untrusted-host#7504] włączenie przekierowania agenta tylko dla wybranych hostów.&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|&lt;br /&gt;
Host &amp;#039;&amp;#039;myserver.com&amp;#039;&amp;#039;&lt;br /&gt;
    ForwardAgent yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Następnie skonfiguruj [[SSH agent]] i dodaj klucz lokalny za pomocą polecenia &amp;#039;&amp;#039;ssh-add&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Jeśli teraz połączysz się ze zdalnym serwerem, będziesz mógł połączyć się z innymi usługami, korzystając z kluczy lokalnych.&lt;br /&gt;
&lt;br /&gt;
=== Generowanie nowych kluczy ===&lt;br /&gt;
&lt;br /&gt;
Nowe klucze prywatne serwera można wygenerować poprzez:&lt;br /&gt;
&lt;br /&gt;
# Usuwanie wszystkich kluczy, np.: {{bc|# rm /etc/ssh/ssh_host_*_key*}}&lt;br /&gt;
# [[Restart]] {{ic|sshdgenkeys.service}} lub uruchomienie {{ic|ssh-keygen -A}} jako root.&lt;br /&gt;
&lt;br /&gt;
Bardziej elegancką alternatywą jest przejście. Najpierw wygeneruj nowe klucze hosta:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
# ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key.new&lt;br /&gt;
# ssh-keygen -t ecdsa -b 521 -f /etc/ssh/ssh_host_ecdsa_key.new&lt;br /&gt;
# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key.new&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Dodaj stare i nowe klucze do {{ic|/etc/ssh/sshd_config.d/10-hostkeys.conf}}:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
HostKey /etc/ssh/ssh_host_ecdsa_key&lt;br /&gt;
HostKey /etc/ssh/ssh_host_ecdsa_key.new&lt;br /&gt;
HostKey /etc/ssh/ssh_host_ed25519_key&lt;br /&gt;
HostKey /etc/ssh/ssh_host_ed25519_key.new&lt;br /&gt;
HostKey /etc/ssh/ssh_host_rsa_key&lt;br /&gt;
HostKey /etc/ssh/ssh_host_rsa_key.new&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Restart]] {{ic|sshd.service}}.&lt;br /&gt;
&lt;br /&gt;
Klienci poznają nowe odciski kluczy hosta i dodadzą je do {{ic|~/.ssh/known-hosts}} przy następnym połączeniu z serwerem.&lt;br /&gt;
&lt;br /&gt;
Po pewnym czasie stare klucze można usunąć z {{ic|/etc/ssh/sshd_config.d/10-hostkeys.conf}}, pozostawiając jedynie nowe klucze:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
HostKey /etc/ssh/ssh_host_ecdsa_key.new&lt;br /&gt;
HostKey /etc/ssh/ssh_host_ed25519_key.new&lt;br /&gt;
HostKey /etc/ssh/ssh_host_rsa_key.new&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Restart]] {{ic|sshd.service}}, a następnie fizycznie usuń stare klucze:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
# rm /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Klienci automatycznie zaktualizują {{ic|~/.ssh/known-hosts}}, usuwając odciski palców starych kluczy.&lt;br /&gt;
&lt;br /&gt;
=== Uruchom sshd jako użytkownik bez uprawnień ===&lt;br /&gt;
&lt;br /&gt;
Możesz chcieć uruchomić {{ic|sshd}} jako użytkownik bez uprawnień w kontenerach lub w celach testowych itd.&lt;br /&gt;
&lt;br /&gt;
Ponieważ użytkownik bez uprawnień nie może odczytać kluczy hosta w {{ic|/etc/ssh}}, należy wygenerować nowe klucze hosta:&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -q -N &amp;quot;&amp;quot; -t rsa -b 4096 -f &amp;#039;&amp;#039;/path/to/host/keys/ssh_host_rsa_key&amp;#039;&amp;#039;&lt;br /&gt;
 $ ssh-keygen -q -N &amp;quot;&amp;quot; -t ecdsa -f &amp;#039;&amp;#039;/path/to/host/keys/ssh_host_ecdsa_key&amp;#039;&amp;#039;&lt;br /&gt;
 $ ssh-keygen -q -N &amp;quot;&amp;quot; -t ed25519 -f &amp;#039;&amp;#039;/path/to/host/keys/ssh_host_ed25519_key&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Utwórz plik {{ic|sshd_config}}. Poniższy przykład używa portu wyższego niż 1024, podaje nową ścieżkę do kluczy hosta i wyłącza PAM:&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;#039;&amp;#039;/path/to/sshd_config&amp;#039;&amp;#039;|&lt;br /&gt;
Port 2022&lt;br /&gt;
HostKey &amp;#039;&amp;#039;/path/to/host/keys/ssh_host_rsa_key&amp;#039;&amp;#039;&lt;br /&gt;
HostKey &amp;#039;&amp;#039;/path/to/host/keys/ssh_host_ecdsa_key&amp;#039;&amp;#039;&lt;br /&gt;
HostKey &amp;#039;&amp;#039;/path/to/host/keys/ssh/ssh_host_ed25519_key&amp;#039;&amp;#039;&lt;br /&gt;
UsePAM no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Uruchom „sshd” z utworzoną konfiguracją. Flaga {{ic|-D}} wyłącza tryb demona, a {{ic|-e}} przekierowuje wyjście do stderr, aby umożliwić łatwe monitorowanie.&lt;br /&gt;
&lt;br /&gt;
 $ sshd -f &amp;#039;&amp;#039;/path/to/sshd_config&amp;#039;&amp;#039; -D -e&lt;br /&gt;
&lt;br /&gt;
== Rozwiązywanie problemów ==&lt;br /&gt;
&lt;br /&gt;
=== Lista kontrolna ===&lt;br /&gt;
&lt;br /&gt;
Sprawdź te proste kwestie zanim zaczniesz szukać dalej.&lt;br /&gt;
&lt;br /&gt;
# Katalog konfiguracyjny {{ic|~/.ssh}} i jego zawartość powinny być dostępne tylko dla użytkownika (należy to sprawdzić zarówno po stronie klienta, jak i serwera), a katalog domowy użytkownika powinien być dostępny do zapisu tylko dla tego użytkownika:{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ chmod go-w ~&lt;br /&gt;
$ chmod 700 ~/.ssh&lt;br /&gt;
$ chmod 600 ~/.ssh/*&lt;br /&gt;
$ chown -R $USER ~/.ssh&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
# Sprawdź, czy klucz publiczny klienta (np. {{ic|id_ed25519.pub}}) znajduje się w {{ic|~/.ssh/authorized_keys}} na serwerze.&lt;br /&gt;
# Sprawdź, czy nie ograniczyłeś dostępu SSH za pomocą {{ic|AllowUsers}} lub {{ic|AllowGroups}} w [[#Configuration_2|server config]].&lt;br /&gt;
# Sprawdź, czy użytkownik ustawił hasło. Czasami nowi użytkownicy, którzy jeszcze nie zalogowali się na serwerze, nie mają hasła.&lt;br /&gt;
# [[Append]] {{ic|LogLevel DEBUG}} do {{ic|/etc/ssh/sshd_config}}.&lt;br /&gt;
# Uruchom {{ic|journalctl -xe}} jako root, aby sprawdzić możliwe komunikaty (o błędach).&lt;br /&gt;
# [[Restart]] {{ic|sshd}} i wyloguj się/zaloguj zarówno na kliencie, jak i serwerze.&lt;br /&gt;
&lt;br /&gt;
=== Odmowa połączenia lub problem z przekroczeniem limitu czasu ===&lt;br /&gt;
&lt;br /&gt;
==== Przekierowanie portów ====&lt;br /&gt;
&lt;br /&gt;
Jeśli jesteś za NAT-em/routerem (co jest prawdopodobne, chyba że używasz VPS-a lub hosta z adresem publicznym), upewnij się, że router przekierowuje przychodzące połączenia SSH do Twojej maszyny. Znajdź wewnętrzny adres IP serwera za pomocą {{ic|ip addr}} i skonfiguruj router do przekierowywania TCP na port SSH na ten adres IP. [https://portforward.com portforward.com] może w tym pomóc.&lt;br /&gt;
&lt;br /&gt;
==== Czy protokół SSH działa i nasłuchuje? ====&lt;br /&gt;
&lt;br /&gt;
[[ss]] wyświetla wszystkie procesy nasłuchające na porcie TCP za pomocą polecenia:&lt;br /&gt;
&lt;br /&gt;
 $ ss --tcp --listening&lt;br /&gt;
&lt;br /&gt;
Jeśli powyższe polecenie nie pokazuje, że system nasłuchuje na porcie {{ic|ssh}}, SSH nie jest uruchomiony sprawdź [[journal]] pod kątem błędów itd.&lt;br /&gt;
&lt;br /&gt;
==== Czy istnieją reguły zapory sieciowej blokujące połączenie? ====&lt;br /&gt;
&lt;br /&gt;
[[Iptables]] może blokować połączenia na porcie {{ic|22}}. Sprawdź to za pomocą:&lt;br /&gt;
{{bc|# iptables -nvL}}&lt;br /&gt;
i poszukaj reguł, które mogą powodować odrzucanie pakietów w łańcuchu {{ic|INPUT}}. Następnie, jeśli to konieczne, odblokuj port poleceniem takim jak:&lt;br /&gt;
{{bc|&lt;br /&gt;
# iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
}}&lt;br /&gt;
Aby uzyskać dalszą pomoc w konfigurowaniu zapór sieciowych, zobacz [[firewalls]].&lt;br /&gt;
&lt;br /&gt;
==== Czy ruch w ogóle dociera do Twojego komputera? ====&lt;br /&gt;
&lt;br /&gt;
Rozpocznij przechwyt ruchu na komputerze, na którym występuje problem:&lt;br /&gt;
&lt;br /&gt;
 # tcpdump -lnn -i any port ssh and tcp-syn&lt;br /&gt;
&lt;br /&gt;
Powinno to wyświetlić podstawowe informacje, a następnie czekać na pasujący ruch sieciowy przed jego wyświetleniem. Przetestuj połączenie. Jeśli nie widzisz żadnych danych wyjściowych podczas próby połączenia, oznacza to, że coś spoza komputera blokuje ruch (np. zapora sprzętowa, router NAT itp.).&lt;br /&gt;
&lt;br /&gt;
==== Twój dostawca usług internetowych lub osoba trzecia blokuje domyślny port? ====&lt;br /&gt;
&lt;br /&gt;
{{Note|Wypróbuj ten krok, jeśli wiesz, że nie masz żadnych zapór sieciowych i skonfigurowałeś router w trybie DMZ lub przekierowałeś port na swój komputer, a problem nadal nie występuje. Tutaj znajdziesz instrukcje diagnostyczne i możliwe rozwiązania.}}&lt;br /&gt;
&lt;br /&gt;
W niektórych przypadkach dostawca usług internetowych może blokować domyślny port SSH (port 22), w związku z czym wszelkie próby (otwieranie portów, hartowanie konfiguracji, obrona przed atakami flood, itp.) okazują się bezużyteczne. Aby to potwierdzić, utwórz serwer nasłuchujący na wszystkich interfejsach (0.0.0.0) i połącz się zdalnie.&lt;br /&gt;
&lt;br /&gt;
Jeśli pojawi się komunikat o błędzie podobny do tego:&lt;br /&gt;
&lt;br /&gt;
 ssh: connect to host www.inet.hr port 22: Connection refused&lt;br /&gt;
&lt;br /&gt;
Oznacza to, że port &amp;#039;&amp;#039;&amp;#039;nie&amp;#039;&amp;#039;&amp;#039; jest blokowany przez dostawcę usług internetowych, ale serwer nie uruchamia protokołu SSH na tym porcie (zobacz [[wikipedia:Security through obscurity|security through obscurity]]).&lt;br /&gt;
&lt;br /&gt;
Jeśli jednak pojawi się komunikat o błędzie podobny do tego:&lt;br /&gt;
&lt;br /&gt;
 ssh: connect to host 111.222.333.444 port 22: Operation timed out &lt;br /&gt;
&lt;br /&gt;
Oznacza to, że coś odrzuca ruch TCP na porcie 22. Port jest niewidoczny, albo przez zaporę sieciową, albo przez interwencję strony trzeciej (np. dostawcę usług internetowych blokujący lub odrzucający ruch przychodzący na porcie 22). Jeśli na komputerze nie uruchamiasz zapory sieciowej i routery/przełączniki działają prawidłowo, to dostawca usług internetowych blokuje ruch.&lt;br /&gt;
&lt;br /&gt;
Aby to sprawdzić, możesz uruchomić Wiresharka na serwerze i nasłuchiwać ruch na porcie 22. Ponieważ Wireshark to analizator pakietów warstwy 2, a TCP/UDP to warstwy 3 i wyższe (patrz [[wikipedia:Internet protocol suite|IP Network stack]]), jeśli nie otrzymasz żadnych danych podczas połączenia zdalnego, trzecia strona najprawdopodobniej blokuje ruch na tym porcie do Twojego serwera.&lt;br /&gt;
&lt;br /&gt;
===== Diagnosis =====&lt;br /&gt;
&lt;br /&gt;
[[Install]] {{Pkg|tcpdump}} lub Wireshark z pakietem {{Pkg|wireshark-cli}}.&lt;br /&gt;
&lt;br /&gt;
For tcpdump:&lt;br /&gt;
&lt;br /&gt;
 # tcpdump -ni &amp;#039;&amp;#039;interface&amp;#039;&amp;#039; &amp;quot;port 22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
W przypadku Wiresharka:&lt;br /&gt;
&lt;br /&gt;
 $ tshark -f &amp;quot;tcp port 22&amp;quot; -i &amp;#039;&amp;#039;interface&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
gdzie {{ic|&amp;#039;&amp;#039;interface&amp;#039;&amp;#039;}} to interfejs sieciowy połączenia WAN (sprawdź {{ic|ip a}}). Jeśli nie odbierasz żadnych pakietów podczas próby połączenia zdalnego, możesz być pewien, że Twój dostawca usług internetowych blokuje ruch przychodzący na porcie 22.&lt;br /&gt;
&lt;br /&gt;
===== Możliwe rozwiązanie =====&lt;br /&gt;
&lt;br /&gt;
Rozwiązaniem jest po prostu użycie innego portu, którego dostawca usług internetowych nie blokuje. Otwórz plik {{ic|/etc/ssh/sshd_config}} i skonfiguruj go tak, aby korzystał z innych portów. Na przykład dodaj:&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 Port 1234&lt;br /&gt;
&lt;br /&gt;
Upewnij się również, że pozostałe wiersze konfiguracji „Port&amp;quot; w pliku są zakomentowane. Samo zakomentowanie  „Port 22&amp;quot; i dodanie „Port 1234&amp;quot; nie rozwiąże problemu, ponieważ wtedy sshd będzie słuchać tylko na porcie 1234. Pozostaw oba wiersze bez komentarza, aby uruchomić serwer SSH na obu portach.&lt;br /&gt;
&lt;br /&gt;
[[Restart]] usługę {{ic|sshd.service}} — prawie gotowe. Pozostaje skonfigurować klienta(ów) do używania innego portu zamiast domyślnego. Istnieje wiele rozwiązań, poniżej omówimy dwa z nich.&lt;br /&gt;
&lt;br /&gt;
==== Read from socket failed: connection reset by peer ====&lt;br /&gt;
&lt;br /&gt;
Najnowsze wersje OpenSSH czasami powodują błąd i wyświetlają powyższy komunikat o błędzie podczas łączenia się ze starszymi serwerami SSH. Można to obejść, ustawiając różne [[#Configuration|client options]] dla danego hosta. Więcej informacji na temat poniższych opcji można znaleźć w {{man|5|ssh_config}}.&lt;br /&gt;
&lt;br /&gt;
Problemem mogą być eliptyczne algorytmy klucza hosta {{ic|ecdsa-sha2-nistp*-cert-v01@openssh}}. Można je wyłączyć, ustawiając {{ic|HostKeyAlgorithms}} na listę wykluczającą te algorytmy. Po stronie klienta, {{ic|HostKeyAlgorithms}}, którego klient chce użyć, można również ustawić, poprzedzając listę {{ic|HostKeyAlgorithms}} znakiem {{ic|-}}, aby usunąć określone algorytmy (w tym symbole wieloznaczne) z domyślnego zestawu (patrz {{man|5|ssh_config}}).&lt;br /&gt;
Możesz sprawdzić aktualnie używany algorytm klucza hosta za pomocą {{ic|ssh -v server_to_connect_to}} w wierszu zawierającym {{ic|kex: host key algorithm:}}.&lt;br /&gt;
&lt;br /&gt;
Jeśli to nie pomoże, przyczyną może być zbyt długa lista szyfrów. Ustaw opcję {{ic|Ciphers}} na krótszą listę (mniej niż 80 znaków powinno wystarczyć). Możesz również spróbować skrócić listę {{ic|MACs}}.&lt;br /&gt;
&lt;br /&gt;
Zobacz także [https://web.archive.org/web/20161201015151/https://www.gossamer-threads.com/lists/openssh/dev/51339 dyskusję] na forum błędów OpenSSH.&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;[your shell]: No such file or directory&amp;quot; / ssh_exchange_identification problem ===&lt;br /&gt;
&lt;br /&gt;
Jedną z możliwych przyczyn jest wymóg niektórych klientów SSH, aby znaleźć ścieżkę bezwzględną (na przykład zwracaną przez {{Ic|whereis -b [your shell]}}) w zmiennej {{Ic|$SHELL}}, nawet jeśli plik binarny powłoki znajduje się w jednym z katalogów {{Ic|$PATH}}.&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Terminal unknown&amp;quot; or  &amp;quot;Error opening terminal&amp;quot; error message ===&lt;br /&gt;
&lt;br /&gt;
Jeżeli podczas logowania otrzymujesz powyższe błędy, oznacza to, że serwer nie rozpoznaje Twojego terminala. Aplikacje ncurses, takie jak nano, mogą przestać działać, wyświetlając komunikat {{ic|Error opening terminal}}.&lt;br /&gt;
&lt;br /&gt;
Prawidłowym rozwiązaniem jest zainstalowanie pliku terminfo terminala klienta na serwerze. Dzięki temu programy konsolowe na serwerze będą mogły poprawnie wchodzić w interakcję z terminalem. Informacje o bieżącym pliku terminfo można uzyskać za pomocą polecenia {{ic|infocmp}}, a następnie dowiedzieć się, [[pacman#Querying package databases|który pakiet jest jego właścicielem]].&lt;br /&gt;
&lt;br /&gt;
Jeżeli nie możesz go [[install]] normalnie, możesz skopiować terminfo do katalogu domowego na serwerze:&lt;br /&gt;
&lt;br /&gt;
 $ ssh myserver mkdir -p  ~/.terminfo/${TERM:0:1}&lt;br /&gt;
 $ scp /usr/share/terminfo/${TERM:0:1}/$TERM myserver:~/.terminfo/${TERM:0:1}/&lt;br /&gt;
&lt;br /&gt;
Po zalogowaniu się i wylogowaniu z serwera problem powinien zostać rozwiązany.&lt;br /&gt;
&lt;br /&gt;
==== TERM hack ====&lt;br /&gt;
&lt;br /&gt;
{{Note|Należy z tego rozwiązania korzystać wyłącznie w ostateczności.}}&lt;br /&gt;
&lt;br /&gt;
Alternatywnie, możesz po prostu ustawić {{ic|1=TERM=xterm}} w swoim środowisku na serwerze (np. w {{ic|.bash_profile}}). To wyciszy błąd i umożliwi ponowne uruchomienie aplikacji ncurses, ale możesz doświadczyć dziwnego zachowania i błędów graficznych, chyba że sekwencje sterujące w Twoim terminalu będą dokładnie takie same jak w xterm.&lt;br /&gt;
&lt;br /&gt;
=== Connection closed by x.x.x.x [preauth] ===&lt;br /&gt;
&lt;br /&gt;
Jeśli widzisz ten błąd w logach sshd, upewnij się, że ustawiłeś prawidłowy {{ic|HostKey}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|HostKey /etc/ssh/ssh_host_ed25519_key}}&lt;br /&gt;
&lt;br /&gt;
=== subsystem request failed ===&lt;br /&gt;
&lt;br /&gt;
Ponieważ od wersji OpenSSH 8.8 {{ic|scp}} domyślnie używa protokołu SFTP do przesyłania danych, żądając podsystemu {{ic|sftp}}. Aby sprawdzić, którego podsystemu używa klient, uruchom {{ic|scp -v}}. Błędy takie jak {{ic|subsystem request failed on channel 0}} można naprawić poprzez konfigurację ustawienia {{man|5|sshd_config|Subsystem}} na serwerze. Konfiguracja serwera powinna przypominać poniższy przykład.&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
...&lt;br /&gt;
Subsystem subsystem-name /path/to/subsystem-executable&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== id_dsa refused ===&lt;br /&gt;
&lt;br /&gt;
W OpenSSH 7.0 klucze publiczne DSA zostały wycofane ze względów bezpieczeństwa, a OpenSSH 9.8 został domyślnie zbudowany bez obsługi kluczy DSA. Pierwsza wersja OpenSSH w 2025 roku całkowicie usunie obsługę kluczy DSA. Na razie, jeśli absolutnie musisz ich używać, musisz przebudować {{Pkg|openssh}}, przekazując {{ic|--enable-dsa-keys}} do {{ic|configure}}.[https://marc.info/?l=openssh-unix-dev&amp;amp;m=171982945528949&amp;amp;w=2]&lt;br /&gt;
&lt;br /&gt;
=== No matching key exchange method found by OpenSSH 7.0 ===&lt;br /&gt;
&lt;br /&gt;
W OpenSSH 7.0 algorytm klucza diffie-hellman-group1-sha1 został wycofany ze względu na jego słabość i teoretycznie mieści się w zakresie tzw. ataku Logjam (patrz https://www.openssh.com/legacy.html). Jeśli algorytm klucza jest potrzebny dla konkretnego hosta, SSH wygeneruje komunikat o błędzie podobny do poniższego:&lt;br /&gt;
&lt;br /&gt;
 Unable to negotiate with 127.0.0.1: no matching key exchange method found.&lt;br /&gt;
 Their offer: diffie-hellman-group1-sha1&lt;br /&gt;
&lt;br /&gt;
Najlepszym rozwiązaniem tych problemów jest aktualizacja/skonfigurowanie serwera tak, aby nie używał przestarzałych algorytmów. Jeśli to niemożliwe, można wymusić na kliencie ponowne włączenie algorytmu za pomocą [[#Configuration|client option]] {{ic|KexAlgorithms +diffie-hellman-group1-sha1}}.&lt;br /&gt;
&lt;br /&gt;
=== tmux/screen session killed when disconnecting from SSH ===&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|The caveat must be solved because {{ic|logind}} is used by default.}}&lt;br /&gt;
&lt;br /&gt;
Parafrazując [https://unix.stackexchange.com/a/176292 odpowiedź na platformie Unix Stackexchange]:&lt;br /&gt;
&lt;br /&gt;
Jeśli procesy są zamykane na koniec sesji SSH, możliwe że używasz aktywacji soketów. Twój proces jest zamykany przez {{Pkg|systemd}}, gdy wykryje, że proces sesji SSH się zakończył. W tym przypadku istnieją dwa rozwiązania:&lt;br /&gt;
&lt;br /&gt;
* Unikaj aktywacji soketów poprzez migrację do {{ic|sshd.service}} (zalecane, patrz [[#Socket activation]]) lub&lt;br /&gt;
* Ustaw {{ic|1=KillMode=process}} w sekcji {{ic|[Service]}} w {{ic|sshd@.service}}.&lt;br /&gt;
&lt;br /&gt;
Choć nie jest to konieczne, ustawienie {{ic|1=KillMode=process}} w {{ic|sshd.service}} może być również przydatne, gdyż pozwala uniknąć zamykania procesu sesji SSH i jego procesu {{Pkg|screen}} lub {{Pkg|tmux}} po zatrzymaniu lub ponownym uruchomieniu serwera.&lt;br /&gt;
&lt;br /&gt;
Należy pamiętać, że ta opcja może nie działać z {{ic|logind}}.&lt;br /&gt;
&lt;br /&gt;
=== Sesja SSH przestaje odpowiadać ===&lt;br /&gt;
&lt;br /&gt;
SSH reaguje na [[Wikipedia:Software flow control|flow control commands]] {{ic|XON}} i {{ic|XOFF}}. Po naciśnięciu {{ic|Ctrl+s}} protokół zawiesi się lub przestanie odpowiadać. Użyj {{ic|Ctrl+q}}, aby wznowić sesję.&lt;br /&gt;
&lt;br /&gt;
=== Broken pipe ===&lt;br /&gt;
&lt;br /&gt;
Jeśli próbujesz utworzyć połączenie, co skutkuje odpowiedzią {{ic|Broken pipe}} na {{ic|packet_write_wait}}, powinieneś ponowić próbę nawiązania połączenia w trybie debugowania i sprawdzić, czy dane wyjściowe zakończą się błędem:&lt;br /&gt;
{{bc|debug3: send packet: type 1&lt;br /&gt;
packet_write_wait: Connection to A.B.C.D port 22: Broken pipe}}&lt;br /&gt;
Powyższy wiersz {{ic|send packet}} wskazuje, że pakiet odpowiedzi nigdy nie został odebrany. Wynika z tego, że jest to problem z „QoS”. Aby zmniejszyć prawdopodobieństwo utraty pakietu, ustaw {{ic|IPQoS}}:&lt;br /&gt;
{{hc|/etc/ssh/ssh_config|Match all&lt;br /&gt;
    IPQoS reliability}}&lt;br /&gt;
Problem powinien zostać rozwiązany przez usługę typu {{ic|reliability}} ({{ic|0x04}}), a także przez {{ic|0x00}} i {{ic|throughput}} ({{ic|0x08}}).&lt;br /&gt;
&lt;br /&gt;
=== Zakończ nieodpowiadające połączenie SSH ===&lt;br /&gt;
&lt;br /&gt;
Jeśli sesja klienta nie odpowiada i nie można jej zakończyć, wydając polecenie działającemu programowi (np. [[shell]]), nadal można zakończyć sesję, naciskając kolejno {{ic|Enter}}, {{ic|~}} i {{ic|.}}.&lt;br /&gt;
&lt;br /&gt;
{{ic|~}} to znak ucieczki pseudo-terminala (patrz {{man|1|ssh|ESCAPE CHARACTERS}}), który można dodać wielokrotnie w zależności od sesji klienta, którą chcesz zakończyć. Na przykład, jeśli połączyłeś się z A do B, a następnie z B do C, a sesja z B do C zawiesi się, możesz ją zakończyć, naciskając {{ic|Enter}} i wpisując {{ic|~~.}}, co pozostawi Cię w działającej sesji na B.&lt;br /&gt;
&lt;br /&gt;
=== WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ===&lt;br /&gt;
&lt;br /&gt;
Jeśli klient ostrzega o zmianie klucza serwera SSH, należy zweryfikować, czy nowo udostępniony klucz rzeczywiście należy do operatora serwera, za pośrednictwem uwierzytelnionego (niekoniecznie szyfrowanego) kanału. Następnie należy usunąć stary klucz z pliku {{ic|known_hosts}} za pomocą polecenia {{ic|ssh-keygen -R $SSH_HOST}} i zaakceptować nowy klucz tak, jakby był to nowy serwer.&lt;br /&gt;
&lt;br /&gt;
=== Łączenie się ze zdalnym komputerem bez odpowiedniego wpisu terminfo ===&lt;br /&gt;
&lt;br /&gt;
Łącząc się z hostami, które nie mają wpisu terminfo dla Twojego terminala, na przykład podczas korzystania z emulatora terminala, którego wpis terminfo nie jest dostarczany z {{Pkg|ncurses}} (np. [[kitty]] i [[rxvt-unicode]]), lub łącząc się z hostami z ograniczoną bazą danych terminfo (np. systemami z [[Wikipedia:OpenWrt|OpenWrt]]), mogą pojawić się różne problemy z oprogramowaniem, które opiera się na {{man|5|terminfo}}.&lt;br /&gt;
&lt;br /&gt;
Prawidłowym rozwiązaniem jest umieszczenie odpowiedniego wpisu terminfo na hoście. Jeśli nie jest to możliwe, alternatywą jest ustawienie {{ic|TERM}} na wartość, która jest obsługiwana przez host zdalny i zgodna z terminalem.&lt;br /&gt;
&lt;br /&gt;
Od OpenSSH 8.7 można przesłać dowolną zmienną środowiskową {{ic|TERM}} do zdalnych hostów za pomocą prostej konfiguracji:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.ssh/config|2=&lt;br /&gt;
Host example.com&lt;br /&gt;
  SetEnv TERM=xterm-256color&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Connection through jump host fails with &amp;quot;bash: No such file or directory&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Jeśli zmienna środowiskowa {{ic|SHELL}} nie jest ustawiona na pełną, prawidłową ścieżkę (na serwerze jump), połączenie nie powiedzie się z komunikatem o błędzie podobnym do:&lt;br /&gt;
&lt;br /&gt;
 bash: No such file or directory&lt;br /&gt;
 kex_exchange_identification: Connection closed by remote host&lt;br /&gt;
 Connection closed by UNKNOWN port 65535&lt;br /&gt;
&lt;br /&gt;
Możesz rozwiązać to, ustawiając {{ic|SHELL}} na pełną ścieżkę powłoki, która będzie ważna również na jump serverze, lub ustawiając zmienną {{ic|SHELL}} dla każdego serwera w pliku {{ic|~/.ssh/config}}.&lt;/div&gt;</summary>
		<author><name>Wacek</name></author>
	</entry>
</feed>