# CommandSection

title: PERSISTENCE WITH <B>--FORK</B>
content:
When copying data from a script or a command that exits immediately, <b>wl-copy</b> typically needs to run in the background to keep the copied data available for other applications to paste. The <b>--fork</b> option detaches <b>wl-copy</b> from the terminal, allowing it to continue serving the copied content until another application takes ownership of the selection or the Wayland session ends. Without <b>--fork</b>, the copied data might become unavailable as soon as the <b>wl-copy</b> process terminates.


title: HISTORY
content:
<b>wl-copy</b> emerged as Wayland began to gain traction as a modern display server protocol, aiming to replace the aging X11 system. The need for command-line clipboard interaction in Wayland environments, similar to <b>xclip</b> or <b>xsel</b> for X11, led to the development of the <b>wl-clipboard</b> project. <b>wl-copy</b> is a key component of this project, providing the "copy" functionality. Its development is intertwined with the maturation of the Wayland ecosystem, filling a critical gap for scripting and terminal-based workflows in Wayland desktops.


title: SYNOPSIS
content:
<b>wl-paste</b> [<i>-p</i> | <i>--primary</i> | <i>-s</i> | <i>--selection</i>] [<i>-t MIME_TYPE</i> | <i>--type MIME_TYPE</i>] [<i>-f</i> | <i>--list-types</i>] [<i>-w</i> | <i>--wait</i> | <i>-c</i> | <i>--continuous</i>] [<i>-n</i> | <i>--no-newline</i>] [<i>-v</i> | <i>--verbose</i>] [<i>-h</i> | <i>--help</i>] [<i>--version</i>]


title: PARAMETERS
content:
<b><b>-p</b>, <b>--primary</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses the primary selection buffer instead of the default clipboard. The primary selection is typically used for instant paste of highlighted text without an explicit copy action.<br><br><b><b>-s</b>, <b>--selection</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;An alias for <b>--primary</b>, also specifying the primary selection buffer.<br><br><b><b>-t MIME_TYPE</b>, <b>--type MIME_TYPE</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a preferred MIME type (e.g., "text/plain", "image/png", "text/html") for the content to be pasted. If the requested type is not available, <i><b>wl-paste</b></i> may fall back to "text/plain" or fail.<br><br><b><b>-f</b>, <b>--list-types</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Lists all available MIME types for the current content in the clipboard or selected buffer, rather than pasting the content. This is useful for inspection.<br><br><b><b>-w</b>, <b>--wait</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Instructs <i><b>wl-paste</b></i> to wait indefinitely until new clipboard content becomes available before pasting it and then exiting. Useful for scripting reactive behaviors.<br><br><b><b>-c</b>, <b>--continuous</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Continuously outputs new clipboard content to standard output as it changes. The command will not exit until manually terminated (e.g., via Ctrl+C).<br><br><b><b>-n</b>, <b>--no-newline</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents <i><b>wl-paste</b></i> from appending a newline character to the output. Useful when pasting text into a specific context without extra line breaks.<br><br><b><b>-v</b>, <b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables verbose output, printing informational and debugging messages to standard error. This can assist in troubleshooting.<br><br><b><b>-h</b>, <b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a brief help message explaining command usage and options, then exits.<br><br><b><b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the version information for the <i>wl-paste</i> utility and exits.<br><br>


title: DESCRIPTION
content:
<i><b>wl-paste</b></i> is a command-line utility designed for interacting with the Wayland clipboard. It is a fundamental part of the <i>wl-clipboard</i> suite, which aims to provide simple, command-line access to Wayland's copy-paste mechanisms, much like <i>xclip</i> or <i>xsel</i> do for Xorg. Specifically engineered for Wayland compositors, <i><b>wl-paste</b></i> retrieves the current content of the clipboard (or selection buffer) and prints it to standard output.<br><br>This functionality is crucial for seamless integration into shell scripts, enabling users to pipe clipboard content to other commands, save it to files, or simply view its contents directly from the terminal. The utility effectively handles various MIME types, defaulting to converting content to plain text, but also offering options to specify or list other available formats. Furthermore, <i><b>wl-paste</b></i> supports advanced features such as waiting for new clipboard content and continuously monitoring for changes, making it a versatile tool for Wayland users.


title: CAVEATS
content:
<i><b>wl-paste</b></i> strictly requires a running Wayland compositor to operate; it is not compatible with X11 environments. For X11, users should utilize tools like <i>xclip</i> or <i>xsel</i>. The specific behavior and range of available MIME types for clipboard content can sometimes vary depending on the Wayland compositor in use and the application from which the content was originally copied.


title: WAYLAND CLIPBOARD BUFFERS
content:
Wayland environments typically manage multiple selection buffers, primarily the 'clipboard' and the 'primary selection'. The standard clipboard, often associated with copy (Ctrl+C) and paste (Ctrl+V) actions, is the default target for <i><b>wl-paste</b></i>. The primary selection, common in X11 and supported in Wayland, allows for text to be pasted simply by highlighting it, without an explicit copy command. Users can interact with the primary selection by using the <b>-p</b> or <b>--primary</b> option with <i><b>wl-paste</b></i>.


title: MIME TYPE FLEXIBILITY
content:
Wayland's clipboard protocol supports offering content in various MIME types simultaneously, allowing applications to provide data in formats ranging from simple 'text/plain' to complex 'image/png' or 'text/html'. <i><b>wl-paste</b></i> intelligently negotiates with the source application to retrieve the most suitable format, defaulting to 'text/plain' for textual output. Users have control over this process: the <b>-t</b> option allows requesting a specific MIME type, while the <b>-f</b> option provides a list of all available types for the current clipboard content, offering significant flexibility in how data is retrieved.


title: HISTORY
content:
The <i>wl-clipboard</i> project, which includes <i><b>wl-paste</b></i>, was developed to bridge a significant functional gap in the Wayland ecosystem: the absence of a simple, robust command-line utility for clipboard interaction, akin to <i>xclip</i> in Xorg. As Wayland gained traction as the successor to Xorg, the need for such a tool became increasingly apparent for scripting, automation, and general terminal-based workflows. <i>wl-clipboard</i> was thus created to provide native Wayland clipboard support, designed to be lightweight and efficient, and to fully leverage Wayland's protocol features like multiple selection buffers and diverse MIME type handling. Its ongoing development has been crucial in enhancing the usability and scripting capabilities of Wayland-based desktop environments.


title: PARAMETERS
content:
<b><b>-m</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display information about the current window manager, including its name and EWMH compliance status.<br><br><b><b>-l</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;List all open windows on the current desktop, showing their window ID, desktop number, and title.<br><br><b><b>-d</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;List all configured desktops, showing their ID, dimensions, and current state.<br><br><b><b>-s <I>desktop_num</I></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Switch the active desktop to the specified <I>desktop_num</I>.<br><br><b><b>-a <I>WIN</I></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Activate (raise and focus) the window identified by <I>WIN</I>. <I>WIN</I> can be a window ID, title, or part of a title/class.<br><br><b><b>-i</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Interpret the <I>WIN</I> argument as a hexadecimal window ID (e.g., from <b>wmctrl -l</b>).<br><br><b><b>-x</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Interpret the <I>WIN</I> argument as a resource class or resource name (as seen in <b>xprop</b> output).<br><br><b><b>-R <I>WIN</I></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Raise the specified window <I>WIN</I> to the top of the stacking order without necessarily giving it focus.<br><br><b><b>-c <I>WIN</I></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Close the specified window <I>WIN</I> by sending a close request.<br><br><b><b>-k <I>on|off</I></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Toggle showing the desktop (<I>on</I> to minimize all windows) or restoring windows (<I>off</I>).<br><br><b><b>-b <I>WIN</I> <I>add|remove</I>,<I>prop1</I>[,<I>prop2</I>]</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Add or remove window states for <I>WIN</I>. Common properties include <I>sticky</I>, <I>shaded</I>, <I>maximized_vert</I>, <I>maximized_horz</I>, <I>hidden</I>, <I>fullscreen</I>, <I>above</I>, <I>below</I>.<br><br><b><b>-G <I>WIN</I> <I>x</I>,<I>y</I>,<I>width</I>,<I>height</I></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Move and resize the specified window <I>WIN</I> to the given coordinates and dimensions.<br><br><b><b>-N <I>WIN</I> <I>new_name</I></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the <I>_NET_WM_NAME</I> property (commonly displayed as the window's name) of window <I>WIN</I>.<br><br><b><b>-T <I>WIN</I> <I>new_title</I></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the <I>_NET_WM_VISIBLE_NAME</I> property (commonly displayed as the window's title in taskbars) of window <I>WIN</I>.<br><br>


title: DESCRIPTION
content:
<b>wmctrl</b> is a command-line tool designed to interact with EWMH/NetWM compliant X Window Managers. It provides a powerful interface for automating and scripting various window and desktop management tasks. Users can employ <b>wmctrl</b> to list open windows, switch between virtual desktops, activate or raise specific windows, close applications, and dynamically change window properties such as size, position, and state (e.g., maximizing, minimizing, making sticky). This utility is invaluable for creating custom shortcuts, automating workflow, or integrating window management into scripts, offering programmatic control over the desktop environment.


title: CAVEATS
content:
<b>wmctrl</b> relies on the Extended Window Manager Hints (EWMH) specification. If your window manager is not EWMH/NetWM compliant (e.g., very old or minimalist WMs), some or all commands may not function as expected.<br>Window identification can be ambiguous; using window IDs (obtained via <b>wmctrl -l</b> and used with <b>-i</b>) is often more reliable than matching by name or class.


title: HISTORY
content:
<b>wmctrl</b> was developed to provide a straightforward command-line interface for managing windows and desktops under X Window Systems that adhere to the Extended Window Manager Hints (EWMH) specification. Before <b>wmctrl</b>, interacting with window managers programmatically often required more complex Xlib programming. Its creation aimed to simplify the scripting of desktop automation tasks, making it accessible for a wider range of users and developers, focusing on standardized communication protocols for greater compatibility across various desktop environments.


title: PARAMETERS
content:
<b><b>dev=</b><I>target</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the SCSI device to use. <I>target</I> can be a device path (e.g., <I>/dev/sr0</I>), a SCSI address (<I>bus,id,lun</I>), or an ATAPI address (<I>ATAPI:bus,id,lun</I>).<br><br><b><b>-v</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Increases verbosity, displaying more information about the burning process.<br><br><b><b>-dummy</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Performs a dummy run; simulates the burning process without actually writing data to the disc. Useful for testing settings.<br><br><b><b>-dao</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the Disc-At-Once burning mode. The entire disc is written in a single session.<br><br><b><b>-tao</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the Track-At-Once burning mode. Each track is written individually, potentially with linking blocks between them.<br><br><b><b>-data</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Indicates that the following track(s) are data tracks (e.g., ISO images).<br><br><b><b>-audio</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Indicates that the following track(s) are audio tracks.<br><br><b><b>-speed=</b><I>N</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the burning speed to <I>N</I> (e.g., 8, 16, 24). Use <I>0</I> for maximum supported speed.<br><br><b><b>-eject</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Ejects the disc from the drive after the burning process is complete.<br><br><b><b>-blank=</b><I>type</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Blanks a rewritable disc. <I>type</I> can be 'all' (full blank) or 'fast' (quick blank).<br><br><b><b>-scanbus</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Scans for available SCSI/ATAPI CD/DVD/BD writer devices on the system.<br><br><b><b>-prcap</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the drive's capabilities, including supported speeds, disc types, and burning modes.<br><br><b><b>-fs=</b><I>N</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the FIFO (First-In, First-Out) buffer size in bytes. Larger buffers can help prevent 'buffer underrun' errors.<br><br>


title: DESCRIPTION
content:
<i><b>wodim</b></i> is a powerful command-line utility used for writing data, audio, and video to various optical disc formats, including CDs, DVDs, and Blu-ray discs. It functions as a successor and open-source re-implementation of the classic <i>cdrecord</i> tool, providing robust features for disc mastering and burning. <i>wodim</i> supports multiple burning modes like Track-At-Once (TAO), Disc-At-Once (DAO), and Session-At-Once (SAO), and can handle different types of input, such as ISO images, audio files, and raw data streams.<br><br>It is an essential tool for system administrators and users who need to automate disc burning tasks, create bootable media, or perform disc operations on headless servers where a graphical interface is not available. While primarily used for burning, <i>wodim</i> also offers functionalities like disc blanking, scanning for SCSI/ATAPI devices, and simulating burn processes to prevent disc wastage.


title: CAVEATS
content:
Using <i>wodim</i> requires appropriate permissions, often root privileges or being a member of the 'cdrom' group. Incorrect usage, especially with blanking or formatting commands, can lead to data loss on rewritable media. Device naming can be complex, and proper identification of the target drive is crucial. On some systems, ATAPI drives might require SCSI emulation to be enabled for <i>wodim</i> to function correctly.


title: BURNING MODES EXPLAINED
content:
<i><b>Track-At-Once (TAO):</b></i> Writes tracks individually. Allows gaps between tracks and adding more tracks later to the same disc (multi-session for CD-R).<br><i><b>Disc-At-Once (DAO):</b></i> Writes the entire disc in a single session, including lead-in and lead-out. No gaps between tracks. Essential for audio CDs that require precise timing or for finalizing a disc.<br><i><b>Session-At-Once (SAO):</b></i> Similar to DAO but for multi-session discs, allowing multiple sessions to be recorded completely and independently.


title: DEVICE SPECIFICATION (DEV=)
content:
The <i><b>dev=</b></i> option is critical for telling <i>wodim</i> which optical drive to use. It can be specified in several ways:<br><b>SCSI Bus,ID,LUN:</b> <I>0,0,0</I> (for a device at SCSI bus 0, ID 0, LUN 0). You can find these using <I>wodim -scanbus</I>.<br><b>Device Path:</b> <I>/dev/sr0</I> (common on Linux for the first optical drive).<br><b>ATAPI Device:</b> <I>ATAPI:0,0,0</I> (for ATAPI drives, sometimes requires SCSI emulation in the kernel).


title: HISTORY
content:
<i><b>wodim</b></i> emerged as a free and open-source alternative to <i>cdrecord</i>, which was originally part of the <i>cdrtools</i> package developed by Joerg Schilling. Due to changes in <i>cdrtools</i>' licensing terms (from GPL to CDDL), many Linux distributions (like Debian and Ubuntu) opted to fork <i>cdrecord</i> to maintain a fully GPL-licensed disc burning utility. This fork resulted in <i>wodim</i> (Write Optical Disc IMg), which is typically found within the <i>cdrkit</i> package. It aims to provide compatible functionality with its predecessor while adhering to open-source licensing principles, ensuring its availability and continued development in mainstream Linux distributions.


title: PARAMETERS
content:
<b><i>--device &lt;device&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Create a bootable USB drive by formatting the entire specified device (e.g., <i>/dev/sdX</i>).<br><br><b><i>--partition &lt;partition&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Create a bootable Windows installation on an existing partition (e.g., <i>/dev/sdXN</i>), preserving other partitions on the disk.<br><br><b><i>--target-filesystem &lt;filesystem&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify the target filesystem for the USB drive (e.g., <i>NTFS</i>, <i>FAT32</i>). The default is typically NTFS for larger Windows images.<br><br><b><i>--label &lt;label&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set a custom volume label for the target USB drive.<br><br><b><i>--no-grub-efi</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Do not install the GRUB EFI bootloader for UEFI boot. Use this option if you encounter boot issues or prefer other boot methods.<br><br><b><i>--wimlib-imagex</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Force the use of <i>wimlib-imagex</i> for handling <i>install.wim</i> files, which can sometimes resolve issues with large files.<br><br><b><i>--verbose</i>, <i>--debug</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Increase verbosity or enable debug output, providing more detailed information about the process.<br><br><b><i>--help</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a comprehensive help message and exit.<br><br><b><i>--version</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display version information of <b>woeusb</b> and exit.<br><br><b><i>&lt;source&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to the Windows ISO image file (e.g., <i>/path/to/windows.iso</i>) or a directory containing extracted Windows installation files.<br><br><b><i>&lt;target&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to the target USB device (e.g., <i>/dev/sdX</i>) or partition (e.g., <i>/dev/sdXN</i>). <b>Use extreme caution when specifying the target to avoid data loss.</b><br><br>


title: DESCRIPTION
content:
<b>WoeUSB</b> is a free and open-source utility for Linux that enables users to create a bootable Windows installation USB stick from an ISO image or a DVD. It supports both legacy BIOS and UEFI boot modes, making it versatile for various systems. Essentially, it takes a Windows ISO file and prepares a USB drive so that it can be used to install Windows onto a computer. <b>WoeUSB</b> handles the necessary formatting, copying of files, and setting up the bootloader, simplifying a task that can otherwise be complex. It is particularly useful for Linux users who need to create Windows installation media without resorting to a Windows machine. <b>WoeUSB</b> is a continuation of the <b>WinUSB</b> project, providing ongoing support and development for this crucial functionality.


title: CAVEATS
content:
<b>Data Loss Risk:</b> Using the <i>--device</i> option will completely erase all data on the specified USB drive. Ensure you select the correct target device (e.g., <i>/dev/sdb</i>, not <i>/dev/sda</i>) to prevent accidental data loss on your system's hard drive.<br><b>Root Privileges:</b> <b>WoeUSB</b> requires root privileges to access and format USB devices. It must be run with <i>sudo</i> (e.g., <i>sudo woeusb ...</i>) or as the root user.<br><b>Windows ISO Compatibility:</b> While generally compatible, some highly customized or non-standard Windows ISOs might not work as expected. Ensure you are using an official or well-known Windows ISO.<br><b>Time Consumption:</b> The process can take a significant amount of time depending on the size of the ISO, the speed of the USB drive, and the host system's performance.


title: USAGE MODES
content:
<b>WoeUSB</b> primarily supports two distinct usage modes:<br><br><b>Device Mode:</b> <i>woeusb --device &lt;iso_path&gt; &lt;target_device&gt;</i><br>This is the most common and recommended mode. It will format the entire specified USB device and prepare it to be bootable. This method ensures a clean and compatible installation.<br><br><b>Partition Mode:</b> <i>woeusb --partition &lt;iso_path&gt; &lt;target_partition&gt;</i><br>This mode allows installing Windows onto an existing partition on a USB drive, leaving other partitions on the same disk intact. While flexible, it requires careful handling to ensure the target partition is correctly identified and is suitable for Windows installation (e.g., sufficiently large and formatted correctly).


title: HISTORY
content:
<b>WoeUSB</b> originated as a fork of the popular <b>WinUSB</b> project, which ceased active development. Faced with the ongoing need for a reliable tool to create bootable Windows USB drives from Linux, developers picked up the mantle, leading to the creation of <b>WoeUSB</b>. This initiative ensures continued compatibility with newer Windows versions and various Linux distributions, providing a vital utility for dual-booters, system administrators, and anyone needing to prepare Windows installation media from a Linux environment.


title: SYNOPSIS
content:
wofi [<I>options</I>]<br>wofi [<I>options</I>] --dmenu [<I>options</I>]<br>wofi [<I>options</I>] --show <I>mode</I> [<I>options</I>]


title: PARAMETERS
content:
<b>--dmenu</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Run in dmenu compatibility mode</I>, reading input from stdin and writing selected output to stdout.<br><br><b>--show <mode></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Display entries from a specific mode</I>, like <B>run</B> (applications in PATH), <B>drun</B> (desktop entries), or <B>bemenu</B> (stdin/stdout).<br><br><b>-c <file>, --config <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Specify a custom configuration file</I> for wofi.<br><br><b>-s <file>, --style <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Load a CSS style file</I> to customize wofi's appearance.<br><br><b>-i, --insensitive</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Perform case-insensitive matching</I> when searching for entries.<br><br><b>-p <text>, --prompt <text></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Set the text displayed as the prompt</I> in the input field.<br><br><b>-H <val>, --height <val></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Set the window height</I> in percentage or pixels.<br><br><b>-W <val>, --width <val></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Set the window width</I> in percentage or pixels.<br><br><b>-x <val>, --x <val></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Set the X-position</I> of the window.<br><br><b>-y <val>, --y <val></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Set the Y-position</I> of the window.<br><br><b>-a <pos>, --anchor <pos></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Anchor the window</I> to a specific position (e.g., <B>top</B>, <B>bottom</B>, <B>center</B>).<br><br><b>-k <key>, --keybind <key></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Define custom keybindings</I> for actions within wofi.<br><br><b>-n, --normal-window</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Spawn wofi as a normal window</I> instead of an override-redirect window.<br><br><b>-f, --fork</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Fork wofi into the background</I> after launching, allowing the parent process to exit.<br><br><b>-t <cmd>, --term <cmd></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Specify the terminal emulator command</I> to use when launching applications in <B>run</B> mode.<br><br><b>--allow-markup</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Enable Pango markup</I> for richer text formatting in entry descriptions.<br><br><b>--columns <val></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Set the number of columns</I> to display entries.<br><br><b>--hide-scroll</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Hide the scrollbar</I> in the entry list.<br><br><b>--cache-file <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Specify a cache file</I> for <B>drun</B> mode to remember recent applications.<br><br><b>--exec-search</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Execute the search string directly</I> if no results are found.<br><br><b>--pass-through</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Pass search string to stdin of command</I> if no results.<br><br><b>--sort-order <order></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Set the sorting order</I> for entries (e.g., <B>alpha</B>, <B>recent</B>, <B>custom</B>).<br><br><b>--custom-order-file <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<I>Specify a file for custom sorting order</I> in <B>drun</B> mode.<br><br>


title: DESCRIPTION
content:
wofi is a <I>highly customizable application launcher and menu utility</I> specifically designed for the <I>Wayland compositor protocol</I>. It serves as a modern alternative to traditional X11 tools like rofi or dmenu, providing a lightweight yet powerful interface for launching applications, executing commands, and selecting items from various lists. wofi boasts <I>extensive styling capabilities through CSS</I>, allowing users to tailor its appearance to match their desktop environment perfectly. It supports multiple modes of operation, including a "dmenu"-like interaction for scripting, a "run" mode for launching applications found in the PATH, and a "bemenu" mode. Its simplicity in configuration, combined with its flexibility, makes it a popular choice for users on Wayland-based systems seeking an efficient and visually integrated launcher.


title: CAVEATS
content:
<I>Wayland-only:</I> wofi is designed exclusively for Wayland compositors and will not work on X11.<br><I>GTK-based:</I> Its appearance and behavior are influenced by GTK themes and settings.<br><I>No built-in plugins:</I> Unlike some other launchers, wofi focuses on core functionality and relies on external scripts for advanced integrations (e.g., clipboard history, emoji pickers).


title: THEMING WITH CSS
content:
wofi's appearance is fully controlled by <I>CSS files</I>. Users can create custom <B>.css</B> files to change colors, fonts, sizes, padding, and more, offering a high degree of visual customization.


title: CONFIGURATION FILE
content:
wofi uses a simple <I>configuration file</I> (default: <B>~/.config/wofi/config</B>) to set persistent options and modes, making it easier to manage complex setups without long command-line arguments.


title: HISTORY
content:
wofi emerged as a solution for users migrating from X11 to Wayland who were accustomed to the functionality of launchers like rofi and dmenu. Developed specifically for the Wayland environment, wofi aims to provide a <I>lightweight, fast, and highly customizable</I> alternative. Its development focus has been on Wayland compatibility, GTK integration, and flexible CSS-based theming, making it a popular choice in the Wayland ecosystem for application launching and interactive scripting.


title: PARAMETERS
content:
<b>-i <interface></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the network interface through which to send the magic packet. For example, <i>eth0</i> or <i>enp0s3</i>. Useful when a system has multiple network adapters.<br><br><b>-p <port></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Defines the UDP port number to send the magic packet to. The default and standard port for Wake-on-LAN is 9. Other common ports include 0 or 7.<br><br><b>-b <broadcast-address></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the target broadcast address instead of the default (usually 255.255.255.255 or the subnet's broadcast address). This can be useful in specific network configurations.<br><br><b>-s <secure-on-password></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a SecureON password if the target NIC requires one. This is a hexadecimal string. Note: Not all WoL implementations support or require this.<br><br><b>-v</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables verbose output, providing more details about the packet being sent and the process.<br><br><b>-h</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a help message, listing available options and usage information.<br><br>


title: DESCRIPTION
content:
The <b>wol</b> command is a utility used to send a "magic packet" over a local area network to wake up a powered-off or sleeping computer. This functionality, known as Wake-on-LAN (WoL), allows a network administrator or user to remotely power on a machine without physical access. The magic packet is a special broadcast frame containing the MAC address of the target network interface card (NIC) repeated 16 times, preceded by a 6-byte synchronization stream of all ones (FF FF FF FF FF FF). When a WoL-enabled NIC receives this packet, and if it's configured correctly, it triggers the system to power on. <b>wol</b> simplifies this process by constructing and sending the packet to the specified MAC address, often broadcasting it to ensure it reaches the target even if its IP address is unknown or unavailable. It's an indispensable tool for remote management, especially in environments where servers or workstations need to be brought online outside of business hours.


title: CAVEATS
content:
<I>Network Configuration:</I> Wake-on-LAN typically only works within the same broadcast domain (subnet). Waking a computer across different subnets or over the internet usually requires specific router/firewall configurations (e.g., port forwarding, static ARP entries, or configuring "IP helper" addresses for directed broadcasts), which can pose security risks if not managed carefully.<br><I>Hardware Support:</I> The target computer's network interface card (NIC) and motherboard (BIOS/UEFI) must support Wake-on-LAN and have it enabled in the firmware settings. Some power management settings in the operating system might also need to be configured.<br><I>Security:</I> Unless using a SecureON password (which is not widely supported or used), the magic packet itself is not encrypted or authenticated, meaning anyone on the local network can potentially send a wake-up command if they know the MAC address.


title: MAGIC PACKET STRUCTURE
content:
The magic packet is a broadcast frame consisting of 6 bytes of <i>FF</i> (hexadecimal), followed by 16 repetitions of the target computer's 6-byte MAC address. This 102-byte payload is typically sent over UDP to port 7 or 9. The specific structure allows the NIC to easily detect and process the wake-up signal even when the main system is powered off or in a low-power state.


title: PREREQUISITES FOR WAKE-ON-LAN
content:
For <b>wol</b> to successfully wake a machine, several conditions must be met on the target system:<br>1. The network card must support WoL (most modern cards do).<br>2. WoL must be enabled in the computer's BIOS/UEFI settings. This often involves options like "Power On By PCI-E/PCI", "Wake on LAN", or similar.<br>3. The operating system's power management settings might need adjustment to allow the NIC to receive wake-up calls (e.g., "Allow this device to wake the computer" in Windows device manager).<br>4. The computer needs to be connected to the network via an Ethernet cable (WoL over Wi-Fi is less common and often requires specific hardware/driver support).


title: HISTORY
content:
The concept of Wake-on-LAN was developed by AMD and IBM in 1995. It was integrated into various motherboard and network card chipsets starting in the late 1990s as a feature for remote system management. The <b>wol</b> utility, along with alternatives like <i>etherwake</i> and <i>wakeonlan</i>, emerged in the Linux ecosystem to provide command-line access to this hardware capability, allowing administrators to easily send the required magic packets. Its development paralleled the increasing need for remote administration tools in networked environments.


title: SYNOPSIS
content:
<b>wondershaper</b> <i>&lt;interface&gt;</i> <i>&lt;download_rate&gt;</i> <i>&lt;upload_rate&gt;</i><br><b>wondershaper</b> <b>clear</b> <i>&lt;interface&gt;</i><br><b>wondershaper</b> <b>-c</b> <i>&lt;interface&gt;</i><br><b>wondershaper</b> <b>-a</b> <i>&lt;interface&gt;</i> <b>-d</b> <i>&lt;download_rate&gt;</i> <b>-u</b> <i>&lt;upload_rate&gt;</i>


title: PARAMETERS
content:
<b><i>&lt;interface&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The network interface to shape (e.g., eth0, wlan0).<br><br><b><i>&lt;download_rate&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The desired maximum download speed in kilobits per second (kbit/s). This indirectly limits incoming traffic.<br><br><b><i>&lt;upload_rate&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The desired maximum upload speed in kilobits per second (kbit/s).<br><br><b>clear</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Removes any existing <b>wondershaper</b> traffic shaping rules from the specified interface.<br><br><b>-c, --clear</b><br>&nbsp;&nbsp;&nbsp;&nbsp;An alias for the 'clear' command, used to remove shaping rules.<br><br><b>-a, --adapter <i>&lt;interface&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the network interface to apply shaping to.<br><br><b>-d, --download <i>&lt;rate&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the download speed limit in kbit/s.<br><br><b>-u, --upload <i>&lt;rate&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the upload speed limit in kbit/s.<br><br><b>-v, --version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the <b>wondershaper</b> script version.<br><br><b>-h, --help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows the command's help message.<br><br>


title: DESCRIPTION
content:
<b>wondershaper</b> is a simple shell script designed to easily manage and limit network bandwidth on a Linux interface. It acts as a high-level wrapper around the more complex <b>tc</b> (traffic control) and <b>iptables</b> commands, providing basic Quality of Service (QoS) functionality. Its primary goal is to prevent large downloads or uploads from monopolizing the entire network connection, ensuring a smoother internet experience for interactive tasks like web browsing, online gaming, and video calls. It achieves this by prioritizing small, interactive packets and limiting the overall data rates for both upload and effective download speeds. While not suitable for intricate traffic management, it offers a quick and effective solution for common home or small office network congestion issues.


title: CAVEATS
content:
Requires root privileges to execute.<br>The script uses <b>tc</b> (traffic control) and <b>iptables</b> under the hood. Ensure these utilities are installed and functional on your system.<br>The specified "download" limit for <b>wondershaper</b> primarily limits <i>your</i> interface's <i>upload</i> capacity, which in turn causes the remote sender to slow down due to dropped packets, thereby achieving an effective download limit. It does not directly limit incoming data rate.<br>It's a relatively simple script; for complex or dynamic QoS requirements, direct <b>tc</b> configuration or dedicated QoS solutions might be necessary.


title: HOW IT WORKS
content:
<b>wondershaper</b> sets up Hierarchical Token Bucket (HTB) and Stochastic Fairness Queueing (SFQ) disciplines on the specified interface. It uses <b>iptables</b> to mark different types of traffic (e.g., interactive, bulk) and then applies different queueing disciplines and priorities based on these marks. This ensures that latency-sensitive traffic (like SSH, DNS, or ACK packets) gets priority over bulk data transfers (like large downloads/uploads).


title: UNITS
content:
It is crucial to remember that <i>&lt;download_rate&gt;</i> and <i>&lt;upload_rate&gt;</i> values are specified in <i>kilobits per second (kbit/s)</i>, not kilobytes per second (KB/s) or megabits per second (Mbit/s). For example, 1 Mbps = 1000 kbit/s.


title: HISTORY
content:
<b>wondershaper</b> emerged as a popular script in the early 2000s, designed to simplify the often-intimidating configuration of Linux's <b>tc</b> command. Its aim was to provide a straightforward way for users to implement basic traffic shaping and QoS without delving into the complexities of <b>netfilter</b> and <b>iproute2</b>. It has been included in various Linux distributions' utility sets or as a widely shared standalone script, remaining a go-to for quick and easy bandwidth management.


title: SYNOPSIS
content:
<b>word-list-compress</b> [<b>-d</b> | <b>-u</b>] [<b>-o</b> <i>output_file</i>] [<i>input_file</i>]


title: PARAMETERS
content:
<b><b>-d</b>, <b>--decompress</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Decompresses the specified <i>cracklib</i> word list. Without this option, the command compresses the input.<br><br><b><b>-u</b>, <b>--uncompress</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Alias for <b>-d</b>; decompresses the word list.<br><br><b><b>-o</b> <i>FILE</i>, <b>--output=</b><i>FILE</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Writes the output (compressed or decompressed) to the specified <i>FILE</i> instead of standard output. If not provided, output goes to <b>stdout</b>.<br><br><b><i>input_file</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The path to the input word list file. If omitted, <b>word-list-compress</b> reads from standard input (<b>stdin</b>).<br><br>


title: DESCRIPTION
content:
The <b>word-list-compress</b> command is a utility from the <i>cracklib</i> library, designed to efficiently store and retrieve large word lists, typically used for password strength checking. It employs a delta-encoding compression scheme, which significantly reduces the size of a sorted word list by storing only the differences between consecutive words. This makes it possible to manage very large dictionaries with a smaller memory footprint and faster lookup times, crucial for performance in applications like password validators. The command can both compress a standard newline-separated word list into the specialized <i>cracklib</i> binary format and decompress it back to a human-readable text format. The compressed format is specifically designed for use by other <i>cracklib</i> utilities, such as <b>cracklib-check</b> and <b>cracklib-dict-create</b>.


title: CAVEATS
content:
The input word list for compression <i>must be sorted lexicographically</i> for the delta-encoding scheme to be effective. The compressed output is a binary format specific to <i>cracklib</i> and is not directly human-readable. Decompression requires sufficient memory to hold the dictionary in its decompressed form.


title: INPUT/OUTPUT BEHAVIOR
content:
When no <i>input_file</i> is specified, <b>word-list-compress</b> reads from <b>stdin</b>. Similarly, if no output file is specified with <b>-o</b>, the result is written to <b>stdout</b>. This allows for piping and redirection with other commands.


title: COMPRESSED FORMAT
content:
The output of compression is a highly optimized, binary format designed for rapid dictionary lookups by <i>cracklib</i> functions. It contains a magic number, offsets, and delta-encoded word data. This format is not intended for direct human inspection.


title: HISTORY
content:
<b>word-list-compress</b> is a fundamental component of the <i>cracklib</i> suite, which originated from Alec Muffett's <i>crack</i> password guessing program in the early 1990s. Its primary purpose has always been to facilitate the efficient storage and manipulation of large password dictionaries. The command's core functionality, based on delta-encoding for compression, has remained largely consistent, reflecting its robust and effective design for managing security-critical word lists.


title: SYNOPSIS
content:
<b>wordgrinder</b> [<I>OPTIONS</I>] [<I>FILE</I>]<br><b>wordgrinder --convert</b> <I>INFILE</I> <I>OUTFILE</I>


title: PARAMETERS
content:
<b>--help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the help message and exits.<br><br><b>--version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the program version and exits.<br><br><b>--import <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Imports the specified file into a new WordGrinder document. Supports various formats.<br><br><b>--export <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Exports the currently loaded document to the specified file, inferring format from the extension.<br><br><b>--convert <in> <out></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Converts an input file to an output file without launching the full editor.<br><br><b>--read-stdin</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Reads document content from standard input instead of a file.<br><br><b>--write-stdout</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Writes the document content to standard output upon exit, often used with --export.<br><br><b>--tty <device></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a particular TTY device to use (e.g., /dev/ttyS0).<br><br><b>--no-auto-backup</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disables the automatic backup feature.<br><br><b>--no-spell-check</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disables the integrated spell checker.<br><br><b>--no-smart-quotes</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents the automatic conversion of straight quotes to curly (smart) quotes.<br><br><b>--tab-width <num></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the display width of tab characters (default is 8).<br><br><b>--key-bindings <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Loads custom key bindings from the specified Lua file.<br><br><b>--theme <theme_name></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the display theme for the editor.<br><br><b>--rcfile <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Loads a custom configuration file instead of the default.<br><br>


title: DESCRIPTION
content:
<b>wordgrinder</b> is a full-screen, character-based word processor designed for the Linux terminal. It offers a minimalist, distraction-free writing environment, focusing on content creation rather than complex formatting or graphical elements. While it's primarily a plain text editor, it supports essential text formatting like <b>bold</b>, <i>italic</i>, underline, headings, and lists.<br><br>Unlike traditional graphical word processors, <b>wordgrinder</b> does not support images, tables, or complex page layouts. It saves documents in its own proprietary `.wg` format but provides robust import and export capabilities for common formats such as HTML, ODT (OpenDocument Text), Markdown, LaTeX, and plain text.<br><br>Its strength lies in its lightweight nature, ability to run on virtually any terminal, and its keyboard-centric interface, making it ideal for writers, programmers, or anyone who prefers a fast, no-frills environment for drafting text.


title: CAVEATS
content:
<b>Terminal-based:</b> WordGrinder operates entirely within the terminal. It lacks a graphical user interface, limiting mouse interaction and visual fidelity.<br><b>Limited Formatting:</b> While it supports basic text styling, it cannot handle complex layouts, embedded images, tables, or advanced typography found in GUI word processors.<br><b>Proprietary Format:</b> Documents are natively saved in WordGrinder's `.wg` format, requiring conversion for use with other applications.<br><b>Keyboard-Centric:</b> Efficient use relies heavily on keyboard shortcuts, which might require a learning curve for new users.


title: FILE FORMATS
content:
WordGrinder uses its own internal binary `.wg` format for saving documents. For interoperability, it supports importing and exporting a wide range of formats, including HTML, ODT (OpenDocument Text), Markdown, LaTeX, Troff, and plain text. The `--convert` option is particularly useful for batch conversions.


title: KEY BINDINGS
content:
The application is highly keyboard-driven. Common operations are mapped to <i>Ctrl</i> and <i>Alt</i> key combinations. For example, <i>Ctrl-S</i> saves the document, <i>Ctrl-X</i> exits, <i>Ctrl-B</i> toggles bold, and <i>Ctrl-I</i> toggles italic. Users can customize key bindings extensively via a Lua configuration file, typically found at `~/.wordgrinder/keybindings.lua`.


title: CORE PHILOSOPHY
content:
WordGrinder adheres to principles of 'plain text first,' emphasizing content over elaborate presentation. It's designed to 'run anywhere' on virtually any terminal, making it highly portable. Its 'distraction-free' interface, with minimal on-screen clutter, helps writers focus solely on their prose.


title: HISTORY
content:
Created by David Given and first released around 2011, <b>wordgrinder</b> emerged from a desire for a minimalist, distraction-free word processor that could run efficiently in a terminal environment. Its development focused on core writing functionalities, harking back to the simplicity of early text editors while offering modern conveniences like basic formatting and robust import/export. It appeals to a niche audience of retro computing enthusiasts, minimalists, and writers seeking an unencumbered creative space, and continues to be actively maintained.


title: SYNOPSIS
content:
<i><b>worm</b> is not a standard Linux command. Therefore, no syntax or usage synopsis exists.</i><br><br>The term "worm" refers to a type of self-replicating malware, not an executable program found in typical Linux distributions.


title: PARAMETERS
content:
<b>N/A</b><br>&nbsp;&nbsp;&nbsp;&nbsp;This field is not applicable as <b>worm</b> is not a recognized Linux command with configurable options or arguments.<br><br>


title: DESCRIPTION
content:
The term "worm" in the context of computing refers to a type of self-replicating malware, not a standard Linux command or executable utility. Computer worms are standalone malicious programs that replicate themselves to spread to other computers, typically without human intervention. They often exploit vulnerabilities in network protocols or operating systems to propagate.<br><br>While there is no Linux command named "worm" that a user would execute for legitimate purposes, Linux systems can, like any operating system, be potential targets for malware, including worms. However, due to Linux's robust permission model, package management systems, and diverse distributions, general-purpose worms are historically less prevalent on Linux compared to other operating systems. System administrators employ various tools and security practices (e.g., firewalls, regular updates, secure configurations) to protect against all forms of malware, including those that might exhibit worm-like behavior.


title: CAVEATS
content:
The primary caveat is that "worm" is not a command; attempting to execute it will likely result in a "command not found" error. <br><br>From a security perspective, actual computer worms pose significant threats, leading to resource depletion, data corruption, and unauthorized access. Linux systems, while generally more resilient, are not immune and require diligent security practices like regular updates, robust firewalls, and cautious execution of unknown scripts to prevent and mitigate such threats.


title: SECURITY BEST PRACTICES AGAINST MALWARE
content:
To protect Linux systems from malware, including potential worm-like threats, it is crucial to:<br><i>1. Regularly update</i> your system and installed software to patch security vulnerabilities.<br><i>2. Implement robust firewalls</i> (e.g., using `iptables` or `ufw`) to restrict network access.<br><i>3. Use strong, unique passwords</i> and multi-factor authentication where possible.<br><i>4. Operate with least privilege</i>, avoiding root access for daily tasks.<br><i>5. Be cautious with unknown scripts or executables</i>, and only download software from trusted repositories.<br><i>6. Employ server-side anti-malware scanners</i> for critical systems.


title: HISTORY
content:
The concept of "computer worms" dates back to the 1970s, with early research at Xerox PARC. The first widely recognized internet worm was the Morris Worm in 1988, which significantly impacted early internet infrastructure. Subsequent worms like Code Red (2001) and Nimda (2001) demonstrated the potential for rapid global infection and disruption. This history relates to the evolution of malware and cybersecurity challenges, not the development or usage of a specific Linux command.


title: SYNOPSIS
content:
<i>wormhole</i> [<i>GLOBAL_OPTIONS</i>] <i><SUBCOMMAND></i> [<i>SUBCOMMAND_OPTIONS</i>] [<i>ARGUMENTS</i>]<br><br><b>Common Subcommands:</b><br><i>wormhole send</i> [<i>OPTIONS</i>] <i>FILE_OR_DIRECTORY</i><br><i>wormhole send</i> [<i>OPTIONS</i>] <i>--text TEXT_TO_SEND</i><br><i>wormhole receive</i> [<i>OPTIONS</i>] [<i>CODE</i>]


title: PARAMETERS
content:
<b><b>Global Options:</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Options applicable to the <i>wormhole</i> command itself.<br><br><b><i>--version</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show program's version number and exit.<br><br><b><i>--help, -h</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show a help message and exit.<br><br><b><i>--code-length <N></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Use a code of length N words (default: 2).<br><br><b><i>--transit-helper <url></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Override the default transit relay server URL.<br><br><b><i>--rendezvous-url <url></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Override the default rendezvous server URL.<br><br><b><i>--allocate-relay</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Allocate a public relay for potentially faster and more reliable connections (when direct connection fails).<br><br><b><i>--hide-progress</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Suppress the progress bar during file transfers.<br><br><b><b>Send Subcommand Options:</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Options specific to the <i>wormhole send</i> subcommand.<br><br><b><i>--text, -t</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Send a text message instead of a file or directory.<br><br><b><i>--verify</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Ask the receiver to verify a checksum of the transferred data.<br><br><b><b>Receive Subcommand Options:</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Options specific to the <i>wormhole receive</i> subcommand.<br><br><b><i>--accept-file</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Automatically accept the transfer without prompting (use with caution, unsafe if sender is unknown).<br><br><b><i>--output-file <filename>, -o <filename></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Write received data to the specified filename instead of the default.<br><br>


title: DESCRIPTION
content:
<i>magic-wormhole</i> is a command-line tool that allows you to securely and simply transfer files, directories, or short pieces of text between computers. It uses a PAKE (Password-Authenticated Key Exchange) protocol to establish a secure, end-to-end encrypted channel using a short, human-speakable code.<br><br>The process involves one party sending an item and getting a unique 'wormhole code', which they then verbally or securely share with the receiving party. The receiving party enters this code to initiate the transfer. This method avoids the need for complex network configurations, IP addresses, or pre-shared keys, making it highly user-friendly and robust against many common network attacks. Data is encrypted in transit and never stored on intermediary servers.


title: CAVEATS
content:
Requires both sender and receiver to be online simultaneously for the initial connection handshake. The system relies on a public 'rendezvous server' for initial key exchange; while the server never sees the plaintext data or shared secrets, its availability and integrity are crucial for the connection setup. Self-hosting a server is an option for increased control. It is not a continuous tunnel or VPN; it's designed for one-off file/text transfers. The security fundamentally relies on the out-of-band sharing of the wormhole code. If the code is intercepted or guessed, the security is compromised.


title: PAKE PROTOCOL
content:
<i>magic-wormhole</i> uses SPAKE2+, a Password-Authenticated Key Exchange protocol. This allows two parties to agree on a strong cryptographic key based on a low-entropy password (the wormhole code) without revealing the password itself, even to an eavesdropper or the rendezvous server. This ensures that only someone with the correct code can join the secure channel.


title: RENDEZVOUS SERVER VS. TRANSIT RELAY
content:
The 'rendezvous server' is used only for the initial handshake and exchange of encrypted PAKE messages, helping the two peers find each other. Once the secure channel is established, data often flows directly peer-to-peer. If a direct connection isn't possible (e.g., due to NAT/firewall), a 'transit relay' is used to tunnel the encrypted data. Neither the rendezvous server nor the transit relay ever see the unencrypted file contents.


title: HISTORY
content:
<i>magic-wormhole</i> was created by Brian Warner and first released around 2016. Its primary goal was to provide a secure, simple, and reliable method for transferring data between arbitrary computers, bypassing common complexities like firewalls and NATs, and without requiring pre-configuration or trusting intermediate servers with data. It leverages the SPAKE2+ PAKE (Password Authenticated Key Exchange) protocol, which allows two parties to derive a shared secret key over an insecure channel, given they both know a short, low-entropy password (the wormhole code). This design makes it particularly suitable for verbal code exchange.


title: PARAMETERS
content:
<b><b>-h</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a help message, explaining the available command-line options.<br><br><b><b>-f</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Makes the worm move faster, increasing the game's difficulty.<br><br><b><b>-l</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables 'looping' behavior; the worm wraps around the screen edges, appearing on the opposite side when it goes off-screen.<br><br><b><b>-s</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Activates 'stay' mode; the screen is not cleared between moves, leaving a persistent trail of the worm's path.<br><br><b><b>-w</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables 'walls' mode; the worm dies upon hitting the screen boundaries, disabling the looping behavior.<br><br>


title: DESCRIPTION
content:
The <b>worms</b> command invokes a classic, <i>text-based arcade game</i> played directly in the terminal. The objective is to control a 'worm' that continuously moves and grows longer. Players must guide the worm to avoid colliding with the screen boundaries or its own tail. It's a simple yet engaging game often found in the <b>bsdgames</b> package, representing an early form of terminal entertainment before the advent of graphical user interfaces.<br><br>The game typically uses <i>arrow keys</i> for navigation, providing a straightforward and addictive experience focused on quick reflexes and spatial awareness. Its minimalist ASCII graphics are a hallmark of vintage console gaming.


title: CAVEATS
content:
The <b>worms</b> command is not a standard utility but rather an entertainment program. It is typically part of the <i>bsdgames</i> package or similar collections of classic Unix games and may not be installed by default on all Linux distributions. Users often need to install this package separately to play the game.


title: INSTALLATION
content:
On Debian/Ubuntu-based systems, you can install <b>worms</b> by installing the <i>bsdgames</i> package: <br><code>sudo apt install bsdgames</code><br>For Fedora/RHEL, it might be part of the <i>bsd-games</i> package, usually installed via <code>sudo dnf install bsd-games</code>.


title: CONTROLS
content:
Once launched, the worm's direction is controlled using the <i>arrow keys</i> on your keyboard (Up, Down, Left, Right). The game starts automatically upon execution.


title: GAMEPLAY
content:
The worm continuously moves. Your goal is to guide it, making sure it doesn't collide with the borders of the terminal window (unless 'looping' is enabled) or its own growing body. The game ends upon collision.


title: HISTORY
content:
The <b>worms</b> game, like many simple console games, has its roots in early computing environments, particularly Unix and BSD systems. It emerged during an era when graphical interfaces were nascent or non-existent, making text-based or 'ASCII art' games a popular form of user interaction and entertainment. It represents a long-standing tradition of including recreational software within standard system packages.


title: SYNOPSIS
content:
<i>wp</i> <b>&lt;command&gt;</b> [<b>&lt;subcommand&gt;</b>] [<i>&lt;args&gt;...</i>] [<i>--&lt;flag&gt;=&lt;value&gt;</i>]<br><br><b>&lt;command&gt;</b>: Primary command (e.g., <i>core</i>, <i>plugin</i>, <i>user</i>).<br><b>&lt;subcommand&gt;</b>: Specific action within a command (e.g., <i>core install</i>, <i>plugin activate</i>).<br><i>&lt;args&gt;...</i>: Positional arguments for the subcommand.<br><i>--&lt;flag&gt;=&lt;value&gt;</i>: Options or flags that modify command behavior.


title: PARAMETERS
content:
<b>--path=<path></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to the WordPress files. Defaults to current directory.<br><br><b>--url=<url></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The URL of the WordPress site. Helps WP-CLI determine site context.<br><br><b>--user=<id|login|email></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the user for operations, allowing actions to be attributed to a specific user.<br><br><b>--allow-root</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Permit WP-CLI to run as the root user. Use with extreme caution.<br><br><b>--skip-plugins[=<plugin-name>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Skip loading all or a specific plugin(s) to avoid conflicts or errors.<br><br><b>--skip-themes[=<theme-name>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Skip loading all or a specific theme(s).<br><br><b>--skip-packages</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Skip loading packages installed via <i>wp package install</i>.<br><br><b>--debug[=<group>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show all PHP errors and add verbosity to the output, useful for debugging.<br><br><b>--prompt[=<assoc>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prompt for missing positional arguments or flag values during execution.<br><br><b>--quiet</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Suppress informational messages and only output errors.<br><br><b>--version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display the current WP-CLI version number.<br><br><b>--info</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display details about the WP-CLI environment (PHP, MySQL, etc.).<br><br><b>--help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display help for a command or subcommand.<br><br>


title: DESCRIPTION
content:
WP-CLI is the official command-line interface for managing <b>WordPress</b> installations. It provides a powerful and efficient way to interact with your WordPress site directly from the terminal, eliminating the need for a web browser for many administrative and development tasks. Developers, system administrators, and even power users leverage <i>wp</i> to automate routine operations, troubleshoot issues, and manage various aspects of a WordPress site.<br><br>With <i>wp</i>, you can perform a wide range of actions, including installing and updating WordPress core, managing themes and plugins, creating and managing users, importing and exporting content, interacting with the database, clearing caches, and much more. Its hierarchical command structure makes it versatile, allowing for precise control over specific components of your WordPress environment. This tool significantly speeds up workflows for tasks that would otherwise require multiple clicks in the WordPress admin panel.


title: CAVEATS
content:
WP-CLI requires a functional <b>WordPress</b> installation and a compatible <b>PHP</b> environment. It is not a standard, pre-installed Linux utility and must be installed separately. Running commands with administrative privileges, especially database operations like <i>wp db drop</i>, can lead to irreversible data loss if not used carefully. Always back up your site before performing major operations.


title: COMMAND STRUCTURE
content:
<i>WP-CLI</i> operates with a hierarchical command structure. Commands are organized into namespaces (e.g., <i>core</i>, <i>plugin</i>, <i>user</i>), each containing multiple subcommands. For instance, to install WordPress, you use <i>wp core install</i>. To activate a plugin, you use <i>wp plugin activate</i>. This modular design allows for extensive functionality without an overly complex single command syntax.


title: INSTALLATION
content:
The recommended way to install <i>WP-CLI</i> is by downloading its PHAR (PHP Archive) file, which is a single executable file. Alternatively, it can be installed via Composer. Once installed, it's typically moved to a directory in your system's PATH (e.g., <i>/usr/local/bin</i>) to make it globally accessible as the <i>wp</i> command.


title: HISTORY
content:
The development of <b>WP-CLI</b> began around 2011 by <i>Daniel Bachhuber</i>, evolving from a personal tool into a robust, community-driven project. It rapidly gained popularity within the WordPress ecosystem due to its efficiency and power. In 2017, it became an official project on <i>WordPress.org</i>, signifying its importance and integration into the broader WordPress development landscape. Continuous development by a dedicated team and numerous contributors ensures its ongoing relevance and functionality.


title: PARAMETERS
content:
<b><I>interface</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The name of the network interface for which the event occurred (e.g., <b>wlan0</b>, <b>wlp2s0</b>).<br><br><b><I>command</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The type of event or state change reported by <i>wpa_supplicant</i>. Common commands include <b>CONNECTED</b>, <b>DISCONNECTED</b>, <b>BSSID-CHANGE</b>, <b>ASSOC-CHANGE</b>, <b>SCAN-RESULTS</b>, <b>TERMINATE</b>, <b>CTRL-REQ</b>, <b>EAP-AUTH</b>, <b>REASON</b>.<br><br>


title: DESCRIPTION
content:
<i>wpa_action</i> is a crucial helper utility, typically a shell script or a small binary, utilized by the <i>wpa_supplicant</i> daemon. It is not intended for direct user invocation. Instead, <i>wpa_supplicant</i> executes <i>wpa_action</i> automatically when significant events or state changes occur on a wireless interface, such as connecting to an access point, disconnecting, or roaming between BSSIDs.<br><br>Its primary role is to serve as an event hook manager. Upon execution, <i>wpa_action</i> usually interprets the passed arguments (interface and event type) and then triggers predefined scripts or actions located in specific directories (e.g., <i>/etc/wpa_supplicant/actions.d/</i> or <i>/etc/network/if-up.d/</i>, <i>/etc/network/if-down.d/</i>). This mechanism enables flexible automation for network configuration, like initiating DHCP requests, setting up routing, or running custom post-connection scripts, making the Wi-Fi connection process seamless and configurable without modifying <i>wpa_supplicant</i>'s core logic.


title: CAVEATS
content:
The exact implementation and location of <i>wpa_action</i> can vary significantly across different Linux distributions (e.g., a shell script in <i>/sbin/</i> or <i>/etc/wpa_supplicant/</i>, or a compiled binary). Users should generally avoid running <i>wpa_action</i> directly as it relies on <i>wpa_supplicant</i> to set up the appropriate environment variables and context for its operation. Its primary purpose is to act as an internal <i>wpa_supplicant</i> event handler.


title: ENVIRONMENT VARIABLES
content:
<i>wpa_action</i> often receives additional context via environment variables set by <i>wpa_supplicant</i>. Important variables can include <b>WPA_ID</b>, <b>WPA_IFNAME</b>, <b>WPA_EVENT</b>, <b>WPA_BSSID</b>, <b>WPA_SSID</b>, <b>WPA_MODE</b>, and others, providing detailed information about the network state change. These variables allow the triggered action scripts to react intelligently to specific connection details.


title: COMMON ACTIONS TRIGGERED
content:
When <i>wpa_action</i> is invoked, it typically initiates actions like:<br><i>• <b>Network Interface Management:</b></i> Bringing the network interface up (<b>ifup</b>) or down (<b>ifdown</b>).<br><i>• <b>IP Address Configuration:</b></i> Running DHCP clients (<b>dhclient</b> or <b>dhcpcd</b>) to obtain an IP address, subnet mask, gateway, and DNS servers.<br><i>• <b>Custom Script Execution:</b></i> Executing user-defined scripts in specific directories (e.g., <i>/etc/wpa_supplicant/actions.d/</i>, <i>/etc/network/if-up.d/</i>, <i>/etc/network/if-down.d/</i>) to handle post-connection tasks, such as mounting network shares or starting applications.


title: HISTORY
content:
<i>wpa_action</i> has been an integral part of the <i>wpa_supplicant</i> ecosystem since its early development. It was introduced to provide a flexible and extensible mechanism for handling network state changes without embedding distribution-specific network configuration logic directly into the <i>wpa_supplicant</i> daemon. Its design allows system administrators to customize network behaviors through external scripts, adapting to diverse network environments and configuration needs, which has been crucial for its long-term utility and adoption in various Linux distributions.


title: PARAMETERS
content:
<b><b>-B</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Run in the background as a daemon.</i><br>Detaches from the controlling terminal, making <b>wpa_supplicant</b> run as a background process.<br><br><b><b>-c</b> <i>&lt;config_file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Specify configuration file.</i><br>Mandatory for operation, this file contains network definitions, credentials, and other settings.<br><br><b><b>-i</b> <i>&lt;interface&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Specify wireless interface.</i><br>The name of the wireless interface (e.g., <code>wlan0</code>, <code>wlp3s0</code>) that <b>wpa_supplicant</b> should manage. Can be specified multiple times for multiple interfaces, often with <b>-N</b>.<br><br><b><b>-D</b> <i>&lt;driver&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Specify driver.</i><br>The Wi-Fi driver backend to use (e.g., <code>nl80211</code>, <code>wext</code>). <code>nl80211</code> is the modern default.<br><br><b><b>-f</b> <i>&lt;log_file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Log messages to file.</i><br>Redirects debug and informational output to the specified file, crucial for troubleshooting background processes.<br><br><b><b>-P</b> <i>&lt;pid_file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Write PID to file.</i><br>Writes the Process ID (PID) of the background <b>wpa_supplicant</b> instance to the specified file, useful for scripting daemon management.<br><br><b><b>-u</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Enable DBus control interface.</i><br>Allows external applications (like NetworkManager) to control <b>wpa_supplicant</b> via DBus.<br><br><b><b>-N</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Enable support for multiple interfaces.</i><br>Required if <b>-i</b> is used multiple times to manage several wireless interfaces concurrently.<br><br>


title: DESCRIPTION
content:
<i>wpa_background</i> is not a standalone Linux command. Instead, the term often refers to the operation of the <b>wpa_supplicant</b> utility running as a background daemon. <b>wpa_supplicant</b> is a crucial component for enabling WPA, WPA2, and WPA3 security for wireless network connections on Linux and BSD systems. When run in "background mode" (typically achieved using the <b>-B</b> command-line option), it detaches from the controlling terminal, allowing it to continuously manage wireless interfaces, perform authentication with access points, handle roaming, and maintain network connectivity without user interaction or occupying a shell.<br><br>This background operation is fundamental for persistent Wi-Fi connectivity on systems where <b>wpa_supplicant</b> is responsible for network management, such as laptops, servers, or embedded devices. It ensures that Wi-Fi connections are established automatically at boot-up and maintained silently in the background.


title: CAVEATS
content:
<ul><li><b>Root Privileges:</b> <b>wpa_supplicant</b> generally requires root privileges to manage network interfaces and configure Wi-Fi security.</li><li><b>Configuration Dependent:</b> Its functionality heavily relies on a correctly configured <b>wpa_supplicant.conf</b> file. Errors in this file can prevent connections.</li><li><b>Debugging Challenges:</b> Debugging a background process can be more challenging. Using the <b>-f</b> option to log output to a file and <b>wpa_cli</b> for status checks are essential for diagnosis.</li><li><b>Init System Management:</b> On most modern Linux distributions, <b>wpa_supplicant</b> is typically managed as a <b>systemd</b> service (e.g., <b>wpa_supplicant.service</b>) rather than directly invoked from the command line with <b>-B</b>.</li></ul>


title: DAEMONIZATION PRINCIPLE
content:
The <b>-B</b> option transforms <b>wpa_supplicant</b> into a daemon, meaning it runs independently of the terminal that launched it. It typically forks into the background, closes standard input/output, and continues execution. This is standard practice for services that provide continuous functionality.


title: SYSTEM INTEGRATION (E.G., SYSTEMD)
content:
While <b>-B</b> can be used manually, modern Linux systems primarily manage <b>wpa_supplicant</b> through init systems like <b>systemd</b>. A <b>systemd</b> service file (e.g., <b>wpa_supplicant@.service</b> or <b>wpa_supplicant.service</b>) specifies how <b>wpa_supplicant</b> should be started, including its configuration file, interface, and often implicitly handles daemonization and logging, abstracting away the direct use of <b>-B</b> for most users.


title: HISTORY
content:
<b>wpa_supplicant</b> was initially developed by Jouni Malinen as part of the Host AP project to provide WPA/WPA2 support for Linux. Its design has always included the ability to run as a background daemon, which is fundamental for providing continuous, reliable wireless connectivity without user intervention. Over time, it has evolved to support newer security standards like WPA3 and integrate better with modern Linux desktop environments and network management tools via interfaces like DBus. Its background operation remains a core feature, allowing it to seamlessly manage Wi-Fi connections from system startup.


title: SYNOPSIS
content:
<B>wpa_cli</B> [<I>options</I>] [<I>command</I>] [<I>arguments</I>]<br><br><I>Common usage:</I><br><B>wpa_cli</B> [<B>-i</B> <I>interface</I>]<br><I>Non-interactive mode:</I><br><B>wpa_cli</B> [<B>-i</B> <I>interface</I>] <I>command</I> [<I>arguments</I>]


title: PARAMETERS
content:
<b><b>-i</b> <I>interface</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify the network interface to control (e.g., wlan0, p2p-dev-wlan0). If not specified, <B>wpa_cli</B> attempts to guess.<br><br><b><b>-p</b> <I>path</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify the control interface path for <B>wpa_supplicant</B> (e.g., /var/run/wpa_supplicant).<br><br><b><b>-a</b> <I>action_file</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Run a specified script file when an event occurs, typically used in monitoring mode.<br><br><b><b>-B</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Run <B>wpa_cli</B> in the background. Useful for scripts that need to detach.<br><br><b><b>-P</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enable program mode, primarily used by external programs or scripts to manage <B>wpa_supplicant</B> through a simpler event-based interface.<br><br><b><b>-v</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show the version information of <B>wpa_cli</B>.<br><br><b><b>-h</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a short help message showing command-line options.<br><br><b><b>-s</b> <I>socket</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify the control socket path for interactive mode. Overrides the default or <B>-p</B> option for a specific socket file.<br><br><b><b>-g</b> <I>global_ctrl</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Connect to the global control interface of <B>wpa_supplicant</B>.<br><br><b><b>-t</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Attach to <B>wpa_supplicant</B> events (monitor mode). <B>wpa_cli</B> will display events as they happen.<br><br><b><b>-m</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Monitor mode, similar to <B>-t</B>, but may have subtle differences in how events are displayed or processed depending on the <B>wpa_supplicant</B> version.<br><br>


title: DESCRIPTION
content:
<B>wpa_cli</B> is the command-line client for <B>wpa_supplicant</B>, the Wi-Fi Protected Access client. It provides an interface to control and monitor the <B>wpa_supplicant</B> daemon, which handles wireless authentication and encryption for Linux systems. Users can use <B>wpa_cli</B> to scan for available Wi-Fi networks, add and manage network configurations (SSIDs, passwords, security protocols), connect to or disconnect from networks, and view the current connection status. It supports both interactive mode, where users enter commands one by one, and non-interactive mode, where a single command is executed directly, making it suitable for scripting network configurations.<br><br><B>wpa_cli</B> communicates with <B>wpa_supplicant</B> through a UNIX domain socket, allowing it to manage multiple interfaces if <B>wpa_supplicant</B> is configured to do so. It's an essential tool for headless systems, embedded devices, or for users who prefer command-line network management and direct interaction with the Wi-Fi stack.


title: CAVEATS
content:
Requires <B>wpa_supplicant</B> to be running and properly configured (e.g., with a control interface enabled) to function. If <B>wpa_supplicant</B> is not running or not accessible, <B>wpa_cli</B> will not be able to connect.<br><br>Permissions: Often requires root privileges (or to be part of the `netdev` or `wheel` group) to connect to <B>wpa_supplicant</B>'s control interface and make configuration changes. Without sufficient permissions, connection attempts will fail.<br><br>Persistent configuration: Changes made via <B>wpa_cli</B> are often temporary and not persistent across system reboots unless explicitly saved to the <B>wpa_supplicant</B> configuration file (e.g., `/etc/wpa_supplicant/wpa_supplicant.conf`) using the <B>save_config</B> command within <B>wpa_cli</B>.


title: COMMON INTERACTIVE COMMANDS
content:
When run without a command (interactive mode), <B>wpa_cli</B> provides a prompt where users can type commands. Some frequently used commands include:<br><ul><li><I>status</I>: Show current <B>wpa_supplicant</B> status and connection details.</li><li><I>scan</I>: Request a new scan for available Wi-Fi networks.</li><li><I>scan_results</I>: Display results from the last network scan.</li><li><I>add_network</I>: Add a new network configuration block.</li><li><I>set_network &lt;ID&gt; ssid "SSID"</I>: Set the SSID for a network by its ID.</li><li><I>set_network &lt;ID&gt; psk "password"</I>: Set the Pre-Shared Key (password) for a network.</li><li><I>enable_network &lt;ID&gt;</I>: Enable a specific configured network.</li><li><I>select_network &lt;ID&gt;</I>: Select and attempt to connect to a specific network.</li><li><I>remove_network &lt;ID&gt;</I>: Remove a network configuration by its ID.</li><li><I>list_networks</I>: List all currently configured networks with their IDs and states.</li><li><I>save_config</I>: Save the current <B>wpa_supplicant</B> configuration to its default file.</li><li><I>disconnect</I>: Disconnect from the currently associated network.</li><li><I>reassociate</I>: Reassociate with the current network (e.g., if connection drops).</li><li><I>quit</I>: Exit the <B>wpa_cli</B> interactive prompt.</li></ul>


title: SYSTEM INTEGRATION
content:
On many Linux distributions, <B>wpa_supplicant</B> (and consequently <B>wpa_cli</B>) is often integrated with higher-level network management services like NetworkManager or <B>systemd-networkd</B>. While <B>wpa_cli</B> offers direct control, tools like <B>nmcli</B> (for NetworkManager) or <B>networkctl</B> (for <B>systemd-networkd</B>) are typically preferred for daily user interaction on desktop systems as they provide a more abstracted and user-friendly interface. However, <B>wpa_cli</B> remains invaluable for debugging <B>wpa_supplicant</B> issues, for scripting complex Wi-Fi setups, or for use in minimal environments where full network managers are not installed.


title: HISTORY
content:
<B>wpa_cli</B> is an integral part of the <B>wpa_supplicant</B> project, which was primarily developed by Jouni Malinen starting around 2002-2003. It emerged as a robust solution for handling WPA, and later WPA2/WPA3, security protocols on Linux, addressing the limitations of older tools like <B>iwconfig</B> for modern wireless security. <B>wpa_cli</B> was designed as the primary user-facing command-line tool to interact with the <B>wpa_supplicant</B> daemon, providing a flexible way to manage complex wireless configurations. Its importance grew with the increasing adoption of Wi-Fi and its need for secure authentication, particularly for embedded systems, servers, and scripts where a graphical interface is not practical. Its development has consistently mirrored the evolution of Wi-Fi standards, integrating support for new features like P2P (Wi-Fi Direct) and advanced EAP methods.


title: PARAMETERS
content:
<b>SSID</b><br>&nbsp;&nbsp;&nbsp;&nbsp;The <b>Service Set Identifier</b> (network name) of the Wi-Fi network for which the PSK is to be generated.<br><br><b>passphrase</b><br>&nbsp;&nbsp;&nbsp;&nbsp;The <b>ASCII passphrase</b> for the Wi-Fi network. This passphrase must be between 8 and 63 characters long. If omitted, the command will read the passphrase from standard input, which is generally safer for security reasons.<br><br>


title: DESCRIPTION
content:
<i>wpa_passphrase</i> is a command-line utility that generates a 256-bit (64-character hexadecimal) WPA Pre-Shared Key (PSK) from a given network SSID (Service Set Identifier) and a human-readable passphrase. This PSK is essential for configuring WPA-Personal (WPA-PSK) or WPA2-Personal (WPA2-PSK) security for Wi-Fi networks.<br><br>The generated PSK is derived using the PBKDF2 (Password-Based Key Derivation Function 2) algorithm, as specified in IEEE 802.11i, ensuring a strong, non-reversible key. Rather than storing the plaintext passphrase directly in configuration files like <i>wpa_supplicant.conf</i>, it is highly recommended to use the generated PSK, enhancing security by preventing easy exposure of the network password.<br><br>This utility is an integral part of the <i>wpa_supplicant</i> suite, simplifying the process of setting up secure wireless connections by providing the necessary cryptographic material in the correct format.


title: CAVEATS
content:
<b>Security Concerns:</b> Providing the passphrase directly on the command line (e.g., <i>wpa_passphrase MyWiFi mysecretpassword</i>) can be a security risk. The passphrase may be visible to other users via the process list (<i>ps</i> command) and stored in shell history files. It is highly recommended to omit the passphrase from the command line and pipe it from another command (e.g., <i>echo "mysecretpassword" | wpa_passphrase MyWiFi</i>).<br><br><b>PSK Length:</b> The generated PSK is always a 64-character hexadecimal string, representing 256 bits. This is the standard length for WPA/WPA2-PSK.<br><br><b>Purpose Specific:</b> This command is specifically for generating PSKs for WPA-Personal and WPA2-Personal networks. It does not handle WPA-Enterprise (802.1X) or the newer WPA3-SAE mechanisms.


title: USAGE EXAMPLE
content:
To generate a PSK for a network named <i>"MyHomeWiFi"</i> with the passphrase <i>"SuperSecret123"</i>, you would typically run:<br><pre><code><b>$ wpa_passphrase MyHomeWiFi SuperSecret123<br></b></code></pre>For better security, especially to avoid the passphrase appearing in shell history or process lists, you can omit it and pipe it from standard input:<br><pre><code><b>$ echo "SuperSecret123" | wpa_passphrase MyHomeWiFi<br></b></code></pre>The output would look similar to:<br><pre><code><b>network={<br>\tssid="MyHomeWiFi"<br>\t#psk="SuperSecret123"<br>\tpsk=d41d8cd98f00b204e9800998ecf8427e<br>}</b></code></pre><br>The line starting with <i>psk=</i> contains the generated 64-character hexadecimal key.


title: INTEGRATION WITH WPA_SUPPLICANT.CONF
content:
The output format of <i>wpa_passphrase</i> is specifically designed to be directly usable within the <i>wpa_supplicant.conf</i> configuration file. You can copy the entire <i>network={}</i> block from its output into your configuration file, ensuring proper network setup with the securely generated PSK.


title: HISTORY
content:
<i>wpa_passphrase</i> is an integral part of the <i>wpa_supplicant</i> project, which was developed by Jouni Malinen. It emerged during the early 2000s as Wi-Fi security transitioned from the vulnerable WEP to the more robust WPA and subsequently WPA2 standards. Its development was crucial in providing a reliable and secure method for generating the necessary cryptographic keys for WPA/WPA2-Personal networks, becoming a cornerstone utility for Linux-based Wi-Fi configurations.


title: SYNOPSIS
content:
<b>wpa_supplicant</b> [<i>options</i>] <b>-i</b> <i>&lt;ifname&gt;</i> <b>-c</b> <i>&lt;config_file&gt;</i>


title: PARAMETERS
content:
<b><b>-i</b> <i>&lt;ifname&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the wireless interface name (e.g., <i>wlan0</i>) to be controlled by <i>wpa_supplicant</i>.<br><br><b><b>-c</b> <i>&lt;config_file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to the configuration file containing network definitions and global settings. This file specifies how to connect to various Wi-Fi networks.<br><br><b><b>-D</b> <i>&lt;driver&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Selects the wireless driver to use (e.g., <i>nl80211</i> for modern kernels, <i>wext</i> for older ones, <i>hostap</i> for access points). Defaults to <i>nl80211</i> if not specified.<br><br><b><b>-B</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs <i>wpa_supplicant</i> as a background daemon, detaching from the controlling terminal.<br><br><b><b>-P</b> <i>&lt;pid_file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a file where the process ID (PID) of the background daemon will be written.<br><br><b><b>-f</b> <i>&lt;log_file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Redirects all debug output and messages to the specified log file instead of standard output/error.<br><br><b><b>-K</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables debugging output of key material, but without logging sensitive key data itself. Useful for understanding authentication flows.<br><br><b><b>-e</b> <i>&lt;entropy_file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a file to read/write random data (entropy) for internal cryptographic operations.<br><br><b><b>-o</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Overwrites the configuration file with current network state, typically when using <i>wpa_cli save_config</i>.<br><br><b><b>-s</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables daemonization for systemd, causing <i>wpa_supplicant</i> to use a control socket for communication with systemd.<br><br><b><b>-u</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables the UNIX domain socket control interface, allowing tools like <i>wpa_cli</i> to communicate with the running daemon.<br><br><b><b>-v</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Increases the verbosity of the debug output. Can be specified multiple times for more detailed logs.<br><br><b><b>-t</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Adds timestamps to the debug messages, which is useful for analyzing logs over time.<br><br><b><b>-q</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables quiet mode, reducing the amount of standard output messages.<br><br><b><b>-h</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a help message with available command-line options and exits.<br><br>


title: DESCRIPTION
content:
<i>wpa_supplicant</i> is a crucial daemon for secure wireless networking on Linux and other Unix-like systems. It implements the IEEE 802.1X supplicant, WPA (Wi-Fi Protected Access), and WPA2 protocols for client devices. Its primary role involves managing authentication, key negotiation, and association with Wi-Fi networks. It supports a wide array of EAP methods (e.g., PEAP, TTLS, TLS), PSK (Pre-Shared Key), and older WEP connections.<br><br>Typically, <i>wpa_supplicant</i> runs in the background, interacting with the wireless driver and network interfaces to handle the complex authentication handshake required for modern secure wireless connections. While it can be invoked directly, it's often started and managed by higher-level network management tools like NetworkManager or systemd-networkd, or interactively controlled via its dedicated clients, <i>wpa_cli</i> and <i>wpa_gui</i>. It ensures data confidentiality and integrity for wireless communications.


title: CAVEATS
content:
<i>wpa_supplicant</i> generally requires <i>root</i> privileges to operate due to its interaction with low-level network device drivers and system resources. Its configuration can be complex, especially for enterprise-grade EAP methods, requiring precise syntax in the configuration file. Compatibility with specific wireless hardware and drivers can vary, though <i>nl80211</i> is the modern and preferred driver interface. Directly running <i>wpa_supplicant</i> might conflict with other network management services (e.g., NetworkManager, systemd-networkd) if they are also attempting to control the same wireless interface.


title: CONFIGURATION FILE FORMAT
content:
The <i>wpa_supplicant</i> configuration file (typically <i>/etc/wpa_supplicant/wpa_supplicant.conf</i>) defines the behavior of the daemon and the wireless networks it should attempt to connect to. It consists of global parameters and one or more <b>network={...}</b> blocks. Each network block specifies details like SSID, PSK (or password), key management (<i>key_mgmt</i>), and EAP method configurations, allowing for highly flexible and secure network setups.


title: CONTROL INTERFACE
content:
<i>wpa_supplicant</i> exposes a control interface, typically a UNIX domain socket (e.g., <i>/var/run/wpa_supplicant/wlan0</i>), that allows other applications to interact with it. This interface is utilized by client utilities such as <i>wpa_cli</i> (command-line) and <i>wpa_gui</i> (graphical) to query status, add/remove networks, initiate scans, and manage connections dynamically without restarting the daemon.


title: HISTORY
content:
<i>wpa_supplicant</i> was initially developed by Jouni Malinen, with its first public release around 2003. It quickly became the definitive implementation for WPA and WPA2 client functionality on Linux and other Unix-like operating systems. Its development has been continuous, adapting to new Wi-Fi standards, security enhancements, and driver interfaces (moving from <i>wext</i> to <i>nl80211</i>). Its widespread adoption by distributions and integration into network management frameworks highlights its critical role in enabling secure and robust wireless connectivity for Linux users worldwide.


title: PARAMETERS
content:
<b><i>&lt;input.cap&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The path to the input capture file (e.g., <i>.cap</i>, <i>.pcap</i>) containing WPA/WPA2 handshakes to be cleaned. This file is typically generated by network sniffers.<br><br><b><i>&lt;output.cap&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The path where the cleaned and optimized capture file will be saved. This new file contains only valid and unique handshakes.<br><br>


title: DESCRIPTION
content:
<b>wpaclean</b> is a utility primarily used in Wi-Fi security auditing to process capture files (<i>.cap</i> or <i>.pcap</i>) containing WPA/WPA2 handshakes. Its main function is to clean and optimize these files by removing duplicate handshakes, invalid frames, or corrupted entries. This preprocessing step is crucial for efficiency.<br>By providing a clean input, <b>wpaclean</b> ensures that the data used by password cracking tools like <i>Aircrack-ng</i> or <i>Hashcat</i> is efficient and accurate, thereby improving the success rate and speeding up the cracking process. It simplifies the overall workflow by transforming raw, potentially noisy network captures into a refined and optimized format perfectly suited for subsequent security analysis.


title: CAVEATS
content:
<b>wpaclean</b> is not a standard Linux command included in most default distributions. It is typically found as part of specialized security tool suites (e.g., <i>Aircrack-ng</i>, <i>Hashcat-utils</i>) or as a custom script. Its availability and exact functionality can vary significantly between different distributions or specific tool versions. Users should verify its presence and usage specific to their installed tools.<br>It primarily focuses on WPA/WPA2 handshakes; it may not handle other capture types or network protocols effectively.


title: USAGE CONTEXT
content:
<b>wpaclean</b> is most often employed as an intermediate step in the process of cracking WPA/WPA2 passwords. After capturing raw network traffic using tools like <i>airmon-ng</i> (part of <i>Aircrack-ng</i>) or <i>tcpdump</i>, the resulting capture file may contain various types of packets, including duplicate handshakes or incomplete ones.<br><b>wpaclean</b> takes this raw file and produces a refined version that contains only unique, valid handshakes. This significantly reduces the size of the file and improves the performance of subsequent password cracking attempts by ensuring the cracker only processes relevant and correct data.


title: HISTORY
content:
The concept of cleaning WPA/WPA2 capture files emerged with the increasing need for efficient password cracking against wireless networks. Tools like <b>wpaclean</b> were developed to preprocess large or noisy <i>.cap</i> files, specifically filtering for valid 4-way handshakes. While not a single, universally versioned command, various implementations (often Python scripts or small C utilities) appeared within wireless security toolkits (like <i>Aircrack-ng</i>'s ecosystem or <i>Hashcat</i>'s utilities) as early as the mid-2000s to streamline the cracking workflow and improve the success rate of password recovery attempts.


title: SYNOPSIS
content:
<b>wpctl</b> [<i>OPTIONS</i>] <i>COMMAND</i> [<i>ARGS</i>...]<br><br><i>Where COMMAND can be one of:</i><br>&nbsp;&nbsp;<b>status</b>: Show status of the PipeWire daemon.<br>&nbsp;&nbsp;<b>device</b>: Manage PipeWire devices.<br>&nbsp;&nbsp;<b>node</b>: Manage PipeWire nodes (e.g., applications, hardware I/O).<br>&nbsp;&nbsp;<b>port</b>: Manage PipeWire ports (input/output endpoints of nodes).<br>&nbsp;&nbsp;<b>link</b>: Manage links between ports.<br>&nbsp;&nbsp;<b>inspect</b>: Inspect properties of a PipeWire object by ID or name.<br>&nbsp;&nbsp;<b>set-volume</b>: Set volume of a node.<br>&nbsp;&nbsp;<b>set-mute</b>: Mute/unmute a node.<br>&nbsp;&nbsp;<b>set-default</b>: Set a default audio sink/source.


title: PARAMETERS
content:
<b><b>-h</b>, <b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays help information about <b>wpctl</b> or a specific command.<br><br><b><b>-v</b>, <b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows the version of the <b>wpctl</b> utility and PipeWire library.<br><br><b><b>-r</b>, <b>--remote</b>=<i>NAME</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Connects to a specific PipeWire instance identified by <i>NAME</i>, if multiple instances are running.<br><br><b><b>-l</b>, <b>--list-actions</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Lists all available commands (actions) that <b>wpctl</b> supports, along with brief descriptions.<br><br>


title: DESCRIPTION
content:
<b>wpctl</b> is the primary command-line interface for interacting with the <i>PipeWire</i> media server. It allows users to manage and monitor various aspects of the PipeWire graph, including audio and video devices, nodes, ports, and links. With <b>wpctl</b>, you can view the status of the PipeWire daemon, list available devices, control their volume and mute states, inspect properties of any object in the graph, and manage connections (links) between different audio/video streams. It serves as a unified tool to replace functionalities previously covered by separate utilities in PulseAudio (like <i>pactl</i>) and JACK (like <i>jack_lsp</i>), providing a modern, consistent way to manage your system's multimedia routing and processing.


title: CAVEATS
content:
<b>wpctl</b> relies on the PipeWire daemon being actively running. If the daemon is not running or the user lacks appropriate permissions to communicate with it, commands will fail. While powerful for monitoring and basic control, advanced graph manipulation or intricate routing might still benefit from GUI tools or direct API interaction. The command's output is primarily human-readable text, which may require parsing for scripting purposes.


title: COMMON USE CASES
content:
<b>wpctl</b> is frequently used for:<br>&nbsp;&nbsp;&nbsp;&nbsp;&bull; <i>Checking System Status:</i> Use <b>wpctl status</b> to quickly see if PipeWire is running, active nodes, and errors.<br>&nbsp;&nbsp;&nbsp;&nbsp;&bull; <i>Listing Devices/Nodes:</i> <b>wpctl device list</b> and <b>wpctl node list</b> provide overviews of hardware and software components.<br>&nbsp;&nbsp;&nbsp;&nbsp;&bull; <i>Controlling Volume/Mute:</i> <b>wpctl set-volume</b> <i>&lt;id&gt; &lt;volume&gt;</i> and <b>wpctl set-mute</b> <i>&lt;id&gt; &lt;0|1&gt;</i> are essential for managing audio levels.<br>&nbsp;&nbsp;&nbsp;&nbsp;&bull; <i>Switching Defaults:</i> <b>wpctl set-default</b> <i>&lt;id&gt;</i> allows changing default audio input/output devices.<br>&nbsp;&nbsp;&nbsp;&nbsp;&bull; <i>Inspecting Objects:</i> <b>wpctl inspect</b> <i>&lt;id&gt;</i> is invaluable for debugging and understanding object properties.


title: HISTORY
content:
<b>wpctl</b>'s history is intrinsically linked to the development of <i>PipeWire</i> itself. Introduced as the primary command-line interface for the <i>PipeWire</i> media server, it emerged to offer a unified control mechanism, aiming to replace disparate tools like <i>pactl</i> (for PulseAudio) and <i>jack_lsp</i> (for JACK). Its development paralleled <i>PipeWire</i>'s increasing adoption as the default sound server on many Linux distributions, providing a modern, consistent, and powerful way to manage audio and video streams from the terminal, addressing limitations of older systems.


title: SYNOPSIS
content:
<b>wpexec</b> [<i>&lt;wrapper_options&gt;</i>] <i>&lt;command_to_execute&gt;</i> [<i>&lt;command_arguments&gt;</i>]<br><i>&lt;wrapper_options&gt;</i> are specific to the <b>wpexec</b> script itself, often used to select a WordPress site, PHP version, or execution environment.<br><i>&lt;command_to_execute&gt;</i> is typically a <b>wp-cli</b> command (e.g., "wp user list"), a PHP script, or another command intended to run within the WordPress context.<br><i>&lt;command_arguments&gt;</i> are arguments passed to the <i>&lt;command_to_execute&gt;</i>.


title: PARAMETERS
content:
<b><i>(No standard parameters)</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;As <b>wpexec</b> is a custom script, it does not have universally defined parameters like standard Linux commands. Any options or arguments it accepts are specific to its implementation by your hosting provider or system administrator. Common custom parameters might include options to specify a particular WordPress site in a multi-site environment, define a PHP version, or control output verbosity. You should consult the documentation or source code for the specific <b>wpexec</b> script you are using to understand its accepted parameters.<br><br>


title: DESCRIPTION
content:
<i><b>wpexec</b></i> is not a standard Linux command found in typical distributions. Instead, it is commonly a custom shell script or utility developed by hosting providers or system administrators to facilitate the execution of WordPress-related commands, primarily <i><b>wp-cli</b></i>, within the context of a specific WordPress installation. Its primary purpose is to simplify command execution by abstracting away complexities such as specifying the correct PHP version, setting environment variables, navigating to the WordPress root directory, or ensuring commands run with appropriate user permissions. It often acts as a wrapper, ensuring that any subsequent command, like 'wp user list', is correctly directed to the intended WordPress instance, especially in environments hosting multiple WordPress sites. This ensures consistency and security for administrative tasks, making it easier for users to manage their WordPress installations via the command line.


title: CAVEATS
content:
Since <b>wpexec</b> is a custom script, its behavior, functionality, and available options are entirely dependent on its specific implementation. There is no standard documentation (like a <b>man</b> page) for it. Its presence and usage are typically specific to managed WordPress hosting environments or custom server setups. Always consult your host's documentation or the script's source code (if accessible) to understand its exact capabilities and limitations. Using it incorrectly or with a poorly configured script could lead to unintended changes to your WordPress installation or security vulnerabilities.


title: HOW <B>WPEXEC</B> GENERALLY WORKS
content:
While specific implementations vary, <b>wpexec</b> typically functions by:<br>1. Determining the target WordPress installation based on command-line arguments, current working directory, or environment variables.<br>2. Setting up the correct environment for the WordPress site, such as configuring the appropriate PHP version and potentially setting crucial environment variables (e.g., `WP_CLI_ROOT`).<br>3. Potentially switching to the appropriate system user account with permissions for the WordPress installation.<br>4. Executing the provided command (often <i><b>wp-cli</b></i>) with the correct PHP binary and within the context of the WordPress installation's root directory.<br>This abstraction allows users to run powerful commands against a specific site without needing to manually manage paths or permissions.


title: HISTORY
content:
There is no formal or publicly documented history for <b>wpexec</b> as it is not an open-source project or standard utility with a centralized development timeline. Its emergence is organic, stemming from the need of hosting providers and system administrators to streamline the management of multiple WordPress installations, especially in shared or managed hosting environments. It typically evolves as an internal tool within organizations to abstract the complexities of running <b>wp-cli</b> commands or other PHP scripts for specific WordPress sites, ensuring proper environment setup and user permissions. Its development is driven by practical operational needs rather than a formal project roadmap.


title: PARAMETERS
content:
<b><b>-t</b> <i><seconds></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the duration of the typing test in seconds.<br><br><b><b>-n</b> <i><count></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the number of words or sentences to use for the test.<br><br><b><b>-f</b> <i><file></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses the content of the specified <i>file</i> as the text for the typing test.<br><br><b><b>-s</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays only the final statistics (WPM, accuracy) without interactive typing.<br><br><b><b>-l</b> <i><lang></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Selects pre-defined text in a specific language (e.g., 'en', 'es').<br><br><b><b>-h</b>, <b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows the command's help message and exits.<br><br><b><b>-v</b>, <b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays version information about the <b>wpm</b> utility.<br><br>


title: DESCRIPTION
content:
<i>Note:</i> <b>wpm</b> is not a standard, pre-installed Linux command across all distributions. Its availability and features vary widely depending on the specific package or custom script providing it.<br><br>The <b>wpm</b> command is typically a command-line utility designed to measure a user's typing speed in words per minute (WPM) and accuracy. Users are presented with a passage of text, which they must type correctly within a given timeframe or until completion. The tool then calculates metrics such as gross WPM, net WPM (accounting for errors), and accuracy percentage. While not a universally standard Linux command, various implementations exist, often as part of typing tutor packages, aiming to help users improve their keyboarding skills by providing immediate feedback on performance.


title: CAVEATS
content:
The <b>wpm</b> command is <i>not</i> a standard, universally available utility in most core Linux distributions. Its presence, specific functionality, and command-line options are entirely dependent on the specific package installed (e.g., a typing tutor program) or if a custom script named <b>wpm</b> has been created. Users may need to install a third-party package to gain this functionality, or consider alternative commands like <b>ttyper</b>.


title: OUTPUT METRICS
content:
Typically, the <b>wpm</b> command provides feedback including:<br> - Gross WPM: Total words typed divided by time, including errors.<br> - Net WPM: Correct words typed divided by time, often subtracting a penalty for errors.<br> - Accuracy: Percentage of correctly typed characters or words.<br> - Error Count: Number of mistakes made.


title: CUSTOMIZATION
content:
Some versions of <b>wpm</b> or similar typing test tools allow users to specify custom text files as input, enabling practice with specific vocabulary or code snippets. Others might include options for varying difficulty, choosing character sets, or practicing specific keyboard layouts like Dvorak or Colemak.


title: HISTORY
content:
The concept of measuring typing speed in words per minute predates digital computers, with typewriters. On Linux, command-line typing test utilities emerged to help users improve their proficiency with keyboards, especially in text-based environments. While many utilities serve this purpose (e.g., <b>ttyper</b>, <b>typing-test</b>), a standardized command specifically named <b>wpm</b> is not prevalent. Implementations are often part of educational software packages or user-contributed scripts, reflecting diverse development paths rather than a single historical lineage.


title: SYNOPSIS
content:
<br><code><b>wpscan</b> --url &lt;target_url&gt; [<i>options</i>]</code><br><code><b>wpscan</b> --update</code><br><code><b>wpscan</b> --help</code>


title: PARAMETERS
content:
<b>--url <target_url></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the target WordPress website URL to scan. <br><i>Example: <code>https://www.example.com</code></i><br><br><b>--update</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Updates the WPScan vulnerability database to the latest version.<br><br><b>--enumerate <items></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enumerates various items. <br><i>Common items include: <code><b>u</b></code> (users), <code><b>vp</b></code> (vulnerable plugins), <code><b>ap</b></code> (all plugins), <code><b>vt</b></code> (vulnerable themes), <code><b>at</b></code> (all themes), <code><b>dbe</b></code> (database exports). Can be combined, e.g., <code>u,vp,vt</code>.</i><br><br><b>--plugins-detection <mode></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the plugin detection mode. <br><i>Modes: <code><b>passive</b></code> (default, faster), <code><b>aggressive</b></code> (more thorough, slower).</i><br><br><b>--api-token <token></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Provides your WPScan API token for full vulnerability database access and higher rate limits.<br><br><b>--wp-content-dir <path></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a custom path for the <i>wp-content</i> directory if it's not in its default location.<br><br><b>--proxy <proto://host:port></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Routes all requests through a specified proxy server. <br><i>Example: <code>http://127.0.0.1:8080</code> or <code>socks5://127.0.0.1:9050</code></i><br><br><b>--random-agent</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses a random User-Agent for each request to potentially evade detection.<br><br><b>--force</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Forces the scan to run even if WPScan cannot confidently identify the target as a WordPress site.<br><br><b>--verbose</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays verbose output, showing more details about the scanning process.<br><br><b>--format <format></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the output format for the scan results. <br><i>Formats: <code><b>json</b></code>, <code><b>cli-no-color</b></code>.</i><br><br><b>--output <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Saves the scan results to the specified file.<br><br>


title: DESCRIPTION
content:
<b>wpscan</b> is a powerful, free for non-commercial use, black-box WordPress security scanner designed for penetration testers and security professionals.<br>It helps identify security weaknesses in WordPress installations, including the core, plugins, and themes. <b>wpscan</b> operates by enumerating various components like users, installed plugins, and themes, and then cross-referencing their versions against a comprehensive database of known vulnerabilities. It can detect common misconfigurations, weak passwords, exposed debug files, and sensitive information disclosure, providing valuable insights into a WordPress site's security posture. It requires regular updates to its vulnerability database to remain effective.


title: CAVEATS
content:
WPScan's free version is for <i>non-commercial use only</i>. Commercial use or full API access requires an API token, which may be subject to subscription or rate limits.<br>It is a <i>black-box scanner</i>, meaning it interacts with the web application externally without access to server logs or internal configurations, which limits its depth of analysis.<br>Scans can be detected by Web Application Firewalls (WAFs) or Intrusion Detection Systems (IDS) if not performed carefully (e.g., without proxies or stealth options).<br>The effectiveness of WPScan heavily relies on its <i>vulnerability database being up-to-date</i>, requiring regular use of the <code>--update</code> option.


title: WPSCAN API TOKEN
content:
To leverage WPScan's full potential, especially for up-to-date vulnerability detection, an API token is highly recommended. It grants access to the most comprehensive vulnerability database and increases the rate limits for scans. A free token is available for personal, non-commercial use, typically allowing a certain number of API requests per day. Users can register on the WPScan website to obtain their token.


title: INSTALLATION
content:
WPScan is primarily distributed as a Ruby gem, making its installation straightforward on systems with Ruby installed. It can often be installed via package managers on various Linux distributions (e.g., <code>apt install wpscan</code> on Debian/Ubuntu or <code>gem install wpscan</code>). Ensuring the correct Ruby version and dependencies are met is crucial for a smooth setup.


title: HISTORY
content:
WPScan was originally created around 2011 by a team of ethical hackers as an open-source project dedicated to enhancing WordPress security. Over the years, it gained significant popularity within the cybersecurity community for its effectiveness and regular updates. The project transitioned to be maintained by the WPScan team and eventually became part of Rapid7, a leading cybersecurity company. The introduction of the WPScan API token was a key development, allowing the project to fund the maintenance of its extensive vulnerability database and provide advanced features and higher rate limits to users, ensuring its continued development and reliability.


title: SYNOPSIS
content:
<b>write</b> <i>user</i> [<i>tty</i>]<br><br><i>user</i>: The login name of the user to whom you want to send a message.<br><i>tty</i>: Optional. The terminal name (e.g., <i>pts/0</i>, <i>tty1</i>) if the user is logged in multiple times and you want to send to a specific terminal. If omitted, <b>write</b> sends to the most recently logged-in terminal, or prompts if multiple are available.


title: DESCRIPTION
content:
<b>write</b> is a simple command-line utility in Unix-like operating systems that allows one logged-in user to send text messages directly to another logged-in user's terminal. When you use <b>write</b>, the text you type is displayed immediately on the recipient's screen, interrupting their current activity. This makes it suitable for short, urgent notifications. The communication is one-way from the sender to the receiver.<br><br>To use <b>write</b>, both users must be logged in to the same system, and the recipient's terminal must be set to allow messages (controlled by the <i>mesg</i> command). Messages are terminated by pressing <i>Ctrl+D</i> on a new line. It's a direct and immediate form of inter-user communication, distinct from email or more sophisticated chat applications, designed for simple, real-time interaction on a multi-user system.


title: CAVEATS
content:
<ul><li>The recipient must be logged in to the same system and their terminal must be configured to accept messages (using <i>mesg y</i>). If not, <b>write</b> will inform you that the user is not logged in or that permissions are denied.</li><li>Messages appear directly on the recipient's screen, potentially interrupting their work. This can be disruptive.</li><li>It is not suitable for long conversations; for interactive chat, consider using <i>talk</i>.</li><li>Messages are not buffered; they are sent character by character or line by line depending on the system, making them appear immediately.</li></ul>


title: ENDING A MESSAGE
content:
To finish your message and send it, press <i>Ctrl+D</i> on a new line. You can also press <i>Ctrl+C</i> to abort the message without sending it.


title: CHECKING MESSAGE PERMISSIONS
content:
You can check your current message reception status using the command <i>mesg</i>. Use <i>mesg y</i> to allow others to write to your terminal and <i>mesg n</i> to prevent it.


title: HISTORY
content:
The <b>write</b> command is one of the oldest utilities in Unix-like operating systems, dating back to the early days of Unix. It provided a fundamental means for users sharing a multi-user system to communicate directly. Its simplicity and immediacy made it a staple for system administrators to send quick notices or for users to coordinate. While largely superseded by modern chat applications and email for general communication, <b>write</b> remains a core utility available on virtually all Linux and Unix systems.


title: PARAMETERS
content:
<b>-t, --threads &lt;N&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the number of threads to use for the benchmark. Each thread will manage its own event loop and connections.<br><br><b>-c, --connections &lt;N&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the total number of HTTP connections to keep open. These connections are distributed among the specified threads.<br><br><b>-d, --duration &lt;N&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Defines the duration of the benchmark test. <I>N</I> can be specified with units like 's' (seconds), 'm' (minutes), or 'h' (hours), e.g., '30s', '2m'.<br><br><b>-s, --script &lt;file&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a Lua script file to be used for customizing requests, processing responses, or generating custom reports.<br><br><b>-H, --header &lt;header&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Adds a custom HTTP header to all requests. This option can be specified multiple times for different headers.<br><br><b>-L, --latency</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints detailed latency statistics, including average, standard deviation, max, and percentile values.<br><br><b>--timeout &lt;N&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets a timeout for requests. If a response is not received within this duration, the request is considered failed. <I>N</I> can use units like 'ms' or 's'.<br><br><b>-m, --method &lt;method&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the HTTP method to use for requests (e.g., 'POST', 'PUT', 'DELETE'). Defaults to 'GET'.<br><br><b>--body &lt;file&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sends the content of the specified file as the request body. Useful for sending large payloads with POST/PUT requests.<br><br><b>--data &lt;string&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sends the provided string as the request body. Overrides <I>--body</I> if both are used.<br><br><b>--keep-alive</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sends the 'Connection: keep-alive' header (default behavior). <I>Note: wrk implicitly uses keep-alive; this is mostly for clarity or to override script behavior.</I><br><br><b>--disable-compression</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents <b>wrk</b> from sending the 'Accept-Encoding: gzip, deflate' header, thus disabling content compression.<br><br><b>--no-http-2</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disables HTTP/2 support, forcing <b>wrk</b> to use HTTP/1.1 even if the server supports HTTP/2.<br><br>


title: DESCRIPTION
content:
<b>wrk</b> is a modern, high-performance HTTP benchmarking tool designed for powerful multi-core CPUs. It can generate significant loads due to its unique architecture, which combines multi-threading with an event-driven (<i>epoll</i>/<i>kqueue</i>) request dispatching system. This allows <b>wrk</b> to efficiently utilize available CPU cores to send many requests concurrently and maintain a large number of open connections.<br><br>It supports both HTTP/1.1 and HTTP/2 protocols. A key feature is its extensibility through LuaJIT scripts, enabling users to define custom request headers, body content, handle redirects, process responses, and generate custom reports. <b>wrk</b> is ideal for quickly assessing the performance and scalability of web servers and APIs under various load conditions, providing metrics such as requests per second, latency distribution, and network throughput.


title: CAVEATS
content:
<ul><li><b>wrk</b> is a client-side benchmarking tool; it does not simulate full browser behavior (e.g., parsing HTML, loading linked resources).</li><li>Results can be significantly influenced by the client machine's resources (CPU, network, memory). Ensure the client has sufficient capacity to avoid becoming the bottleneck.</li><li>It is primarily designed for single-URL testing; simulating complex multi-page user journeys might be better handled by other tools.</li><li>Generating extremely high loads can saturate the network interface or CPU of the client machine, leading to inaccurate or skewed results.</li></ul>


title: LUA SCRIPTING
content:
<b>wrk</b>'s most powerful feature is its robust support for LuaJIT scripts. These scripts allow users to customize nearly every aspect of the request generation and response handling process. For example, a script can dynamically generate request bodies, add custom headers, handle redirects, or extract data from responses. They can also define functions to be executed before the test starts, after each request, or at the end to generate custom statistics and reports. This flexibility makes <b>wrk</b> exceptionally suitable for testing complex API endpoints or specific application logic that requires dynamic interactions.


title: OUTPUT METRICS
content:
By default, <b>wrk</b> provides a concise summary of key performance metrics at the end of a test run. This includes the total number of requests completed, requests per second (RPS), total bytes read and written, and detailed latency statistics (average, standard deviation, max, and various percentiles like 50%, 75%, 90%, 99%). This comprehensive breakdown helps in understanding the server's behavior under load, identifying potential bottlenecks, and assessing the overall performance and responsiveness of the application.


title: HISTORY
content:
<b>wrk</b> was created by Will Glozer and first released around 2012-2013. Its development was motivated by the need for a more efficient and powerful HTTP benchmarking tool than existing options like ApacheBench (<i>ab</i>), especially for testing modern web applications and servers on multi-core machines. By leveraging multi-threading and event-driven I/O, <b>wrk</b> aimed to overcome the limitations of single-threaded tools and provide more accurate performance metrics under high load. Its extensibility through Lua scripting also distinguished it, allowing for highly customized test scenarios beyond simple GET requests.


title: SYNOPSIS
content:
<b>wsl</b> [<I>options</I>]<br><b>wsl</b> <I>command</I> [<I>options</I>]<br><b>wsl</b> -d <I>DistributionName</I> [<I>LinuxCommand</I> [<I>args</I>...]]


title: PARAMETERS
content:
<b>--install [<I>Distribution</I>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Installs the Windows Subsystem for Linux and optionally a specified Linux distribution. If no distribution is specified, it defaults to Ubuntu.<br><br><b>-l, --list [<I>options</I>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Lists all installed Linux distributions. Use options like <b>--running</b> to list only running distributions or <b>--all</b> to list all, including stopped ones. <b>--verbose</b> provides more details.<br><br><b>-d, --distribution <I>DistributionName</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs a specified Linux distribution. If a command is provided after the distribution name, it will execute that command within the distribution; otherwise, it will launch the default shell.<br><br><b>-u, --user <I>Username</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs a command or opens the shell as the specified user within the current or specified distribution.<br><br><b>--shutdown</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Immediately terminates all running distributions and the WSL 2 lightweight utility virtual machine.<br><br><b>--terminate <I>DistributionName</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Terminates a specific running distribution instance.<br><br><b>--unregister <I>DistributionName</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Unregisters and uninstalls a specified distribution, deleting all data associated with it.<br><br><b>--export <I>DistributionName</I> <I>FileName</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Exports the specified distribution to a tar file. The tar file can then be imported to another machine.<br><br><b>--import <I>DistributionName</I> <I>InstallLocation</I> <I>FileName</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Imports the specified tar file as a new distribution. <I>InstallLocation</I> is the directory where the distribution will be stored.<br><br><b>--set-default <I>DistributionName</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the specified distribution as the default for <b>wsl</b> commands.<br><br><b>--set-version <I>DistributionName</I> <I>VersionNumber</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Converts the specified distribution to the target WSL version (1 or 2).<br><br><b>--update</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Updates the WSL 2 Linux kernel to the latest version.<br><br><b>--status</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the status of the WSL installation, including its version and whether it's running.<br><br><b>--mount <I>DiskPath</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Attaches and mounts a physical disk or virtual hard disk (VHD) into all running WSL 2 distributions, allowing access to its file systems.<br><br><b>--unmount [<I>DiskPath</I>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Unmounts a specified disk or all mounted disks if no path is provided.<br><br><b>--version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays information about the WSL version.<br><br><b>-h, --help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays help information for the <b>wsl</b> command.<br><br>


title: DESCRIPTION
content:
The <b>wsl</b> command is a command-line utility for Windows that enables users to interact with and manage the <I>Windows Subsystem for Linux (WSL)</I>.<br><br>WSL provides a compatibility layer for running Linux binary executables natively on Windows. The <b>wsl</b> command serves as the primary interface for a wide range of tasks, including installing new Linux distributions, launching existing ones, managing their operational state (running, stopped), and performing advanced operations such as exporting, importing, and unregistering distributions. It bridges the gap between Windows and Linux environments, allowing developers and users to leverage the power of both operating systems simultaneously without the overhead of traditional virtual machines or dual-booting. It supports various popular Linux distributions like Ubuntu, Debian, Fedora, and more, which are typically available through the Microsoft Store.


title: CAVEATS
content:
The <b>wsl</b> command is a Windows utility, not a native Linux command, used for managing Linux environments hosted on Windows.<br>It requires Windows 10 or Windows 11 with the WSL feature enabled.<br>While WSL provides excellent compatibility, some Linux applications requiring direct hardware access, specific kernel modules, or very high I/O performance might not function optimally compared to a native Linux installation or traditional virtual machines.


title: WSL 1 VS WSL 2
content:
<b>WSL 1</b> used a compatibility layer to translate Linux system calls into Windows NT kernel calls. It offered good integration but had limitations in performance and full system call compatibility.<br><b>WSL 2</b> utilizes a lightweight virtual machine (VM) that runs a genuine Linux kernel. This change provides significantly better performance for I/O intensive operations, full system call compatibility, and supports more advanced features like Docker Desktop integration. WSL 2 is generally recommended for most users.


title: ACCESSING WINDOWS FILES
content:
From within a WSL distribution, Windows drives are automatically mounted under the <b>/mnt/</b> directory. For example, your Windows C: drive is accessible at <b>/mnt/c/</b>. Similarly, from Windows, you can access your Linux files using the network path <b>\\wsl$</b> followed by the distribution name (e.g., <b>\\wsl$\Ubuntu</b>).


title: NETWORKING
content:
In WSL 2, distributions run within a lightweight VM that uses a virtual network adapter. By default, WSL 2 uses Network Address Translation (NAT) and an internal IP address. This typically means you can access Windows network resources from within WSL, and Windows applications can access services running on WSL via <b>localhost</b> for port-forwarded services, or by using the WSL 2 VM's IP address. For more advanced scenarios, specific networking configurations might be required.


title: HISTORY
content:
The Windows Subsystem for Linux (WSL) was first introduced in the <I>Windows 10 Anniversary Update</I> in 2016 (later retroactively named WSL 1). This initial version provided a translation layer that allowed Linux binary executables to run directly on Windows.<br><br>A significant advancement came with WSL 2, released in <I>Windows 10, version 2004</I> (2020). WSL 2 redesigned the architecture to use a lightweight virtual machine with a real Linux kernel, dramatically improving file system performance, full system call compatibility, and enabling new features like Docker Desktop integration. Subsequent updates have continuously added features such as GPU compute support, the ability to run Linux GUI applications, and simplified installation via <b>wsl --install</b>.


title: PARAMETERS
content:
<b>-s <I>source</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify an alternate data source file instead of the default.<br><br><b>-f <I>format</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify an output format string. (Often for internal or advanced use, not commonly documented for end-users beyond this line.)<br><br><b>-r</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a random definition from the database. This option is mutually exclusive with providing <I>TERM</I> arguments.<br><br><b><I>TERM</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;One or more initialisms, acronyms, or abbreviations to look up and define.<br><br>


title: DESCRIPTION
content:
The <b>wtf</b> command is a utility designed to provide definitions for English language initialisms, acronyms, and abbreviations. It primarily consults a built-in dictionary, often derived from sources like the Jargon File, a comprehensive collection of slang and technical terms common in computer hacker culture. This tool is invaluable for deciphering obscure or domain-specific jargon encountered in various contexts, particularly within computing and related fields. When invoked with one or more <I>term</I> arguments, <b>wtf</b> searches for and displays their meanings. If no terms are provided, it typically displays a random entry from its database, offering a casual way to discover new terms. Unlike <b>whatis</b> or <b>apropos</b>, <b>wtf</b> focuses on general language and technical slang rather than manual page descriptions.


title: CAVEATS
content:
The accuracy and comprehensiveness of <b>wtf</b>'s definitions depend entirely on the quality and recency of its underlying data source (e.g., the Jargon File version). It may not contain definitions for very new or highly specialized terms.


title: DATA SOURCE
content:
The definitions provided by <b>wtf</b> are primarily sourced from a digital dictionary, most notably the Jargon File (also known as the New Hacker's Dictionary). This file is a continuously updated collection of slang, technical terms, and cultural references used by computer programmers and hackers.


title: USAGE EXAMPLES
content:
To look up a single term:<br><I>wtf RTFM</I><br>To get a random definition:<br><I>wtf -r</I><br>To look up multiple terms:<br><I>wtf GNU SSH</I>


title: HISTORY
content:
The <b>wtf</b> command is traditionally associated with BSD systems and is often included in <b>bsdgames</b> packages on Linux distributions. Its primary data source, the Jargon File, has a long history, originating in the early days of computing culture and evolving over decades to document hacker slang and technical terms. <b>wtf</b> provides a convenient command-line interface to access this rich lexicon.


title: PARAMETERS
content:
<b><b>-s</b>, <b>--sleep</b> <i>&lt;MS&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sleep for the specified number of <i>MS</i> milliseconds before typing subsequent text or keys.<br><br><b><b>-M</b>, <b>--modifier</b> <i>&lt;MOD&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Add or remove a modifier key (e.g., <i>shift</i>, <i>ctrl</i>, <i>alt</i>, <i>super</i>) for subsequent key presses. Prepend with 'no-' to remove (e.g., <i>no-shift</i>).<br><br><b><b>-m</b>, <b>--key-down</b> <i>&lt;KEY&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Press and hold the specified <i>KEY</i> down. It remains pressed until explicitly released with <b>--key-up</b> or the program exits.<br><br><b><b>-u</b>, <b>--key-up</b> <i>&lt;KEY&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Release the specified <i>KEY</i> that was previously pressed down.<br><br><b><b>-k</b>, <b>--key</b> <i>&lt;KEY&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Press and immediately release the specified <i>KEY</i>. This is a shortcut for <b>--key-down</b> followed by <b>--key-up</b>.<br><br><b><b>--file</b> <i>&lt;PATH&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Read input text from the file specified by <i>PATH</i> instead of from command-line arguments.<br><br><b><b>--show-keycodes</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a list of available key names and their corresponding keycodes, useful for finding valid <i>KEY</i> arguments.<br><br><b><b>-h</b>, <b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a brief help message and exit.<br><br><b><b>-v</b>, <b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display version information and exit.<br><br>


title: DESCRIPTION
content:
<i>wtype</i> is a command-line utility meticulously crafted to simulate keyboard input events within a Wayland composited environment. Its primary function is to enable users to programmatically "type" arbitrary text or send specific key presses, which is invaluable for a wide range of use cases including scripting repetitive tasks, automating workflows, and facilitating comprehensive testing of applications and system interactions within a Wayland session.<br><br>Unlike traditional methods, <i>wtype</i> interacts directly with the Wayland compositor, injecting input events as if they originated from a physical keyboard. This direct interaction ensures high fidelity and reliability for simulated inputs, making it a powerful tool for advanced system control and automation in modern Linux desktop environments running Wayland.


title: CAVEATS
content:
<i>wtype</i> is specifically designed for Wayland compositors and will not function in an X11 environment.<br>It requires a running Wayland session and appropriate permissions to inject input events.<br>As a tool for input simulation, it can have security implications if used maliciously or without proper oversight.


title: HISTORY
content:
<i>wtype</i> emerged as a modern utility to fill a gap in the Wayland ecosystem, providing a command-line interface for keyboard input automation similar to how <i>xdotool</i> serves X11.<br>Its development reflects the increasing adoption of Wayland as the display server protocol and the need for robust scripting and testing tools native to it.


title: DESCRIPTION
content:
The "wump" command is <i>not</i> a standard or commonly recognized utility in mainstream Linux distributions. There is no widely documented manual page or common usage for a command with this name across typical Unix-like operating systems.<br><br>It is highly probable that "wump" might be:<br>1. A typo for another existing command (e.g., 'dump', 'pump').<br>2. A custom script or alias created by a specific user or administrator for a particular environment.<br>3. Part of a very specialized, non-standard software package that is not widely distributed or documented.<br><br>Without further context regarding its origin or specific environment, it is not possible to provide details about its functionality, options, or typical usage as a universally available Linux command.


title: CAVEATS
content:
As "wump" is not a standard Linux command, attempting to execute it on a typical system will almost certainly result in a "command not found" error. Users should carefully verify the spelling of the command they intend to use or investigate if "wump" refers to a custom script or alias specific to their local system or network environment.


title: HISTORY
content:
There is no documented history for a standard "wump" Linux command, as it does not appear in common Unix-like operating systems or their historical distributions. Its appearance would likely signify a custom local implementation rather than a universally recognized utility.


title: PARAMETERS
content:
<b><b>-H</b> <I>HEADER</I>, <b>--header</b> <I>HEADER</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Adds a custom HTTP header to the request (e.g., <I>Authorization: Bearer token</I>).<br><br><b><b>-u</b> <I>USER:PASS</I>, <b>--auth</b> <I>USER:PASS</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies username and password for basic or digest authentication.<br><br><b><b>-b</b> <I>KEY=VALUE</I>, <b>--cookie</b> <I>KEY=VALUE</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Adds a cookie to the request.<br><br><b><b>-X</b> <I>METHOD</I>, <b>--request</b> <I>METHOD</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the HTTP method (e.g., GET, POST, PUT, DELETE).<br><br><b><b>-d</b> <I>DATA</I>, <b>--data</b> <I>DATA</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sends data with the request. Use with POST, PUT, etc. (e.g., <I>name=value</I> or JSON string).<br><br><b><b>-j</b>, <b>--json</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Assumes request body is JSON and sets appropriate Content-Type header. Automatically prettifies JSON response.<br><br><b><b>-f</b>, <b>--form</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sends data as <I>application/x-www-form-urlencoded</I>.<br><br><b><b>-F</b> <I>NAME=FILE</I>, <b>--file</b> <I>NAME=FILE</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uploads a file as part of a multipart/form-data request.<br><br><b><b>-t</b> <I>TIMEOUT</I>, <b>--timeout</b> <I>TIMEOUT</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the request timeout in seconds.<br><br><b><b>-v</b>, <b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables verbose output, showing the underlying <I>curl</I> command being executed.<br><br><b><b>--verify</b> <I>BOOL</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables or disables SSL certificate verification (e.g., <I>--verify false</I>).<br><br><b><b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the help message and exits.<br><br><b><b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the version information and exits.<br><br>


title: DESCRIPTION
content:
Wuzz is a powerful and interactive command-line HTTP inspector. It's built on top of <I>curl</I> and <I>httpie</I>, providing a rich terminal UI for constructing, sending, and inspecting HTTP requests and responses.<br><br>Wuzz allows users to easily navigate through headers, body, and status lines, apply syntax highlighting, and prettify JSON/XML content. It supports various authentication methods, custom headers, and query parameters, making it an invaluable tool for developers debugging APIs or anyone needing to quickly examine web traffic directly from their terminal. Its interactive nature distinguishes it from simpler tools, offering an experience akin to a browser's network developer tools but within the command line environment.


title: CAVEATS
content:
Wuzz is not a standard Linux command; it requires Python and <I>pip</I> for installation. It relies on <I>curl</I> for its core functionality, which must be installed on the system. While it can send single requests, its primary design and strength lie in its interactive, full-screen terminal interface for debugging and exploring APIs. Optimal experience requires a terminal that supports its interactive features and color output.


title: INSTALLATION
content:
Wuzz is installed via Python's package manager, <I>pip</I>. The recommended installation command is:<br><b>pip install wuzz</b><br>It requires Python 3 to run.


title: INTERACTIVE MODE
content:
When <b>wuzz</b> is invoked without any URL or arguments (e.g., just <b>wuzz</b>), it enters its interactive mode. In this full-screen interface, users can dynamically build and modify requests, navigate through response details, view request history, and fine-tune various parameters before sending requests. This interactive environment is where the command's primary utility shines.


title: HISTORY
content:
Wuzz was created by <I>Huzaifa Sidat</I> and first publicly released around 2017. It was developed to address a need for a more interactive and visually rich command-line HTTP client, combining the power and versatility of <I>curl</I> with the user-friendliness of <I>httpie</I>. Its unique contribution is the interactive TUI (Text User Interface) layer, which provides a debugging experience akin to browser developer tools, but entirely within the terminal environment. It is actively maintained as an open-source project.


title: PARAMETERS
content:
<b><b>-display</b> <i>DISPLAY</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the X display to be shared. For example, <code>:0</code> for the primary display.<br><br><b><b>-rfbport</b> <i>PORT</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the TCP port number on which the VNC server will listen for incoming connections. Default is usually <code>5900 + display_number</code>.<br><br><b><b>-rfbauth</b> <i>PASSWORD_FILE</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the path to the VNC password file used for authentication. This file is created using <code>vncpasswd</code>.<br><br><b><b>-PasswordFile</b> <i>PASSWORD_FILE</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;An alias for <code>-rfbauth</code>.<br><br><b><b>-localhost</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;If specified, the server will only listen for connections from the local machine (127.0.0.1), enhancing security by preventing external connections directly to this server.<br><br><b><b>-SecurityTypes</b> <i>TYPES</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;A comma-separated list of security types to support. Common types include <code>VncAuth</code> (password authentication) and <code>None</code> (no authentication, highly insecure).<br><br><b><b>-PermitListen</b> <i>boolean</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables or disables the server's ability to listen for incoming connections. Default is usually true.<br><br><b><b>-PermitFileTransfer</b> <i>boolean</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables or disables file transfer functionality between the server and clients.<br><br><b><b>-geometry</b> <i>WIDTHxHEIGHT</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the width and height of the shared screen area. This can be useful if you only want to share a portion of a large display.<br><br><b><b>-depth</b> <i>BITS</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the color depth in bits per pixel (e.g., 8, 16, 24). Higher depths provide better color fidelity but use more bandwidth.<br><br><b><b>-verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Increases the verbosity of the server's output, showing more diagnostic messages.<br><br>


title: DESCRIPTION
content:
<b>x0vncserver</b> is a VNC (Virtual Network Computing) server designed to share an existing X Window System display. Unlike <code>vncserver</code>, which typically creates a new, virtual X display session, <b>x0vncserver</b> attaches directly to a running X server (e.g., your current desktop session). This allows remote users to view and control the exact same screen, applications, and windows that the local user is interacting with. It's particularly useful for remote assistance, screen sharing, or accessing a live desktop from another machine. <b>x0vncserver</b> is often part of the TigerVNC distribution and provides a robust way to share interactive graphical sessions securely, often requiring a password for authentication. It operates by capturing the contents of the specified X display and sending updates to connected VNC clients, while also forwarding keyboard and mouse events back to the X server.


title: CAVEATS
content:
<I>Security Risk</I>: <b>x0vncserver</b> shares your live desktop session. Anyone with the correct password can see and interact with your screen, potentially accessing sensitive information or performing actions on your behalf.<br><I>X Display Requirement</I>: It requires an active X display session to connect to. It cannot start a new, independent graphical environment.<br><I>Authentication</I>: Always use a strong password file created with <code>vncpasswd</code>. Running without authentication (using <code>-SecurityTypes None</code>) is highly discouraged in unsecure environments.<br><I>Firewall Configuration</I>: Ensure that the port used by <b>x0vncserver</b> (default 5900 + display number, e.g., 5900 for :0) is open in your system's firewall if you intend to connect from a remote machine.


title: CREATING A PASSWORD FILE
content:
Before running <b>x0vncserver</b>, you typically need to create a VNC password file. This is done using the <code>vncpasswd</code> command. You will be prompted to enter and verify a password.<br><code><I>vncpasswd</I></code><br>By default, this creates <code>~/.vnc/passwd</code>. You then specify this file using the <code>-rfbauth</code> option.


title: TYPICAL USAGE EXAMPLE
content:
To share your primary X display (<code>:0</code>) on port <code>5900</code> with password authentication using a file in your home directory, you would run:<br><code><I>x0vncserver -display :0 -rfbport 5900 -rfbauth ~/.vnc/passwd</I></code>


title: HISTORY
content:
<b>x0vncserver</b> is a component of the TigerVNC project, which itself is a derivative of the original RealVNC software, developed from the AT&T Laboratories Cambridge VNC project. While <code>vncserver</code> traditionally focused on virtual X displays, <b>x0vncserver</b> was developed to specifically address the need for efficiently sharing an already running X session (like your desktop), providing a modern and performant solution for remote control and assistance of live graphical environments. Its development reflects the ongoing evolution of VNC technology to meet diverse remote access requirements.


title: PARAMETERS
content:
<b><b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the help message and exits.<br><br><b><b>--clone</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Creates a non-root user in the container that matches the host user's UID/GID, improving file permissions and security.<br><br><b><b>--hostuser</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs the container as the host user, directly sharing the UID/GID. Less secure than <b>--clone</b>.<br><br><b><b>--gpu</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables GPU hardware acceleration within the container for improved graphics performance.<br><br><b><b>--sound</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables sound support, typically via PulseAudio or ALSA, for the containerized application.<br><br><b><b>--clipboard</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Allows bidirectional clipboard synchronization between the host and container.<br><br><b><b>--webcam</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables access to webcam devices inside the container.<br><br><b><b>--cap-drop=CAP</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Drops specified Linux capabilities from the container for enhanced security.<br><br><b><b>--cap-add=CAP</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Adds specified Linux capabilities to the container.<br><br><b><b>--desktop</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs a full desktop environment (e.g., XFCE, LXDE) inside the container.<br><br><b><b>--interactive</b> or <b>-i</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Keeps STDIN open even if not attached, useful for interactive shell sessions within the container.<br><br><b><b>--rm</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Automatically removes the container when it exits.<br><br><b><b>--docker-options "OPTIONS"</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Passes additional, raw options directly to the underlying <i>docker</i> or <i>podman</i> command.<br><br><b><b>--wayland</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses Wayland for the display server (requires a Wayland composite manager in the container).<br><br><b><b>--xorg</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses a nested Xorg server, providing strong isolation from the host X server. Often the recommended secure mode.<br><br>


title: DESCRIPTION
content:
<i>x11docker</i> is a powerful wrapper script that simplifies running graphical user interface (GUI) applications in isolated Docker or Podman containers. It addresses the challenges of X11 forwarding and sound system integration, allowing users to run GUI apps securely without them directly accessing the host's display or system resources. <i>x11docker</i> automates the complex setup of X11 authorization, PulseAudio or ALSA sound, GPU acceleration, and webcam access, making it straightforward to sandbox untrusted applications or create portable development environments.<br><br>It supports various display backends like Xorg, Weston, or nested X servers, enhancing security by providing a separate X server for the container. It's an essential tool for privacy-conscious users and developers needing isolated graphical environments.


title: CAVEATS
content:
Running GUI applications in containers, even with <i>x11docker</i>, involves inherent security considerations. While <i>x11docker</i> significantly improves isolation compared to direct X11 forwarding, certain modes (e.g., <b>--hostuser</b>, <b>--allow-host-xaccess</b>, or not using a nested X server) can reduce the isolation level. Users should always be aware of the implications of the options they choose, especially when running untrusted applications. Network access and file system mounts (<b>--share</b>, <b>--mount</b>) can also bypass isolation if not carefully managed.


title: SECURITY MODES AND ISOLATION
content:
<i>x11docker</i> offers various display backends and user management options that directly impact security. Using <b>--xorg</b> or <b>--weston</b> provides a separate, nested X server, offering strong isolation from the host's X server, preventing the containerized application from snooping on host keyboard inputs or manipulating host windows. Options like <b>--hostdisplay</b> directly expose the host's X server, which is less secure but can be useful in trusted environments or for debugging. Choosing the appropriate mode based on trust in the application is crucial.


title: PERSISTENT CONTAINERS
content:
By default, <i>x11docker</i> often cleans up containers upon exit (via <b>--rm</b>). For development or persistent environments, options like <b>--permanent</b> or <b>--container-name</b> combined with omitting <b>--rm</b> allow containers to persist between sessions, enabling data and configuration to be saved.


title: HISTORY
content:
<i>x11docker</i> was developed to provide a simpler and more secure way to run GUI applications in Docker containers. Traditional methods of X11 forwarding (e.g., `-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY`) expose the entire host X server to the container, posing a significant security risk. <i>x11docker</i> emerged as a solution to mitigate these risks by offering safer X server configurations (like nested X servers), managing user IDs, and integrating various host resources securely. It has evolved to support different container runtimes (like Podman) and advanced features such as GPU, sound, and webcam access, becoming a popular tool for sandboxing graphical applications.


title: PARAMETERS
content:
<b><b>-display</b> <i>host:display</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the X server to connect to and run tests on.<br><br><b><b>-depth</b> <i>N</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the desired color depth (e.g., 8, 16, 24) for the tests.<br><br><b><b>-shm</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses the MIT-Shared Memory extension for image transfers if available, potentially speeding up some operations.<br><br><b><b>-repeat</b> <i>N</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Repeats each test <i>N</i> times for more accurate results and to average out variations.<br><br><b><b>-vtext</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows verbose textual output for each test as it runs, indicating progress.<br><br><b><b>-v</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Provides even more verbose output than <b>-vtext</b>, including setup details.<br><br><b><b>-all</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs all available performance tests provided by <i>x11perf</i>.<br><br><b><b>-sync</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Forces a round trip to the X server after each graphics operation, ensuring operations complete before timing stops. Useful for accurate remote measurement.<br><br><b><b>-rects</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests various rectangle drawing operations, including filled and unfilled rectangles.<br><br><b><b>-lines</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests various line drawing operations, including single lines, polylines, and wide lines.<br><br><b><b>-text</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests various text rendering operations, including different font sizes and character counts.<br><br><b><b>-pixmap</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests pixmap creation, drawing, copying, and manipulation operations.<br><br><b><b>-copy</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests different methods of copying areas, such as <i>CopyArea</i> and <i>PolySegment</i>.<br><br><b><b>-bitblt</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests bitmap bit-blit operations, typically used for monochrome images.<br><br><b><b>-windows</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests window creation, mapping, unmapping, and destruction operations.<br><br><b><b>-composite</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests operations related to the XComposite extension, often used in modern desktop environments for compositing windows.<br><br><b><b>-xrender</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests operations related to the XRender extension, which provides anti-aliased text and other advanced rendering features.<br><br><b><b>-help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints a summary of command-line options and exits.<br><br>


title: DESCRIPTION
content:
<i>x11perf</i> is a venerable benchmarking tool designed to measure the performance of an X server. It executes a wide array of basic X operations, such as drawing lines, rectangles, arcs, and text, as well as testing operations like area copying, pixmap manipulation, and window management.<br><br>By running these tests, <i>x11perf</i> helps evaluate the speed and efficiency of different X server implementations, hardware configurations, or display drivers. It reports results typically in operations per second, providing a quantitative measure of the server's rendering capabilities across various graphical primitives.<br><br>While not a comprehensive application benchmark, it's invaluable for understanding the low-level performance characteristics of an X display.


title: CAVEATS
content:
Results from <i>x11perf</i> should be interpreted with caution. They represent low-level X server performance and do not always directly correlate with real-world application performance, which depends heavily on factors like CPU speed, memory bandwidth, and specific application usage patterns.<br><br>The tool also largely predates modern graphics APIs like OpenGL or Vulkan, and its relevance is primarily for traditional X11 rendering. It may not fully exercise modern GPU acceleration features for composite desktop environments. Client-side factors and network latency (if testing remotely) can also significantly influence results.


title: <B>INTERPRETING RESULTS</B>
content:
<i>x11perf</i> typically reports results in operations per second (ops/sec), characters per second (chars/sec), or polygons per second (poly/sec). Higher numbers generally indicate better performance for that specific operation.<br><br>It's often useful to run the tests multiple times (using <b>-repeat</b>) and take an average, especially for shorter tests, to minimize the impact of transient system activity. Comparing results across different X servers, configurations, or hardware can highlight performance bottlenecks and areas for optimization.


title: <B>TYPICAL USAGE</B>
content:
To run all available tests on the default display:<br><i>x11perf -all</i><br><br>To run specific text tests with verbose output and repeat 10 times for more accuracy:<br><i>x11perf -text -vtext -repeat 10</i><br><br>To test shared memory extensions for image transfers in all relevant tests:<br><i>x11perf -all -shm</i><br><br>To test line drawing on a specific display with synchronization:<br><i>x11perf -display :1 -lines -sync</i>


title: HISTORY
content:
<i>x11perf</i> is a long-standing utility included with the X Window System distribution, dating back to its earlier versions (e.g., X11R4, X11R5). It was developed as a crucial tool for developers and administrators to benchmark and compare the performance of different X server implementations, display drivers, and underlying hardware.<br><br>While its core functionality remains relevant for traditional X11, its development has largely stabilized, and it does not incorporate many features of modern desktop environments or contemporary graphics APIs like OpenGL or Vulkan, which are often used for accelerated rendering.


title: SEE ALSO
content:
<b>X</b>(7): The X Window System core protocol and libraries., <b>xdpyinfo</b>(1): Utility to display information about an X server., <b>xrandr</b>(1): Utility to manage X server screen resources, including resolution and display output., <b>glxgears</b>: A common, albeit simple, OpenGL performance test, often used for quick GPU checks.


title: PARAMETERS
content:
<b><I>file1</I> [<I>file2</I> ...]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;One or more paths to output files generated by the <i>x11perf</i> command. These files contain the raw performance data that <i>x11perfcomp</i> will process and compare.<br><br>


title: DESCRIPTION
content:
<i>x11perfcomp</i> is a command-line utility designed to compare the performance results generated by the <i>x11perf</i> benchmarking tool. It takes two or more <i>x11perf</i> output files as input and produces a consolidated report, highlighting the differences in various X11 graphics operations. This comparison helps users, developers, and system administrators analyze the performance characteristics of different X servers, display drivers, or system configurations. By presenting side-by-side metrics for operations like line drawing, rectangle filling, text rendering, and image transfers, <i>x11perfcomp</i> assists in identifying performance bottlenecks or verifying improvements after system changes.


title: CAVEATS
content:
The utility's effectiveness is directly dependent on the quality and consistency of the <i>x11perf</i> input files. It assumes that the tests run in the input files are largely comparable. <i>x11perfcomp</i> typically outputs text-based comparisons, which may require further analysis or scripting for graphical visualization. It also does not perform the benchmarks itself, only processes existing results. Due to the evolving nature of graphics stacks (favoring OpenGL/Vulkan over pure X11 primitives), <i>x11perf</i> and <i>x11perfcomp</i> are less frequently used for modern system benchmarking.


title: INPUT FILE GENERATION
content:
To use <i>x11perfcomp</i>, you must first generate <i>x11perf</i> output files. This is typically done by running <i>x11perf</i> and redirecting its output to a file, for example: <br><code>x11perf > first_run.log</code><br><code>x11perf > second_run.log</code><br>These files can then be fed into <i>x11perfcomp</i> for comparison: <br><code>x11perfcomp first_run.log second_run.log</code>


title: OUTPUT FORMAT
content:
The output of <i>x11perfcomp</i> is usually a textual report, often formatted as a table or a series of comparisons, showing operations per second or frames per second for each test, along with percentage differences. While not graphically rich, this format is suitable for quick command-line analysis or for piping into other tools for further processing.


title: HISTORY
content:
<i>x11perfcomp</i> is part of the X.Org (and previously XFree86) utility suite, which provides a collection of tools for managing and interacting with the X Window System. It emerged as a companion tool to <i>x11perf</i>, facilitating the comparison of benchmark results during the development and optimization of X servers and their drivers. Its primary use case was prevalent during eras when X11 rendering performance was a more direct measure of graphics subsystem efficiency, particularly before the widespread adoption of hardware-accelerated 3D rendering APIs like OpenGL.


title: PARAMETERS
content:
<b><b>-display</b> <i>&lt;DISPLAY&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the X display to connect to (e.g., <b>:0</b> for the primary console or <b>:1</b> for a secondary display).<br><br><b><b>-rfbauth</b> <i>&lt;file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to a VNC password file (e.g., <i>~/.vnc/passwd</i>) for authentication. This is the recommended and most secure way to set a password.<br><br><b><b>-passwd</b> <i>&lt;password&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the VNC password directly on the command line. <b>Caution:</b> Less secure than <b>-rfbauth</b> as the password may be visible in process listings.<br><br><b><b>-forever</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents <i>x11vnc</i> from exiting after the first client disconnects, allowing multiple consecutive connections.<br><br><b><b>-many</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Allows multiple VNC clients to connect simultaneously to the server.<br><br><b><b>-viewonly</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Connects clients in view-only mode, preventing them from controlling the desktop (mouse and keyboard input are ignored).<br><br><b><b>-allow</b> <i>&lt;host&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Permits connections only from the specified hostname or IP address (e.g., <i>localhost</i>, <i>192.168.1.0/24</i>). Can be used multiple times.<br><br><b><b>-rfbport</b> <i>&lt;port&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the TCP port number for the VNC server to listen on. Default is 5900 + display number (e.g., 5900 for <b>:0</b>, 5901 for <b>:1</b>).<br><br><b><b>-connect</b> <i>&lt;host:port&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Initiates a reverse connection to a VNC client listening at the specified host and port. Useful for traversing firewalls.<br><br><b><b>-ssl</b> <i>[mode]</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables SSL encryption for VNC connections. <i>mode</i> can be <b>on</b> (default), <b>off</b>, or <b>only</b> (to enforce SSL).<br><br><b><b>-shared</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Allows multiple connected clients to share control of the desktop. Without this, only the first client can control.<br><br><b><b>-o</b> <i>&lt;logfile&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Redirects all standard output and error messages from <i>x11vnc</i> to the specified log file.<br><br><b><b>-clip</b> <i>&lt;geometry&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Limits the VNC desktop to a sub-region of the X display (e.g., <i>640x480+100+50</i>).<br><br><b><b>-help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a detailed summary of command-line options and exits.<br><br>


title: DESCRIPTION
content:
<i>x11vnc</i> is a VNC server that allows you to view and control a real X display remotely. Unlike typical VNC servers like <i>vncserver</i> or <i>tightvncserver</i> which create new virtual X displays, <i>x11vnc</i> directly accesses and shares an existing X server (e.g., the one running your desktop session on <b>:0</b>). This makes it an ideal tool for remote administration, technical support, or simply sharing your current graphical session without launching a separate virtual desktop.<br><br>It supports various X servers including Xorg, XFree86, and Xvnc, and offers features like password authentication, SSL encryption, reverse connections, and desktop sharing for multiple clients. <i>x11vnc</i> is highly configurable, providing options for performance tuning, access control, and specific handling of screen updates and cursor display.


title: CAVEATS
content:
<i>x11vnc</i> requires a running X server to share. It needs appropriate permissions to access the X display, often requiring it to be run by the user logged into the X session, or with root privileges if accessing another user's display (which is generally discouraged). Performance can vary depending on network speed and X server configuration. Security is paramount: always use strong passwords via <b>-rfbauth</b> and consider <b>-ssl</b> for production environments.


title: SECURITY BEST PRACTICES
content:
For secure deployments, always use a password file generated with <i>vncpasswd</i> via the <b>-rfbauth</b> option instead of directly providing passwords with <b>-passwd</b>. Enable SSL encryption with the <b>-ssl</b> or <b>-sslonly</b> options to protect data in transit. To minimize attack surface, restrict access using <b>-allow</b> to specific IP addresses or subnets and consider running <i>x11vnc</i> with the minimum necessary privileges.


title: PERFORMANCE OPTIMIZATION
content:
To improve performance over slower networks, consider options like <b>-deferupdate</b> (to batch screen updates, e.g., <b>-deferupdate 100</b> for 100ms delay) and ensure your VNC client supports efficient encodings (like Tight or Hextile). While <i>x11vnc</i> supports many encodings, the actual performance depends on the negotiated encoding between server and client and the capabilities of your X server.


title: HISTORY
content:
Developed by Karl Runge, <i>x11vnc</i> emerged to address the specific need of sharing an <b>existing</b> X display via VNC, a capability not natively offered by many conventional VNC server implementations. Its development has focused on providing a robust, flexible, and secure solution for remote access to physical or console X sessions, differentiating itself from VNC servers that launch new virtual desktops. It has become a staple tool for remote support and administration in Linux/Unix environments, continuously evolving to support modern X server features and security standards.


title: PARAMETERS
content:
<b>-in <I>filename</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the input certificate file. Defaults to standard input if not provided.<br><br><b>-out <I>filename</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the output file for operations. Defaults to standard output.<br><br><b>-inform <I>format</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the input format (<b>PEM</b> or <b>DER</b>).<br><br><b>-outform <I>format</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the output format (<b>PEM</b> or <b>DER</b>).<br><br><b>-text</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the certificate in human-readable text format, showing all its fields.<br><br><b>-noout</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents the output of the encoded version of the certificate. Useful when only printing text details or fingerprints.<br><br><b>-subject</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the certificate's subject distinguished name.<br><br><b>-issuer</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the certificate's issuer distinguished name.<br><br><b>-startdate</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the certificate's not-before validity date.<br><br><b>-enddate</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the certificate's not-after validity date.<br><br><b>-fingerprint</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the certificate's SHA1 fingerprint.<br><br><b>-sha256</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the certificate's SHA256 fingerprint.<br><br><b>-req</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Indicates that the input is a Certificate Signing Request (CSR) rather than a certificate.<br><br><b>-signkey <I>file</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Self-signs the input request (or certificate) using the private key in <i>file</i>.<br><br><b>-CA <I>file</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the CA certificate to sign the new certificate.<br><br><b>-CAkey <I>file</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the CA private key to sign the new certificate.<br><br><b>-days <I>num</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the number of days for which a newly signed certificate will be valid.<br><br>


title: DESCRIPTION
content:
The <b>x509</b> command, a powerful subcommand of the <b>openssl</b> utility, is primarily used for X.509 certificate display, signing, and management. It allows users to parse, print, and convert certificate information, including details about the issuer, subject, validity period, and extensions. Beyond viewing, it's instrumental in tasks like self-signing certificates, generating Certificate Signing Requests (CSRs), and acting as a basic Certificate Authority (CA) for issuing new certificates. It supports both PEM and DER formats, making it versatile for interacting with various certificate-related files. This tool is essential for system administrators, developers, and anyone working with secure communications and public key infrastructure (PKI). It provides deep insights into the structure and content of digital certificates, crucial for debugging and validation.


title: CAVEATS
content:
<ul><li><b>Private Key Handling</b>: When self-signing or acting as a CA, ensuring the private keys used (via <b>-signkey</b> or <b>-CAkey</b>) are securely stored and protected is paramount. Exposure of these keys compromises the security of the signed certificates.</li><li><b>Validity Period</b>: Always specify appropriate validity periods (using <b>-days</b>) for certificates to mitigate risks associated with long-lived credentials and to enforce regular key rotation.</li><li><b>Extensions</b>: The <b>x509</b> command provides basic signing capabilities. For complex certificate extensions (e.g., Key Usage, Extended Key Usage, Subject Alternative Name), it's often more practical to use a configuration file with <b>openssl req</b> or <b>openssl ca</b>.</li><li><b>Trust Management</b>: While <b>x509</b> can manage trust flags, its primary role is not a full-fledged trust store manager. For system-wide trust, other tools or system configurations are usually preferred.</li></ul>


title: COMMON USAGE EXAMPLES
content:
<ul><li><b>Viewing Certificate Details</b>:<br><code>openssl x509 -in certificate.pem -text -noout</code><br>This command displays all the human-readable details of a certificate stored in <code>certificate.pem</code>.<br><br></li><li><b>Extracting Subject and Issuer</b>:<br><code>openssl x509 -in certificate.pem -noout -subject -issuer</code><br>Prints only the subject and issuer distinguished names.<br><br></li><li><b>Self-Signing a Certificate</b>:<br><code>openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out request.csr</code><br><code>openssl x509 -req -in request.csr -signkey private.key -out certificate.pem -days 365</code><br>The first command generates a private key and a CSR. The second uses <b>x509</b> to self-sign that CSR into a certificate valid for 365 days using the same private key.<br><br></li><li><b>Checking Certificate Expiry</b>:<br><code>openssl x509 -in certificate.pem -noout -enddate</code><br>Prints the expiration date. To check if it expires within, say, 30 days:<br><code>openssl x509 -in certificate.pem -checkend 2592000</code> (where 2592000 is 30 days in seconds)</li></ul>


title: HISTORY
content:
The <b>x509</b> utility is an integral part of the OpenSSL project, a robust, commercial-grade, full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. OpenSSL was originally based on SSLeay, developed by Eric A. Young and Tim J. Hudson. The <b>x509</b> command has been a core component since the early days of OpenSSL, providing the fundamental capabilities for interacting with X.509 digital certificates, which are central to PKI and secure communication on the internet. Its development has mirrored the evolution of cryptographic standards and the widespread adoption of SSL/TLS.


title: SYNOPSIS
content:
The <b>x8</b> command is not a recognized Linux utility and therefore has no standard syntax or usage.


title: DESCRIPTION
content:
The command <b>x8</b> is <i>not a standard or recognized utility</i> in common Linux distributions. When attempted, it typically results in a "command not found" error, indicating that the system's PATH environment variable does not contain a binary or script by this name. It does not belong to the GNU coreutils, X Window System utilities, or other widely installed and maintained package sets found in distributions like Debian, Ubuntu, Fedora, or Arch Linux. It is highly probable that <b>x8</b> is a typo or a misremembered name for another, more common command, or perhaps refers to a very specific, custom-developed script or alias used within a particular environment but not widely distributed. Users often confuse similar-looking names like <b>xxd</b> (a utility for making and reverse hex dumps), <b>xargs</b> (for building and executing command lines from standard input), or architectural terms like <b>x86</b> (referring to a family of instruction set architectures, not an executable command).


title: CAVEATS
content:
The primary caveat is that <b>x8</b> does not exist as a standard Linux command. If you encounter documentation or a script referencing 'x8', verify its context. It might refer to a custom alias, a shell function, or a locally installed, non-standard program. Always double-check the exact command name to ensure you are using the intended utility. Executing 'x8' on most systems will simply return an error.


title: IDENTIFYING CUSTOM SCRIPTS OR ALIASES
content:
If you encounter <b>x8</b> in a specific environment and it appears to do something, it's crucial to check if it's a custom script or alias defined in that setup. You can use standard shell commands to investigate:<br><i><br>which x8<br>type x8<br>alias x8<br></i><br>These commands might reveal if <b>x8</b> is an alias, a shell function, or a script located in your PATH, providing clues to its origin and purpose in that particular context.


title: HISTORY
content:
There is no documented history or development for a standard Linux command named <b>x8</b>, as it is not a part of any official or widely adopted Linux project or utility set. Its non-existence means there's no lineage or evolution to describe.


title: SYNOPSIS
content:
<i>x86_64</i> is not a standalone executable command. It is an architecture identifier reported by system information tools. To query the system's architecture, use commands like:<br><br><b>uname</b> [<i>OPTION</i>]...<br><b>arch</b>


title: PARAMETERS
content:
<b>uname -m / --machine</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the machine hardware name, which for 64-bit x86 systems is typically `x86_64`.<br><br><b>uname -a / --all</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints all system information, including the machine hardware name (e.g., `x86_64`).<br><br><b>arch</b><br>&nbsp;&nbsp;&nbsp;&nbsp;A simplified command that is equivalent to `uname -m` and prints the machine architecture name (e.g., `x86_64`). This command takes no options.<br><br>


title: DESCRIPTION
content:
The <b>x86_64</b> identifier refers to the 64-bit extension of the <i>x86 instruction set architecture (ISA)</i>, originally developed by AMD (known as AMD64) and later adopted by Intel (Intel 64). It is the predominant architecture for modern personal computers, servers, and workstations running Linux.<br><br>Unlike the earlier 32-bit x86 (often referred to as i386, i486, i586, i686), <b>x86_64</b> provides a 64-bit virtual address space, allowing systems to utilize significantly more than 4GB of RAM directly. It also introduces additional general-purpose registers and expands the size of existing registers, leading to improved performance for many applications. When you see 'x86_64' on a Linux system, it indicates that the kernel and user-space programs are compiled for and running on this 64-bit architecture, taking full advantage of its capabilities.<br><br>While <b>x86_64</b> itself is not a directly executable command, it is the standard output for commands like `uname -m` or `arch` on compatible systems, serving as a critical piece of system information.


title: CAVEATS
content:
<b>x86_64</b> is an architecture identifier, not a directly callable command. Attempting to execute `x86_64` as a command will result in a 'command not found' error. It strictly refers to the underlying hardware and the compilation target for software. System administrators and developers use this identifier to ensure software compatibility and optimize performance.


title: KEY FEATURES OF X86_64
content:
<b>64-bit Registers:</b> Expands general-purpose registers (GPRs) to 64 bits and doubles their count from 8 to 16.<br><br><b>Larger Virtual Address Space:</b> Enables applications to access far more than 4GB of memory, overcoming the 32-bit memory limit.<br><br><b>RIP-Relative Addressing:</b> Improves position-independent code (PIC) generation, crucial for shared libraries, making code more efficient.<br><br><b>No Segmentation (for flat memory model):</b> While segmentation is technically present for compatibility, it's largely unused in modern 64-bit operating systems like Linux, which primarily operate with a flat memory model for simplicity and performance.


title: COMMON ALIASES
content:
On various Linux systems, you might encounter other terms referring to the <b>x86_64</b> architecture, such as <i>amd64</i> (especially prevalent in Debian/Ubuntu and some BSD contexts) or <i>Intel64</i>. However, <b>x86_64</b> is the most universally accepted and platform-agnostic identifier for this architecture across the Linux ecosystem.


title: HISTORY
content:
The <b>x86_64</b> architecture originated from AMD's development of <i>AMD64</i> (also known as x86-64) in the early 2000s, extending the existing 32-bit x86 instruction set. Intel later adopted a compatible instruction set, initially calling it <i>EM64T</i> or <i>IA-32e</i>, now commonly referred to as <i>Intel 64</i>. These extensions allowed for 64-bit computing while maintaining backward compatibility with 32-bit x86 software. Linux distributions rapidly adopted <b>x86_64</b>, making it the default and most widely supported architecture for servers and desktop systems due to its significant performance benefits and ability to address large amounts of memory.


title: PARAMETERS
content:
<b>N/A</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Not a standard command, therefore no parameters exist.<br><br>


title: DESCRIPTION
content:
<I>x_x</I> is not recognized as a standard command in typical Linux distributions. It commonly appears as a placeholder, a typographical error, or an emoji-like representation signifying 'dead', 'tired', or 'unknown'. If encountered in a script or documentation, it likely signifies a missing command, a command yet to be defined, or a user-specific alias that is not universally available. It does not perform any inherent function within the standard Linux command-line environment, and attempting to execute it will result in a 'command not found' error.


title: CAVEATS
content:
The 'x_x' sequence is not a legitimate or executable command in Linux. Attempting to run it will result in a 'command not found' error. Its appearance typically indicates an error in documentation, a user-defined alias, or a placeholder for a command that needs to be replaced or defined.


title: VERIFYING COMMANDS
content:
To check if a command exists and is executable on your system, you can use commands like <I>which [command_name]</I> or <I>type [command_name]</I>. If a command is not found, it might need to be installed or its path added to the system's PATH environment variable.


title: COMMON TYPOS
content:
Many 'command not found' errors are due to simple typos. Always double-check command names, especially for specific utilities or packages that might not be universally installed.


title: HISTORY
content:
The sequence 'x_x' has no historical development as a Linux command. Its informal usage as an emoji or placeholder likely emerged in digital communication, unrelated to command-line utilities.


title: SYNOPSIS
content:
<br><b>Creating an archive:</b><br><br>  <I>xar</I> -c -f <I>archive_file</I> [<I>options</I>] [<I>file</I> ...]<br><br><b>Extracting from an archive:</b><br><br>  <I>xar</I> -x -f <I>archive_file</I> [<I>options</I>] [<I>file</I> ...]<br><br><b>Listing archive contents:</b><br><br>  <I>xar</I> -t -f <I>archive_file</I> [<I>options</I>]<br><br><b>Signing or verifying an archive:</b><br><br>  <I>xar</I> -s <I>command</I> -f <I>archive_file</I> [<I>options</I>]


title: PARAMETERS
content:
<b>-c</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>create</b><br>Creates a new archive.<br><br><b>-x</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>extract</b><br>Extracts files from an archive.<br><br><b>-t</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>list</b><br>Lists the table of contents of an archive.<br><br><b>-f <archive></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>file</b><br>Specifies the archive file to operate on.<br><br><b>-v</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>verbose</b><br>Enables verbose output, showing details of operations.<br><br><b>-s <command></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>signature</b><br>Performs a signature operation on the archive. <I>command</I> can be 'create' to sign, or 'verify' to check a signature.<br><br><b>-C <dir></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>change directory</b><br>Changes to the specified directory before adding files to the archive. Useful for relative paths.<br><br><b>-j</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>bzip2 compression</b><br>Uses bzip2 compression for files within the archive.<br><br><b>-z</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>gzip compression</b><br>Uses gzip compression for files within the archive.<br><br><b>-p</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>preserve permissions</b><br>Preserves file permissions, ownership, and modification times during extraction.<br><br><b>-D</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<b>do not flatten</b><br>Do not flatten directories. Typically used when extracting specific files.<br><br>


title: DESCRIPTION
content:
<I>xar</I> is an open-source archiver and extensible archive format, conceptually similar to <I>tar</I> or <I>zip</I>. A key distinguishing feature is its XML-based table of contents, which is stored at the beginning of the archive. This design makes it easy for other applications to parse and understand the archive's structure without reading the entire file.<br><br><I>xar</I> supports checksums for individual files and can optionally include an SHA1 hash of the entire archive in its header for integrity verification. Its extensible schema allows for custom metadata and features. While <I>xar</I> can be used as a general-purpose archiving tool, it is most notably utilized by Apple for creating macOS installer packages (.pkg files) and storing bill of materials (.bom) data.


title: CAVEATS
content:
<I>xar</I> is primarily developed and used by Apple, making it a standard component of macOS for package management and system imaging. While it is open-source and available on Linux, its adoption for general-purpose archiving is less widespread compared to tools like <I>tar</I> or <I>zip</I>. Users on Linux might need to install it from their distribution's repositories, and its full feature set, especially regarding signing, might depend on specific library availability (e.g., OpenSSL). Its unique XML-based header can be advantageous for programmatic access but may be less intuitive for command-line users accustomed to simpler archive formats.


title: XML TABLE OF CONTENTS
content:
<I>xar</I> archives begin with an XML-based table of contents (TOC). This TOC describes the archive's structure, lists all files, their metadata (permissions, timestamps), and checksums. This design allows applications to easily parse the archive's contents without decompressing or reading the entire archive, facilitating selective extraction and inspection.


title: CHECKSUMS AND INTEGRITY
content:
Each file within a <I>xar</I> archive includes its own checksum. Additionally, the archive can contain an optional SHA1 hash of its entire content. This robust integrity checking mechanism ensures that data corruption can be detected, making <I>xar</I> suitable for distributing sensitive or critical software.


title: HISTORY
content:
The <I>xar</I> utility and format originated from Apple Inc., designed to be a flexible and extensible archiving solution for its operating system. It became a cornerstone of macOS installer packages, with <I>.pkg</I> files essentially being <I>xar</I> archives containing the application payload and bill of materials (<I>.bom</I> files, which are themselves <I>xar</I> archives). Its development aimed to provide a more robust and introspectable archive format than previous methods, leveraging XML for a structured table of contents and built-in support for digital signatures, crucial for software distribution and security on macOS.


title: PARAMETERS
content:
<b><b>-0</b>, <b>--null</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Input items are terminated by a null character instead of by whitespace. This is crucial for handling filenames or other data that may contain spaces, newlines, backslashes, or quotes, making it safe for use with commands like `find -print0`.<br><br><b><b>-I</b> <i>replace-str</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Replace occurrences of <i>replace-str</i> in the initial arguments with names read from standard input. Also, blanks and newlines are not considered as delimiters. This implies <b>-L 1</b>. Useful when the command needs specific argument placement, like `cp {} /destination/`.<br><br><b><b>-L</b> <i>max-lines</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Use at most <i>max-lines</i> non-blank input lines per command line. Trailing blanks will cause the next input line to be treated as part of the current line.<br><br><b><b>-n</b> <i>max-args</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Use at most <i>max-args</i> arguments per command line. Fewer arguments are used if the maximum command line length (see <b>-s</b>) is exceeded.<br><br><b><b>-P</b> <i>max-procs</i>, <b>--max-procs=</b><i>max-procs</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Run up to <i>max-procs</i> processes at a time. The default is 1. If <i>max-procs</i> is 0, <b>xargs</b> will run as many processes as possible simultaneously.<br><br><b><b>-p</b>, <b>--interactive</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prompt the user whether to run each command line and read a line from the terminal. Only run the command if the response starts with 'y' or 'Y'.<br><br><b><b>-r</b>, <b>--no-run-if-empty</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;If there are no arguments from standard input, do not run the command. This is the default for GNU <b>xargs</b> and is often useful to prevent commands from being executed with no arguments when input is empty.<br><br><b><b>-s</b> <i>max-chars</i>, <b>--max-chars=</b><i>max-chars</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Use at most <i>max-chars</i> characters per command line, including the command and initial arguments, and the terminating nulls at the ends of the strings.<br><br><b><b>-t</b>, <b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Print the command line to standard error before executing it. Useful for debugging and understanding what <b>xargs</b> is doing.<br><br>


title: DESCRIPTION
content:
The <b>xargs</b> command reads items from standard input, delimited by blanks (which can be escaped or quoted) or newlines, and executes a specified command one or more times with these items as arguments. It is primarily used to overcome the operating system's command line length limit for arguments, allowing commands to process a very large number of files or items that might otherwise cause an 'argument list too long' error. <br><br><b>xargs</b> is highly versatile, enabling the output of one command (e.g., <i>find</i>) to be efficiently piped and used as arguments for another command (e.g., <i>rm</i>, <i>mv</i>, <i>grep</i>). It offers powerful options to control how arguments are grouped, how many commands are run in parallel, and how special characters in filenames (like spaces or newlines) are handled, making it an indispensable tool for shell scripting and automation.


title: CAVEATS
content:
Using <b>xargs</b> with default settings can be problematic when dealing with filenames or data containing spaces, newlines, or other special characters, as these are typically treated as delimiters. Always prefer the <b>-0</b> option in conjunction with commands that produce null-terminated output (like `find -print0`) for robust and reliable processing of arbitrary filenames. <br><br>While <b>xargs</b> helps circumvent argument list limits, it still has its own internal limit on the total command line length (controlled by <b>-s</b>), which, if exceeded, may lead to errors or unexpected behavior depending on the options used. Command failures are typically not propagated back as errors to <b>xargs</b> by default, so you might need to check the exit status of the executed command within a subshell or use `sh -c 'command args'` to handle errors more gracefully.


title: COMMON USAGE PATTERNS
content:
One of the most common and robust ways to use <b>xargs</b> is with `find` to process files, especially those with problematic names:<br><i>find . -type f -name "*.log" -print0 | xargs -0 rm</i><br>This ensures that filenames containing spaces or newlines are handled correctly. <br><br>Another common pattern involves executing a command per item, such as copying files:<br><i>ls *.txt | xargs -I {} cp {} /backup/dir/</i><br>Here, `{}` acts as a placeholder for each input line.


title: PERFORMANCE WITH PARALLEL EXECUTION
content:
For tasks that can be parallelized, the <b>-P</b> option can significantly speed up execution. For example, converting multiple images using `convert`:<br><i>find . -name "*.jpg" -print0 | xargs -0 -P 4 convert -quality 75 {} {}.webp</i><br>This command would run up to 4 `convert` processes simultaneously, taking advantage of multi-core processors. Be mindful of system resources when using high values for <b>-P</b>.


title: HISTORY
content:
The <b>xargs</b> command has been a part of Unix-like operating systems since the early days, primarily introduced to handle the `ARG_MAX` limitation – the maximum length of arguments to a command. As the number of files or items grew, passing them directly to commands could easily exceed this limit, leading to errors. <b>xargs</b> provided an elegant solution by splitting the input into smaller chunks and executing the command multiple times. <br><br>Its development has focused on robustness, particularly in handling special characters in filenames, leading to the widely adopted <b>-0</b> option in the GNU version. This feature, along with parallel execution capabilities (<b>-P</b>), has cemented <b>xargs</b>'s role as a powerful and essential utility in the Unix toolkit.


title: PARAMETERS
content:
<b><b>-f</b> <i>filename</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the authorization file to use instead of the default <i>~/.Xauthority</i>.<br><br><b><b>-v</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables verbose output, providing more details about <i>xauth</i> operations.<br><br><b><b>-q</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Suppresses status messages, making the output quieter.<br><br><b><b>-b</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Automatically backs up the authorization file before modifications.<br><br><b><b>-i</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Ignores any broken or stale locks on the authorization file.<br><br><b><b>-s</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disables file locking. Use with caution as it can lead to file corruption with concurrent access.<br><br><b><b>-u</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;When adding or generating entries, marks them as 'untrusted' for security reasons.<br><br><b><b>-r</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;When adding an entry, removes any existing entry with the same display name first.<br><br><b><b>-w</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Waits for the authorization file lock to be released, instead of failing immediately.<br><br><b><b>add</b> <i>displayname protocalname hexkey</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Adds a new authorization entry for the specified display, protocol, and hex key.<br><br><b><b>remove</b> <i>displayname ...</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Removes one or more authorization entries for the specified display names.<br><br><b><b>extract</b> <i>filename displayname ...</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Extracts authorization entries for specified displays into a new file.<br><br><b><b>merge</b> <i>filename ...</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Merges authorization entries from one or more files into the current authorization file.<br><br><b><b>list</b> [<i>displayname ...</i>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Lists authorization entries. If display names are provided, only lists those; otherwise, lists all.<br><br><b><b>generate</b> <i>displayname</i> [<i>protocolname</i>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Generates a new authorization entry with a fresh magic cookie. Can be used with options like <i>timeout</i>, <i>trusted</i>, or <i>untrusted</i>.<br><br><b><b>info</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays information about the current authorization file, such as its path and permissions.<br><br>


title: DESCRIPTION
content:
<i>xauth</i> is a utility for editing and displaying the authorization records used by X applications to connect to an X server. These records are typically stored in the user's <i>.Xauthority</i> file, usually located in the home directory. Each entry in this file contains essential information such as the display name, the authorization protocol (e.g., MIT-MAGIC-COOKIE-1), and a secret key or 'magic cookie'.<br><br>The primary function of <i>xauth</i> is to provide a secure mechanism for X clients to prove their identity and obtain permission to access a specific X display. It allows users to add, remove, list, extract, and merge authorization entries. This is particularly crucial for remote X connections, such as those facilitated by SSH X forwarding (<i>ssh -X</i> or <i>ssh -Y</i>), where <i>ssh</i> automatically leverages <i>xauth</i> to manage temporary authorization cookies. Without correct and valid authorization, X applications will be denied access to the display, resulting in connection errors.


title: CAVEATS
content:
The <i>.Xauthority</i> file contains sensitive authorization credentials; its permissions must be strictly managed (readable/writable only by the owner) to prevent unauthorized access to your X display. Incorrect file permissions or corrupted entries can lead to X application connection failures. Using the <i>-s</i> option (no locking) is generally unsafe as it can lead to data corruption if multiple processes attempt to modify the file concurrently. <i>xauth</i> itself does not encrypt the contents of the authorization file.


title: THE .XAUTHORITY FILE
content:
The <i>.Xauthority</i> file is the default location where <i>xauth</i> stores X authorization credentials. It's a binary file containing records, each associating a display name (e.g., 'localhost:0', 'unix:0'), an authorization protocol (e.g., MIT-MAGIC-COOKIE-1), and the actual secret key (the 'magic cookie'). This file must be kept private and secure, typically with <i>0600</i> permissions, as anyone with read access to this file could potentially connect to your X display.


title: COMMON USE CASES
content:
<b>Listing entries:</b> <i>xauth list</i> displays all current authorization entries.<br><br><b>Transferring cookies:</b> <i>xauth extract - $DISPLAY | ssh remote_host xauth merge -</i> securely transfers the current display's authorization cookie to a remote host, enabling X applications on the remote host to connect back to your local display.<br><br><b>SSH X Forwarding:</b> When you use <i>ssh -X</i> or <i>ssh -Y</i>, SSH automatically generates a temporary authorization cookie on the remote host and uses <i>xauth</i> to add it to the remote user's <i>.Xauthority</i> file, enabling secure X forwarding.<br><br><b>Generating new cookies:</b> <i>xauth generate :1 . trusted</i> can be used to create a new trusted authorization cookie for a specific display, which can be useful for configuring display managers or other services.


title: HISTORY
content:
<i>xauth</i> is a long-standing utility within the X Window System, having been a core component since early X11 releases (e.g., X11R4). Its development has focused on providing a robust and secure method for managing authorization credentials for X clients, evolving alongside the security needs of networked X applications. It plays a critical role in the secure operation of X displays, particularly in multi-user or networked environments, by ensuring only authorized clients can connect.


title: SYNOPSIS
content:
<b>xbacklight</b> [<i>-get</i> | <i>-set &lt;percentage&gt;</i> | <i>-inc &lt;percentage&gt;</i> | <i>-dec &lt;percentage&gt;</i>] [<i>-time &lt;milliseconds&gt;</i>] [<i>-steps &lt;number&gt;</i>] [<i>-fps &lt;frames_per_second&gt;</i>]


title: PARAMETERS
content:
<b><i>-get</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Get the current backlight brightness level as a percentage (0 to 100).<br><br><b><i>-set &lt;percentage&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the backlight brightness to the specified percentage (0 to 100).<br><br><b><i>-inc &lt;percentage&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Increase the backlight brightness by the specified percentage. Can be combined with <i>-time</i> for a fade effect.<br><br><b><i>-dec &lt;percentage&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Decrease the backlight brightness by the specified percentage. Can be combined with <i>-time</i> for a fade effect.<br><br><b><i>-time &lt;milliseconds&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify the duration (in milliseconds) over which a brightness change should occur, enabling a smooth fade effect. Used with <i>-inc</i> or <i>-dec</i>.<br><br><b><i>-steps &lt;number&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Define the number of discrete steps to use when fading the brightness. More steps generally result in a smoother fade. Used with <i>-time</i>.<br><br><b><i>-fps &lt;frames_per_second&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the frames per second for the fade animation. This determines how quickly the brightness changes are rendered during a fade. Used with <i>-time</i>.<br><br>


title: DESCRIPTION
content:
<i>xbacklight</i> is a command-line utility for controlling the backlight brightness of displays connected to an X.Org server. It leverages the RandR (X Resize, Rotate and Reflect) extension to interact with the display hardware. Unlike some other backlight control tools, <i>xbacklight</i> operates within the X session environment, making it particularly useful for desktop users running X.Org.<br><br>It provides functionalities to query the current brightness, set it to a specific percentage, or incrementally increase/decrease it. Furthermore, it supports smooth transitions (fades) over a specified duration, providing a more pleasant user experience than abrupt changes. While effective for X.Org, its functionality is limited to this display server and typically does not work with newer display protocols like Wayland.


title: CAVEATS
content:
<i>xbacklight</i> relies exclusively on the X.Org RandR extension. It <b>will not work</b> on systems using other display servers like Wayland. <br>Some graphics drivers may not fully support RandR backlight control, or might require specific kernel modules or specific X.Org configuration. <br>In certain scenarios, adjusting brightness might require root privileges or proper user group permissions (e.g., being in the 'video' group).


title: PERMISSIONS
content:
Ensure your user has the necessary permissions to control display settings, often by being part of the 'video' group or by using 'sudo' if system-wide changes are needed. Incorrect permissions are a common reason for <i>xbacklight</i> failing.


title: DRIVER SUPPORT
content:
Functionality is heavily dependent on your graphics driver's support for the RandR backlight property. If <i>xbacklight</i> doesn't work as expected, investigate your graphics driver configuration and ensure it properly exposes backlight control via RandR.


title: HISTORY
content:
<i>xbacklight</i> is a part of the X.Org utility suite, developed to provide a standard command-line interface for backlight control through the X RandR extension. Its development is intertwined with the evolution of the RandR extension itself, which became a widely adopted mechanism for display management within the X Window System. It emerged as a convenient tool for users and scripts to adjust display brightness without relying on hardware hotkeys or specific desktop environment controls, particularly prevalent in lightweight desktop environments or tiling window managers.


title: PARAMETERS
content:
<b><b>-display</b> <i>host:dpy</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the X server to contact.<br><br><b><b>-geometry</b> <i>geom</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the initial size and location of the <i>xbiff</i> window.<br><br><b><b>-file</b> <i>filename</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the path to the mailbox file to be monitored. The default is usually <code>/var/mail/$USER</code> or the value of the <code>$MAIL</code> environment variable.<br><br><b><b>-update</b> <i>seconds</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the frequency, in seconds, at which <i>xbiff</i> should check the mail file for changes. The default is 5 seconds.<br><br><b><b>-font</b> <i>fontname</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the font to be used for displaying the number of new messages, if enabled via X resources.<br><br><b><b>-xrm</b> <i>resourcestring</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a resource string to be merged with the application's resources.<br><br><b>Standard X Toolkit Options</b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>xbiff</i> supports many standard X Toolkit command line options, such as <b>-bg</b> (background color), <b>-fg</b> (foreground color), <b>-bw</b> (border width), <b>-bd</b> (border color), <b>-name</b> (application name), and <b>-title</b> (window title).<br><br>


title: DESCRIPTION
content:
<i>xbiff</i> is an X Window System client that visually notifies the user of the arrival of new mail. It typically displays a small mailbox icon on the desktop. When new mail arrives in the monitored mailbox file, the flag on the mailbox icon goes up, and optionally, an audible bell is rung. This provides an immediate visual and auditory alert without requiring the user to constantly check their mail client.<br><br>Users can configure <i>xbiff</i> to monitor a specific mail file and define the polling interval. It's often set up to automatically launch with the X session. While simple, it's a classic utility for desktop mail alerts, especially for traditional Unix mailbox formats.


title: CAVEATS
content:
<i>xbiff</i> is designed primarily for monitoring traditional mbox-style mail files. It does not natively support modern mail formats like Maildir or remote protocols like IMAP/POP3. Users with such setups would need external scripts or other tools to convert or proxy mail into an mbox file that <i>xbiff</i> can monitor. It also requires an active X Window System environment to function.


title: X RESOURCES
content:
<i>xbiff</i> is highly customizable through X resources. These resources, typically set in files like <code>~/.Xresources</code> or <code>~/.Xdefaults</code>, control aspects such as colors (<code>mailForeground</code>, <code>mailBackground</code>), the command executed when the mailbox is clicked (<code>checkCommand</code>, <code>newMailCommand</code>), whether a bell rings (<code>onceOnly</code>, <code>bell</code>), and the images used for the empty and full mailbox (<code>emptyBox</code>, <code>fullBox</code>). This allows users to deeply personalize its appearance and behavior beyond command-line options.


title: INTERACTION
content:
Clicking the <i>xbiff</i> mailbox icon typically executes a pre-configured command, often a mail reader. This behavior is customizable via X resources like <code>checkCommand</code> (executed when new mail arrives and the flag is up) and <code>newMailCommand</code> (executed when the flag goes up for the first time or after being dismissed). The default behavior usually involves launching a simple <code>xterm -e mail</code> or similar.


title: MAILBOX FORMAT
content:
<i>xbiff</i> directly monitors a single mail file (e.g., <code>/var/mail/$USER</code> or <code>/home/$USER/mail/inbox</code>). It works by checking the size and modification timestamp of this file. If the file grows or is modified, <i>xbiff</i> interprets this as new mail. This simplicity is both a strength and a limitation, as it assumes a traditional mbox-style mail storage.


title: HISTORY
content:
<i>xbiff</i> is a venerable utility that has been a part of the standard X Window System distribution since its early days. It originated as one of the basic tools provided for X desktops, reflecting the importance of mail notification in computing environments. It has undergone relatively few changes over its lifetime, maintaining its core functionality as a simple, reliable mail notifier. Its development is intertwined with the evolution of the X Window System itself, maintained by the X.Org Foundation.


title: DESCRIPTION
content:
The <B>xbmtopbm</B> utility is an essential component of the <I>Netpbm</I> image manipulation toolkit. Its primary function is to convert image files from the X11 bitmap (<B>XBM</B>) format, commonly used within the X Window System for representing cursors, glyphs, and small monochrome icons, into the portable bitmap (<B>PBM</B>) format. <BR><BR> <B>PBM</B> is one of the foundational formats of the <I>Netpbm</I> suite, designed for simplicity and portability, representing black and white (monochrome) images with one bit per pixel. By transforming <B>XBM</B> files into <B>PBM</B>, <B>xbmtopbm</B> enables these bitmaps to be seamlessly integrated into a broader image processing workflow. This allows users to leverage the extensive array of other <I>Netpbm</I> tools for further manipulation, conversion to other formats, or analysis. <BR><BR> The command operates as a filter: it typically reads the <B>XBM</B> data from standard input if no file is specified, or from a provided input file, and writes the resulting <B>PBM</B> data to standard output, making it highly suitable for use in Unix-like shell pipelines.


title: CAVEATS
content:
Input files must strictly adhere to the <B>XBM</B> file format specification; malformed or non-standard <B>XBM</B> files may cause errors or unexpected output. <BR><BR> <B>xbmtopbm</B> produces monochrome <B>PBM</B> output exclusively, as <B>XBM</B> is inherently a 1-bit per pixel format. Any implied color information from the <B>XBM</B> source (which is rare for <B>XBM</B>) would be lost.


title: USAGE EXAMPLES
content:
To convert an <B>XBM</B> file named <I>image.xbm</I> to a <B>PBM</B> file named <I>image.pbm</I>:<BR><BR><I>xbmtopbm image.xbm <B>&gt;</B> image.pbm</I><BR><BR>To use <B>xbmtopbm</B> in a pipeline, reading from standard input and writing to standard output:<BR><BR><I>cat image.xbm <B>|</B> xbmtopbm <B>&gt;</B> image.pbm</I>


title: HISTORY
content:
<B>xbmtopbm</B> is an integral part of the <I>Netpbm</I> suite of graphics tools, which originated from the <I>PBMplus</I> package developed by Jef Poskanzer in the late 1980s. The <I>Netpbm</I> project's core philosophy emphasizes creating small, modular utilities that perform a single task well and can be chained together using standard Unix pipes. <BR><BR> <B>xbmtopbm</B> perfectly embodies this design, providing a straightforward and reliable conversion function. Its inclusion in the suite ensures interoperability between the specific <B>XBM</B> format used by the X Window System and the versatile <I>Netpbm</I> ecosystem, thereby extending the utility and processing capabilities of <B>XBM</B> files within a wider range of image manipulation tasks.


title: SYNOPSIS
content:
The <b>xbps</b> system comprises several specialized commands for distinct operations:<br><br><b>xbps-install</b> [<i>options</i>] <i>package</i>...<br><i>(To install or update specific packages)</i><br><br><b>xbps-install -Su</b> [<i>options</i>]<br><i>(To synchronize repositories and update all installed packages)</i><br><br><b>xbps-remove</b> [<i>options</i>] <i>package</i>...<br><i>(To remove installed packages)</i><br><br><b>xbps-query</b> [<i>options</i>] [<i>pattern</i>]<br><i>(To query package information, local or remote)</i><br><br><b>xbps-pkgdb</b> [<i>options</i>]<br><i>(To check and fix package database consistency)</i>


title: PARAMETERS
content:
<b><b>-S</b>, <b>--sync</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Synchronize remote repositories' index files to get the latest package lists. Typically used with <b>xbps-install</b>.<br><br><b><b>-u</b>, <b>--update</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Update all installed packages to their latest versions. Commonly combined with <b>-S</b> as <b>-Su</b>.<br><br><b><b>-y</b>, <b>--yes</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Assume 'yes' to all prompts, useful for automated scripts or non-interactive operations.<br><br><b><b>-f</b>, <b>--force</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Force specific operations, such as reinstalling packages or overwriting existing files, even if conflicts exist. Use with caution.<br><br><b><b>-r</b>, <b>--rootdir</b> <i>dir</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Perform operations on a different root directory (e.g., for chroot environments) instead of the system's actual root (<b>/</b>).<br><br><b><b>-R</b>, <b>--repository</b> <i>url</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify an alternative or custom repository URL for package operations, overriding defaults.<br><br><b><b>-v</b>, <b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Increase the verbosity of output, showing more details about the ongoing operations.<br><br><b><b>-l</b>, <b>--list</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;List all installed packages. Used with <b>xbps-query</b>.<br><br><b><b>-s</b>, <b>--search</b> <i>pattern</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Search for packages matching a specified pattern in both local and remote repositories. Used with <b>xbps-query</b>.<br><br><b><b>-o</b>, <b>--orphans</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;List or remove orphaned packages (dependencies that are no longer required by any installed software). Used with <b>xbps-query</b> or <b>xbps-remove</b>.<br><br><b><b>-p</b>, <b>--properties</b> <i>field</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display specific properties of a package, such as its dependencies, size, or description. Used with <b>xbps-query</b>.<br><br><b><b>-h</b>, <b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a help message providing usage information for the specific <b>xbps</b> command.<br><br>


title: DESCRIPTION
content:
<b>xbps</b> (X Binary Package System) is the native package manager for <i>Void Linux</i>. It's engineered for speed, simplicity, and robustness, offering a transactional and dependency-aware system for managing software packages efficiently. A core design principle of <b>xbps</b> is its use of secure hashing for package integrity and metadata, which helps prevent corruption and ensures system consistency. It uniquely supports both binary package installation and building from source (via <b>xbps-src</b>), catering to various user needs. <b>xbps</b> commands handle critical tasks like installing new software, upgrading the entire system, removing unwanted packages, and synchronizing with remote repositories. Its clear, command-line interface is designed to be intuitive, making package management straightforward for users familiar with other Linux distributions.


title: CAVEATS
content:
<b>xbps</b> is the default and integral package manager for <i>Void Linux</i>; it is not typically found or directly usable on other Linux distributions. Most package management operations, including installation, removal, and system updates, require <i>root privileges</i> (e.g., using <b>sudo</b>). Users should exercise caution with options like <b>--force</b> or when modifying system files manually, as improper use can compromise system integrity or stability.


title: THE XBPS-SRC UTILITY
content:
Beyond handling binary packages, the <b>xbps</b> ecosystem includes <b>xbps-src</b>, a powerful tool for building packages directly from source code. It works in conjunction with the <i>void-packages</i> repository, which hosts build templates (known as <i>templates</i>) for thousands of software applications. This allows users to easily compile software with custom configurations or contribute new packages to the Void Linux distribution. <b>xbps-src</b> is designed to ensure reproducible builds and correct dependency management, producing native <b>xbps</b> packages that integrate seamlessly with the system.


title: TRANSACTIONAL UPDATES
content:
A hallmark feature of <b>xbps</b> is its <i>transactional update</i> mechanism. When performing system upgrades or package installations, <b>xbps</b> executes these operations as atomic transactions. This means that if an update process is interrupted (e.g., due to a power failure or network issue), <b>xbps</b> can revert the system to its previous consistent state, preventing a partially updated or broken system. This robust approach significantly enhances system reliability and reduces the risk of unbootable systems after critical operations.


title: HISTORY
content:
<b>xbps</b> was originally developed by <i>Juan RP</i> as the foundational package manager for <i>Void Linux</i>, which he also founded. Its inception was driven by a desire for a fast, simple, and robust package management solution, distinguishing itself with features like secure hashing (SHA256) for all package metadata and files, and a transactional update system. This design choice ensures system consistency and integrity, significantly reducing the risk of broken dependencies or partial updates. Since its creation, <b>xbps</b> has been central to Void Linux's unique identity, enabling both seamless binary package management and efficient source-based building.


title: SYNOPSIS
content:
<b>xbps-install</b> [<i>options</i>] [<i>package</i> ...]<br><b>xbps-install</b> [<b>-S</b> | <b>--sync</b>] [<b>-u</b> | <b>--update</b>] [<i>options</i>]


title: PARAMETERS
content:
<b><b>-S</b>, <b>--sync</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Synchronizes the local repository data with the remote servers.<br><br><b><b>-u</b>, <b>--update</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Upgrades all installed packages and performs a full system update.<br><br><b><b>-y</b>, <b>--yes</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Assumes 'yes' to all prompts, allowing unattended operations.<br><br><b><b>-f</b>, <b>--force</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Forces the reinstallation of packages, even if they are already installed.<br><br><b><b>-r</b>, <b>--rootdir</b> <I>dir</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Installs packages into an alternative root directory, useful for chroot environments.<br><br><b><b>-R</b>, <b>--repository</b> <I>repo</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies an alternative repository URL or path to use.<br><br><b><b>-o</b>, <b>--old-pkg</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Allows downgrading of packages if a newer version is currently installed.<br><br><b><b>-m</b>, <b>--manual</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Marks the specified packages as manually installed, preventing their auto-removal if no other package depends on them.<br><br><b><b>-A</b>, <b>--arch</b> <I>arch</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Overrides the default system architecture for package installation.<br><br><b><b>-k</b>, <b>--keep-pkg</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents the removal of package files from the cache after successful installation.<br><br><b><b>-v</b>, <b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays verbose output, providing more detailed information during operations.<br><br><b><b>-D</b>, <b>--debug</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables debugging output, useful for troubleshooting.<br><br>


title: DESCRIPTION
content:
<code>xbps-install</code> is the <I>command-line utility</I> for managing software packages in <I>Void Linux</I>. As part of the <I>X Binary Package System (XBPS)</I>, it efficiently handles the installation of new software, system-wide upgrades, and the removal of existing packages. It is designed for speed and simplicity, automatically resolving package dependencies, fetching binaries from remote repositories, verifying their integrity using cryptographic signatures, and configuring them post-installation. It can install packages from official repositories, local `.xbps` files, or even direct URLs. Its robust design contributes to Void Linux's stability and fast update cycles. Users frequently employ it for daily system maintenance, from adding specific applications to performing full system upgrades with a single command.


title: CAVEATS
content:
Most operations require <I>root privileges</I>. A stable internet connection is crucial for fetching packages from remote repositories. While powerful, it lacks a graphical user interface, relying solely on the command line.


title: SYSTEM UPDATE COMMAND
content:
The most common command for a full system update is <B><code>xbps-install -Su</code></B>. This command first <I>synchronizes</I> repository data, then <I>updates</I> all installed packages, ensuring your system is up-to-date.


title: OFFLINE INSTALLATION
content:
Packages can be installed from local <I>.xbps</I> files using <B><code>xbps-install /path/to/package.xbps</code></B>, allowing installations without an internet connection if the package is already downloaded.


title: HISTORY
content:
XBPS, including <I>xbps-install</I>, was developed by <I>Juan RP</I>, the founder of Void Linux, around <I>2008-2009</I>. It emerged from a desire for a fast, simple, and robust binary package management system that avoids the complexities of other tools. Its design emphasizes speed, dependency resolution, cryptographic package signing, and the ability to perform atomic updates, making it a cornerstone of the Void Linux distribution.


title: PARAMETERS
content:
<b><b>-l</b>, <b>--list</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;List all installed packages on the system.<br>Example: <i>xbps-query -l</i><br><br><b><b>-s</b> <i>pattern</i>, <b>--search</b> <i>pattern</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Search installed packages whose name or description matches the specified <i>pattern</i>. Case-insensitive by default.<br>Example: <i>xbps-query -s firefox</i><br><br><b><b>-S</b> <i>pattern</i>, <b>--search-remote</b> <i>pattern</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Search for packages in the configured remote repositories whose name or description matches the specified <i>pattern</i>.<br>Example: <i>xbps-query -S gcc</i><br><br><b><b>-i</b> <i>pkgname</i>, <b>--info</b> <i>pkgname</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display detailed information about a specified <i>pkgname</i>, including version, architecture, dependencies, and more.<br>Example: <i>xbps-query -i vim</i><br><br><b><b>-o</b>, <b>--orphans</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;List all installed packages that are considered 'orphaned' (not explicitly installed by the user and no longer a dependency of another installed package).<br><br><b><b>-f</b> <i>pkgname</i>, <b>--files</b> <i>pkgname</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;List all files installed by the specified <i>pkgname</i>.<br>Example: <i>xbps-query -f bash</i><br><br><b><b>-d</b> <i>pkgname</i>, <b>--deps</b> <i>pkgname</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show the direct runtime dependencies of the specified <i>pkgname</i>.<br>Example: <i>xbps-query -d openssl</i><br><br><b><b>-t</b> <i>pkgname</i>, <b>--transitive-deps</b> <i>pkgname</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show all transitive (recursive) runtime dependencies of the specified <i>pkgname</i>.<br>Example: <i>xbps-query -t systemd</i><br><br><b><b>-w</b> <i>file</i>, <b>--what-provides</b> <i>file</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Determine which installed package provides the specified <i>file</i>.<br>Example: <i>xbps-query -w /bin/ls</i><br><br><b><b>-x</b> <i>pattern</i>, <b>--regex</b> <i>pattern</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Treat the search <i>pattern</i> as a regular expression. Can be combined with <b>-s</b> or <b>-S</b>.<br>Example: <i>xbps-query -Sx '^lib[a-z]+-dev$'</i><br><br><b><b>-R</b>, <b>--repository</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Operate in repository mode. Often used with <b>-S</b> to specify that the search should be performed against remote repositories.<br><br><b><b>-r</b> <i>rootdir</i>, <b>--rootdir</b> <i>rootdir</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify an alternative root directory for package operations (useful for chroot environments).<br><br><b><b>-C</b> <i>configfile</i>, <b>--config</b> <i>configfile</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify an alternative configuration file for XBPS instead of the default.<br><br><b><b>-p</b> <i>prop</i>, <b>--property</b> <i>prop</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a specific property of a package, e.g., 'version', 'architecture', 'size'.<br>Example: <i>xbps-query -p version bash</i><br><br><b><b>-v</b>, <b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enable verbose output, providing more detailed information during the query.<br><br><b><b>-h</b>, <b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a help message with available options.<br><br><b><b>-V</b>, <b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show the XBPS version information.<br><br>


title: DESCRIPTION
content:
<i>xbps-query</i> is a powerful command-line utility within the <B>XBPS (X Binary Package System)</B> suite, primarily used on Void Linux. It enables users to retrieve extensive information about installed packages, available packages in configured repositories, package dependencies, contained files, and various package properties. This command is an essential tool for system administrators and users to understand, manage, and troubleshoot their software installations, providing detailed metadata without requiring network access for local queries, and offering comprehensive search capabilities for remote repositories.


title: CAVEATS
content:
<i>xbps-query</i> is an integral part of the <B>XBPS</B> package manager and is therefore specific to systems that use XBPS, most notably <B>Void Linux</B>. Its functionality depends on the integrity of the local package database and the availability of configured remote repositories for network-based queries. Queries for remote packages require an active internet connection and correctly configured repository URLs in <i>/etc/xbps.d/</i> or via the <b>-C</b> option.


title: COMBINED FLAGS
content:
Many flags can be combined for more specific queries. For instance, <b>-Rs</b> performs a remote search and displays full information for matching packages, while <b>-Rx</b> allows remote regex search. This flexibility makes <i>xbps-query</i> a very versatile tool for package investigation.


title: QUERYING PACKAGE PROPERTIES
content:
The <b>-p</b> option is incredibly powerful for scripting or obtaining specific metadata. You can query properties like 'maintainer', 'shlib-provides', 'shlib-requires', 'homepage', and more, allowing for fine-grained information retrieval about any package.


title: DATABASE CORRUPTION
content:
If the local XBPS package database becomes corrupted (e.g., due to system crashes during package operations), <i>xbps-query</i> may return inaccurate results or errors. In such cases, <i>xbps-pkgdb -a</i> can often be used to fix common database inconsistencies.


title: HISTORY
content:
<i>xbps-query</i> is a core component of the <B>X Binary Package System (XBPS)</B>, which was created by <B>Juan RP (Runar Kristiansen)</B> in 2008. XBPS was designed from the ground up to be a simple, fast, and robust package manager for Unix-like systems, emphasizing simplicity and performance. It became the default package manager for <B>Void Linux</B> in 2013, contributing significantly to the distribution's reputation for speed and efficiency. The command's development has been closely tied to the evolution of Void Linux, continually improving its querying capabilities and integration with the wider XBPS ecosystem.


title: PARAMETERS
content:
<b><b>-d</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Perform a <i>dry-run</i>: show what would be removed without actually removing anything. Useful for previewing changes.<br><br><b><b>-f</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Force removal of the package. Can be used to bypass certain checks or remove packages that are otherwise difficult to remove.<br><br><b><b>-n</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Do not ask for confirmation; assume 'yes' to all prompts during the removal process. Use with caution.<br><br><b><b>-R</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Remove recursively. This option removes the specified package(s) and all its dependencies that are no longer needed by any other installed package on the system.<br><br><b><b>-o</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Remove orphaned packages. This specifically targets packages that are installed but no longer required as a dependency by any other manually installed package.<br><br><b><b>-O</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Remove orphaned packages but do <i>not</i> remove their configuration files. Useful for preserving settings for potential future installations.<br><br><b><b>-r</b> <i>rootdir</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Perform the operation within the specified <i>root directory</i>, allowing for package management in an alternative root filesystem.<br><br><b><b>-v</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enable verbose output, providing more detailed information about the removal process.<br><br>


title: DESCRIPTION
content:
<i>xbps-remove</i> is a powerful command-line utility within the XBPS (X Binary Package System), the default package manager for Void Linux. Its primary function is to uninstall previously installed software packages from the system. It intelligently handles package dependencies, allowing users to remove not only specified packages but also their no-longer-needed dependencies (often referred to as <i>orphaned packages</i>) through specific options like <br><i>-R</i> or <i>-o</i>. <br><br>The command interacts directly with the local package database to ensure system consistency and accurate dependency tracking. It is an essential tool for system maintenance, freeing up disk space, and managing the installed software base efficiently in Void Linux environments. Users typically invoke it with one or more package names, providing a straightforward way to keep their systems clean and optimized.


title: CAVEATS
content:
Removing essential system packages can severely compromise or render your Void Linux system unbootable. Always exercise caution, especially when using options like <br><i>-f</i> (force) or <i>-R</i> (recursive removal). It's recommended to understand the implications of removing dependencies before proceeding. Configuration files for removed packages are often left behind by default unless specific options like <br><i>-O</i> are used for orphaned packages, or manual cleanup is performed.


title: ORPHANED PACKAGES AND SYSTEM CLEANUP
content:
An <i>orphaned package</i> is a package that was installed as a dependency of another package, but the original package has since been removed, leaving the dependency no longer required by any active application. The <br><i>-o</i> option of <i>xbps-remove</i> is specifically designed to identify and remove these orphaned packages, which is crucial for maintaining a lean system and freeing up disk space over time. The <br><i>-R</i> option extends this by also removing dependencies of a specified package that become orphaned after its removal.


title: HANDLING CONFIGURATION FILES
content:
By default, when a package is removed with <i>xbps-remove</i>, its configuration files are often left on the system. This behavior is intentional, allowing users to retain their settings should they decide to reinstall the package later, or to manually clean them up if desired. For orphaned packages, the <br><i>-O</i> option provides a way to remove the package while explicitly preserving its configuration files, offering flexibility in system cleanup strategies.


title: HISTORY
content:
<i>xbps-remove</i> is an integral part of the XBPS (X Binary Package System), which was initially developed by Juan Romero Pardines. XBPS was designed from the ground up for simplicity, speed, and robustness, becoming the core package manager for Void Linux. <i>xbps-remove</i>'s design reflects these principles, providing a straightforward yet powerful utility for managing package removals and maintaining system cleanliness, evolving alongside the XBPS project itself since its inception.


title: SYNOPSIS
content:
<br><code><b>xcaddy</b> [<i>command</i>] [<i>options</i>]</code><br><br>Common commands:<br><code><b>xcaddy</b> build [<i>options</i>]</code><br><code><b>xcaddy</b> version</code><br><code><b>xcaddy</b> help</code>


title: PARAMETERS
content:
<b>build</b><br>&nbsp;&nbsp;&nbsp;&nbsp;The primary command to compile and build a Caddy binary.<br><br><b>--output &lt;path&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the full path and name for the resulting Caddy binary. Defaults to 'caddy' in the current directory.<br><br><b>--with &lt;module_path&gt;[@&lt;version&gt;]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Includes a Caddy module (plugin) in the build. This option can be specified multiple times to include several modules. Optionally, a specific version of the module can be appended.<br><br><b>--platform &lt;GOOS&gt;/&lt;GOARCH&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the target operating system and architecture for cross-compilation (e.g., <code>linux/arm64</code>, <code>windows/amd64</code>).<br><br><b>--go &lt;version&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the Go version to use for building Caddy. <i>xcaddy</i> will attempt to download and use it if not already present on the system.<br><br><b>--goos &lt;GOOS&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the target operating system (e.g., <code>linux</code>, <code>windows</code>). Often used with <code>--goarch</code> as an alternative to <code>--platform</code>.<br><br><b>--goarch &lt;GOARCH&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the target architecture (e.g., <code>amd64</code>, <code>arm64</code>). Often used with <code>--goos</code> as an alternative to <code>--platform</code>.<br><br><b>--goarm &lt;GOARM&gt;</b><br>&nbsp;&nbsp;&nbsp;&nbsp;For ARM architectures, specifies the ARM version (e.g., <code>7</code> for ARMv7). Only relevant when targeting ARM.<br><br><b>--skip-build</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Skips the actual Caddy build process. Useful for debugging module compatibility or other pre-build steps.<br><br><b>--enable-telemetry</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables anonymous telemetry reporting for the <i>built Caddy binary</i> (not for <i>xcaddy</i> itself). This helps the Caddy project understand usage.<br><br><b>version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the version of the <i>xcaddy</i> tool itself.<br><br><b>help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays help information for <i>xcaddy</i> or a specific command.<br><br>


title: DESCRIPTION
content:
<br><i>xcaddy</i> is a powerful command-line utility designed to simplify the process of building custom Caddy server binaries. Caddy is a modern, open-source web server that automatically uses HTTPS. While Caddy comes with a robust set of features out-of-the-box, its functionality can be extended via various Go modules (plugins). <i>xcaddy</i> allows users to effortlessly include these external modules into their Caddy build, ensuring a tailored server binary that meets specific requirements. It handles Go module fetching, dependency resolution, and compilation, making it the official and recommended tool for creating custom Caddy distributions. This is especially useful for integrating DNS providers, specific authentication mechanisms, or other third-party functionalities directly into the Caddy executable.


title: CAVEATS
content:
<ul><li><b>Go Installation</b>: <i>xcaddy</i> requires the Go programming language to be installed and accessible in your system's PATH. While it can download specific Go versions for the Caddy build, the underlying 'go' command is still needed.</li><li><b>Internet Connection</b>: Building with external modules or specific Go versions requires an active internet connection to download necessary dependencies and Go SDKs.</li><li><b>Build Time</b>: Compiling Caddy, especially with numerous modules, can be time-consuming depending on your system's hardware resources and network speed.</li><li><b>Module Compatibility</b>: Ensure that the Caddy modules you specify are compatible with the Caddy version <i>xcaddy</i> uses (typically the latest stable version unless specified otherwise). Incompatible modules can lead to build failures.</li></ul>


title: OFFICIAL BUILD TOOL
content:
<i>xcaddy</i> is the officially recommended and supported tool for building Caddy, especially when including third-party modules. It ensures proper dependency resolution and compatibility within the Caddy ecosystem.


title: CROSS-COMPILATION CAPABILITIES
content:
A significant feature of <i>xcaddy</i> is its ability to easily cross-compile Caddy binaries for different operating systems and architectures (e.g., Linux ARM for Raspberry Pi, Windows for servers). This makes it ideal for deployment to various environments like Docker containers, embedded systems, or different server platforms.


title: HISTORY
content:
<i>xcaddy</i> was introduced by the Caddy project to streamline the process of building custom Caddy binaries, particularly after Caddy v2 adopted a Go module-based plugin system. Prior to <i>xcaddy</i>, users often had to manually manage Go modules and compilation steps, which could be complex and error-prone. <i>xcaddy</i> simplifies this by providing an official, easy-to-use CLI tool that abstracts away the complexities of Go module integration and compilation, ensuring consistent and reliable custom Caddy builds. It quickly became the recommended and de-facto standard for extending Caddy's functionality.


title: SYNOPSIS
content:
<b>xcalc</b> [<i>-st</i>] [<i>-rpn</i>] [<i>-ul</i>] [<i>-j</i>] [<i>-g geometry</i>] [<i>-d display</i>]<br>This synopsis shows the main command-line options available for launching <b>xcalc</b>.


title: PARAMETERS
content:
<b><i>-st</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts <b>xcalc</b> in standard (algebraic) mode. This is the default behavior if neither <i>-st</i> nor <i>-rpn</i> is specified.<br><br><b><i>-rpn</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts <b>xcalc</b> in Reverse Polish Notation (RPN) mode, similar to HP calculators.<br><br><b><i>-ul</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses an underline cursor in the display area instead of the default filled box cursor.<br><br><b><i>-j</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables 'jump' mode, causing the cursor to visually jump to buttons when they are pressed.<br><br><b><i>-g geometry</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the initial size and position of the calculator window using standard X geometry syntax (e.g., <i>80x24+100+100</i>).<br><br><b><i>-d display</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the X display server to connect to, overriding the <i>DISPLAY</i> environment variable.<br><br>


title: DESCRIPTION
content:
<b>xcalc</b> is a classic graphical calculator application designed for the X Window System. It offers both a traditional scientific (algebraic) mode and a Reverse Polish Notation (RPN) mode, making it versatile for various calculation needs.<br><br>Inspired in part by HP calculators, particularly the HP-15C for its RPN functionality, <b>xcalc</b> provides a range of arithmetic operations, trigonometric functions, logarithms, exponentials, and memory functions. It is highly configurable through X resources, allowing users to customize its appearance (fonts, colors) and behavior.<br><br>Despite its age, <b>xcalc</b> remains a functional utility for basic and scientific calculations within an X-based environment, often included in standard X.Org installations.


title: CAVEATS
content:
<b>xcalc</b> is an older X Window System application. While functional, it may have a less modern appearance and might not integrate as seamlessly with contemporary desktop environments as newer applications. Its feature set is basic compared to advanced modern calculators, and it relies entirely on the X Window System being available.


title: <I>X RESOURCES CONFIGURATION</I>
content:
A significant feature of <b>xcalc</b> is its extensive configurability via X resources. Users can customize virtually every aspect of its appearance and behavior, including fonts (e.g., <i>XCalc*font</i>), colors (e.g., <i>XCalc*background</i>, <i>XCalc*foreground</i>), key bindings, and initial mode. These settings are typically defined in X resource files (like <i>~/.Xresources</i> or <i>~/.Xdefaults</i>) or loaded via <i>xrdb</i>.


title: <I>OPERATIONAL MODES</I>
content:
<b>xcalc</b> supports two primary operational modes: a <i>standard algebraic mode</i> (default), where expressions are entered infix, and a <i>Reverse Polish Notation (RPN) mode</i>. RPN mode, activated with the <i>-rpn</i> option, allows for stack-based calculations, which can be more efficient for complex sequences of operations.


title: HISTORY
content:
<b>xcalc</b> has been a part of the core X Window System utilities since its early development. It was created to provide a basic yet functional calculator within the graphical environment provided by X. Maintained as part of the X.Org project, its development has largely followed the evolution of the X Window System itself, serving as a stable and reliable utility for decades.


title: PARAMETERS
content:
<b><code>-i</code>, <code>--in</code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Reads data from <I>standard input</I> and places it into the specified X selection. This is the default action if no <code>-o</code> is given.<br><br><b><code>-o</code>, <code>--out</code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the content of the specified X selection to <I>standard output</I>.<br><br><b><code>-selection {primary|secondary|clipboard}</code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies which X selection buffer to use. Default is <I>primary</I>.<br><br><b><code>-d</code>, <code>--display {display name}</code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the <I>X display</I> to connect to, e.g., <code>:0.0</code>. Defaults to the value of the <code>DISPLAY</code> environment variable.<br><br><b><code>-f</code>, <code>--filter</code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Operates in filter mode. Reads from standard input, copies to selection, then prints the selection content to standard output. Useful in pipelines.<br><br><b><code>-target {atom name}</code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the <I>target atom</I> to use when retrieving the selection. Useful for specific data types like <code>TARGETS</code>, <code>UTF8_STRING</code>, or <code>text/uri-list</code>.<br><br><b><code>-l</code>, <code>--loops {number}</code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies how many times to loop when waiting for a selection request. A value of <I>0</I> means infinite loops, effectively holding the selection indefinitely.<br><br><b><code>-n</code>, <code>--no-newline</code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;When used with <code>-o</code>, prevents <code>xclip</code> from appending a newline character to the output.<br><br>


title: DESCRIPTION
content:
<code>xclip</code> is a versatile <I>command-line utility</I> designed to interact with the <I>X Window System's selection buffers</I>. It provides a convenient way to integrate command-line operations with graphical applications by enabling text to be copied to or pasted from the clipboard. This means you can pipe output from any command into <code>xclip</code> to make it available for pasting in a GUI application, or conversely, retrieve text from an X selection into your shell for further processing.<br><br>It primarily handles three types of X selections: <I>primary</I>, <I>secondary</I>, and <I>clipboard</I>. The primary selection is typically used for highlighted text that can be pasted with a middle-click. The clipboard selection is the standard copy/paste buffer often associated with Ctrl+C/Ctrl+V operations. <code>xclip</code> allows seamless transfer of data, making it an indispensable tool for automating tasks and enhancing productivity in X-based environments.


title: CAVEATS
content:
<code>xclip</code> requires an <I>active X server</I> to function. The content placed on the X selection is generally owned by the application that put it there. If <code>xclip</code> is used to place data on the selection, it must <I>continue running</I> to 'own' that selection until another application requests it or <code>xclip</code> exits. For persistent, background clipboard management, a dedicated clipboard manager application is often preferred over <code>xclip</code> alone.<br>While <code>xclip</code> generally handles <I>UTF-8</I> encoding well, issues might arise with certain locales or applications that do not correctly announce their text encoding.


title: UNDERSTANDING X SELECTIONS
content:
The <I>X Window System</I> manages multiple "selection" buffers for copy-paste operations:<br>&nbsp;&nbsp;&nbsp;&nbsp;<b>Primary Selection</b>: The default selection. Text highlighted with the mouse is automatically placed here and can be pasted typically with a middle-click.<br>&nbsp;&nbsp;&nbsp;&nbsp;<b>Clipboard Selection</b>: The standard copy/paste buffer, analogous to Ctrl+C/Ctrl+V. Content must be explicitly copied into it.<br>&nbsp;&nbsp;&nbsp;&nbsp;<b>Secondary Selection</b>: Less commonly used, provides an additional, auxiliary selection buffer.<br><code>xclip</code> allows you to explicitly choose which of these selections you want to interact with using the <code>-selection</code> option.


title: COMMON USE CASES
content:
<I>Copy command output to clipboard</I>:<br>&nbsp;&nbsp;&nbsp;&nbsp;<code><b>ls -l | xclip -selection clipboard</b></code><br><I>Paste clipboard content to terminal</I>:<br>&nbsp;&nbsp;&nbsp;&nbsp;<code><b>xclip -selection clipboard -o</b></code><br><I>Copy file content to primary selection</I>:<br>&nbsp;&nbsp;&nbsp;&nbsp;<code><b>xclip < ~/.ssh/id_rsa.pub</b></code><br><I>Copy URL from browser (primary) to clipboard</I>:<br>&nbsp;&nbsp;&nbsp;&nbsp;<code><b>xclip -o -selection primary | xclip -i -selection clipboard</b></code>


title: HISTORY
content:
<code>xclip</code> was developed by <I>Jonathan Goldie</I> as a robust command-line interface for interacting with the X Window System's selection mechanism. It emerged as a practical tool for bridging the gap between console applications and graphical environments, allowing for seamless data transfer. Its design provides an alternative to and often more flexible approach than other similar utilities like <code>xsel</code>, with features like filtering and explicit target control, making it a staple in many X user's command-line toolkits.


title: SYNOPSIS
content:
<b>xcmsdb</b> [ <i>-display <host>:<display></i> ] [ <i>-format <format></i> ] [ <i>-query | -load | -merge | -remove</i> ] [ <i>-property <property></i> ] [ <i><filename></i> ]


title: PARAMETERS
content:
<b><i>-display <host>:<display></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the X server to connect to.<br><br><b><i>-format <format></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the format of the properties to be loaded, e.g., 'Xcmsdb'.<br><br><b><i>-query</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Queries and prints the current contents of the <b>RESOURCE_MANAGER</b> property or the specified property.<br><br><b><i>-load</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Loads (replaces) the <b>RESOURCE_MANAGER</b> or specified property with the contents of the given file.<br><br><b><i>-merge</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Merges the contents of the given file with the current contents of the <b>RESOURCE_MANAGER</b> or specified property.<br><br><b><i>-remove</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Removes entries specified in the file from the <b>RESOURCE_MANAGER</b> or specified property.<br><br><b><i>-property <property></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses the specified X property instead of the default <b>RESOURCE_MANAGER</b> property.<br><br><b><i><filename></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The file containing the Xcms database entries to be loaded, merged, or removed. If omitted, input is read from standard input.<br><br>


title: DESCRIPTION
content:
<b>xcmsdb</b> is a utility for loading X Color Management System (Xcms) database entries into the X server. These entries, often color profiles or lookup tables, are typically stored in a file and then loaded into the <b>RESOURCE_MANAGER</b> property on the root window or a specific X property. This allows X applications to query and utilize color management information for accurate display of colors.<br><br>It plays a role in configuring the color behavior of an X display and is generally used in conjunction with resource management tools like <b>xrdb</b>.


title: CAVEATS
content:
<b>xcmsdb</b> relies on the X server having the Xcms extension, which is typically present but not universally used for modern color management. Its direct usage has become less common as desktop environments often provide more integrated and user-friendly color management solutions, making it a lower-level utility for specific configurations.


title: XCMS DATABASE FILE FORMAT
content:
The input file for <b>xcmsdb</b> typically contains X resource specifications. These are key-value pairs that define color management parameters, such as gamma curves, white points, and color space transformations, specifically formatted for the Xcms extension.<br><br>While not a simple human-readable image profile, these files allow for precise control over how colors are rendered by the X server.


title: INTERACTION WITH XRDB
content:
<b>xcmsdb</b> primarily manipulates X properties, particularly <b>RESOURCE_MANAGER</b>, which is also managed by <b>xrdb</b>. While <b>xrdb</b> is a general-purpose X resource database utility, <b>xcmsdb</b> is specialized for Xcms-specific data. It's common for an <b>xcmsdb</b> command to be run after <b>xrdb</b> has loaded general resources, or to be included within an <i>.Xresources</i> or <i>.Xdefaults</i> file that <b>xrdb</b> processes.


title: HISTORY
content:
<b>xcmsdb</b> is a part of the X Window System utilities, developed alongside the Xcms extension to provide a programmatic interface for color management within the X server. While crucial in earlier versions of X for advanced display calibration, its direct command-line usage has seen a decline as desktop environments and operating systems have integrated higher-level color profile management tools.


title: SYNOPSIS
content:
<b>xconsole</b> [ <i>-file &lt;filename&gt;</i> ] [ <i>-output &lt;filename&gt;</i> ] [ <i>-notify | -nonotify</i> ] [ <i>-daemon</i> ] [ <i>-exitOnFail</i> ] [ <i>-rc &lt;file&gt;</i> ] [ <i>-verbose</i> ] [ <i>&lt;X Toolkit options&gt;</i> ]


title: PARAMETERS
content:
<b>-file <i>&lt;filename&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the file from which to read console messages. Defaults to <i>/dev/console</i> or a syslog pipe.<br><br><b>-output <i>&lt;filename&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Redirects all console messages displayed in the window to the specified file as well.<br><br><b>-notify</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Causes <i>xconsole</i> to ring the bell and flash the window whenever new console output is received.<br><br><b>-nonotify</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disables the notification behavior (bell and flashing) when new messages arrive.<br><br><b>-daemon</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Detaches <i>xconsole</i> from the controlling terminal and runs it in the background as a daemon.<br><br><b>-exitOnFail</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Instructs <i>xconsole</i> to exit immediately if it cannot open the specified console device.<br><br><b>-rc <i>&lt;file&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies an alternative resource file to load for configuring <i>xconsole</i>'s appearance and behavior.<br><br><b>-verbose</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables verbose output, primarily for debugging <i>xconsole</i> itself.<br><br><b><i>&lt;X Toolkit options&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Represents standard X Toolkit command-line options such as <i>-geometry</i>, <i>-font</i>, <i>-bg</i> (background color), <i>-fg</i> (foreground color), and <i>-title</i>, which control the window's appearance and position.<br><br>


title: DESCRIPTION
content:
<i>xconsole</i> is a utility that provides a graphical display for system console messages within the X Window System. It typically reads messages directly from the system's console device, often <i>/dev/console</i>, or from a syslog pipe, allowing users to monitor kernel messages, system startup logs, and other critical system events in real-time without switching to a text-mode console. <br><br>This command is particularly useful for debugging system issues, observing boot sequences, or keeping an eye on system daemon activities. Unlike simple file <i>tail</i>ing, <i>xconsole</i> is designed specifically for console output and can provide notifications (like ringing a bell or flashing the window) when new messages arrive. It integrates seamlessly into the graphical desktop environment, making system monitoring more accessible for users operating primarily within X. <br><br>While its primary function is to display messages, <i>xconsole</i> also offers options to redirect these messages to a file, run in the background as a daemon, or customize its appearance through standard X resources. It serves as a visual bridge between the kernel's output and the user's graphical workspace.


title: CAVEATS
content:
<i>xconsole</i> relies on the X Window System to operate; it cannot be used in a purely text-mode environment. <br><br>Directly accessing <i>/dev/console</i> for messages might require root privileges, depending on system configuration. <br><br>On modern Linux systems, log management has largely shifted to <i>systemd-journald</i>, making tools like <i>journalctl</i> more commonly used for real-time log monitoring than <i>xconsole</i>.


title: X RESOURCES
content:
<i>xconsole</i>, like many older X applications, can be extensively configured using X resources. These resources can be set in files like <i>~/.Xdefaults</i>, <i>~/.Xresources</i>, or system-wide application-specific resource files. <br><br>Examples include setting the font (<i>XConsole*font</i>), colors (<i>XConsole*background</i>, <i>XConsole*foreground</i>), and notification behavior (<i>XConsole*notify</i>). This allows for persistent customization of its appearance and behavior across sessions.


title: HISTORY
content:
<i>xconsole</i> is a long-standing utility that originated with the early development of the X Window System. It was designed to provide a dedicated window for system console output in the graphical environment, a common need when X was first becoming prevalent. While its core functionality remains the same, its development has been relatively static for many years, reflecting its mature status and the shift towards more centralized logging systems like <i>systemd-journald</i> in modern Linux distributions.


title: SYNOPSIS
content:
<b>xcowsay</b> [<i>options</i>] [<i>message</i>]<br><b>xcowsay</b> --file <i>&lt;file&gt;</i> [<i>options</i>]


title: PARAMETERS
content:
<b>--text <message></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify the text to display. If not provided, <i>xcowsay</i> reads from <b>standard input</b>.<br><br><b>--file <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Read the message text from the specified <b>file</b> instead of command-line arguments or standard input.<br><br><b>--image <file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Use a custom image <b>file</b> (GIF, PNG, JPEG formats supported) instead of the default cow.<br><br><b>--think</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a <b>thought bubble</b> (indicated by ellipses) instead of a speech bubble.<br><br><b>--font <font_name></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the <b>font</b> for the text within the bubble (e.g., 'sans 12' or 'monospace italic 10').<br><br><b>--color <color_code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the text <b>color</b> using a hex code (e.g., '#FF0000' for red) or a color name.<br><br><b>--bubble-color <color_code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the speech bubble's background <b>color</b>.<br><br><b>--border-color <color_code></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the speech bubble's border <b>color</b>.<br><br><b>--size <width>x<height></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Resize the image to the specified pixel <b>dimensions</b> (e.g., '200x150').<br><br><b>--at <x>,<y></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Position the <i>xcowsay</i> window at the given X/Y <b>coordinates</b> on the screen.<br><br><b>--daemon</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Run <i>xcowsay</i> in a <b>daemon mode</b>, continuously reading messages from standard input.<br><br><b>--word-wrap <width></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum line <b>width</b> for text wrapping in characters.<br><br>


title: DESCRIPTION
content:
<i>xcowsay</i> is a whimsical command-line utility that displays messages in a graphical speech bubble, originating from a chosen image, typically an animal. It functions as a graphical counterpart to the popular <i>cowsay</i> program, leveraging the X Window System to render its output. Users can input text directly, read from a file, or pipe content to <i>xcowsay</i>. Beyond the default cow, <i>xcowsay</i> allows for extensive customization, including specifying different image files (GIF, PNG, JPEG), adjusting font styles and sizes, and altering the colors of the bubble, text, and border. It can display static messages or animate the bubble's appearance. Its primary use cases range from displaying system notifications in a fun way to adding a unique touch to shell scripts and desktop environments. <i>xcowsay</i> is an entertaining tool that blends terminal commands with graphical output, offering a distinctive way to communicate short messages.


title: CAVEATS
content:
<i>xcowsay</i> requires an <b>X Window System</b> display server to run, unlike its text-based counterpart <i>cowsay</i>. It relies on the <b>libgd</b> library for image processing, which must be installed. Running numerous instances or using very large images may consume significant system resources.


title: CUSTOM IMAGES AND FONTS
content:
<i>xcowsay</i> supports various image formats (GIF, PNG, JPEG) via the <b>--image</b> option, allowing users to replace the default cow with virtually any picture. Furthermore, the <b>--font</b> option provides granular control over text appearance, enabling users to select any font installed on their system and specify its size, offering significant customization beyond basic ASCII art.


title: ANIMATION AND POSITIONING
content:
Beyond static display, <i>xcowsay</i> can animate the appearance and disappearance of the bubble using <b>--fade-in-duration</b> and <b>--fade-out-duration</b>. The <b>--at</b> option allows precise positioning of the window on the X display, making it suitable for integrating into custom desktop scripts or notification systems where specific screen real estate needs to be utilized.


title: HISTORY
content:
<i>xcowsay</i> emerged as a graphical extension of the popular <i>cowsay</i> command, which allows users to display ASCII art animals saying messages in the terminal. While <i>cowsay</i> is purely text-based, <i>xcowsay</i> was developed to leverage the capabilities of the <b>X Window System</b>, enabling the display of real images and animated speech bubbles. This evolution provided a more visually rich and interactive experience, making it suitable for graphical desktop environments and playful system notifications, extending the simple, humorous concept of <i>cowsay</i> into the GUI domain.


title: PARAMETERS
content:
<b><i>-V</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the <b>xcursorgen</b> version number and exits.<br><br><b><i>-p</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Pads the generated cursor image to the nearest power of 2 dimension. Useful for older X servers or drivers with specific texture requirements.<br><br><b><i>-f</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Forces the output cursor to be in 32-bit ARGB (Alpha, Red, Green, Blue) format, even if the source images lack an alpha channel.<br><br><b><i>-o <outputfile></i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the path for the output cursor file. If omitted, the generated cursor data is written to standard output (<i>stdout</i>).<br><br><b><i>configfile</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The path to the input configuration file. This file describes the cursor frames, their sizes, hotspots, and animation delays.<br><br>


title: DESCRIPTION
content:
<i>xcursorgen</i> is a utility within the X.Org project designed to convert one or more Portable Network Graphics (PNG) images into a binary X cursor file. These files, typically named <i>Xcursor</i>, are utilized by the X Window System to display custom mouse pointers. It supports the creation of both static and animated cursors. For animated cursors, multiple PNG images representing frames can be specified along with their display durations. A crucial aspect is the definition of a "hotspot" (<i>xhot</i>, <i>yhot</i>), which determines the precise active pixel within the cursor image. This tool is fundamental for developers and theme designers looking to customize the visual appearance of the mouse pointer in X-based desktop environments.


title: CAVEATS
content:
<br>Proper transparency in cursors requires input PNG images with an alpha channel.<br>The format of the <i>configfile</i> is strict and must adhere to the expected structure for successful cursor generation.<br>Older X servers or display drivers might impose limitations on cursor dimensions or color depth, potentially affecting compatibility.


title: CONFIGURATION FILE FORMAT
content:
The <i>configfile</i> is a plain text file, where each line defines a single frame of a cursor. The typical format for each line is:<br><i>size filename xhot yhot [delay]</i><br><b>size</b>: The nominal dimension (width and height) for the cursor frame, e.g., 24, 32, 48.<br><b>filename</b>: The path to the PNG image file for this frame.<br><b>xhot</b>: The X-coordinate of the 'hotspot' relative to the top-left corner of the image. This is the exact pixel that represents the mouse pointer's logical position.<br><b>yhot</b>: The Y-coordinate of the 'hotspot'.<br><b>delay</b>: <i>(Optional)</i> For animated cursors, this specifies the display duration of the frame in milliseconds. If omitted, the frame is considered static or the last frame of a non-looping animation.


title: EXAMPLE <I>CONFIGFILE</I>
content:
A simple static cursor:<br><i>32  cursor.png  16  16</i><br><br>An animated cursor (assuming <i>frame1.png</i>, <i>frame2.png</i>, etc., exist):<br><i>32  frame1.png  16  16  100</i><br><i>32  frame2.png  16  16  100</i><br><i>32  frame3.png  16  16  100</i>


title: HISTORY
content:
<b>xcursorgen</b> is an integral part of the X.Org project's <i>libXcursor</i> library. Its development emerged to standardize and streamline the process of creating custom cursors for the X Window System. It provides a more robust and flexible alternative to earlier, less capable methods for cursor definition, aligning with the ongoing efforts to enhance the graphical capabilities and user experience of X.


title: SEE ALSO
content:
xsetroot(1), xrdb(1), xcursortool(1), update-alternatives(8) (<i>often used for default cursor theme management on Debian-based systems</i>)


title: SYNOPSIS
content:
<i>'xcv' is not a standard Linux command. No general synopsis applies.</i><br><i>Execution typically results in:</i><br><b><pre>xcv: command not found</pre></b>


title: PARAMETERS
content:
<b><i>None</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;As 'xcv' is not a standard Linux command, it does not have any predefined options or arguments.<br><br>


title: DESCRIPTION
content:
The command "xcv" is <b>not a recognized or standard utility</b> within common Linux distributions. Unlike commands such as `ls`, `cp`, `mv`, or `grep`, `xcv` does not ship as part of core GNU utilities or typical system packages.<br><br>If you encounter "xcv" in documentation or scripts, it is highly probable that it represents one of the following:<br><i>1. A Typographical Error:</i> It might be a mistyping of a common command, most frequently `cp` (copy), `mv` (move), or possibly `xcopy` (a command primarily associated with Windows, though some Linux tools might emulate its functionality).<br><i>2. A Custom Script or Alias:</i> In many environments, users or system administrators create custom shell scripts, functions, or aliases to automate specific tasks or provide shortcuts. "xcv" could be a locally defined script or alias unique to a particular system or user profile.<br><i>3. A Specialized Tool:</i> Less commonly, it could be part of a very specific, niche software package or development environment not widely distributed.<br><br>Attempting to execute "xcv" on a standard Linux system without it being previously defined will almost certainly result in a "command not found" error. Users should verify the exact spelling of the intended command or check local system configurations for custom definitions.


title: CAVEATS
content:
As "xcv" is <b>not a standard Linux command</b>, its behavior is undefined unless a custom script, alias, or function with this name has been explicitly created on the system. Running `xcv` without such a definition will lead to a "command not found" error. Users should exercise caution when executing unknown commands and always verify their origin and purpose.


title: IDENTIFYING CUSTOM COMMANDS
content:
If you encounter 'xcv' and suspect it might be a custom command on your system, you can try `type xcv` or `which xcv` in your terminal to see if it's an alias, function, or an executable located in your PATH. You can also inspect your shell configuration files (e.g., `.bashrc`, `.zshrc`) for `alias xcv=...` definitions or custom scripts in your `~/bin` directory.


title: HISTORY
content:
There is <b>no public or documented history</b> for "xcv" as a standard, independent Linux command or utility. It has never been part of core GNU/Linux distributions or widely adopted open-source projects. Any usage of "xcv" implies a custom, local definition, or a misunderstanding of an existing command. Therefore, there is no development timeline, version history, or significant usage evolution to describe.


title: SEE ALSO
content:
cp(1) - Copy files and directories., mv(1) - Move or rename files., rsync(1) - A fast, versatile, remote (and local) file-copying tool., alias(1) - Define or display aliases (relevant if 'xcv' is a custom alias)., bash(1) - GNU Bourne-Again SHell (for scripting capabilities).


title: SYNOPSIS
content:
<i>xdelta3</i> [<i>OPTIONS</i>] [<i>COMMAND</i>] [<i>SOURCE</i>] [<i>TARGET</i>] [<i>DELTA</i>]<br><br>Common Usage:<br><i>xdelta3</i> diff <i>SOURCE</i> <i>TARGET</i> [<i>DELTA_OUTPUT_FILE</i>]<br><i>xdelta3</i> patch <i>SOURCE</i> <i>DELTA_FILE</i> [<i>TARGET_OUTPUT_FILE</i>]


title: PARAMETERS
content:
<b>-s <I>SOURCE</I>, --source=<I>SOURCE</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the source file, which serves as the base for creating or applying a delta. Required for delta operations.<br><br><b>-e, --encode</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the command to create a delta. Alias for the 'diff' command. Requires a source and target file.<br><br><b>-d, --decode</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the command to apply a delta. Alias for the 'patch' command. Requires a source file and a delta file.<br><br><b>-0 to -9</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the compression level. 0 means no compression, 9 means best compression. Higher levels use more CPU and memory but produce smaller deltas.<br><br><b>-v, --verbose</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Increases the verbosity of output, showing more details about the operation.<br><br><b>-q, --quiet</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Decreases the verbosity of output, suppressing informational messages.<br><br><b>-W <I>SIZE</I>, --window-size=<I>SIZE</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the VCDIFF window size. Larger windows can improve compression but consume more memory during delta creation and application.<br><br><b>--test</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Tests a delta by applying it and verifying the resulting file's integrity against the original target, without writing the output file.<br><br><b>--help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a help message with available commands and options.<br><br>


title: DESCRIPTION
content:
<i>xdelta</i> (most commonly referring to <i>xdelta3</i>) is a powerful command-line utility designed for computing and applying binary differences (deltas) between two files. It implements the VCDIFF (RFC 3284) delta compression standard, making it highly efficient for large files and interoperable with other VCDIFF-compliant tools. Its primary use case is distributing software updates or syncing large datasets, where only the changes between file versions need to be transferred. This significantly reduces bandwidth consumption and download times compared to transferring entire files. <i>xdelta</i> can generate a delta file from a source and target file, and then reconstruct the target file from the source and the delta, even on different systems. It's optimized for speed and compression, making it a critical tool in many large-scale distribution systems.


title: CAVEATS
content:
<b>Memory Usage:</b> <i>xdelta</i> can consume significant amounts of memory, especially with large files or when using large window sizes (<code>-W</code> option), which might lead to performance issues or out-of-memory errors on systems with limited RAM.<br><b>Source File Integrity:</b> For successful patching, the source file used during the patch operation must be absolutely identical to the source file used when the delta was created. Any discrepancy will result in a failed patch.<br><b>Binary Data Only:</b> While it technically works on any file, <i>xdelta</i> is designed for binary data. For text files, <i>diff</i> and <i>patch</i> are usually more appropriate and provide human-readable output.<br><b>No Built-in Checksum Verification:</b> While VCDIFF includes some integrity checks, users often need to implement external checksum verification (e.g., SHA256) of the resulting patched file to ensure full data integrity.


title: CORE OPERATIONS
content:
<i>xdelta</i> performs two primary operations:<br>1. <b>Diffing (Encoding):</b> Taking a <i>SOURCE</i> file and a <i>TARGET</i> file, it computes the binary differences between them and writes these differences to a <i>DELTA</i> file. This <i>DELTA</i> file is typically much smaller than the <i>TARGET</i> file itself.<br>2. <b>Patching (Decoding):</b> Taking a <i>SOURCE</i> file and a <i>DELTA</i> file, it applies the changes described in the <i>DELTA</i> to the <i>SOURCE</i> to reconstruct the <i>TARGET</i> file. This is how incremental updates are delivered and applied.


title: EFFICIENCY FOR UPDATES
content:
<i>xdelta</i> excels in scenarios where a large number of users need to update software or data from one version to another. Instead of downloading the entire new version, users only download the relatively small delta file, significantly reducing bandwidth usage and accelerating the update process, especially over slow or metered connections.


title: HISTORY
content:
The original <i>xdelta</i> was developed by Joshua MacDonald. The most widely used version today is <i>xdelta3</i>, which is a significant rewrite and implements RFC 3284 (VCDIFF Generic Differencing and Compression Data Format). This adherence to a standard format makes <i>xdelta3</i> highly interoperable. Its development has been driven by the need for efficient binary diffing in large-scale software distribution systems, notably being utilized by Google for updating Chrome and Android operating system over-the-air (OTA) updates.


title: SYNOPSIS
content:
<b>xdg-desktop-icon</b> { <i>install</i> | <i>uninstall</i> } [<i>--novendor</i>] <i>&lt;desktop-file&gt;</i><br><b>xdg-desktop-icon</b> { <i>--help</i> | <i>--version</i> }


title: PARAMETERS
content:
<b>install</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Installs the specified <i>.desktop</i> file to the user's desktop directory, making it accessible as a desktop icon.<br><br><b>uninstall</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified <i>.desktop</i> file from the user's desktop directory.<br><br><b>--novendor</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents the addition of a vendor prefix (e.g., 'myapp-') to the installed <i>.desktop</i> filename. By default, <i>xdg-desktop-icon</i> may add a prefix derived from the desktop file's vendor name to avoid name collisions.<br><br><b><desktop-file></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The path to the <i>.desktop</i> file that is to be installed or uninstalled. This file must conform to the Desktop Entry Specification.<br><br><b>--help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a help message and exits.<br><br><b>--version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays version information and exits.<br><br>


title: DESCRIPTION
content:
The <b>xdg-desktop-icon</b> command is a utility that allows applications to install or uninstall an icon on the user's desktop. It is part of the <I>xdg-utils</I> package, which provides a set of command-line tools to integrate applications with the freedesktop.org desktop environment. This command handles the complexities of different desktop environments (such as GNOME, KDE, XFCE, and LXQt) by placing the specified <I>.desktop</I> file in the correct, user-specific desktop directory, respecting the user's configuration and standard directory layouts.<br><br>Its primary use case is within application installation scripts, providing a standardized and cross-desktop way to offer users a convenient shortcut to launch newly installed applications directly from their desktop. It takes care of ensuring the <I>.desktop</I> file is properly named and placed for the current desktop environment.


title: CAVEATS
content:
The command relies on the <I>xdg-utils</I> package being properly installed and configured on the system. It does not create or modify the content of the <I>.desktop</I> file itself, only its placement or removal. The <I>&lt;desktop-file&gt;</I> must be a valid file conforming to the Desktop Entry Specification. Functionality may vary slightly across different desktop environments if their integration with <I>xdg-utils</I> is incomplete or non-standard.


title: EXIT STATUS
content:
The command returns 0 on success, or a non-zero exit code on failure.<br><i>1</i>: Error in command line syntax.<br><i>2</i>: File not found.<br><i>3</i>: User not authorized to perform the operation.<br><i>4</i>: Internal error.


title: ENVIRONMENT VARIABLES
content:
<b>XDG_DATA_HOME</b>: Specifies the user-specific data directory. If unset, defaults to <i>$HOME/.local/share</i>.<br><b>XDG_DATA_DIRS</b>: A colon-separated list of base directories relative to which user data files should be searched. If unset, defaults to <i>/usr/local/share/:/usr/share/</i>.<br><b>DESKTOP_SESSION</b> and <b>XDG_CURRENT_DESKTOP</b>: Used by <I>xdg-utils</I> to identify the currently running desktop environment and adjust behavior accordingly.


title: HISTORY
content:
<I>xdg-desktop-icon</I> is part of the <I>xdg-utils</I> suite, which originated from the freedesktop.org project's efforts to standardize desktop integration across various Linux desktop environments like GNOME and KDE. The development of <I>xdg-utils</I> began around 2005, aiming to provide a set of common tools that application developers could rely on for tasks such as opening files, managing MIME types, and installing desktop shortcuts, thus promoting greater interoperability and a consistent user experience.


title: SEE ALSO
content:
xdg-open(1), xdg-mime(1), xdg-settings(1), xdg-desktop-menu(1), desktop-file-install(1), update-desktop-database(1)


title: SYNOPSIS
content:
<b>xdg-desktop-menu</b> install [--mode <i>mode</i>] [--noupdate] <i>file</i> ...<br><b>xdg-desktop-menu</b> uninstall [--mode <i>mode</i>] [--noupdate] <i>file</i> ...<br><b>xdg-desktop-menu</b> forceupdate [--mode <i>mode</i>]<br><b>xdg-desktop-menu</b> { --help | --version }


title: PARAMETERS
content:
<b>install</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Installs the specified menu files. The files can be .menu files (defining menu structure) or .directory files (defining menu categories).<br><br><b>uninstall</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uninstalls the specified menu files, removing them from the system's menu configuration.<br><br><b>forceupdate</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Forces an immediate update of the desktop menu cache, regenerating the menu without requiring an install/uninstall operation.<br><br><b>--mode {user|system}</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the installation mode. <B>user</B> installs files for the current user only. <B>system</B> installs files for all users (requires root privileges). The default is <B>user</B>.<br><br><b>--noupdate</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents the menu cache from being updated immediately after an install or uninstall operation. This can be useful for batch operations.<br><br><b><i>file</i> ...</b><br>&nbsp;&nbsp;&nbsp;&nbsp;One or more paths to .menu or .directory files to be installed or uninstalled.<br><br><b>--help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a help message and exits.<br><br><b>--version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows version information and exits.<br><br>


title: DESCRIPTION
content:
<I>xdg-desktop-menu</I> is a utility that allows applications to install and uninstall menu entries compliant with the <a href="https://specifications.freedesktop.org/menu-spec/latest/">freedesktop.org Desktop Menu Specification</a>. It is part of the <I>xdg-utils</I> package, a set of command-line tools that assist applications with various desktop integration tasks.<br><br>This command helps ensure that applications correctly appear in a user's desktop environment's main application menu. It works by managing menu files (typically <I>.menu</I> and <I>.directory</I> files) that describe the structure and categories of application menus. When a menu file is installed, <I>xdg-desktop-menu</I> registers it with the system, and desktop environments then use this information to build and display the hierarchical application menu that users interact with. It abstracts the differences between various desktop environments, providing a standardized way to manage menu entries.


title: CAVEATS
content:
Although <I>xdg-desktop-menu</I> provides a standardized interface, the actual integration and rendering of menus can still vary between desktop environments. Some desktop environments might have their own specific mechanisms or might not fully utilize the XDG Desktop Menu Specification directly for their primary menu, although most modern ones do to some extent. Proper functioning also relies on the <I>xdg-utils</I> package being correctly installed and configured on the system.


title: XDG DESKTOP MENU SPECIFICATION
content:
The core of <I>xdg-desktop-menu</I>'s functionality is based on the <a href='https://specifications.freedesktop.org/menu-spec/latest/'>freedesktop.org Desktop Menu Specification</a>. This specification defines how applications can be categorized and organized within hierarchical menus, using <I>.menu</I> files to describe menu structures and <I>.directory</I> files to represent menu categories.


title: MENU FILE TYPES
content:
<I>xdg-desktop-menu</I> primarily deals with two types of files: <B>.menu</B> files, which define the structure of a menu and include or exclude applications based on their categories; and <B>.directory</B> files, which represent a menu category (e.g., 'Graphics', 'Development') and provide an icon and name for that category in the menu.


title: INTEGRATION WITH PACKAGE MANAGERS
content:
Typically, application developers or package maintainers use <I>xdg-desktop-menu</I> (or similar tools like <I>desktop-file-install</I>) during the installation process of a software package. This ensures that when a user installs an application, its entry correctly appears in the desktop environment's application menu without manual intervention.


title: HISTORY
content:
The <I>xdg-desktop-menu</I> command is part of the <I>xdg-utils</I> project, initiated by freedesktop.org. This project aims to standardize common desktop integration tasks across various Linux and Unix desktop environments (like GNOME, KDE, XFCE, LXQt, etc.). It emerged from the need to provide consistent application behavior and integration regardless of the underlying desktop environment, thereby simplifying application development and deployment on the Linux desktop.


title: PARAMETERS
content:
<b><i>TO_ADDRESS</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The primary recipient(s) of the email. Can be a single email address or a comma-separated list of addresses.<br><br><b><b>--subject</b> <i>SUBJECT</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the subject line for the email.<br><br><b><b>--body</b> <i>BODY</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the main content or body of the email.<br><br><b><b>--cc</b> <i>CC_ADDRESSES</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies Carbon Copy (CC) recipient(s). Can be a comma-separated list of addresses.<br><br><b><b>--bcc</b> <i>BCC_ADDRESSES</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies Blind Carbon Copy (BCC) recipient(s). Can be a comma-separated list of addresses.<br><br><b><b>--attachment</b> <i>FILE</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a file to be attached to the email. This option can be used multiple times to attach multiple files.<br><br><b><b>--print-commands</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the commands that would be executed to launch the email client, without actually executing them. Useful for debugging.<br><br><b><b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the <i>xdg-utils</i> version information.<br><br><b><b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows the help message for <i>xdg-email</i>.<br><br>


title: DESCRIPTION
content:
<i>xdg-email</i> is a command-line tool that allows users to open their preferred email client (Mail User Agent) to compose a new email. It is a part of the <i>xdg-utils</i> package, which provides a set of desktop-independent utilities for common tasks across different Linux desktop environments (e.g., GNOME, KDE, XFCE).<br><br>The primary function of <i>xdg-email</i> is to abstract away the specifics of various desktop environments and their default mail handlers, simplifying the process of initiating email composition from scripts or other command-line applications. It can pre-fill various email fields such as the recipient (TO), subject, body content, Carbon Copy (CC) recipients, Blind Carbon Copy (BCC) recipients, and even attach multiple files. This makes it highly versatile for automated or script-driven email generation tasks, ensuring that the user's chosen email client is utilized consistently.


title: CAVEATS
content:
<i>xdg-email</i> relies on a correctly configured desktop environment and default applications. If no default mail client is set, or if it's misconfigured, <i>xdg-email</i> may fail or open an unexpected application.<br><br>Different email clients may have varying levels of support for all parameters (e.g., some simpler clients might not fully handle attachments or all header fields).<br><br>It's important to note that <i>xdg-email</i> only launches the email client with pre-filled fields; it does not send the email directly. The user still needs to manually click 'Send' within the launched client.


title: DESKTOP INTEGRATION
content:
<i>xdg-email</i> functions by consulting the MIME type database and the user's default application settings, which are typically managed by their desktop environment. It effectively finds the registered handler for <i>mailto:</i> URLs or <i>message/rfc822</i> MIME types and launches it with the provided parameters. This ensures that the command uses the same email client that would be launched if a user clicked a <i>mailto:</i> link in a web browser or another application.


title: RETURN STATUS
content:
<i>xdg-email</i> exits with a status code of <b>0</b> on successful execution. A non-zero status code indicates a failure. Common non-zero exit codes include <b>1</b> (general error), <b>2</b> (command line syntax error), <b>3</b> (no default application found or configured), or <b>4</b> (the requested action failed to execute).


title: HISTORY
content:
<i>xdg-email</i> is part of the <i>xdg-utils</i> project, initiated by freedesktop.org. The project's goal was to provide a set of command-line tools that work consistently across different Linux and Unix-like desktop environments (GNOME, KDE, XFCE, LXDE, etc.). This effort aimed to abstract away desktop-specific mechanisms for common tasks, ensuring that scripts and applications behave predictably regardless of the user's chosen desktop environment.<br><br>Its adoption reflects the success of the XDG Base Directory Specification and related initiatives in standardizing core desktop behaviors, providing a unified way to interact with user applications for tasks like opening files, browsing URLs, and, in the case of <i>xdg-email</i>, composing emails.


title: SYNOPSIS
content:
<b>xdg-icon-resource</b> {<I>install</I> | <I>uninstall</I>} [--size <I>&lt;size&gt;</I>] [--context <I>&lt;context&gt;</I>] [--theme <I>&lt;theme&gt;</I>] [--fallback] [--noupdate] <I>&lt;icon-file&gt;</I> [<I>&lt;icon-name&gt;</I>]


title: PARAMETERS
content:
<b><I>install</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Installs the specified icon file into the appropriate icon theme directory. Requires the <b>--size</b> option.<br><br><b><I>uninstall</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Removes the specified icon file from the icon theme directory. Requires the <b>--size</b> option for removal consistency.<br><br><b><b>--size</b> <I>&lt;size&gt;</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the nominal size of the icon in pixels (e.g., 24, 48, 128). This is mandatory for both installation and uninstallation to ensure correct placement/removal.<br><br><b><b>--context</b> <I>&lt;context&gt;</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Defines the context of the icon, guiding its placement within the icon theme. Common contexts include <I>apps</I> (default), <I>mimetypes</I>, <I>actions</I>, <I>places</I>, and <I>devices</I>.<br><br><b><b>--theme</b> <I>&lt;theme&gt;</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the name of the icon theme to install or uninstall the icon for. If omitted, the icon is installed/uninstalled for all currently installed themes that support the specified size and context, typically falling back to 'hicolor'.<br><br><b><b>--fallback</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Allows the icon to be installed directly into the 'hicolor' icon theme directory if the specified theme is not found or no theme is specified. This ensures the icon is always available.<br><br><b><b>--noupdate</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents the command from automatically updating the icon theme cache after the operation. This can be useful for batch operations where a single update at the end is desired.<br><br><b><I>&lt;icon-file&gt;</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The path to the icon file (e.g., a .png or .svg file) to be installed or uninstalled.<br><br><b>[<I>&lt;icon-name&gt;</I>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;An optional name for the icon. If not provided, the base name of <I>&lt;icon-file&gt;</I> (without extension) is used.<br><br>


title: DESCRIPTION
content:
<b>xdg-icon-resource</b> is a crucial utility designed for the installation and uninstallation of icon files, making them discoverable by various desktop environments that adhere to the XDG Base Directory Specification and Icon Theme Specification. It's a key component of the <b>xdg-utils</b> package, a collection of scripts aimed at standardizing desktop integration for applications across different Linux desktop environments like GNOME, KDE, and XFCE.<br><br>When an icon is installed, this command typically updates the system's icon cache, ensuring that applications and the desktop environment can immediately find and display the new icon without requiring a system restart. This ensures consistent icon management and appearance for user applications.


title: CAVEATS
content:
<ul><li>Permissions: Installing icons system-wide (e.g., to <code>/usr/share/icons</code>) typically requires root privileges (e.g., via <code>sudo</code>).</li><li>Cache Updates: While <b>xdg-icon-resource</b> usually handles cache updates, in some complex setups or if <b>--noupdate</b> is used, manual updates with tools like <b>gtk-update-icon-cache</b> might be necessary.</li><li>Icon Naming: Ensure icon names are unique and follow conventions to avoid conflicts or unexpected behavior.</li></ul>


title: HISTORY
content:
<b>xdg-icon-resource</b> is an integral part of the <b>xdg-utils</b> project, which emerged from the FreeDesktop.org (now freedesktop.org) initiative. Its development is rooted in the need for standardized application integration across diverse Linux desktop environments (such as GNOME, KDE, XFCE). The command adheres to the freedesktop.org Icon Theme Specification, providing a consistent and reliable method for developers to manage application icons, ensuring they are correctly placed and discovered by desktop environments, thereby abstracting away desktop-specific differences.


title: SYNOPSIS
content:
<b>xdg-mime query {filetype | default}</b> <i>[FILENAME | MIMETYPE]</i><br><b>xdg-mime install</b> <i>[--mode mode] MIMETYPE_FILE</i><br><b>xdg-mime uninstall</b> <i>[--mode mode] MIMETYPE_FILE</i><br><b>xdg-mime --help</b><br><b>xdg-mime --version</b>


title: PARAMETERS
content:
<b><b>query filetype</b> <i>FILENAME</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Determines and outputs the MIME type of the specified <i>FILENAME</i>. This uses file content and name to infer the type based on the system's MIME database.<br><br><b><b>query default</b> <i>MIMETYPE</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Outputs the desktop entry (<i>.desktop</i> file) of the default application registered for the specified <i>MIMETYPE</i>. For example, <i>application/pdf</i>.<br><br><b><b>install</b> <i>[--mode mode] MIMETYPE_FILE</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Installs a MIME type specification contained in the <i>MIMETYPE_FILE</i>. The file must be an XML file adhering to the Shared MIME Info Specification.<br><br><b><b>uninstall</b> <i>[--mode mode] MIMETYPE_FILE</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uninstalls a previously installed MIME type specification specified by <i>MIMETYPE_FILE</i>.<br><br><b><b>--mode system</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Used with <b>install</b> or <b>uninstall</b> to perform the operation system-wide (for all users). This typically requires root privileges.<br><br><b><b>--mode user</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Used with <b>install</b> or <b>uninstall</b> to perform the operation for the current user only. This is the default mode if <b>--mode</b> is not specified.<br><br><b><b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a brief help message and usage instructions for the command.<br><br><b><b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Outputs the version information of the <i>xdg-utils</i> package that includes <i>xdg-mime</i>.<br><br>


title: DESCRIPTION
content:
<i>xdg-mime</i> is a command-line utility from the <i>xdg-utils</i> package, designed to manage MIME type associations and default applications on a Linux desktop environment. It provides a standardized way to query the MIME type of a file, determine the default application for a given MIME type, and install or uninstall new MIME type definitions.<br><br>Adhering to the Freedesktop.org Shared MIME Info Specification, <i>xdg-mime</i> helps ensure cross-desktop compatibility for how various file types are handled. It abstracts away the differences between various desktop environments like GNOME, KDE, and XFCE, providing a consistent interface for users and applications to interact with the system's MIME database.


title: CAVEATS
content:
<i>xdg-mime</i> requires the <i>xdg-utils</i> package to be installed and a Freedesktop.org compliant desktop environment. System-wide <b>install</b> and <b>uninstall</b> operations typically require superuser privileges. Changes to MIME types might not take effect immediately and often require a desktop session restart or manual execution of <i>update-mime-database</i>.


title: MIME DATABASE LOCATIONS
content:
MIME type definitions are typically stored in XML files under directories like <i>/usr/share/mime</i> (system-wide) and <i>~/.local/share/mime</i> (user-specific). After installing or uninstalling MIME types, the MIME database often needs to be updated using <i>update-mime-database</i> for changes to take full effect in the system.


title: USAGE EXAMPLE: QUERYING A FILE TYPE
content:
To find out the MIME type of a file named <i>report.odt</i>:<br><i><b>xdg-mime query filetype report.odt</b></i><br>This command would typically output something like <i>application/vnd.oasis.opendocument.text</i>.


title: USAGE EXAMPLE: QUERYING DEFAULT APPLICATION
content:
To find out the default application set for PDF files (<i>application/pdf</i>):<br><i><b>xdg-mime query default application/pdf</b></i><br>This command might output a desktop file name like <i>evince.desktop</i> or <i>okularApplication_pdf.desktop</i>, indicating the associated viewer.


title: HISTORY
content:
<i>xdg-mime</i> is a core component of the <i>xdg-utils</i> suite, developed under the Freedesktop.org project. This project commenced in the early 2000s with the primary goal of standardizing desktop environment interactions across Linux and Unix-like operating systems. The <i>xdg-utils</i>, including <i>xdg-mime</i>, were designed to provide a set of command-line tools that abstract away desktop-specific differences, ensuring applications and scripts behave consistently regardless of the user's chosen desktop environment (e.g., GNOME, KDE, XFCE). Its development has been driven by the need for robust and cross-desktop MIME type management, relying on standards like the Shared MIME Info Specification.


title: PARAMETERS
content:
<b>--help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display a help message and exit.<br><br><b>--version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show version information and exit.<br><br><b>--verbose</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enable verbose output, providing more details about the command's execution.<br><br><b>--debug</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enable debug output, which is even more detailed than verbose, useful for troubleshooting.<br><br>


title: DESCRIPTION
content:
The <b>xdg-open</b> command is a utility designed to open files, URLs, or directories using the user's preferred application, as defined by their desktop environment. It is part of the <i>xdg-utils</i> package, which provides a set of common desktop integration utilities across different Linux desktop environments like GNOME, KDE, XFCE, and LXQt.<br><br>Rather than requiring users or applications to know the specific commands for each desktop environment (e.g., <i>gvfs-open</i> for GNOME, <i>kde-open</i> for KDE), <b>xdg-open</b> offers a standardized and desktop-agnostic interface. It intelligently determines the appropriate application by inspecting the MIME type of the file or URL, consulting system-wide and user-specific MIME type associations. This ensures a consistent user experience, allowing scripts and applications to open content seamlessly without needing to detect the active desktop environment. For example, opening a PDF will launch the default PDF viewer, while a web URL will open in the default web browser.


title: CAVEATS
content:
<b>xdg-open</b> relies heavily on a properly configured desktop environment and MIME type associations. If MIME types are incorrectly set, or if no default application is registered for a specific file type, the command may fail or open the content with an unexpected application. It also requires a running X server or Wayland compositor for graphical applications to launch successfully. In a headless environment (without a graphical display), it will only be able to open non-graphical content or URLs that can be handled by command-line tools (e.g., a text file in a terminal editor, if configured).


title: MIME TYPE HANDLING
content:
<b>xdg-open</b>'s core functionality is built upon the XDG Desktop Specification for MIME type handling. When invoked with a file or URL, it identifies its MIME type and then looks up the preferred application registered for that type. This registration is typically done via <i>.desktop</i> files and user-specific configurations in <i>~/.config/mimeapps.list</i>, ensuring that the user's choices for default applications are respected.


title: HISTORY
content:
The <b>xdg-open</b> command is a key component of the <i>xdg-utils</i> package, which was developed under the Freedesktop.org initiative. Freedesktop.org aims to standardize core desktop components and specifications across various Linux and Unix-like desktop environments. <b>xdg-open</b> was created to address the long-standing problem of application launching consistency. Before its existence, applications often had to use environment-specific commands to open files or URLs, leading to fragmented and non-portable scripts. Its development allowed for a unified API for opening resources, greatly simplifying application development and improving user experience across diverse desktop setups.


title: SYNOPSIS
content:
<b>xdg-screensaver</b> { <b>activate</b> | <b>reset</b> | <b>lock</b> | <b>status</b> | <b>suspend</b> | <b>resume</b> }


title: PARAMETERS
content:
<b>activate</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Triggers the screensaver, typically blanking the screen or starting the screensaver program.<br><br><b>reset</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Simulates user activity, resetting the screensaver idle timer and preventing its immediate activation.<br><br><b>lock</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Activates the screensaver and locks the session, requiring a password to regain access.<br><br><b>status</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Reports the current state of the screensaver. Returns <b>0</b> if active, <b>1</b> if inactive, and <b>2</b> if the status cannot be determined or is unsupported.<br><br><b>suspend</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Temporarily halts automatic screensaver activation, often used by applications displaying fullscreen content like videos.<br><br><b>resume</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Restores automatic screensaver activation after a prior <i>suspend</i> command, allowing it to engage based on idle time.<br><br>


title: DESCRIPTION
content:
<i>xdg-screensaver</i> is a utility included in the <i>xdg-utils</i> package, designed to provide a desktop-environment-independent way for applications to interact with the system's screensaver. It abstracts the underlying mechanisms, whether they involve D-Bus calls to <i>gnome-screensaver</i> or <i>kde-screensaver</i>, or direct commands to <i>xset</i> for simpler setups. This standardization allows applications to control the screensaver without needing to know the specifics of the user's desktop environment (like GNOME, KDE, XFCE, MATE, LXDE, etc.).<br><br>Its primary functions include activating the screensaver, resetting the idle timer to prevent activation, locking the screen, querying the current screensaver status, and informing the screensaver to temporarily suspend or resume its automatic behavior (useful for full-screen video playback). By offering a common interface, <i>xdg-screensaver</i> simplifies application development, ensuring consistent behavior across diverse Linux desktop setups. It gracefully handles scenarios where a screensaver might not be installed or configured, providing appropriate exit codes for error handling in scripts.


title: CAVEATS
content:
<i>xdg-screensaver</i> relies on the desktop environment's D-Bus interfaces or specific commands. If no compatible screensaver is installed, configured, or the desktop environment doesn't expose the necessary interfaces, some commands might not function as expected or return an exit code indicating an unsupported operation. It primarily manages automatic screensaver behavior rather than direct configuration of screensaver settings (like theme or delay). Scripting with this command should always check its exit codes for robust error handling.


title: EXIT CODES
content:
<i>xdg-screensaver</i> provides informative exit codes for scripting: <b>0</b> for success, <b>1</b> for general errors, <b>2</b> if the requested operation is not supported by the desktop environment or status cannot be determined, and <b>3</b> for invalid command-line arguments. Checking these codes is crucial for reliable automation.


title: DESKTOP ENVIRONMENT ABSTRACTION
content:
This command exemplifies the <i>xdg-utils</i> philosophy of abstracting desktop-specific implementations. It attempts to communicate with various screensaver daemons (e.g., <i>gnome-screensaver</i>, <i>kde-screensaver</i>, <i>xfce4-screensaver</i>) using their preferred methods (often D-Bus), falling back to simpler X Window System commands like <i>xset</i> if no sophisticated screensaver is detected. This ensures broad compatibility.


title: HISTORY
content:
<i>xdg-screensaver</i> is a component of the <i>xdg-utils</i> package, developed under the freedesktop.org initiative. This initiative began to create common standards and tools for Linux desktop environments, addressing the fragmentation that arose from distinct development paths of GNOME, KDE, and others. <i>xdg-utils</i> (and thus <i>xdg-screensaver</i>) emerged to provide a unified API for common desktop tasks, abstracting away desktop-specific implementations. It allows applications to perform actions like opening files, managing MIME types, or controlling the screensaver, without needing to detect and adapt to the specific desktop environment the user is running. Its development has focused on robustness and wide compatibility, evolving with desktop environment standards.


title: SYNOPSIS
content:
<b>xdg-settings</b> {<b>get</b>|<b>set</b>|<b>check</b>} <i>category</i> [<i>value</i>]<br><b>xdg-settings</b> <b>--list</b><br><b>xdg-settings</b> <b>--version</b><br><b>xdg-settings</b> <b>--help</b>


title: PARAMETERS
content:
<b><b>get</b> <i>category</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Retrieves the currently configured default application for the specified <i>category</i>. For example, 'xdg-settings get default-web-browser'.<br><br><b><b>set</b> <i>category</i> <i>value</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the default application for the specified <i>category</i> to <i>value</i>. The <i>value</i> is typically the .desktop file name (e.g., 'firefox.desktop'). For URL scheme handlers, it's the scheme itself (e.g., 'http' for 'default-url-scheme-handler http').<br><br><b><b>check</b> <i>category</i> <i>value</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Checks if the specified <i>value</i> is the default application for the given <i>category</i>. Returns an exit code indicating success (0) or failure (non-zero).<br><br><b><b>--list</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Lists all known categories for which default settings can be queried or set, along with their current default handlers.<br><br><b><b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the version information for <b>xdg-utils</b>, which includes <b>xdg-settings</b>.<br><br><b><b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows a help message with usage instructions and available options.<br><br><b><i>category</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Represents the type of setting to manage. Common categories include <i>default-web-browser</i>, <i>default-mail-client</i>, and <i>default-url-scheme-handler</i>.<br><br><b><i>value</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the application or handler to be set or checked. For applications, this is usually the `.desktop` file name (e.g., `google-chrome.desktop`). For URL schemes, it's the scheme itself (e.g., `http`, `https`, `mailto`) followed by the desktop file.<br><br>


title: DESCRIPTION
content:
<b>xdg-settings</b> is a command-line utility that provides a standardized way to query and modify default application settings across various Linux desktop environments. It is part of the <b>xdg-utils</b> suite, developed by the freedesktop.org project to enhance interoperability and consistency on the desktop. This tool abstracts away desktop-specific configuration mechanisms, allowing users and scripts to manage preferences like the default web browser, mail client, or handlers for specific URL schemes (e.g., http, mailto). By offering a unified interface, <b>xdg-settings</b> ensures that applications can configure user preferences reliably, regardless of whether the user is running GNOME, KDE, XFCE, or other XDG-compliant environments. It is invaluable for system administrators, developers, and users seeking to automate or script desktop configurations.


title: CAVEATS
content:
<b>xdg-settings</b> relies on the underlying desktop environment's proper implementation of XDG specifications. It may not function as expected in minimal window managers or environments that do not fully adhere to the XDG standards. The effectiveness can also be influenced by environment variables like `DESKTOP_SESSION` and `XDG_CURRENT_DESKTOP`. Specific desktop environment settings configured through graphical tools might sometimes override changes made via <b>xdg-settings</b>.


title: SUPPORTED CATEGORIES
content:
Common categories supported by <b>xdg-settings</b> include: <i>default-web-browser</i>, <i>default-mail-client</i>, and <i>default-url-scheme-handler</i>. The <i>default-url-scheme-handler</i> requires an additional argument specifying the scheme, for example: `default-url-scheme-handler http`, `default-url-scheme-handler mailto`, `default-url-scheme-handler ftp`.


title: EXIT STATUS
content:
The command returns an exit status of 0 upon successful execution. A non-zero exit status indicates an error or failure, which is useful for scripting and error handling.


title: DESKTOP FILES
content:
When setting or checking default applications, <b>xdg-settings</b> typically expects the <i>value</i> to be the base name of a `.desktop` file (e.g., `firefox.desktop`), which describes an application and its capabilities according to the FreeDesktop.org Desktop Entry Specification.


title: HISTORY
content:
<b>xdg-settings</b> is an integral part of the <b>xdg-utils</b> suite, developed under the auspices of the freedesktop.org project. This project emerged to bring standardization to various aspects of the Linux desktop, addressing the fragmentation caused by different desktop environments (GNOME, KDE, XFCE, etc.). The development of <b>xdg-utils</b>, including <b>xdg-settings</b>, was driven by the need for a common set of command-line tools that could abstract away desktop-specific configurations. This allows applications and scripts to perform tasks like opening files or setting default applications in a consistent manner across diverse desktop environments, thereby improving interoperability and user experience on the Linux desktop.


title: DESCRIPTION
content:
The command <i>'vinmap'</i> is not recognized as a standard utility within common Linux distributions (e.g., Debian, Ubuntu, CentOS, Fedora, Arch Linux). It does not appear in typical manual pages or package repositories. It is highly probable that <i>'vinmap'</i> is either a custom script or alias defined on a specific system, a typographical error in the command name, or a component of a highly specialized or obscure software package not widely distributed.<br><br>Without further context or clarification regarding its origin or purpose, it is impossible to provide a detailed analysis of its function, syntax, or parameters.


title: CAVEATS
content:
Users attempting to execute <i>'vinmap'</i> on a standard Linux system will most likely encounter a 'command not found' error. If <i>'vinmap'</i> exists on a particular system, its functionality, options, and any associated security implications would be entirely dependent on its specific implementation, which is beyond the scope of general Linux command analysis.


title: HISTORY
content:
There is no documented history of a standard <i>'vinmap'</i> Linux command within widely adopted operating systems or open-source projects.


title: SYNOPSIS
content:
<br><code>virsh-pool-info <I>pool_name</I></code><br><br>While often colloquially referred to as a single command, this typically refers to the <B>pool-info</B> subcommand of the <B>virsh</B> utility.<br><br>Where:<br> <b><I>pool_name</I></b>: The name of the storage pool for which to display information. This is a mandatory argument.


title: DESCRIPTION
content:
The `virsh-pool-info` command, commonly understood as the <B>pool-info</B> subcommand of the <B>virsh</B> utility, serves as a crucial tool for managing virtual machines and hypervisors via the <I>libvirt</I> virtualization management library. This specific command is designed to provide detailed insights into a particular <I>libvirt</I> storage pool. A storage pool acts as a logical container for storage volumes, such as disk images used by virtual machines. The information presented includes the pool's current operational state (e.g., <I>running</I>, <I>inactive</I>), its persistence settings (whether it persists across <I>libvirtd</I> restarts), and its total capacity, allocated space, and available free space. This data is essential for administrators to effectively monitor storage health, manage capacity, identify potential resource constraints, and plan for future expansion within their virtualized environments. It facilitates rapid assessment of storage resources critical to virtual machine operations.


title: CAVEATS
content:
<ul><li>The <I>libvirtd</I> service must be running for this command to function properly.</li><li>Access to <I>libvirt</I> information typically requires root privileges or membership in the `libvirt` user group.</li><li>The specified storage pool must exist and be known to <I>libvirt</I>. If the pool name is incorrect or the pool is not defined, the command will fail.</li><li>This command provides aggregate information for the entire pool; to get details about individual storage volumes within the pool, use commands like <I>virsh vol-list</I> or <I>virsh vol-info</I>.</li></ul>


title: OUTPUT FIELDS
content:
The `virsh-pool-info` command outputs several key pieces of information about the specified storage pool, typically including:<br><ul><li><B>Name</B>: The name of the storage pool.</li><li><B>UUID</B>: The Universally Unique Identifier for the pool.</li><li><B>State</B>: The current operational status of the pool (e.g., 'running', 'inactive', 'stopped').</li><li><B>Persistent</B>: Indicates whether the pool is configured to persist across <I>libvirtd</I> daemon restarts (yes/no).</li><li><B>Autostart</B>: Indicates whether the pool is configured to automatically start when the <I>libvirtd</I> service starts (yes/no).</li><li><B>Capacity</B>: The total storage capacity of the pool.</li><li><B>Allocation</B>: The amount of space currently allocated within the pool by its volumes.</li><li><B>Available</B>: The remaining free space in the pool.</li></ul>


title: EXAMPLE USAGE
content:
To display information about a storage pool named 'default', you would typically execute:<br><code>virsh pool-info default</code><br><br>A sample output might look like this:<br><code><br> Name:           default<br> UUID:           a1b2c3d4-e5f6-7890-1234-567890abcdef<br> State:          running<br> Persistent:     yes<br> Autostart:      yes<br> Capacity:       931.51 GiB<br> Allocation:     8.00 GiB<br> Available:      923.51 GiB<br></code>


title: NO SPECIFIC OPTIONS
content:
The <B>pool-info</B> subcommand itself does not have any dedicated command-line options (flags). Its behavior is controlled solely by the mandatory <I>pool_name</I> argument. However, global <B>virsh</B> options, such as `--connect` for specifying a different hypervisor, can be used before the subcommand name.


title: HISTORY
content:
The <B>pool-info</B> subcommand is an integral part of the <B>virsh</B> command-line utility, which serves as the primary interface to the <I>libvirt</I> virtualization management library. The <I>libvirt</I> project, initiated by Red Hat, provides a stable, open-source, and long-term API for managing various virtualization technologies. The ability to query storage pool information (<B>pool-info</B>) has been a fundamental requirement since the early days of <I>libvirt</I>'s development (dating back to the mid-2000s), as managing and monitoring storage is critical for any virtualized environment. It has been a consistent feature, evolving with <I>libvirt</I> to support new storage backends and features, ensuring administrators always have visibility into their storage resources.


title: SEE ALSO
content:
virsh(1), libvirtd(8), virsh pool-list(1), virsh pool-start(1), virsh pool-define(1), virsh pool-undefine(1), virsh vol-list(1), virsh vol-info(1)


title: SYNOPSIS
content:
virtualbox [<i>OPTIONS</i>] [<<i>vmname</i>> | --startvm <<i>vmname</i>> | --startheadlessvm <<i>vmname</i>>]


title: PARAMETERS
content:
<b>--startvm <vmname></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts the specified virtual machine in a regular GUI window. If the VM is already running, it brings the window to the foreground.<br><br><b>--startheadlessvm <vmname></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts the specified virtual machine in headless mode. The VM runs in the background without a graphical interface, suitable for server environments or remote access.<br><br><b>--seamless</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts the GUI in seamless mode, where guest windows appear directly on the host desktop.<br><br><b>--fullscreen</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts the GUI in full-screen mode, where the guest display takes over the entire host screen.<br><br><b>--minimize</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts the GUI minimized to the taskbar/dock.<br><br><b>--debug</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables debug logging for the VirtualBox process.<br><br><b><vmname></b><br>&nbsp;&nbsp;&nbsp;&nbsp;When provided without `--startvm` or `--startheadlessvm`, it attempts to start the specified VM in the default (GUI) mode.<br><br>


title: DESCRIPTION
content:
The `virtualbox` command launches the Oracle VM VirtualBox application, a powerful x86 and AMD64/Intel64 virtualization product for enterprise and home use. It allows users to create and run "guest" operating systems (such as Windows, Linux, Solaris, or macOS) inside "host" operating systems. The `virtualbox` command primarily invokes the graphical user interface (GUI), providing a user-friendly way to manage virtual machines, configure their settings (like CPU, RAM, storage, network adapters), and interact with running guests. While the GUI is excellent for interactive use, the underlying VirtualBox engine is highly configurable and extensible, supporting features like snapshots, cloning, shared folders, and remote display. For more advanced command-line operations and automation, the `VBoxManage` utility is typically employed.


title: CAVEATS
content:
The `virtualbox` command itself is primarily designed to launch the graphical user interface (GUI) for VirtualBox. While it offers some basic options to start VMs, it lacks the extensive command-line functionality for managing, configuring, or scripting VirtualBox operations. For advanced command-line control, including VM creation, modification, snapshots, network settings, and other administrative tasks, the separate `VBoxManage` utility is the dedicated tool and should be used instead.


title: <B>THE `VBOXMANAGE` UTILITY:</B>
content:
For all serious command-line management, scripting, and automation of VirtualBox, the `VBoxManage` command is indispensable. It provides a comprehensive set of subcommands for creating, modifying, cloning, snapshotting, and controlling virtual machines, as well as managing network settings, storage, and other VirtualBox properties.


title: <B>GUEST ADDITIONS:</B>
content:
VirtualBox Guest Additions are a set of device drivers and system applications that are installed inside a virtual machine to improve performance and usability. They enable features like seamless mouse pointer integration, shared folders between host and guest, better video resolution support, and time synchronization.


title: <B>HEADLESS OPERATION:</B>
content:
Virtual machines can be started in "headless" mode using the `--startheadlessvm` option. In this mode, the VM runs without a graphical window, consuming fewer host resources and making it ideal for server workloads or when the VM is accessed remotely via technologies like RDP (Remote Desktop Protocol) or SSH.


title: HISTORY
content:
VirtualBox was originally developed by Innotek GmbH, a German software company, and first released in 2007. Sun Microsystems acquired Innotek in 2008, bringing VirtualBox under its umbrella. Following Oracle's acquisition of Sun Microsystems in 2010, VirtualBox became part of Oracle's product portfolio. Throughout its history, VirtualBox has maintained both a proprietary Personal Use and Evaluation License (PUEL) version and an open-source version (VirtualBox OSE, now simply "VirtualBox" under GPLv3) providing a robust, free, and cross-platform virtualization solution. Its development has focused on ease of use, broad host/guest OS support, and feature richness.


title: PARAMETERS
content:
<b>--incognito</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Launches the Vivaldi browser in incognito (private browsing) mode, preventing the storage of browsing history, cookies, site data, or information entered in forms.<br><br><b>--start-maximized</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts the Vivaldi browser window in a maximized state.<br><br><b>--start-fullscreen</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts the Vivaldi browser in full-screen mode, typically hiding window controls and system toolbars.<br><br><b>--app=<i>URL</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs Vivaldi in application mode, opening the specified URL in a simplified window without standard browser UI elements like address bar, tabs, or bookmarks.<br><br><b>--user-data-dir=<i>PATH</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies an alternative directory for user profile data (e.g., bookmarks, history, extensions, cookies) instead of the default location.<br><br><b>--disable-gpu</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disables the use of the graphics processing unit (GPU) for hardware acceleration, forcing software rendering. Useful for troubleshooting display issues.<br><br><b>--proxy-server=<i>host</i>:<i>port</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a proxy server to use for all outgoing connections. Can also include a protocol (e.g., 'socks5://host:port').<br><br><b><i>URL</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Opens the specified URL in a new tab or window. If omitted, the browser's default start page or restored session will open.<br><br>


title: DESCRIPTION
content:
<i>vivaldi-stable</i> is the command-line executable for launching the stable version of the Vivaldi web browser on Linux systems. Vivaldi is a Chromium-based browser developed by Vivaldi Technologies, co-founded by Jon Stephenson von Tetzchner. It's renowned for its highly customizable user interface and features designed for power users, such as:<br><i>- Advanced tab management (tab stacking, tiled tabs)</i><br><i>- Built-in mail client, calendar, and RSS reader</i><br><i>- Note-taking functionality</i><br><i>- Extensive keyboard shortcut customization</i><br><i>- Vertical tabs and configurable side panels</i><br><br>The command initiates the browser process, opening new windows or tabs, and can accept a wide array of standard Chromium command-line flags for advanced configuration, debugging, or specific startup behaviors. It integrates with the desktop environment, allowing for opening URLs directly from the command line or other applications, making it a versatile tool for both everyday browsing and specific development or testing scenarios.


title: CAVEATS
content:
The <i>vivaldi-stable</i> command itself has very few unique flags; most of its command-line options are inherited directly from the underlying Chromium project it is built upon. Therefore, comprehensive documentation for all possible flags often requires consulting Chromium command-line switch references, rather than a dedicated Vivaldi man page. Users should be aware that running Vivaldi with many extensions or complex tabs can be resource-intensive, similar to other Chromium-based browsers.


title: FINDING MORE CHROMIUM FLAGS
content:
Since <i>vivaldi-stable</i> supports a vast number of Chromium command-line switches, users can often find more detailed and up-to-date documentation on Chromium's official developer resources or by searching for 'Chromium command line switches'. Additionally, running <code>vivaldi-stable --help</code> or <code>vivaldi-stable --version</code> might provide basic information, but not an exhaustive list of all supported flags. For an internal list of experimental features and flags, navigate to <code>vivaldi://flags</code> within the browser itself.


title: DEFAULT USER DATA DIRECTORY
content:
By default, Vivaldi stores user profile data (history, bookmarks, extensions, cookies, etc.) in a directory typically located at <code>~/.config/vivaldi/Default</code> (or <code>~/.config/vivaldi-snapshot/Default</code> for snapshot versions) on Linux systems. This directory can be changed using the <code>--user-data-dir</code> flag.


title: HISTORY
content:
Vivaldi Technologies was founded in 2013 by Jon Stephenson von Tetzchner, co-founder and former CEO of Opera Software, alongside Tatsuki Tomita. The browser was conceived as a response to Opera's transition from its proprietary Presto layout engine to Chromium, which many power users felt led to a loss of key features and customization. Vivaldi's first technical preview was released in January 2015, and the first stable version, 1.0, was launched in April 2016. Its development has consistently focused on restoring and enhancing advanced browser functionality, appealing to users who desire extensive control and customization over their browsing experience.


title: SYNOPSIS
content:
<b>vladimyr</b> [<b>-k</b>|<b>--kremulate</b>] [<b>-p</b>|<b>--purge</b>] [<b>-a</b>|<b>--assert</b> <I>config_file</I>] [<b>-s</b>|<b>--status</b>] [<b>--override</b>] <I>target</I>


title: PARAMETERS
content:
<b><b>-k</b>, <b>--kremulate</b> <I>target</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;“Kremulates” a target process or resource, placing it under centralized, high-priority control. This isolates its resources and ensures preferential treatment, often at the expense of other processes.<br><br><b><b>-p</b>, <b>--purge</b> <I>target</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Aggressively terminates the specified target (process, service, or group of resources) with extreme prejudice, ensuring no lingering remnants.<br><br><b><b>-a</b>, <b>--assert</b> <I>config_file</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Applies a pre-defined authoritative configuration from <I>config_file</I> to the system, overriding existing settings for specified resources or processes.<br><br><b><b>-s</b>, <b>--status</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the current "dominance status" of the system, including which processes or resources are under <I>vladimyr</I>'s direct control and their priority levels.<br><br><b><b>--override</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Forces the execution of the command, ignoring standard warnings or soft conflicts. Use with extreme caution.<br><br><b><I>target</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The specific process ID (PID), cgroup name, resource identifier, or service name to operate upon.<br><br>


title: DESCRIPTION
content:
The <I>vladimyr</I> command is a hypothetical, yet conceptually powerful, Linux utility designed for system administrators who require absolute and centralized control over system resources and running processes. It aims to provide a "single point of truth" for critical system state, allowing an administrator to assert dominance over conflicting configurations or rogue applications. Unlike standard resource managers, <I>vladimyr</I> operates with a philosophy of "assertive management," prioritizing specified processes or resource allocations with an iron fist, potentially overriding less critical system directives. Its core function revolves around establishing a primary, unyielding configuration for a system's operational parameters, ensuring stability and performance according to a master plan. While fictional, its design concept hints at scenarios where granular, yet forceful, intervention is preferred over distributed or collaborative resource management. It could be envisioned as a specialized tool for highly critical or sensitive environments where precise resource orchestration is paramount and deviations are not tolerated. <br><br>The command's name playfully alludes to a centralized, authoritative figure, reflecting its intended purpose of bringing order and control to a potentially chaotic system landscape.


title: CAVEATS
content:
The <I>vladimyr</I> command, being a hypothetical construct, represents a tool with significant power and potential for system disruption if misused. It would conceptually require root privileges and could bypass standard system safeguards. Its "authoritarian" nature implies a design that prioritizes asserted control over system stability, potentially leading to resource starvation for non-controlled processes or unexpected service interruptions. Use of such a command in a real-world scenario without deep understanding could render a system unstable or unusable.


title: DESIGN PHILOSOPHY: THE "IRON FIST"
content:
<I>vladimyr</I>'s core design philosophy is to provide an "iron fist" approach to system management. It's built on the premise that in certain critical scenarios, a single, overriding authority is necessary to maintain system integrity and performance, even if it means aggressively reallocating resources or terminating non-compliant processes. This philosophical stance contrasts with more democratic or distributed system management paradigms.


title: POTENTIAL IMPLEMENTATIONS
content:
While fictional, a real-world implementation of <I>vladimyr</I> could leverage existing Linux kernel features such as control groups (cgroups) for resource isolation, process priority mechanisms, and sophisticated system call interposition for fine-grained control. It would likely require custom kernel modules or deep integration with a powerful init system like systemd to achieve its envisioned level of dominance.


title: HISTORY
content:
The concept of a <I>vladimyr</I> command emerges from a theoretical need for a single, unchallenged point of control within complex Linux environments. It's not a standard open-source utility but rather a thought experiment on how a "dictatorial" system management tool might operate. Its conceptual development focuses on scenarios where traditional, more collaborative resource management tools might fail to enforce critical operational parameters, leading to a desire for a direct, top-down approach to system governance.


title: SYNOPSIS
content:
<b>volta</b> [<i>command</i>] [<i>options</i>]<br><b>volta</b> <b>install</b> [<i>tool-name</i>][@<i>version</i>]<br><b>volta</b> <b>pin</b> [<i>tool-name</i>][@<i>version</i>]<br><b>volta</b> <b>uninstall</b> [<i>tool-name</i>]<br><b>volta</b> <b>list</b> [<i>tool-name</i>]<br><b>volta</b> <b>current</b><br><b>volta</b> <b>completions</b><br><b>volta</b> <b>setup</b><br><b>volta</b> <b>run</b> &lt;<i>command</i>&gt; [<i>args...</i>]<br><b>volta</b> <b>--version</b><br><b>volta</b> <b>--help</b>


title: PARAMETERS
content:
<b><b>install</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Installs a specific tool (Node.js, npm, Yarn, pnpm) or a specific version of it globally.</i><br><i>Example: <b>volta install node@18.17.0</b></i><br><br><b><b>pin</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Pins a specific tool version to the current project. This writes the version into <i>package.json</i>.</i><br><i>Example: <b>volta pin node@18</b></i><br><br><b><b>uninstall</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Uninstalls a specific tool or version.</i><br><i>Example: <b>volta uninstall node@16</b></i><br><br><b><b>list</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Lists installed tool versions or specific tool details.</i><br><i>Example: <b>volta list all</b></i><br><br><b><b>current</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Shows the currently active Node.js, npm, Yarn, and pnpm versions.</i><br><br><b><b>setup</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Sets up Volta for the first time, configuring shell PATH and necessary environment variables.</i><br><br><b><b>run</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Executes a command with a specific toolchain without changing the project's pinned versions. Useful for testing.</i><br><i>Example: <b>volta run node@16 myscript.js</b></i><br><br><b><b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Displays the installed Volta version.</i><br><br><b><b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Displays help information for Volta or a specific subcommand.</i><br><i>Example: <b>volta pin --help</b></i><br><br>


title: DESCRIPTION
content:
<b>Volta</b> is a powerful and reliable JavaScript toolchain manager designed to simplify the management of Node.js, npm, Yarn, and pnpm versions across different projects.<br>Unlike other version managers, <b>Volta</b> focuses on speed and seamless integration, automatically detecting and using the correct tool versions based on your current project's configuration (typically defined in <i>package.json</i>). This eliminates common "works on my machine" issues and ensures consistent development environments.<br><b>Volta</b> installs tools globally once and then creates lightweight shims, making it incredibly fast. It supports declarative configuration, allowing teams to specify required tool versions directly in their project's <i>package.json</i> file, ensuring everyone uses the same setup.


title: CAVEATS
content:
<i>Volta is primarily designed for JavaScript toolchain management (Node.js, npm, Yarn, pnpm) and does not manage other programming languages or system-level packages.</i><br><i>Requires proper shell configuration (PATH modification) for automatic version switching to work effectively.</i><br><i>Its automatic version switching relies on <i>package.json</i> entries; projects without these will default to global <b>Volta</b> settings or system installations.</i>


title: PROJECT-BASED TOOLING
content:
<i>One of Volta's core strengths is its ability to automatically switch Node.js, npm, Yarn, and pnpm versions based on the project you are working in. By specifying tool versions in your project's <i>package.json</i> file (e.g., <b>"volta": { "node": "18.x", "npm": "9.x" }</b>), <b>Volta</b> ensures that everyone on a team uses the exact same toolchain, eliminating "it works on my machine" issues and simplifying onboarding for new developers.</i>


title: OFFLINE SUPPORT
content:
<i>Once a tool version is installed with <b>Volta</b>, it is cached locally. This means that subsequent uses of that version, even in new projects, do not require a network connection, making development more efficient and reliable in environments with intermittent internet access.</i>


title: HISTORY
content:
<i>Volta was created by Microsoft and first open-sourced in 2018. It was developed to address common frustrations with JavaScript toolchain management, such as slow installation times, inconsistent environments across developer machines, and difficulties in switching between project-specific Node.js versions. Its design emphasizes speed through global caching of tool versions and reliability through deterministic project configuration via <i>package.json</i>. It quickly gained traction in the Node.js community as a robust alternative to existing version managers.</i>


title: SEE ALSO
content:
nvm(1): <i>Node Version Manager</i>, n(1): <i>Node version management</i>, fnm(1): <i>Fast Node Manager</i>, asdf(1): <i>Extendable version manager, supports Node.js via plugin</i>, npm(1): <i>Node Package Manager</i>, yarn(1): <i>Fast, reliable, and secure dependency management</i>, pnpm(1): <i>Fast, disk space efficient package manager</i>


title: PARAMETERS
content:
<b><b>register</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Registers your device with the Cloudflare WARP service. This is usually the first step after installation.<br><br><b><b>set-mode</b> <<i>mode</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the operational mode of the WARP client. Available modes include: <br><i>warp</i> (encrypts and tunnels all traffic via WARP), <br><i>warp+doh</i> (WARP plus DNS over HTTPS), <br><i>doh</i> (DNS over HTTPS only), <br><i>proxy</i> (local proxy mode), <br><i>off</i> (disables WARP).<br><br><b><b>connect</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Connects to the Cloudflare WARP service, activating the tunnel.<br><br><b><b>disconnect</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disconnects from the Cloudflare WARP service, deactivating the tunnel.<br><br><b><b>status</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the current status of the WARP client, including connection status, mode, and device information.<br><br><b><b>set-license</b> <<i>key</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Applies a WARP+ license key to unlock additional features or bandwidth.<br><br><b><b>delete-device</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Unregisters and deletes the current device from the WARP service.<br><br><b><b>add-excluded-route</b> <<i>IP/CIDR</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Excludes a specific IP address or CIDR range from being routed through the WARP tunnel (split tunneling).<br><br><b><b>remove-excluded-route</b> <<i>IP/CIDR</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Removes a previously added excluded IP address or CIDR range.<br><br><b><b>add-included-route</b> <<i>IP/CIDR</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Includes a specific IP address or CIDR range to be routed through the WARP tunnel. All other traffic is excluded. Use with caution as it overrides exclude rules.<br><br><b><b>remove-included-route</b> <<i>IP/CIDR</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Removes a previously added included IP address or CIDR range.<br><br><b><b>disable-network</b> <<i>interface_name</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disables WARP for a specific network interface (e.g., <i>eth0</i>, <i>wlan0</i>).<br><br><b><b>enable-network</b> <<i>interface_name</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables WARP for a specific network interface.<br><br><b><b>settings</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays detailed current settings of the WARP client.<br><br><b><b>network</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows network interface information relevant to WARP.<br><br><b><b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the version of the WARP CLI tool and client.<br><br><b><b>help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows a list of available commands and their usage.<br><br>


title: DESCRIPTION
content:
The <b>warp-cli</b> command-line utility provides an interface to control and configure the Cloudflare WARP client on Linux systems.<br><br>WARP (<i>WireGuard®</i> reimagined) is Cloudflare's service designed to make internet traffic more private and faster by routing it through Cloudflare's global network. It encrypts traffic leaving your device and sends it to Cloudflare's edge, where it's decrypted and sent to its destination.<br><br>This command allows users to perform various operations such as connecting or disconnecting from the WARP service, changing its operational mode (e.g., WARP, WARP with DNS over HTTPS, DNS only), managing excluded or included network routes (split tunneling), registering new devices, and viewing the current status and settings. It often requires elevated privileges (<i>sudo</i>) to execute most of its commands as it interacts directly with system network configurations and a background service.


title: CAVEATS
content:
Most <b>warp-cli</b> commands require root privileges (i.e., running with <i>sudo</i>).<br>WARP may conflict with other VPN solutions or network proxies running on the same system, potentially leading to connectivity issues or unexpected routing.<br>Careless use of <b>add-excluded-route</b> or <b>add-included-route</b> can lead to loss of connectivity to specific services or the internet.


title: SERVICE MANAGEMENT
content:
The <b>warp-cli</b> command interacts with a background service (daemon) often managed by <i>systemd</i>. You might need to check the service status or restart it using commands like <b>sudo systemctl status cloudflared-warp</b> or <b>sudo systemctl restart cloudflared-warp</b> if you encounter issues, especially after installation or updates.


title: INSTALLATION
content:
The <b>warp-cli</b> utility and the WARP client are typically installed via Cloudflare's official package repositories for various Linux distributions (e.g., APT for Debian/Ubuntu, YUM/DNF for Fedora/RHEL). It is not usually available through default distribution repositories.


title: HISTORY
content:
Cloudflare WARP was initially launched in 2019 for mobile platforms, expanding to desktop operating systems including Linux later. The <b>warp-cli</b> tool for Linux provides a native command-line interface to interact with the WARP daemon, facilitating integration into scripts and server environments. Its development focuses on ease of use while leveraging Cloudflare's extensive global network infrastructure.


title: SYNOPSIS
content:
<b><code>waydroid &lt;command&gt; [&lt;args&gt;]</code></b><br><br>Common commands include:<br><code>waydroid init</code><br><code>waydroid start</code><br><code>waydroid stop</code><br><code>waydroid shell</code><br><code>waydroid show-full-ui</code><br><code>waydroid app install &lt;path_to_apk&gt;</code>


title: PARAMETERS
content:
<b>init</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Initializes the Waydroid container, typically downloading Android system images. <i>Often run as <b><code>sudo waydroid init</code></b>.</i><br><br><b>start</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts the Waydroid container. <i>Requires the container to be initialized.</i><br><br><b>stop</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Stops the running Waydroid container.<br><br><b>restart</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Restarts the Waydroid container.<br><br><b>status</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the current operational status of the Waydroid container.<br><br><b>log</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows logs generated by the Waydroid container, useful for debugging.<br><br><b>shell</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Connects to the Waydroid container's <i>Android Debug Bridge (ADB)</i> shell.<br><br><b>update</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Updates the Waydroid container's system images to the latest available version.<br><br><b>show-full-ui</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the full Android user interface in a dedicated window on the host system.<br><br><b>app</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Subcommand for managing Android applications within the container, e.g., <i><b><code>waydroid app install &lt;path_to_apk&gt;</code></b></i>.<br><br><b>prop</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Subcommand for managing Android system properties within the container.<br><br><b>device</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Subcommand for managing Waydroid devices or sessions.<br><br><b>session</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Subcommand for managing Waydroid graphical sessions.<br><br><b>config</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Subcommand for managing Waydroid configuration settings.<br><br><b>container</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Subcommand for advanced management of the underlying <i>LXC</i> container.<br><br><b>version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the Waydroid client and container version information.<br><br><b>help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows general help or specific help for a subcommand, e.g., <i><b><code>waydroid help init</code></b></i>.<br><br>


title: DESCRIPTION
content:
<b>Waydroid</b> is an open-source project that provides a way to run a full Android operating system in a Linux container. It leverages <i>LXC (Linux Containers)</i> to isolate the Android environment from the host system, while using <i>Wayland</i> for display rendering, enabling seamless integration with the host's graphical environment. Unlike traditional emulators, Waydroid runs a real Android system, providing near-native performance for Android applications. It requires a Wayland compositor and specific kernel modules (like <i>binder_linux</i> and <i>ashmem_linux</i>) to function correctly.<br><br>Waydroid is often used for running Android apps that are not available natively on Linux, for development and testing of Android applications, or for general Android usage within a secure containerized environment on a desktop Linux system. Its design aims to be a successor to projects like Anbox, offering improved stability and performance.


title: CAVEATS
content:
<b>Wayland Requirement:</b> Waydroid fundamentally relies on a <i>Wayland</i> compositor for its graphical output and will not function correctly on <i>Xorg</i> sessions without complex workarounds.<br><b>Kernel Modules:</b> Requires specific kernel modules like <i>binder_linux</i> and <i>ashmem_linux</i> to be loaded on the host system.<br><b>Root Privileges:</b> Initial setup, starting, stopping, and updating the container often require <i>root</i> privileges (e.g., using <i>sudo</i>).<br><b>Performance Variability:</b> Performance can vary significantly depending on host hardware specifications and the overall system configuration.<br><b>Integration Limitations:</b> Direct integration with host system features (e.g., notifications, clipboard sharing, file system access) might be limited or require additional manual setup.


title: INITIAL SETUP AND WAYLAND DEPENDENCY
content:
The very first step after installing Waydroid is usually to run <i><b><code>sudo waydroid init</code></b></i>. This command downloads the necessary Android system and vendor images, preparing the container for use. It's crucial to be running a <i>Wayland</i> session on your desktop environment (e.g., GNOME on Wayland, KDE Plasma on Wayland) for Waydroid's graphical output to function, as it does not natively support <i>Xorg</i>.


title: HISTORY
content:
<b>Waydroid</b> emerged as a successor to projects like <i>Anbox</i>, aiming to provide a more stable and performant solution for running Android on Linux. It is based on <i>Project Halium</i>, which provides the necessary compatibility layer for Android to run on standard Linux kernels. Development has focused on leveraging modern Linux technologies like <i>Wayland</i> and <i>LXC</i> to improve integration and performance compared to its predecessors, becoming a popular choice for users seeking to run Android applications natively on their Linux desktops.


title: SYNOPSIS
content:
<b>waypipe</b> [<I>options</I>] <I>command</I> [<I>arguments...</I>]<br><b>waypipe</b> [<I>options</I>] <b>server</b><br><b>waypipe</b> [<I>options</I>] <b>ssh</b> <I>user@host</I> [<I>command...</I>]


title: PARAMETERS
content:
<b>--compress <type></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the compression algorithm to use (e.g., 'zstd', 'lz4', 'none'). Defaults to 'zstd'.<br><br><b>--display <socket></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the Wayland socket to connect to (client side) or listen on (server side). Defaults to the standard Wayland socket.<br><br><b>--ssh <host></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Uses SSH as the transport method. Equivalent to 'waypipe ssh <host>'. The host can be 'user@host'.<br><br><b>--socket <path></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the Unix domain socket path for direct client-server connections, bypassing SSH.<br><br><b>--listen <address></b><br>&nbsp;&nbsp;&nbsp;&nbsp;For server mode, specifies the network address to listen on (e.g., 'tcp:0.0.0.0:1234' or 'unix:/tmp/waypipe.sock').<br><br><b>--connect <address></b><br>&nbsp;&nbsp;&nbsp;&nbsp;For client mode, specifies the network address to connect to (e.g., 'tcp:127.0.0.1:1234' or 'unix:/tmp/waypipe.sock').<br><br><b>--verbose</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables verbose output, showing more details about connection, compression, and errors.<br><br><b>--version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the <i>Waypipe</i> version and exits.<br><br><b>--help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a help message with available options and exits.<br><br>


title: DESCRIPTION
content:
<i>Waypipe</i> is a powerful Linux command-line utility designed to enable secure and efficient remote access to Wayland display servers and applications. It acts as a proxy, intercepting and forwarding Wayland protocol messages over a network, effectively allowing you to run Wayland applications on a remote machine and display them locally, or vice versa.<br><br>Unlike traditional X11 forwarding, which operates at a lower level of abstraction, <i>Waypipe</i> understands and optimizes the Wayland protocol directly. This leads to significantly lower latency and higher performance, making it suitable for interactive graphical applications over a network. It supports various transports, including SSH for secure, encrypted connections, and offers advanced features like compression to further reduce bandwidth usage.<br><br><i>Waypipe</i> is an essential tool for users seeking to extend their Wayland desktop experience across machines, providing a robust solution for remote desktop, application streaming, and secure tunneling of graphical sessions in a Wayland-native environment.


title: CAVEATS
content:
<i>Waypipe</i> is a relatively new and actively developed tool. While generally stable, compatibility with all Wayland compositors and applications may vary. It requires a functioning Wayland environment on both the client and server sides. Performance is heavily dependent on network conditions and the chosen compression algorithm. Due to its nature of forwarding display data, proper security considerations for remote access should always be applied, especially when not using SSH.


title: HOW IT WORKS
content:
<i>Waypipe</i> operates by intercepting the Wayland communication between a Wayland client application and the Wayland compositor. On the remote machine (server), it captures the Wayland protocol messages generated by applications. These messages are then compressed and sent over the network to the local machine (client). On the local machine, <i>Waypipe</i> acts as a virtual Wayland compositor, interpreting the incoming messages and rendering them onto the local display. It also handles input events (keyboard, mouse) from the local machine, forwarding them back to the remote application. This direct protocol-level proxying allows for significant efficiency gains over pixel-based remote desktop solutions.


title: TYPICAL USAGE PATTERNS
content:
<ul><li><b>Remote Desktop Session:</b> Run <code>waypipe ssh user@remote-host sway</code> (or your preferred Wayland desktop environment) to get a full remote desktop on your local machine.</li><li><b>Single Application Streaming:</b> Launch a specific application remotely, like <code>waypipe ssh user@remote-host firefox</code>, and have only that application's window appear on your local desktop.</li><li><b>Secure Tunneling:</b> Use <i>Waypipe</i> with its SSH transport to securely tunnel Wayland connections over untrusted networks, ensuring all graphical data and input are encrypted.</li><li><b>Server Mode:</b> Run <code>waypipe server</code> on the remote host and then connect to it from the local machine using <code>waypipe --connect tcp:remote-host:port <local-command></code> or similar.</li></ul>


title: HISTORY
content:
<i>Waypipe</i> emerged to address a significant gap in the Wayland ecosystem: the lack of a robust, native solution for remote display and application forwarding, akin to X11 forwarding. While Wayland's design emphasizes local rendering for security and performance, the need for remote capabilities remained. Developed by Nick Black (dank among others), <i>Waypipe</i> was created to fill this void by efficiently proxying the Wayland protocol itself, rather than relying on an intermediate layer like VNC or RDP. Its development has focused on high performance, low latency, and secure transport, making it the de facto standard for Wayland remote graphics.


title: SYNOPSIS
content:
<b>weasyprint [OPTIONS] &lt;INPUT&gt; &lt;OUTPUT&gt;</b><br><br><i>INPUT</i> can be a URL, a local file path, or <b>-</b> for standard input. <br><i>OUTPUT</i> can be a file path, or <b>-</b> for standard output.


title: PARAMETERS
content:
<b>-h, --help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show program’s help message and exit.<br><br><b>-v, --version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show program’s version number and exit.<br><br><b>-e ENCODING, --encoding ENCODING</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the input encoding for the HTML document.<br><br><b>-s STYLESHEET, --stylesheet STYLESHEET</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to a user stylesheet to apply. Can be specified multiple times for multiple stylesheets.<br><br><b>-m MEDIA_TYPE, --media-type MEDIA_TYPE</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the media type for the CSS, e.g., 'print', 'screen', 'projection'. Defaults to 'print'.<br><br><b>-u BASE_URL, --base-url BASE_URL</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the base URL for resolving relative paths in the document (e.g., for images, links).<br><br><b>-r RESOLUTION, --resolution RESOLUTION</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the resolution for PNG output, in dots per inch (DPI). Defaults to 96 DPI.<br><br><b>--optimize-size</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Optimize the PDF output for a smaller file size.<br><br><b>--full-html</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Force parsing the input as a complete HTML document, even if it appears to be a fragment.<br><br><b>--presentational-hints</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Apply presentational hints found in the HTML (e.g., width/height attributes on images).<br><br><b>--skip-by-default</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Skip resources that fail to load (e.g., images, stylesheets) instead of stopping the process.<br><br><b>--pdf-variant {pdf/ua-1,pdf/a-1,pdf/a-2,pdf/a-3,pdf/x-1a-2001}</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the PDF variant for compliance, such as PDF/A for archiving or PDF/UA for accessibility.<br><br><b>--pdf-version VERSION</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the PDF version number to be used for the output document (e.g., '1.7').<br><br><b>--uncompressed-margin-boxes</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Do not compress margin boxes in the PDF output, potentially increasing file size but aiding debugging.<br><br><b>--font-config PATH</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to an additional font configuration file for font discovery.<br><br><b>--hinting {none,slight,medium,full}</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the font hinting level to control how fonts are rendered.<br><br><b>--embed-fonts</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Embed fonts in the PDF output. This is the default behavior.<br><br><b>--no-embed-fonts</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Do not embed fonts in the PDF output, which can reduce file size but requires fonts to be available on the viewing system.<br><br><b>--substitute-colors</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Substitute colors for improved accessibility, converting some colors to more readable alternatives.<br><br><b>--setting NAME=VALUE</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set a specific configuration setting for advanced control. Can be specified multiple times.<br><br><b>--attachment ATTACHMENT</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to a file to be embedded as an attachment in the PDF document.<br><br><b>--access-hint HINT</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Provide a hint to improve the accessibility of the generated PDF.<br><br><b>--media-feature NAME=VALUE</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set a CSS media feature value for rendering. Can be specified multiple times.<br><br>


title: DESCRIPTION
content:
WeasyPrint is a powerful and flexible command-line tool and Python library that <b>transforms HTML and CSS documents into high-quality PDF or PNG files</b>. It stands out by fully supporting modern web standards, including CSS Paged Media specifications, making it ideal for generating complex documents like invoices, reports, and books directly from web content. <br><br>Unlike many web-to-PDF converters that rely on browser engines, WeasyPrint implements its own layout engine, which allows for precise control over typography, pagination, and graphic elements. It's particularly useful for automating document generation workflows, integrating seamlessly into web applications or command-line scripts. WeasyPrint aims to create pixel-perfect renditions of web pages, ensuring that the visual presentation in the output matches the intended design. Its ability to handle intricate CSS layouts and generate accessible PDFs makes it a valuable tool for developers and businesses alike.


title: CAVEATS
content:
<i>WeasyPrint</i> provides excellent HTML/CSS rendering, but it has some limitations: <br><b>&#8226; It does not execute JavaScript.</b> Pages requiring client-side scripting for content generation or layout will not render correctly.<br><b>&#8226; Complex or non-standard CSS layouts</b> might not always be perfectly replicated.<br><b>&#8226; For very large or complex documents</b>, memory usage and generation time can be significant.<br><b>&#8226; While supporting modern CSS</b>, some bleeding-edge or experimental CSS features may not be fully implemented.<br>


title: INPUT AND OUTPUT FLEXIBILITY
content:
<i>WeasyPrint</i> supports various forms of input and output. Input can be read directly from a URL (e.g., <i>http://example.com/document.html</i>), a local file path (e.g., <i>/path/to/document.html</i>), or standard input (<b>-</b>), which allows piping HTML content from other commands. Similarly, output can be written to a specific file path (e.g., <i>output.pdf</i>) or to standard output (<b>-</b>), enabling further processing with other command-line tools.


title: CSS PAGED MEDIA SUPPORT
content:
A key strength of <i>WeasyPrint</i> is its comprehensive support for the CSS Paged Media Module. This allows web developers to use familiar CSS properties to control page breaks, margins, headers, footers, page numbering, and other print-specific layouts, directly within their HTML and CSS, making it ideal for creating professional-quality print documents.


title: HISTORY
content:
<i>WeasyPrint</i> was created by the French company Kozea, starting development around 2011-2012. It emerged as an open-source project with the goal of providing a robust and standards-compliant way to render HTML and CSS to PDF, particularly emphasizing the CSS Paged Media module. Its independent layout engine differentiates it from solutions relying on web browser engines, allowing for greater control and precision in document generation. Over the years, it has continuously evolved, adding support for new CSS features, improving performance, and enhancing PDF/A and PDF/UA capabilities for accessibility and archiving.


title: SYNOPSIS
content:
web-ext <I>command</I> [<I>options</I>] [<I>arguments</I>]<br><I>Common commands:</I><br>  web-ext <B>run</B> [<I>options</I>]<br>  web-ext <B>lint</B> [<I>options</I>]<br>  web-ext <B>build</B> [<I>options</I>]<br>  web-ext <B>sign</B> [<I>options</I>]<br>  web-ext <B>add-xpi</B> <I>path/to/addon.xpi</I> [<I>options</I>]<br>  web-ext <B>docs</B><br>  web-ext <B>help</B> [<I>command</I>]


title: PARAMETERS
content:
<b><B>--help</B>, <B>-h</B></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show help message and exit. Can be used for specific commands, e.g., <I>web-ext run --help</I>.<br><br><b><B>--version</B></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show the <I>web-ext</I> version number and exit.<br><br><b><B>--verbose</B></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enable verbose logging output for more detailed information during execution.<br><br><b><B>--source-dir</B> <I>path</I>, <B>-s</B> <I>path</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The directory containing your extension's source code. Defaults to the current working directory. Used by <I>run</I>, <I>lint</I>, <I>build</I>, <I>sign</I>.<br><br><b><B>--output-dir</B> <I>path</I>, <B>-o</B> <I>path</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The directory where output files (e.g., packaged XPI) will be saved. Used by <I>build</I>, <I>lint</I>.<br><br><b><B>--firefox</B> <I>path</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to the Firefox binary to use for running your extension. Used by <I>run</I>.<br><br><b><B>--firefox-profile</B> <I>name</I>|<I>path</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify a Firefox profile by name or path to use for running your extension. Used by <I>run</I>.<br><br><b><B>--devtools</B></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Open Firefox's developer tools window when the browser starts. Used by <I>run</I>.<br><br><b><B>--start-url</B> <I>url</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;A URL to open in Firefox when it starts. Can be specified multiple times. Used by <I>run</I>.<br><br><b><B>--api-key</B> <I>key</I>, <B>-a</B> <I>key</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Your API Key (JWT issuer) for signing. Required by <I>sign</I>.<br><br><b><B>--api-secret</B> <I>secret</I>, <B>-s</B> <I>secret</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Your API Secret (JWT secret) for signing. Required by <I>sign</I>.<br><br><b><B>--channel</B> <I>type</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;The release channel for signing, either <I>listed</I> (default) or <I>unlisted</I>. Used by <I>sign</I>.<br><br><b><B>--overwrite-dest</B></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Overwrite existing packaged XPI files in the output directory without prompting. Used by <I>build</I>.<br><br><b><B>--ignore-files</B> <I>glob</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;A glob pattern of files/directories to ignore when building or linting the extension. Can be specified multiple times. Used by <I>build</I>, <I>lint</I>.<br><br>


title: DESCRIPTION
content:
web-ext is a command-line tool developed by Mozilla to streamline the development workflow for browser extensions built using the WebExtensions API. It provides a comprehensive suite of commands designed to simplify common tasks faced by extension developers. Key functionalities include: running an extension in a temporary Firefox profile with live reloading during development (via <I>web-ext run</I>), linting extension source code to catch common issues and adhere to best practices (via <I>web-ext lint</I>), packaging an extension into a .zip file ready for distribution (via <I>web-ext build</I>), and submitting/signing extensions for publication on addons.mozilla.org (AMO) (via <I>web-ext sign</I>). While primarily focused on Firefox, the WebExtensions API it supports is largely cross-browser compatible, making <I>web-ext</I> a valuable tool for anyone developing extensions targeting modern browsers. It is distributed as an npm package, making it easily installable via Node.js's package manager.


title: CAVEATS
content:
`web-ext` requires <B>Node.js</B> and <B>npm</B> (Node Package Manager) to be installed on your system. The <B>sign</B> command requires a developer account on addons.mozilla.org (AMO) and corresponding API credentials (JWT issuer and secret) to securely sign your extensions. When using `web-ext run`, a temporary Firefox profile is typically created for the development session and deleted upon exit, ensuring a clean slate. Custom Firefox installations or specific profiles might be needed for advanced debugging scenarios. While the WebExtensions API is designed for cross-browser compatibility, `web-ext` itself is primarily tailored for Firefox development and publishing workflows.


title: INSTALLATION
content:
To install <I>web-ext</I>, you need <B>Node.js</B> and <B>npm</B> installed. Then, use npm to install it globally:<br><br>npm install --global web-ext<br><br>This makes the <I>web-ext</I> command available in your terminal.


title: TYPICAL DEVELOPMENT WORKFLOW
content:
A common workflow with <I>web-ext</I> includes:<br><br><B>1. Development:</B> Use <I>web-ext run</I> in your extension's source directory to launch Firefox with your extension loaded and automatically reload changes.<br><br>cd my-extension-folder<br>web-ext run<br><br><B>2. Linting:</B> Before packaging, lint your code to catch common errors and warnings:<br><br>web-ext lint<br><br><B>3. Packaging:</B> Create a distributable .zip file (XPI) of your extension:<br><br>web-ext build<br><br><B>4. Signing (for AMO):</B> If you intend to distribute via Mozilla Add-ons, sign your packaged XPI:<br><br>web-ext sign --api-key JWT_ISSUER --api-secret JWT_SECRET


title: HISTORY
content:
The `web-ext` command-line tool was developed by Mozilla as part of their significant transition from the legacy XUL/XPCOM-based add-on system to the standardized WebExtensions API. This shift, which began around Firefox 48 in 2016 and concluded with the release of Firefox Quantum (Firefox 57) in 2017, aimed to improve security, performance, and cross-browser compatibility for extensions. `web-ext` emerged as a crucial tool to support developers during this transition and beyond, providing a modern and efficient workflow for building, testing, and deploying WebExtensions. It centralizes common development tasks, simplifying processes that previously required manual steps or separate tools, and ensures compliance with new development guidelines and signing requirements for add-ons distributed via addons.mozilla.org.


title: PARAMETERS
content:
<b><b>-b</b>, <b>--background</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Go to background immediately after startup. If no output file is specified, it redirects output to 'wget-log'.<br><br><b><b>-c</b>, <b>--continue</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Resume getting a partially-downloaded file. This is useful when a download is interrupted.<br><br><b><b>-nc</b>, <b>--no-clobber</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Do not overwrite existing files. If a file exists, a new version is downloaded with '.N' appended to the name.<br><br><b><b>-O</b>, <b>--output-document=<i>FILE</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Write documents to <i>FILE</i>. For multiple URLs, files are concatenated into <i>FILE</i>.<br><br><b><b>-P</b>, <b>--directory-prefix=<i>PREFIX</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set directory <i>PREFIX</i> as the prefix for all files and directories.<br><br><b><b>-r</b>, <b>--recursive</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Turn on recursive retrieving. This option allows <i><b>wget</b></i> to download an entire website.<br><br><b><b>-l</b>, <b>--level=<i>LEVEL</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify recursion maximum depth <i>LEVEL</i>. Use with <b>-r</b>.<br><br><b><b>-np</b>, <b>--no-parent</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Do not ascend to the parent directory when retrieving recursively. Useful to stay within a specific directory structure.<br><br><b><b>-A</b>, <b>--accept=<i>LIST</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Comma-separated list of file suffixes or patterns to accept for download.<br><br><b><b>-R</b>, <b>--reject=<i>LIST</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Comma-separated list of file suffixes or patterns to reject for download.<br><br><b><b>-U</b>, <b>--user-agent=<i>AGENT-STRING</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Identify as <i>AGENT-STRING</i> to the HTTP server. Useful for bypassing user-agent restrictions.<br><br><b><b>-q</b>, <b>--quiet</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Turn off <i><b>wget</b></i>'s output. Only error messages will be displayed.<br><br><b><b>-v</b>, <b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Turn on verbose output. This is the default for most interactive uses.<br><br><b><b>-i</b>, <b>--input-file=<i>FILE</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Read URLs from <i>FILE</i>. One URL per line.<br><br><b><b>-k</b>, <b>--convert-links</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Convert links in documents to make them suitable for local viewing. Useful for mirroring websites.<br><br><b><b>--limit-rate=<i>AMOUNT</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Limit the download speed to <i>AMOUNT</i> bytes per second. Useful for managing network bandwidth.<br><br><b><b>-t</b>, <b>--tries=<i>NUMBER</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set number of retries to <i>NUMBER</i>. 0 means infinite retries.<br><br><b><b>-T</b>, <b>--timeout=<i>SECONDS</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the read and connect timeout to <i>SECONDS</i>. Useful for slow or unreliable connections.<br><br><b><b>-N</b>, <b>--timestamping</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Turn on timestamping. Files are downloaded only if they are newer than the local copy, based on timestamps.<br><br>


title: DESCRIPTION
content:
<i><b>wget</b></i> is a free utility for non-interactive download of files from the web. It supports HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies. It's designed for robustness, meaning it can continue downloading even if the network connection drops, resuming where it left off. This makes it ideal for fetching large files, mirroring websites, or automating downloads within scripts. Its non-interactive nature means it can work in the background while the user is logged out, making it a powerful tool for server-side operations and cron jobs. <i><b>wget</b></i> can recursively download entire websites, convert links for offline viewing, and handle various authentication schemes, making it highly versatile for a wide range of data retrieval tasks.


title: CAVEATS
content:
While <i><b>wget</b></i> is robust, certain considerations apply:<br><ul><li><b>Security Risks:</b> Care must be taken when downloading files from unknown sources, as they may contain malicious content. Recursive downloads from untrusted sites can also expose your system to risks.</li><li><b>Rate Limiting:</b> Aggressive or unthrottled recursive downloads can trigger server-side rate limits or even IP bans, especially on public websites.</li><li><b>Website Structure Changes:</b> When mirroring websites, dynamic content or changes in website structure can break local copies or lead to incomplete mirrors.</li><li><b>JavaScript/Dynamic Content:</b> <i><b>wget</b></i> does not interpret JavaScript or execute client-side scripts, so it cannot fully download sites that heavily rely on dynamic content loaded via JavaScript.</li><li><b>Authentication:</b> While it supports basic HTTP and FTP authentication, more complex authentication methods (e.g., OAuth, multi-factor authentication) are not directly supported.</li></ul>


title: COMMON USE CASES
content:
<i><b>wget</b></i> is frequently used for:<br><ul><li><b>Automated Downloads:</b> Fetching software updates, datasets, or daily reports via cron jobs.</li><li><b>Website Mirroring:</b> Creating local copies of websites for offline browsing or backup purposes.</li><li><b>File Recovery:</b> Resuming large file downloads after network interruptions.</li><li><b>Scripting:</b> Integrating into shell scripts for various data fetching tasks.</li><li><b>Benchmarking:</b> Simple network performance testing by downloading a file and measuring time.</li></ul>


title: HISTORY
content:
<i><b>wget</b></i>, originally named 'Geturl', was first released in 1996 by Hrvoje Niksic. It was designed to be a command-line tool that could download files reliably and non-interactively, particularly useful for slow or unstable internet connections common in the mid-90s. Its ability to resume interrupted downloads and perform recursive website mirroring quickly made it a staple in the Linux and Unix communities. It's written in C and is licensed under the GNU General Public License, contributing to its widespread adoption and inclusion in virtually all Linux distributions.


title: SYNOPSIS
content:
<b>whiptail</b> [<I>options</I>] <b>--<I>box-type</I></b> <I>text</I> <I>height</I> <I>width</I> [<I>box-options</I>]


title: PARAMETERS
content:
<b><b>--yesno</b> <I>text</I> <I>height</I> <I>width</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a simple Yes/No question dialog. Returns 0 for Yes, 1 for No.<br><br><b><b>--msgbox</b> <I>text</I> <I>height</I> <I>width</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a message box with an OK button.<br><br><b><b>--infobox</b> <I>text</I> <I>height</I> <I>width</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a message box but returns immediately. Useful for showing progress.<br><br><b><b>--inputbox</b> <I>text</I> <I>height</I> <I>width</I> [<I>init</I>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prompts for text input. The entered text is printed to stderr. <I>init</I> is optional default text.<br><br><b><b>--passwordbox</b> <I>text</I> <I>height</I> <I>width</I> [<I>init</I>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Similar to <b>--inputbox</b>, but masks input characters.<br><br><b><b>--textbox</b> <I>file</I> <I>height</I> <I>width</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the content of a text <I>file</I>, allowing scrolling.<br><br><b><b>--menu</b> <I>text</I> <I>height</I> <I>width</I> <I>list-height</I> [<I>tag</I> <I>item</I> ...]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Presents a scrollable menu of items. The selected <I>tag</I> is printed to stderr.<br><br><b><b>--radiolist</b> <I>text</I> <I>height</I> <I>width</I> <I>list-height</I> [<I>tag</I> <I>item</I> <I>status</I> ...]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a radio button list, allowing single selection. <I>status</I> can be ON or OFF.<br><br><b><b>--checklist</b> <I>text</I> <I>height</I> <I>width</I> <I>list-height</I> [<I>tag</I> <I>item</I> <I>status</I> ...]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a checklist, allowing multiple selections. <I>status</I> can be ON or OFF.<br><br><b><b>--gauge</b> <I>text</I> <I>height</I> <I>width</I> [<I>percent</I>]</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a gauge or progress bar. Reads percentage from stdin to update.<br><br><b><b>--title</b> <I>text</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the title to be displayed at the top of the dialog box.<br><br><b><b>--backtitle</b> <I>text</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a title to be displayed in the background.<br><br><b><b>--ok-button</b> <I>text</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the text for the OK button (default is 'Ok').<br><br><b><b>--cancel-button</b> <I>text</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the text for the Cancel button (default is 'Cancel').<br><br><b><b>--default-item</b> <I>tag</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the default selected item in menu, radiolist, or checklist boxes.<br><br><b><b>--defaultno</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Makes 'No' the default button for <b>--yesno</b> boxes.<br><br><b><b>--nocancel</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Omits the 'Cancel' button from dialog boxes.<br><br><b><b>--noitem</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Suppresses the display of item tags in menu and list boxes.<br><br><b><b>--noescape</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Disables interpretation of escape sequences like <I>\n</I>, <I>\t</I>, etc., in text.<br><br><b><b>--scrolltext</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Allows text in message boxes and text boxes to be scrolled if it exceeds the box size.<br><br><b><b>--topleft</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Positions the dialog box at the top-left corner of the screen.<br><br><b><b>--hscroll</b> <I>int</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the initial horizontal scroll position for <b>--textbox</b>.<br><br><b><b>--fb</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Attempts to use the Linux frame buffer device. May require root privileges.<br><br><b><b>--logfd</b> <I>fd</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Redirects debug output to the specified file descriptor.<br><br>


title: DESCRIPTION
content:
<i>Whiptail</i> is a lightweight utility that allows shell scripts to display various types of user-friendly dialog boxes in a text-based terminal environment. It is a clone of the more feature-rich <i>dialog</i> program, but built upon the <i>newt</i> library instead of <i>ncurses</i>, making it suitable for environments where <i>ncurses</i> is not preferred or available. It enables script developers to create interactive elements like message boxes, input fields, menus, yes/no prompts, and progress bars, significantly enhancing user interaction for command-line applications without requiring a graphical desktop environment. <i>Whiptail</i> communicates results (like chosen menu items or input text) via standard error, and indicates user actions (OK/Cancel) via its exit status.


title: CAVEATS
content:
<i>Whiptail</i> primarily communicates results via its exit status (0 for OK/Yes, 1 for Cancel/No/Escape) and by printing selected data (like input text or menu tags) to <b>stderr</b>. Therefore, shell scripts must redirect <b>stderr</b> to capture this output (e.g., <I>OUTPUT=$(whiptail ... 3>&1 1>&2 2>&3)</I>). It provides a text-based interface, limiting its aesthetic flexibility compared to graphical toolkits.


title: EXIT STATUS HANDLING
content:
After a <i>whiptail</i> command finishes, its exit status indicates the user's action: <br><b>0</b>: User pressed OK, Yes, or selected an item. <br><b>1</b>: User pressed Cancel, No, or pressed the ESC key. <br><b>255</b>: An error occurred or the dialog was interrupted (e.g., by Ctrl+C).


title: CAPTURING OUTPUT
content:
For dialog types that return user input (e.g., <b>--inputbox</b>, <b>--menu</b>), <i>whiptail</i> prints the result to <b>stderr</b>. To capture this output into a shell variable, you typically need to swap standard output and standard error using file descriptor redirection. A common pattern is: <br><b>VARIABLE=$(whiptail --inputbox "Enter your name:" 10 50 2>&1 1>&3-)</b><br>where 3 is a temporary file descriptor.


title: HISTORY
content:
<i>Whiptail</i> emerged as a clone of the well-known <i>dialog</i> utility. While <i>dialog</i> typically relies on the <i>ncurses</i> library, <i>whiptail</i> was developed to use the lighter-weight <i>newt</i> (Not GNU Emacs Widget Toolkit) library. This design choice often makes <i>whiptail</i> more suitable for minimal systems or embedded environments, and it gained prominence through its use in installers and configuration scripts for systems like Debian and Ubuntu.


title: PARAMETERS
content:
<b><i>&lt;audio_path&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Path to the audio file(s) to be processed. Supports various formats (MP3, WAV, FLAC, etc.) if <b>ffmpeg</b> is available.<br><br><b><b>--model</b> <i>&lt;name&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the Whisper model to use (e.g., <i>tiny</i>, <i>base</i>, <i>small</i>, <i>medium</i>, <i>large</i>, <i>large-v2</i>). Larger models offer better accuracy but require more resources.<br><br><b><b>--output_format</b> <i>&lt;format&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the output file format (e.g., <i>txt</i>, <i>vtt</i>, <i>srt</i>, <i>tsv</i>, <i>json</i>, <i>all</i>).<br><br><b><b>--language</b> <i>&lt;code&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the audio language (e.g., <i>en</i>, <i>es</i>, <i>fr</i>). If omitted, the model attempts to auto-detect.<br><br><b><b>--task</b> <i>&lt;type&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Determines the operation (<i>transcribe</i> for speech-to-text, <i>translate</i> for speech-to-English).<br><br><b><b>--device</b> <i>&lt;device&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the computational device (<i>cpu</i> or <i>cuda</i> for GPU).<br><br><b><b>--output_dir</b> <i>&lt;path&gt;</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Directory where output files will be saved.<br><br><b><b>--fp16</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables mixed-precision floating point (FP16) inference, faster on compatible GPUs.<br><br><b><b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays more detailed processing information during execution.<br><br>


title: DESCRIPTION
content:
The <b>whisper</b> command, typically installed as part of OpenAI's open-source project, provides a robust command-line interface for speech-to-text transcription and audio translation. Leveraging advanced deep learning models trained on vast datasets, Whisper excels at converting spoken language into text with high accuracy. It supports a wide array of languages, automatically detecting the language if not specified. Users can choose from various model sizes, balancing speed and accuracy according to their needs. The command also offers flexibility in output formats, including plain text, SRT for subtitles, or JSON for structured data, making it versatile for diverse applications ranging from transcribing meetings to generating captions for videos. It represents a significant step in accessible, high-quality audio processing.


title: CAVEATS
content:
The <b>whisper</b> command typically relies on a Python environment with PyTorch. GPU acceleration (CUDA) is highly recommended for processing larger models or long audio files efficiently. Model files can be substantial in size (up to several GBs for <i>large</i> models), requiring sufficient disk space and initial download time. Performance heavily depends on system resources.


title: INSTALLATION
content:
The <b>whisper</b> command is typically installed via Python's package manager: <i>pip install -U openai-whisper</i>. For GPU support, additional PyTorch installation with CUDA drivers is required.


title: MODEL SELECTION
content:
Whisper models vary in size (<i>tiny</i>, <i>base</i>, <i>small</i>, <i>medium</i>, <i>large</i>). Smaller models are faster and use less memory but are less accurate. Larger models offer superior accuracy, especially for complex audio or diverse languages, at the cost of increased processing time and resource usage.


title: HISTORY
content:
Whisper was developed by OpenAI and first released in September 2022. OpenAI open-sourced the underlying models and code, leading to rapid community adoption and the development of various command-line interfaces and integrations. Its creation marked a significant advancement in general-purpose speech recognition and translation, making high-quality AI transcription more accessible.


title: PARAMETERS
content:
<b>-r, --recursive</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Recursively wipe directories and their contents. Required for directory wiping.<br><br><b>-f, --force</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Force wiping without confirmation prompts. Use with caution.<br><br><b>-q, --quiet</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Suppress most output, only showing errors.<br><br><b>-i, --info</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Show progress of wiping during operation.<br><br><b>-k, --keep-going</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Continue wiping other files even if an error occurs on one file.<br><br><b>-s <passes>, --passes <passes></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specify the number of wiping passes. Default is 4.<br><br><b>-S <pattern>, --standard <pattern></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Use a specific standard wiping pattern. Patterns include 'dod' (DoD 5220.22-M), 'gutmann', 'random', 'zero', etc.<br><br><b>-p, --paranoid</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Use the Gutmann method (35 passes) for maximum security. Implies `-s 35`.<br><br><b>-x, --exit-on-error</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Exit immediately if any error occurs during wiping.<br><br><b>-v, --verbose</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Increase verbosity, showing more detailed output.<br><br><b>-Z, --zero</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Wipe with a single pass of zeros. Faster but less secure.<br><br><b>-c, --clean-names</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Also attempts to clear the file name from the directory entries (inode zeroing for ext2/3/4). Not always effective on all filesystems.<br><br><b>-o, --only-name</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Only attempt to clear the file name, without wiping the file content.<br><br><b>-D, --delete-dir</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Also destroy the directory entries of wiped files after they are gone. Use with `-r`.<br><br><b>-h, --help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display help message and exit.<br><br><b>-V, --version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Display version information and exit.<br><br>


title: DESCRIPTION
content:
The <b>wipe</b> command is a utility designed for <I>securely erasing data</I> from files, directories, or entire storage devices. Unlike standard deletion methods (like `rm`), which only remove the pointer to the data, leaving the actual data on the disk, `wipe` overwrites the data multiple times with various patterns (e.g., random data, zeros, or specific algorithms like DoD 5220.22-M or Gutmann). This process makes the original data virtually impossible to recover, even with advanced data recovery techniques. It's crucial for protecting sensitive information before disposing of storage media or sharing computers. `wipe` supports recursive deletion for directories, can force operations without confirmation, and offers various levels of wiping intensity.


title: CAVEATS
content:
Using <b>wipe</b> on Solid State Drives (SSDs) can be problematic. SSDs use wear-leveling and block remapping, meaning data might be moved to different physical locations, and overwriting a 'logical' block might not overwrite the 'physical' block. Repeated wiping can also reduce the lifespan of an SSD.<br><br>Be extremely careful when wiping entire partitions or disks (e.g., `/dev/sda`). Ensure you have selected the correct device, as data loss is irreversible. It is recommended to use `wipe` as a non-root user when possible, and only as root when absolutely necessary for devices or system files.<br><br>The effectiveness of secure deletion methods depends on the underlying filesystem and hardware. Some sophisticated recovery methods might still retrieve fragments of data under specific circumstances.


title: WIPING METHODS
content:
<b>wipe</b> implements several data sanitization methods. The default method involves multiple passes of different data patterns (e.g., pseudo-random data, specific bit patterns) followed by a final pass of zeros. More secure methods like the Gutmann method (35 passes) or the DoD 5220.22-M standard (7 passes) are available via options, each providing increasing levels of data unrecoverability at the cost of longer execution times.


title: DEVICE WIPING
content:
Beyond individual files, <b>wipe</b> can be used to securely erase entire disk partitions or physical drives. When wiping a device (e.g., `/dev/sdX`), <b>wipe</b> writes directly to the raw device, ensuring all accessible sectors are overwritten. This is particularly useful for decommissioning old hard drives or USB sticks. Always ensure the device is unmounted before attempting to wipe it to prevent data corruption or errors.


title: HISTORY
content:
The `wipe` command has been around for many years, offering a robust solution for secure data deletion. Its development aimed to provide a more thorough alternative to the simple `rm` command, adhering to various government and industry standards for secure data sanitization (like DoD 5220.22-M). While other tools like `shred` exist, `wipe` often provides a broader range of options for secure wiping methods and handling different types of storage devices and filesystems, making it a valuable utility in data security contexts.


title: SYNOPSIS
content:
<b>wlsunset</b> [<b>-l</b> <i>latitude</i> <i>longitude</i> | <b>-s</b> <i>HH:MM</i> <i>HH:MM</i>] [<b>-t</b> <i>day_temp</i> <i>night_temp</i>] [<b>-S</b> <i>seconds</i>] [<b>-T</b> <i>seconds</i>] [<b>-g</b> <i>gamma_value</i>] [<b>-d</b> <i>seconds</i>] [<b>-v</b>] [<b>--help</b>] [<b>--version</b>]


title: PARAMETERS
content:
<b><b>-l</b>, <b>--location</b> <i>latitude</i> <i>longitude</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the geographical coordinates (decimal latitude and longitude) to use for calculating sunrise and sunset times. Example: <i>-l 34.05 -118.25</i>.<br><br><b><b>-s</b>, <b>--time-range</b> <i>HH:MM</i> <i>HH:MM</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Defines a fixed time range for the day-to-night transition, overriding location-based calculations. The first time is when night transition begins, the second when day transition begins. Example: <i>-s 20:00 07:00</i>.<br><br><b><b>-t</b>, <b>--temp</b> <i>day_temp</i> <i>night_temp</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the color temperature in Kelvin for daytime and nighttime. Common values are 6500K for day and 4500K or lower for night. Default is typically 6500K and 4500K.<br><br><b><b>-S</b>, <b>--sunrise-offset</b> <i>seconds</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Adjusts the effective sunrise/sunset time by a given number of seconds. Positive values delay, negative values hasten the calculated times.<br><br><b><b>-T</b>, <b>--transition</b> <i>seconds</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the duration in seconds for the smooth transition between day and night color temperatures. A longer duration results in a more gradual change.<br><br><b><b>-g</b>, <b>--gamma</b> <i>gamma_value</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Applies a gamma correction to the screen output. This is an advanced setting for fine-tuning display characteristics.<br><br><b><b>-d</b>, <b>--duration</b> <i>seconds</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs <i>wlsunset</i> for a specified duration in seconds and then exits. Useful for testing configurations without continuous operation.<br><br><b><b>-v</b>, <b>--verbose</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables verbose output, providing more detailed information about the command's operation and current state.<br><br><b><b>--help</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a help message with command usage and options, then exits.<br><br><b><b>--version</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the version information of <i>wlsunset</i> and exits.<br><br>


title: DESCRIPTION
content:
<i>wlsunset</i> is a utility designed for the Wayland display server that dynamically adjusts your screen's color temperature throughout the day. Its primary purpose is to reduce eye strain, especially during evening and night hours, by shifting the display's color output from cooler (bluish) tones to warmer (reddish) tones. This change is often referred to as mimicking natural light cycles, promoting better sleep patterns by reducing exposure to blue light.<br><br>Similar to how `redshift` or `f.lux` operate on X11, <i>wlsunset</i> calculates sunrise and sunset times based on your geographical location (or a specified time range) and smoothly transitions the screen's color temperature between a 'day' and 'night' setting. It leverages the <i>wlr-output-management</i> protocol, making it compatible with Wayland compositors that support this standard, such as Sway, Hyprland, and others. The transition is gradual, making the shift nearly imperceptible, ensuring a comfortable viewing experience at all times of the day and night.


title: CAVEATS
content:
<i>wlsunset</i> is specifically designed for the Wayland display server and will not function on X11-based systems. It relies on your Wayland compositor supporting the <i>wlr-output-management</i> protocol for screen color temperature adjustments. Compatibility may vary with less common compositors. For location-based adjustments, it either requires explicit latitude/longitude input or access to a location service (like GeoClue) if not specified.


title: INTEGRATION WITH WAYLAND COMPOSITORS
content:
<i>wlsunset</i> communicates with Wayland compositors (e.g., Sway, Hyprland, river) that implement the <i>wlr-output-management</i> protocol. This protocol allows it to request and apply color temperature changes across all active outputs managed by the compositor. Ensure your compositor supports this protocol for <i>wlsunset</i> to function correctly.


title: AUTOSTART CONFIGURATION
content:
To have <i>wlsunset</i> run automatically when your Wayland session starts, you typically add it to your compositor's configuration file (e.g., `exec wlsunset` in Sway's config) or configure it as a user service via <i>systemd --user</i>. This ensures continuous eye comfort adjustments without manual intervention.


title: LOCATION DETERMINATION
content:
If the <b>-l</b> (location) option is not provided, <i>wlsunset</i> may attempt to determine your geographical location automatically using services like GeoClue. If GeoClue is not available or configured, you must manually provide the latitude and longitude using the <b>-l</b> flag or specify a fixed time range with <b>-s</b>.


title: HISTORY
content:
Born out of the growing adoption of Wayland as a modern display server, <i>wlsunset</i> was developed to fill a critical gap left by X11-specific screen temperature adjustment tools like <i>Redshift</i>. As Wayland's security and architecture differ significantly from X11, a native solution was required that could interact directly with Wayland compositors via protocols such as <i>wlr-output-management</i>. Its development aimed to provide Wayland users with the same eye comfort benefits previously enjoyed only by X11 users.


title: SYNOPSIS
content:
wrangler <command> [options]<br><br><i>Examples:</i><br>wrangler init <<i>project-name</i>><br>wrangler dev<br>wrangler deploy<br>wrangler login


title: PARAMETERS
content:
<b>init <<i>name</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Creates a new Worker project with a specified name and basic boilerplate.<br><br><b>dev</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Starts a local development server for a Worker, including live reloading and environment simulation.<br><br><b>deploy / publish</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Deploys or publishes the Worker project to Cloudflare's global network, making it live.<br><br><b>login</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Authenticates <i><b>Wrangler</b></i> with your Cloudflare account, typically via a browser-based flow.<br><br><b>secret</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Manages secrets for your Worker, which are securely injected as environment variables at runtime.<br><br><b>kv</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Manages Cloudflare KV namespaces and data, allowing interaction with key-value stores.<br><br><b>--help, -h</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays help information for <i><b>Wrangler</b></i> or a specific subcommand.<br><br><b>--version, -v</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the current <i><b>Wrangler</b></i> CLI version.<br><br>


title: DESCRIPTION
content:
<i><b>Wrangler</b></i> is the official command-line interface (CLI) for Cloudflare Workers, enabling developers to build, test, and deploy serverless applications and APIs directly from their terminal. It provides comprehensive tools for local development, project scaffolding, environment management, and interaction with Cloudflare services like KV, D1, R2, and Pages.<br><br>This powerful tool streamlines the deployment pipeline, allowing users to write JavaScript, TypeScript, or WebAssembly code that runs on Cloudflare's global edge network. It simplifies authentication, secret management, and provides real-time logs and debugging capabilities, making it an essential utility for anyone developing on the Cloudflare Workers platform.


title: CAVEATS
content:
<i><b>Wrangler</b></i> is not a standard Linux command or a core utility included with most Linux distributions. It is a specific application developed by Cloudflare, primarily used for managing Cloudflare Workers. It typically requires Node.js and npm (or Yarn) to be installed on the system, as it is distributed as an npm package. Its functionality is entirely tied to the Cloudflare ecosystem and its serverless platform.


title: CONFIGURATION FILE
content:
<i><b>Wrangler</b></i> projects are configured using a <i>wrangler.toml</i> file, which specifies project settings, bindings to Cloudflare services, environment-specific configurations, and entry points for your Worker code.


title: ECOSYSTEM INTEGRATION
content:
<i><b>Wrangler</b></i> seamlessly integrates with Cloudflare's broader suite of products, including Cloudflare KV (key-value store), D1 (serverless database), R2 (object storage), and Pages (static site hosting and SSR), allowing developers to build full-stack applications at the edge.


title: HISTORY
content:
<i><b>Wrangler</b></i> was developed by Cloudflare to provide a robust command-line tool for their rapidly growing Cloudflare Workers serverless platform. Its initial versions focused on basic deployment, evolving significantly to include a local development server, support for various Cloudflare services (like KV, D1, R2, Pages), and advanced features for complex serverless application development, becoming the de facto tool for interacting with the Workers ecosystem. Its development closely mirrors the expansion and capabilities of the Cloudflare Workers platform itself.


title: SEE ALSO
content:
npm(1): Node Package Manager, used to install and manage Wrangler., node(1): Node.js runtime, which is required for Wrangler to execute., git(1): Often used for version control of Worker projects.


title: PARAMETERS
content:
<b><i>toolkitoptions</i></b><br>&nbsp;&nbsp;&nbsp;&nbsp;<B>Standard X Toolkit command-line options</B> are supported. These include options like <I>-display</I>, <I>-geometry</I>, <I>-font</I>, <I>-fg</I> (foreground), <I>-bg</I> (background), <I>-bw</I> (border width), <I>-bd</I> (border color), <I>-name</I>, <I>-title</I>, and <I>-xrm</I>.<br><br><b>-selection <I>name</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies which X selection to use (e.g., <B>PRIMARY</B> or <B>CLIPBOARD</B>). Defaults to <B>CLIPBOARD</B>.<br><br><b>-w <I>number_of_chars</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the width of the main window in characters.<br><br><b>-h <I>number_of_lines</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the height of the main window in lines.<br><br><b>-e <I>program</I></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Executes the specified <I>program</I> whenever the selection changes. The selected text is available on the standard input of the executed program.<br><br><b>-c</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Runs <B>xclipboard</B> in <I>compact mode</I>, suppressing scrolling and history, showing only the current selection.<br><br><b>-s</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies that selections should be saved persistently in the clipboard manager. This is the default behavior.<br><br><b>-nw</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prevents <B>xclipboard</B> from saving selections persistently.<br><br>


title: DESCRIPTION
content:
<i>xclipboard</i> is a venerable X Window System utility designed to manage and persist the X selection mechanism, primarily the <b>CLIPBOARD</b> selection. Unlike the <b>PRIMARY</b> selection which is transient and typically used for immediate copy-pasting via mouse selection, the <b>CLIPBOARD</b> selection is intended for more explicit copy/paste operations, often initiated by keyboard shortcuts (e.g., Ctrl+C/Ctrl+V).<br><br>When launched, <i>xclipboard</i> presents a window that displays the current content of the <b>CLIPBOARD</b> selection. It automatically updates this display when the selection changes, allowing users to visually inspect what has been copied. More importantly, <i>xclipboard</i> acts as a "selection owner," meaning it takes responsibility for holding the <b>CLIPBOARD</b> content, even if the original application that provided the content closes. This ensures that text or data remains available for pasting into other applications long after the source application has exited.<br><br>It also provides a history of previous <b>CLIPBOARD</b> contents, which can be navigated, allowing users to recall and paste older items. While it's a foundational tool, modern desktop environments often integrate more sophisticated clipboard managers, but <i>xclipboard</i> remains a robust, lightweight, and essential component for understanding and interacting with the core X clipboard functionality.


title: CAVEATS
content:
While functional, <B>xclipboard</B> is a basic utility and may lack advanced features found in modern desktop environment-integrated clipboard managers, such as image support, synchronized clipboards across devices, or extensive history management beyond simple text.<br><br>Its interaction is primarily limited to the X Window System's selection mechanism, meaning it won't directly integrate with non-X applications (e.g., those using Wayland's clipboard protocol or native macOS/Windows clipboards). Users may find <B>xclip</B> or <B>xsel</B> more convenient for scripting clipboard interactions from the command line without a graphical interface.


title: X SELECTIONS AND CLIPBOARD
content:
The X Window System defines multiple types of selections for inter-client communication, the most common being <B>PRIMARY</B> and <B>CLIPBOARD</B>. <B>PRIMARY</B> is typically used for highlight-and-paste (e.g., mouse middle-click paste), while <B>CLIPBOARD</B> is for explicit copy/paste operations (e.g., Ctrl+C/Ctrl+V). <B>xclipboard</B> primarily manages the <B>CLIPBOARD</B> selection, acting as a persistent owner. When an application copies data to the clipboard, <B>xclipboard</B> requests the selection ownership, stores the data, and then makes it available for other applications to paste, even after the original application has terminated.<br><br>This persistent ownership is crucial because, without a clipboard manager like <B>xclipboard</B>, the clipboard content would be lost if the application that "owned" the selection were to close. <B>xclipboard</B>'s window allows users to view the current clipboard content and navigate through a history of copied items, effectively providing a multi-level clipboard.


title: HISTORY
content:
<B>xclipboard</B> has been a fundamental part of the <B>X Window System</B> core distribution since its early days, serving as a reference implementation and practical tool for managing the X clipboard.<br><br>Its development parallels the evolution of Xlib and the X Toolkit Intrinsics (Xt), on which it is built. As one of the original X clients, it demonstrates the persistent nature of X selections and the concept of an "owner" for selection data, ensuring data availability even if the source application exits. Although more sophisticated clipboard managers have emerged with various desktop environments (like GNOME and KDE), <B>xclipboard</B> remains a lightweight and direct interface to the underlying X selection mechanism, often still found pre-installed on X-based systems.


title: PARAMETERS
content:
<b><b>-analog</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays an analog clock. This is the default behavior.<br><br><b><b>-digital</b> or <b>-d</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a digital clock.<br><br><b><b>-brief</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;For analog clocks, it suppresses the seconds hand. For digital clocks, it suppresses the date display.<br><br><b><b>-hands</b> <<i>color</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the color of the analog clock's hands.<br><br><b><b>-highlight</b> <<i>color</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the color of the tic marks for analog clocks, or the text for digital clocks.<br><br><b><b>-chime</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Causes the clock to chime once on the half hour and twice on the hour.<br><br><b><b>-fg</b> or <b>-hd</b> <<i>color</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the foreground color of the clock.<br><br><b><b>-bg</b> <<i>color</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the background color of the clock window.<br><br><b><b>-bd</b> <<i>color</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the border color of the clock window.<br><br><b><b>-bw</b> <<i>pixels</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the border width in pixels for the clock window.<br><br><b><b>-geometry</b> <<i>geometry_string</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the initial window position and size (e.g., <i>80x80+10+10</i>).<br><br><b><b>-display</b> <<i>display_name</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the X server to connect to.<br><br><b><b>-padding</b> <<i>pixels</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the padding (in pixels) between the window border and the clock image.<br><br><b><b>-update</b> <<i>seconds</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Sets the interval (in seconds) at which the clock updates its display. Default is 60 seconds.<br><br><b><b>-xrm</b> <<i>resource_string</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies a resource string to be merged with other resources. Useful for setting X resources directly on the command line.<br><br><b><b>-font</b> <<i>font_name</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the font to be used for the digital clock display.<br><br><b><b>-strftime</b> <<i>format_string</i>></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the format string for the digital clock, using conventions similar to <i>strftime(3)</i>.<br><br><b><b>-twelve</b> or <b>-12</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the digital clock in 12-hour format (e.g., 3:00 PM).<br><br><b><b>-twentyfour</b> or <b>-24</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays the digital clock in 24-hour format (e.g., 15:00).<br><br><b><b>-utc</b> or <b>-ut</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays Universal Time (UTC) instead of local time.<br><br><b><b>-localtime</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays local time (this is the default behavior).<br><br>


title: DESCRIPTION
content:
The <b>xclock</b> command is a traditional utility for the X Window System, designed to display the current time in a dedicated window. It offers both analog (default) and digital clock styles, providing a simple yet customizable visual timekeeping solution for X desktop environments. Users can configure various aspects of its appearance, including colors, fonts, border, size, and update interval. It's primarily used for convenient, always-visible time display directly on the X display, often launched at session startup.


title: CAVEATS
content:
<b>xclock</b> requires an active X Window System environment to run, making it unsuitable for purely command-line or headless server use. Its direct functionality is largely superseded by integrated clock features in modern desktop environments, which often offer more sophisticated features and better visual integration within the desktop panel or bar.


title: X RESOURCES
content:
Beyond command-line options, <b>xclock</b>'s appearance and behavior can be extensively customized using X resources. These resources can be set in files like <i>~/.Xdefaults</i> or <i>~/.Xresources</i>. For example, <code>XClock*background: #282a36</code> and <code>XClock*foreground: #f8f8f2</code> could be used to set colors. Resource names typically follow the pattern <code>XClock*<i>resourceName</i></code>, allowing for persistent customization across sessions.


title: DEFAULT BEHAVIOR
content:
By default, <b>xclock</b> displays an analog clock face, shows local time, and updates its display every 60 seconds. Its default size and position are typically determined by the window manager or the X server's configuration, placing it where space is available or at a predefined location.


title: HISTORY
content:
<b>xclock</b> is one of the oldest and most iconic applications of the X Window System, dating back to its initial releases by the MIT X Consortium in the mid-1980s. It was designed as a simple yet effective demonstration and utility for X's graphical capabilities. While its core functionality has remained consistent, it has seen minor enhancements over the decades to support new X features and customization options, continuing to be a part of the standard X application suite in many distributions.


title: PARAMETERS
content:
<b><b>-t</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Transfers the current X selection into cut buffer 0 (or the buffer specified by <b>-o</b>).<br><br><b><b>-s <i>N</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Transfers the content of cut buffer <i>N</i> into the current X selection (<i>PRIMARY</i>).<br><br><b><b>-p</b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Prints the content of the current X selection (or the specified cut buffer if <b>-s</b> is used) to standard output.<br><br><b><b>-o <i>N</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies which cut buffer (0-7) to operate on. The default is cut buffer 0.<br><br><b><b>-n <i>N</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the maximum number of characters to transfer or print. By default, all characters are transferred/printed.<br><br><b><b>-target <i>atom</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the target atom for the selection request, such as <i>STRING</i> or <i>UTF8_STRING</i>.<br><br><b><b>-display <i>display</i></b></b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the X display to connect to.<br><br>


title: DESCRIPTION
content:
<b>xcutsel</b> is a utility designed to manipulate the X Window System's selections and its older "cut buffers." It serves as a bridge, allowing users to transfer content between the active X selection (typically <i>PRIMARY</i> or <i>CLIPBOARD</i>) and a specified cut buffer, or vice versa. The command can also print the content of either the current selection or a cut buffer to standard output. While modern X applications primarily rely on selections, <b>xcutsel</b> provides a means to interact with the legacy cut buffer mechanism, which can be useful for compatibility with older X applications or in specialized scripting scenarios where direct cut buffer manipulation is required.


title: CAVEATS
content:
<b>xcutsel</b> primarily interacts with X cut buffers, which are largely considered a legacy mechanism in modern X environments. Contemporary applications and desktop environments predominantly use X selections (like <i>PRIMARY</i> and <i>CLIPBOARD</i>) for copy/paste operations. Consequently, <b>xcutsel</b> might not always integrate seamlessly or behave as expected with all modern software. For general clipboard management, commands like <b>xclip</b> or <b>xsel</b> are often more appropriate and widely used.


title: X SELECTIONS VS. CUT BUFFERS
content:
The X Window System features two primary mechanisms for data transfer between applications: <i>Selections</i> and <i>Cut Buffers</i>.<br><br><i>Selections</i> (e.g., PRIMARY, CLIPBOARD) are the modern, widely used method. They are managed by the application that 'owns' the selection, meaning the data is only available as long as the owning application holds it. When another application requests the selection, the owner dynamically provides the data.<br><br><i>Cut Buffers</i> are an older, more limited mechanism. There are typically 8 global cut buffers (numbered 0-7), which store actual data. When data is put into a cut buffer, it's immediately copied, and the buffer holds a fixed piece of data until overwritten. This makes them less flexible and efficient than selections, particularly for large data or dynamic content. <b>xcutsel</b> specifically targets these cut buffers.


title: HISTORY
content:
<b>xcutsel</b> is a long-standing utility that forms part of the core X Window System distribution, typically found within packages like <i>x11-utils</i> or <i>xorg-xev</i>. Its existence reflects the historical evolution of inter-application data transfer within X, bridging the gap between older cut buffer mechanisms and the more modern X selection model. It has been maintained for many years primarily for compatibility and specialized uses within the X.org project.


title: PARAMETERS
content:
<b>DIRECTORY_NAME</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Specifies the well-known user directory type to query (e.g., <b>DESKTOP</b>, <b>DOWNLOAD</b>, <b>DOCUMENTS</b>, <b>MUSIC</b>, <b>PICTURES</b>, <b>VIDEOS</b>, <b>TEMPLATES</b>, <b>PUBLICSHARE</b>).<br><br><b>-h, --help</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Displays a brief help message and exits.<br><br><b>--version</b><br>&nbsp;&nbsp;&nbsp;&nbsp;Shows the version information of the <i>xdg-user-dir</i> utility and exits.<br><br>


title: DESCRIPTION
content:
<i>xdg-user-dir</i> is a utility provided by the XDG (FreeDesktop.org) project to query the paths of standard user directories. These directories include common locations like Desktop, Documents, Downloads, Music, Pictures, and Videos. The command ensures applications can reliably locate these user-specific directories, promoting consistency and interoperability across different desktop environments and distributions. It achieves this by reading the configuration from the <i>~/.config/user-dirs.dirs</i> file, which maps logical directory names (e.g., "DESKTOP") to their actual file system paths (e.g., "/home/user/Desktop"). If the configuration file is missing or a specific directory is not defined, <i>xdg-user-dir</i> typically falls back to a sensible default path within the user's home directory. This standardization helps developers avoid hardcoding paths and allows users to customize their directory locations easily.


