From 2fcd7cf878ec3609a40b07a7605a6886210225a2 Mon Sep 17 00:00:00 2001 From: "Sean (ANGRYxScotsman)" <36518683+seanh1995@users.noreply.github.com> Date: Thu, 5 Mar 2026 22:13:39 +0000 Subject: [PATCH] New linutil website (#1215) * Add Hugo build artifacts to .gitignore Ignore docs/public/, docs/resources/, and docs/.hugo_build.lock so generated Hugo output is never accidentally committed. Co-Authored-By: Claude Sonnet 4.6 * Add Hugo site infrastructure for Linutil docs Adds the Hugo configuration, theme module (hextra), layout shortcodes, i18n strings, static assets (favicons, nav logo), and archetype template needed to build the documentation site. Co-Authored-By: Claude Sonnet 4.6 * Add docs site homepage Adds the root _index.md with badges, the quick-start curl command, and an important-note callout about frequent updates. Co-Authored-By: Claude Sonnet 4.6 * Add user guide content pages for Linutil Rewrites all user guide sections from Winutil (Windows) content to accurate Linutil (Linux) documentation: - _index.md: overview, feature summary, quick links - getting-started.md: how to run, install options, TUI navigation, keyboard shortcuts - store/_index.md: application installation guide with category tables - tweaks/_index.md: distro-specific system setup (Arch, Fedora, Debian, Ubuntu, Alpine) - features/_index.md: security, gaming, emulators, and utilities reference - updates/_index.md: how to keep Linutil up to date - automation/_index.md: TOML config file usage and use-case examples Co-Authored-By: Claude Sonnet 4.6 * Add FAQ, known issues, and contributing guide pages - faq.md: answers for general usage, running, scripts, contributing, and updates - KnownIssues.md: documents terminal size, rendering, distro support, Nvidia, and Cargo update issues - CONTRIBUTING.md: full contributing guide based on .github/CONTRIBUTING.md, formatted for the docs site Co-Authored-By: Claude Sonnet 4.6 * Add developer reference section and architecture docs - dev/_index.md: landing page for the developer reference section - dev/architecture.md: comprehensive architecture doc covering workspace layout, data model (Tab/ListNode/Command), tab_data.toml format, task list flags, preconditions system, script embedding via include_dir!, the script execution pipeline (PTY/vt100/tui-term), TUI layout and focus state machine, config file parsing, and key dependencies Co-Authored-By: Claude Sonnet 4.6 * docgen: write walkthrough to docs/content/userguide/walkthrough.md - Rename generated file from userguide.md to walkthrough.md to better reflect that it is an auto-generated script reference/walkthrough - Update USER_GUIDE path to docs/content/userguide/walkthrough.md so cargo xtask docgen writes to the correct Hugo content location - Update automation guide link to point to ../walkthrough/ Co-Authored-By: Claude Sonnet 4.6 * docs: remove unused Winutil screenshot assets All images in docs/assets/images/ were Winutil (Windows) screenshots copied over from the Winutil docs. None are referenced by any content file. Keeping only favicon.png and navlogo.png at the assets root, which are used by hugo.toml. Co-Authored-By: Claude Sonnet 4.6 * Update CNAME * updated hugo configs * docs: add preview.gif to homepage via Hugo mount Mount .github/preview.gif directly into Hugo's static pipeline using includeFiles so only the gif is exposed (no workflows or other .github files). This means any update to .github/preview.gif is automatically reflected on the site without any manual copying. Co-Authored-By: Claude Sonnet 4.6 * added workflow * Delete docs/assets/navlogo.png can change this to something else * Delete navlogo.png * Update docs.yaml * Update hugo.toml * Update _index.md * fix typo --------- Co-authored-by: Claude Sonnet 4.6 --- .github/workflows/docs.yaml | 87 +++++ .gitignore | 6 + docs/archetypes/default.md | 6 + docs/assets/favicon.png | Bin 0 -> 9793 bytes docs/content/CONTRIBUTING.md | 89 +++++ docs/content/KnownIssues.md | 74 +++++ docs/content/_index.md | 30 ++ docs/content/dev/_index.md | 13 + docs/content/dev/architecture.md | 312 ++++++++++++++++++ docs/content/dev/features/_index.md | 6 + docs/content/dev/tweaks/_index.md | 5 + docs/content/faq.md | 117 +++++++ docs/content/userguide/_index.md | 127 +++++++ docs/content/userguide/automation/_index.md | 96 ++++++ docs/content/userguide/features/_index.md | 98 ++++++ docs/content/userguide/getting-started.md | 161 +++++++++ docs/content/userguide/store/_index.md | 101 ++++++ docs/content/userguide/tweaks/_index.md | 90 +++++ docs/content/userguide/updates/_index.md | 74 +++++ .../userguide/walkthrough.md} | 0 docs/go.mod | 5 + docs/go.sum | 2 + docs/hugo.toml | 118 +++++++ docs/i18n/en.yaml | 24 ++ docs/layouts/shortcodes/autolinks.html | 17 + docs/layouts/shortcodes/image.html | 114 +++++++ docs/static/CNAME | 1 + docs/static/android-chrome-192x192.png | Bin 0 -> 28177 bytes docs/static/android-chrome-512x512.png | Bin 0 -> 116413 bytes docs/static/apple-touch-icon.png | Bin 0 -> 25162 bytes docs/static/favicon-16x16.png | Bin 0 -> 877 bytes docs/static/favicon-32x32.png | Bin 0 -> 2315 bytes docs/static/favicon.ico | Bin 0 -> 21897 bytes docs/static/site.webmanifest | 1 + xtask/src/docgen.rs | 2 +- 35 files changed, 1775 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/docs.yaml create mode 100644 docs/archetypes/default.md create mode 100644 docs/assets/favicon.png create mode 100644 docs/content/CONTRIBUTING.md create mode 100644 docs/content/KnownIssues.md create mode 100644 docs/content/_index.md create mode 100644 docs/content/dev/_index.md create mode 100644 docs/content/dev/architecture.md create mode 100644 docs/content/dev/features/_index.md create mode 100644 docs/content/dev/tweaks/_index.md create mode 100644 docs/content/faq.md create mode 100644 docs/content/userguide/_index.md create mode 100644 docs/content/userguide/automation/_index.md create mode 100644 docs/content/userguide/features/_index.md create mode 100644 docs/content/userguide/getting-started.md create mode 100644 docs/content/userguide/store/_index.md create mode 100644 docs/content/userguide/tweaks/_index.md create mode 100644 docs/content/userguide/updates/_index.md rename docs/{userguide.md => content/userguide/walkthrough.md} (100%) create mode 100644 docs/go.mod create mode 100644 docs/go.sum create mode 100644 docs/hugo.toml create mode 100644 docs/i18n/en.yaml create mode 100644 docs/layouts/shortcodes/autolinks.html create mode 100644 docs/layouts/shortcodes/image.html create mode 100644 docs/static/CNAME create mode 100644 docs/static/android-chrome-192x192.png create mode 100644 docs/static/android-chrome-512x512.png create mode 100644 docs/static/apple-touch-icon.png create mode 100644 docs/static/favicon-16x16.png create mode 100644 docs/static/favicon-32x32.png create mode 100644 docs/static/favicon.ico create mode 100644 docs/static/site.webmanifest diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml new file mode 100644 index 0000000..488a3d1 --- /dev/null +++ b/.github/workflows/docs.yaml @@ -0,0 +1,87 @@ +name: Deploy Hugo site to Pages + +on: + push: + branches: + - main + paths: + - "docs/**" + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +defaults: + run: + shell: bash + +jobs: + build: + if: github.repository == 'ChrisTitusTech/linutil' + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.147.7 + HUGO_ENVIRONMENT: production + TZ: America/Chicago + steps: + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + - name: Checkout + uses: actions/checkout@v6 + with: + submodules: recursive + fetch-depth: 0 + persist-credentials: false + - name: Setup Pages + id: pages + uses: actions/configure-pages@v5 + + - name: Install Node.js dependencies + run: "cd docs && [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" + - name: Cache Restore + id: cache-restore + uses: actions/cache/restore@v5 + with: + path: | + ${{ runner.temp }}/hugo_cache + key: hugo-${{ github.run_id }} + restore-keys: hugo- + - name: Build with Hugo + run: | + hugo \ + --gc \ + --minify \ + --cleanDestinationDir \ + --source docs \ + --cacheDir "${{ runner.temp }}/hugo_cache" + - name: Cache Save + id: cache-save + uses: actions/cache/save@v5 + with: + path: | + ${{ runner.temp }}/hugo_cache + key: ${{ steps.cache-restore.outputs.cache-primary-key }} + - name: Upload artifact + uses: actions/upload-pages-artifact@v4 + with: + path: ./docs/public + + deploy: + if: github.repository == 'ChrisTitusTech/linutil' + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 124691c..e1c6911 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,9 @@ rust/target rust/build /build/linutil + +# Hugo Files +docs/public/ +docs/.hugo_build.lock +docs/resources/ + diff --git a/docs/archetypes/default.md b/docs/archetypes/default.md new file mode 100644 index 0000000..3e72f68 --- /dev/null +++ b/docs/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: '{{ replace .File.ContentBaseName "-" " " | title }}' +description: "" +date: '{{ .Date }}' +draft: true +--- diff --git a/docs/assets/favicon.png b/docs/assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..a4f4bc5d1951b26eab658a917c9ae9d4eaded9e9 GIT binary patch literal 9793 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 + Version + GitHub Downloads + Discord Community Server + + +
+ Linutil preview +
+ +Welcome to the official documentation for Linutil, your go-to utility for optimizing and managing your Linux environment. Whether you’re an IT professional, power user, or regular user, Linutil provides a comprehensive set of tools to enhance your Linux experience. + +## Running the latest release of Linutil + +* You will first need to start a terminal. +* Now you can run the following command: + +```bash +curl -fsSL https://christitus.com/linux | sh +``` + + +> [!IMPORTANT] +> Linutil is updated frequently as of the time of writing. Consequently, features and functionalities may evolve, and the documentation may not always reflect the most current images or information. diff --git a/docs/content/dev/_index.md b/docs/content/dev/_index.md new file mode 100644 index 0000000..151a179 --- /dev/null +++ b/docs/content/dev/_index.md @@ -0,0 +1,13 @@ +--- +title: Developer Reference +weight: 3 +toc: false +--- + +> [!NOTE] +> This section contains technical documentation for developers. For end-user documentation, see the [User Guide](../userguide/). + +## Architecture + +- [Architecture & Design](architecture/) - Code structure, data flow, and how Linutil works internally + diff --git a/docs/content/dev/architecture.md b/docs/content/dev/architecture.md new file mode 100644 index 0000000..fb44691 --- /dev/null +++ b/docs/content/dev/architecture.md @@ -0,0 +1,312 @@ +--- +title: Architecture & Design +weight: 1 +toc: true +--- + +This document describes how Linutil is structured internally — the crate layout, data model, TUI design, script execution pipeline, and the build tooling. + +## Workspace Layout + +Linutil is a Cargo workspace with three crates: + +``` +linutil/ +├── core/ # linutil_core — backend library +├── tui/ # linutil_tui — binary (the TUI you run) +└── xtask/ # build tooling (cargo xtask docgen) +``` + +### `core/` — `linutil_core` + +The library crate. Responsible for: + +- Defining the data model (`Tab`, `ListNode`, `Command`) +- Parsing all `tab_data.toml` files and building the menu tree +- **Embedding all scripts into the binary at compile time** using `include_dir!` +- Extracting embedded scripts to a temp directory at runtime +- Evaluating preconditions to filter out scripts unsupported on the current system +- Parsing the user's TOML config file + +### `tui/` — `linutil_tui` + +The binary crate. Responsible for: + +- Setting up the terminal (crossterm alternate screen, raw mode) +- Running the main event loop +- Rendering the entire TUI layout via `ratatui` +- Handling all keyboard and mouse input +- Launching scripts in a pseudo-terminal (PTY) via `portable-pty` +- Parsing CLI arguments via `clap` + +### `xtask/` + +Cargo's task runner extension. Run with: + +```bash +cargo xtask docgen +``` + +This reads all `tab_data.toml` files and generates `docs/content/userguide/userguide.md` — the auto-generated walkthrough page. **Always run this after adding or editing a script entry.** + +--- + +## Data Model + +The menu is a tree of `ListNode` items, grouped into named `Tab`s. + +### `Tab` + +```rust +pub struct Tab { + pub name: String, + pub tree: Tree>, +} +``` + +Each `Tab` maps to one top-level category. The five built-in tabs are defined in `core/tabs/tabs.toml`: + +```toml +directories = [ + "applications-setup", + "gaming", + "security", + "system-setup", + "utils" +] +``` + +### `ListNode` + +```rust +pub struct ListNode { + pub name: String, + pub description: String, + pub command: Command, + pub task_list: String, + pub multi_select: bool, +} +``` + +Every item in the TUI is a `ListNode`. A node is either a **directory** (has children, `command = Command::None`) or a **leaf command** (no children, has a runnable `command`). + +### `Command` + +```rust +pub enum Command { + Raw(String), // inline shell command + LocalFile { // shell script file + executable: String, + args: Vec, + file: PathBuf, + }, + None, // directory node +} +``` + +- `Raw` — a short command string run directly by the shell +- `LocalFile` — a script file whose interpreter is read from the shebang line (e.g. `#!/bin/bash`) +- `None` — marks a category/folder node + +--- + +## Tab Data Format + +Each tab is defined by a `tab_data.toml` file inside `core/tabs//`. Example: + +```toml +name = "Applications Setup" + +[[data]] +name = "Communication Apps" + +[[data.entries]] +name = "Discord" +description = "Discord is a versatile communication platform..." +script = "communication-apps/discord-setup.sh" +task_list = "I" + +[[data.entries]] +name = "Some Inline Command" +description = "Runs a quick command" +command = "echo hello" +task_list = "MP" +``` + +### Entry Fields + +| Field | Required | Description | +|-------|----------|-------------| +| `name` | Yes | Display name shown in the TUI | +| `description` | No | Shown in the description floating window (`d` key) | +| `script` | One of | Path to a shell script (relative to the tab directory) | +| `command` | One of | Inline shell command string | +| `entries` | One of | Nested sub-entries (makes this node a directory) | +| `task_list` | No | One or more flag codes shown next to the item name | +| `multi_select` | No | Whether this command can be queued in multi-select mode (default: `true`) | +| `preconditions` | No | Conditions that must pass for the entry to be shown | + +### Task List Flags + +Flags shown to the right of each command name, defined in `state.rs`: + +| Flag | Meaning | +|------|---------| +| `D` | Disk modifications (privileged) | +| `FI` | Flatpak installation | +| `FM` | File modification | +| `I` | Installation (privileged) | +| `K` | Kernel modifications (privileged) | +| `MP` | Package manager actions | +| `SI` | Full system installation | +| `SS` | Systemd actions (privileged) | +| `RP` | Package removal | + +--- + +## Preconditions + +Preconditions let a script declare when it should be visible. If any precondition fails, the entry is hidden from the TUI. + +```toml +[[data.entries]] +name = "Paru AUR Helper" +script = "paru-setup.sh" + +[[data.entries.preconditions]] +matches = true +data = { containing_file = "/etc/os-release" } +values = ["Arch Linux", "Manjaro"] +``` + +### Precondition Types + +| Type | Checks | +|------|--------| +| `environment` | Whether an environment variable equals one of the given values | +| `containing_file` | Whether a file's contents contain all of the given strings | +| `command_exists` | Whether a command is present on `$PATH` | +| `file_exists` | Whether a file path exists on disk | + +The `matches` field inverts the check when `false` (i.e. "must NOT match"). + +--- + +## Script Embedding + +All files under `core/tabs/` are embedded into the compiled binary at build time using the `include_dir!` macro: + +```rust +const TAB_DATA: Dir = include_dir!("$CARGO_MANIFEST_DIR/tabs"); +``` + +At runtime, `get_tabs()` extracts the embedded directory to a system temp directory (`/tmp/linutil_scripts_XXXX`), and all `LocalFile` commands reference scripts inside that temp dir. The temp directory is cleaned up automatically when `TabList` is dropped. + +This means **a single binary contains everything** — no external script files needed after build. + +--- + +## Script Execution Pipeline + +When a user selects a command and confirms it: + +1. `AppState::handle_confirm_command()` creates a `RunningCommand` from the list of selected `Command` values +2. `RunningCommand::new()` allocates a PTY via `portable-pty` (`NativePtySystem`) +3. The command is spawned inside the PTY as a child process +4. A **reader thread** reads output from the PTY master and writes it into a shared `Arc>>` buffer +5. An **atomic flag** (`TERMINAL_UPDATED`) is set when new output arrives, triggering a TUI redraw +6. The PTY output is decoded by a `vt100` parser and rendered as a `PseudoTerminal` widget (from `tui-term`) inside a floating window +7. The user can scroll up/down to review output, or press `Ctrl-C` to kill the process +8. When the process exits, the floating window title changes to `SUCCESS` (green) or `FAILED` (red) + +Using a real PTY (instead of piped stdio) means scripts that use terminal colors, interactive prompts, or check `isatty()` work correctly. + +--- + +## TUI Layout + +The TUI is rendered by `AppState::draw()` and divided into these regions: + +``` +┌──────────────┬────────────────────────────────┐ +│ Logo / │ [ Search bar ] │ +│ Version ├────────────────────────────────┤ +│ │ │ +│ Tab List │ Item List │ +│ │ │ +│ System Info │ │ +├──────────────┴────────────────────────────────┤ +│ Keyboard hint bar │ +└───────────────────────────────────────────────┘ +``` + +- **Left column**: Logo (or version label), tab list, system info panel +- **Right column**: Search bar (top) + scrollable item list +- **Bottom bar**: Context-sensitive keyboard shortcut hints +- **Floating windows**: Overlaid on the item list for running commands, previews, descriptions, and confirmation prompts + +### Focus State Machine + +`AppState` tracks a `Focus` enum: + +| State | Description | +|-------|-------------| +| `TabList` | User is navigating the left tab panel | +| `List` | User is navigating the item list | +| `Search` | The search bar is active | +| `FloatingWindow` | A modal is open (preview, description, running command, guide) | +| `ConfirmationPrompt` | User is being asked to confirm before running a command | + +Input is dispatched to the currently focused component. + +--- + +## Config File + +Linutil reads an optional TOML config file at startup (`--config path`). The `linutil_core::Config` struct deserializes it: + +```rust +pub struct Config { + auto_execute: Option>, + skip_confirmation: Option, + size_bypass: Option, +} +``` + +After parsing, `auto_execute` command names are looked up by name in the loaded `TabList` (using `Tab::find_command_by_name`), and the resulting `Vec>` is placed directly into `selected_commands` to be run immediately on startup. + +--- + +## Adding a New Script + +1. Create a shell script in `core/tabs///your-script.sh` +2. Add an entry to the corresponding `tab_data.toml`: + +```toml +[[data.entries]] +name = "Your Script" +description = "What it does." +script = "/your-script.sh" +task_list = "I" +``` + +3. Add preconditions if the script is distro-specific +4. Run `cargo xtask docgen` to update the documentation +5. Run `cargo run` to test it locally + +--- + +## Key Dependencies + +| Crate | Purpose | +|-------|---------| +| `ratatui` | TUI rendering framework | +| `crossterm` | Cross-platform terminal control (raw mode, events) | +| `portable-pty` | Pseudo-terminal allocation for running commands | +| `tui-term` | PTY output rendering widget for ratatui | +| `vt100-ctt` | VT100 terminal emulator (parses ANSI escape codes) | +| `ego-tree` | Generic tree structure used for the menu | +| `include_dir` | Embed entire directory trees into the binary at compile time | +| `serde` + `toml` | Deserialize `tab_data.toml` and config files | +| `clap` | CLI argument parsing | +| `tree-sitter-bash` | Bash syntax highlighting in script previews | diff --git a/docs/content/dev/features/_index.md b/docs/content/dev/features/_index.md new file mode 100644 index 0000000..e5be5de --- /dev/null +++ b/docs/content/dev/features/_index.md @@ -0,0 +1,6 @@ +--- +title: "Features" +weight: 1 +toc: false +--- + diff --git a/docs/content/dev/tweaks/_index.md b/docs/content/dev/tweaks/_index.md new file mode 100644 index 0000000..1d72ca8 --- /dev/null +++ b/docs/content/dev/tweaks/_index.md @@ -0,0 +1,5 @@ +--- +title: "Tweaks" +weight: 2 +toc: false +--- diff --git a/docs/content/faq.md b/docs/content/faq.md new file mode 100644 index 0000000..fa90e11 --- /dev/null +++ b/docs/content/faq.md @@ -0,0 +1,117 @@ +--- +title: Frequently Asked Questions +toc: true +--- + +## General + +### What is Linutil? + +Linutil is Chris Titus Tech's Linux Utility — a distro-agnostic TUI toolbox built in Rust for installing apps, configuring your system, and running common Linux setup tasks. + +### Is Linutil safe to use? + +Yes. All scripts are open source and available on [GitHub](https://github.com/ChrisTitusTech/linutil). You can inspect any script before running it. However, always review what a script does before executing it, as some scripts make significant system changes. + +### What Linux distributions does Linutil support? + +Linutil is distro-agnostic — it runs on any modern Linux distribution. Some scripts are distro-specific (Arch, Fedora, Debian, Ubuntu, Alpine), while others work across all distros. + +### Does Linutil require root/sudo? + +Linutil itself does not require root to launch. Individual scripts that make system-level changes will prompt for `sudo` when needed. + +--- + +## Running Linutil + +### How do I run Linutil? + +```bash +curl -fsSL https://christitus.com/linux | sh +``` + +### What's the difference between the stable and dev branch? + +- **Stable** (`https://christitus.com/linux`) — Tested, recommended for daily use +- **Dev** (`https://christitus.com/linuxdev`) — Latest commits, may be unstable + +### Can I install Linutil permanently? + +Yes. It's available via: +- **AUR** (Arch): `paru -S linutil` or `paru -S linutil-bin` +- **openSUSE**: `sudo zypper install linutil` +- **Cargo**: `cargo install linutil_tui` + +### The TUI won't open — it says my terminal is too small + +Resize your terminal window to be larger, or bypass the size check: + +```bash +curl -fsSL https://christitus.com/linux | sh -s -- --size-bypass +``` + +--- + +## Scripts & Features + +### How do I find a specific script in the TUI? + +Press `/` while in the TUI to open the search filter and type part of the script name. + +### Can I run scripts without the interactive TUI? + +Yes, using a TOML config file with `auto_execute`. See the [Automation guide](userguide/automation/) for details. + +### A script failed — what should I do? + +1. Check the error output shown in the terminal +2. Make sure your system is fully updated before running scripts +3. Search [GitHub Issues](https://github.com/ChrisTitusTech/linutil/issues) for the same error +4. Open a new issue if it hasn't been reported + +### Can I undo changes made by a script? + +This depends on the script. Some changes (like installing packages) can be reversed manually. For major system changes, it's good practice to have backups or snapshots beforehand (e.g., using Btrfs + Snapper on Fedora). + +--- + +## Contributing + +### How can I contribute? + +See the [Contributing Guide](contributing/) for full details. In short: + +1. Fork and clone the repo +2. Make your changes (scripts go in the appropriate `tabs/` subdirectory) +3. Test with `cargo run` +4. Submit a pull request + +### How do I add a new script? + +Fill out all fields in `tab_data.toml` for your script, then run `cargo xtask docgen` to regenerate the documentation. See the [Contributing Guide](contributing/) for more. + +### Where do I report bugs? + +Open an issue on [GitHub](https://github.com/ChrisTitusTech/linutil/issues). Include your distro, terminal, and any relevant error output. + +--- + +## Updates + +### How do I update Linutil? + +- **Curl method**: Just re-run `curl -fsSL https://christitus.com/linux | sh` — it always fetches the latest +- **Cargo**: Use the built-in **Linutil Updater** script, or run `cargo install --force linutil_tui` +- **AUR**: `paru -Syu linutil` +- **openSUSE**: `sudo zypper update linutil` + +### How do I check what version I'm running? + +```bash +linutil --version +``` + +### Where can I see release notes? + +On the [GitHub Releases page](https://github.com/ChrisTitusTech/linutil/releases). diff --git a/docs/content/userguide/_index.md b/docs/content/userguide/_index.md new file mode 100644 index 0000000..cafe537 --- /dev/null +++ b/docs/content/userguide/_index.md @@ -0,0 +1,127 @@ +--- +title: User Guide +weight: 2 +--- + +Welcome to the official User Guide for **Linutil**, Chris Titus Tech's Linux Utility! + +## What is Linutil? + +Linutil is a distro-agnostic toolbox designed to simplify everyday Linux tasks. Built in Rust for performance and reliability, it provides an interactive terminal UI (TUI) that helps you: + +- **Install Applications**: Quickly set up popular software for your Linux system +- **System Setup**: Configure your distro with optimized settings and tools +- **Security**: Apply firewall baselines and harden your system +- **Utilities**: Manage monitors, printers, Bluetooth, WiFi, and more +- **Gaming**: Set up gaming dependencies and emulators + +## Who Should Use Linutil? + +Linutil is designed for: + +- **Linux Beginners**: Wanting an easy way to set up a fresh install +- **Power Users**: Needing quick access to common configuration tasks +- **Developers**: Setting up clean development environments fast +- **Gamers**: Installing gaming dependencies and optimizing Linux for gaming +- **Privacy-Conscious Users**: Applying firewall rules and security hardening + +## Getting Started + +New to Linutil? Start here: + +1. **[Getting Started Guide](getting-started/)** - How to run Linutil and navigate the TUI +2. **[Application Setup](store/)** - Installing software via the TUI +3. **[System Setup](tweaks/)** - Distro-specific setup and configuration +4. **[Features & Utilities](features/)** - Security, gaming, and utility tools +5. **[Automation](automation/)** - Run Linutil unattended with a config file + +## Running Linutil + +### Stable Branch (Recommended) + +```bash +curl -fsSL https://christitus.com/linux | sh +``` + +### Dev Branch + +```bash +curl -fsSL https://christitus.com/linuxdev | sh +``` + +## Main Categories + +### Applications Setup + +Browse and install hundreds of popular Linux applications from within the TUI. Categories include browsers, developer tools, communication apps, design tools, and more. + +**[Read the Application Setup Guide →](store/)** + +### System Setup + +Distro-specific scripts for Arch, Fedora, Debian, Ubuntu, and more. Includes AUR helpers, desktop environment installers, driver setup, and system configuration. + +**[Read the System Setup Guide →](tweaks/)** + +### Security + +Apply firewall baselines using UFW or FirewallD, following CTT's recommended security rules. + +**[Read the Features Guide →](features/)** + +### Utilities + +Tools for monitor management, printer setup, Bluetooth, WiFi, service management, and more. + +**[Read the Features Guide →](features/)** + +### Gaming + +Install gaming dependencies, emulators, and game-specific optimizations. + +**[Read the Features Guide →](features/)** + +### Automation + +Run Linutil automatically with a TOML config file for scripted or batch setups. + +**[Read the Automation Guide →](automation/)** + +## Quick Links + +| I want to... | Go to... | +|--------------|----------| +| Run Linutil for the first time | [Getting Started](getting-started/) | +| Install applications | [Application Setup](store/) | +| Set up Arch Linux | [System Setup](tweaks/) | +| Harden my firewall | [Features & Utilities](features/) | +| Automate Linutil for multiple machines | [Automation](automation/) | + +## Safety and Best Practices + +Before using Linutil: + +- Read what each script does before running it +- Test on non-production systems when trying new configurations +- Keep backups of important configuration files + +## Getting Help + +Need assistance? + +- **Documentation**: You're reading it! Use the navigation menu +- **FAQ**: Check [Frequently Asked Questions](../faq/) +- **Known Issues**: Review [Known Issues](../knownissues/) +- **Discord**: Join the [community Discord](https://discord.gg/RUbZUZyByQ) +- **GitHub**: Report bugs on [GitHub Issues](https://github.com/ChrisTitusTech/linutil/issues) + +## Contributing + +Want to help improve Linutil? + +- **Report Bugs**: Submit issues on GitHub +- **Suggest Features**: Open feature requests +- **Contribute Scripts**: Add new bash scripts +- **Improve Docs**: Help expand this documentation + +**[Read Contributing Guide →](../contributing/)** diff --git a/docs/content/userguide/automation/_index.md b/docs/content/userguide/automation/_index.md new file mode 100644 index 0000000..79d3d83 --- /dev/null +++ b/docs/content/userguide/automation/_index.md @@ -0,0 +1,96 @@ +--- +title: Automation +weight: 6 +--- + +Linutil supports automation via a TOML config file. This lets you run predefined scripts automatically — useful for setting up multiple machines, provisioning servers, or scripting a consistent Linux environment. + +## Config File + +Create a TOML file with your desired settings: + +```toml +# example_config.toml + +auto_execute = [ + "Fastfetch", + "Alacritty", + "Kitty" +] + +skip_confirmation = true +size_bypass = true +``` + +Then run Linutil with your config: + +```bash +linutil --config /path/to/example_config.toml +``` + +Or via the one-liner: + +```bash +curl -fsSL https://christitus.com/linux | sh -s -- --config /path/to/example_config.toml +``` + +## Config Options + +| Option | Type | Description | +|--------|------|-------------| +| `auto_execute` | list of strings | Script names to run automatically on launch | +| `skip_confirmation` | boolean | Skip confirmation prompts before running scripts | +| `size_bypass` | boolean | Bypass terminal size requirements | + +## CLI Flags + +The same options are available as command-line flags: + +```bash +linutil --skip-confirmation --size-bypass +``` + +| Flag | Description | +|------|-------------| +| `--config` / `-c` | Path to TOML config file | +| `--skip-confirmation` | Skip all confirmation prompts | +| `--size-bypass` | Bypass minimum terminal size check | + +## Use Cases + +### Provision a New Machine + +Create a config that installs your standard set of tools: + +```toml +auto_execute = [ + "Bash Prompt", + "Fastfetch", + "VS Code", + "Docker", + "ZSH Prompt" +] + +skip_confirmation = true +``` + +Run it on any new Linux install to get your environment set up in one shot. + +### Server Setup + +```toml +auto_execute = [ + "Full System Update", + "UFW Firewall Baselines (CTT)", + "Docker" +] + +skip_confirmation = true +``` + +### Finding Script Names + +Script names in `auto_execute` must match exactly as they appear in the Linutil TUI. Browse the TUI to find the exact name, or check the auto-generated [Walkthrough](../walkthrough/) page for a complete list. + +> [!TIP] +> Use `--skip-confirmation` together with `auto_execute` for fully unattended runs. Without it, Linutil will still pause and ask before executing each script. diff --git a/docs/content/userguide/features/_index.md b/docs/content/userguide/features/_index.md new file mode 100644 index 0000000..4aac407 --- /dev/null +++ b/docs/content/userguide/features/_index.md @@ -0,0 +1,98 @@ +--- +title: Features & Utilities +weight: 4 +--- + +Beyond application installation and system setup, Linutil includes categories for security hardening, gaming, and a wide range of system utilities. + +## Security + +Apply firewall baselines to protect your Linux system. Based on CTT's recommended security rules — for more detail see [christitus.com/linux-security-mistakes](https://christitus.com/linux-security-mistakes). + +### UFW Firewall Baselines + +UFW (Uncomplicated Firewall) is a user-friendly frontend for `iptables`. This script: + +- Installs UFW if not present +- Applies CTT's recommended baseline rules for IPv4 and IPv6 +- Enables the firewall + +```bash +# Check UFW status after running the script +sudo ufw status verbose +``` + +### FirewallD Baselines + +An alternative to UFW, FirewallD is the default firewall manager on Fedora and RHEL-based systems. This script configures FirewallD with CTT's recommended rules. + +## Gaming + +### Gaming Dependencies + +Installs the libraries and tools needed to run games on Linux across different distributions (Steam, Wine, DXVK, Vulkan drivers, etc.). + +### Emulators + +| Emulator | Console | +|----------|---------| +| RetroArch | Multi-system frontend | +| Dolphin | GameCube / Wii | +| PCSX2 | PlayStation 2 | +| RPCS3 | PlayStation 3 | +| Ryujinx | Nintendo Switch | +| mGBA | Game Boy Advance | +| MelonDS | Nintendo DS / DSi | +| bsnes / snes9x | Super Nintendo | +| Mupen64Plus / Gopher64 | Nintendo 64 | +| Flycast | Sega Dreamcast | +| Kronos | Sega Saturn | +| XEMU | Original Xbox | +| Blastem | Sega Genesis | + +> [!NOTE] +> No game ROMs or BIOS files are included. You must supply your own legally obtained files. + +### Game-Specific Configs + +- **Diablo II Resurrected — Loot Filter**: Highlights high-value drops for Battle.net and single player +- **Fallout 76 — INI & Mods**: Performance and stability improvements +- **Arc Raiders — Match Optimizations**: Shorter transition videos and optimized config for VRR + +## Utilities + +### Monitor Control + +| Script | Description | +|--------|-------------| +| Auto Detect Displays | Detect and apply recommended monitor config | +| Set Resolution | Change the resolution of a connected monitor | +| Set Brightness | Adjust monitor brightness | +| Change Orientation | Rotate a monitor | +| Scale Monitors | Change display scaling | +| Set Primary Monitor | Designate the primary display | +| Extend Displays | Extend across multiple monitors | +| Duplicate Displays | Mirror displays | +| Disable / Enable Monitor | Toggle a monitor on or off | +| Manage Arrangement | Set the physical arrangement of monitors | +| Reset Scaling | Revert scaling to default | + +### Printers + +| Script | Description | +|--------|-------------| +| CUPS | Install the CUPS printing system | +| Epson Drivers | Install Epson printer drivers | +| HP Drivers | Install HP printer drivers | + +### System Utilities + +| Script | Description | +|--------|-------------| +| Bluetooth Manager | Manage Bluetooth devices | +| WiFi Manager | Manage wireless connections | +| Service Manager | Enable, disable, and manage systemd services | +| Numlock on Startup | Enable Num Lock at boot | +| Auto Mount Drive | Automate mounting a drive at startup | +| Ollama | Manage Ollama (local AI model runner) | +| US Locale Setup | Fix US UTF-8 locale and folder listings | diff --git a/docs/content/userguide/getting-started.md b/docs/content/userguide/getting-started.md new file mode 100644 index 0000000..be99073 --- /dev/null +++ b/docs/content/userguide/getting-started.md @@ -0,0 +1,161 @@ +--- +title: Getting Started with Linutil +weight: 1 +--- + +## Welcome to Linutil! + +Linutil is a distro-agnostic Linux toolbox built in Rust. It provides an interactive terminal UI (TUI) for installing applications, configuring your system, and running common Linux setup tasks — all from one place. + +## System Requirements + +Before running Linutil, ensure your system meets these requirements: + +- **Operating System**: Any modern Linux distribution (Arch, Fedora, Debian, Ubuntu, openSUSE, etc.) +- **Shell**: Bash or a compatible POSIX shell +- **Internet Connection**: Required for downloading applications and scripts +- **curl**: Pre-installed on most distributions + +## Running Linutil + +Linutil runs directly from a single curl command — no installation required. + +### Stable Branch (Recommended) + +```bash +curl -fsSL https://christitus.com/linux | sh +``` + +### Dev Branch (Latest Features) + +```bash +curl -fsSL https://christitus.com/linuxdev | sh +``` + +> [!NOTE] +> The dev branch may contain untested features. Use the stable branch for day-to-day use. + +## Installing Linutil Locally + +If you prefer a persistent local install, Linutil is available through several package managers. + +### Arch Linux (AUR) + +```bash +# Using paru +paru -S linutil + +# Using yay +yay -S linutil + +# Stable pre-compiled binary +paru -S linutil-bin +``` + +### openSUSE + +```bash +sudo zypper install linutil +``` + +### Cargo + +```bash +cargo install linutil_tui +``` + +> [!NOTE] +> Cargo installs require manual updates via `cargo install --force linutil_tui`, or use the built-in **Linutil Updater** script inside the tool. + +## CLI Arguments + +View all available options: + +```bash +linutil --help +``` + +### Common Options + +| Flag | Description | +|------|-------------| +| `--config` / `-c` | Path to a TOML config file | +| `--skip-confirmation` | Skip confirmation prompts | +| `--size-bypass` | Bypass terminal size requirements | + +## Navigating the TUI + +Once Linutil launches, you'll see a tree-style menu on the left and a description panel on the right. + +### Keyboard Shortcuts + +| Key | Action | +|-----|--------| +| `↑` / `↓` or `j` / `k` | Move up/down in the list | +| `Enter` or `→` | Select / expand item | +| `←` | Collapse / go back | +| `Space` | Multi-select an item | +| `/` | Search/filter items | +| `q` or `Escape` | Quit / go back | +| `t` | Toggle multi-select mode | + +### Menu Structure + +Linutil is organized into these main categories: + +- **Applications Setup** — Install popular Linux software +- **Gaming** — Gaming dependencies, emulators, game configs +- **Security** — Firewall setup and hardening +- **System Setup** — Distro-specific configuration (Arch, Fedora, Debian, Ubuntu, etc.) +- **Utilities** — Monitor control, printers, Bluetooth, WiFi, and more + +## Your First Steps + +Here are recommended actions for new users: + +### 1. Browse and Install Applications + +1. Navigate to **Applications Setup** +2. Browse categories (browsers, developer tools, communication apps, etc.) +3. Select an application and press `Enter` to run the install script + +### 2. Set Up Your Distro + +1. Navigate to **System Setup** +2. Find your distribution (Arch, Fedora, Debian, Ubuntu) +3. Run distro-specific scripts like AUR helpers, RPM Fusion, or package updates + +### 3. Configure Utilities + +1. Navigate to **Utilities** +2. Set up monitors, manage Bluetooth/WiFi, or configure services + +## Troubleshooting First Run + +### Script Won't Download + +If the curl command fails, check your internet connection or try: + +```bash +curl -fsSL https://raw.githubusercontent.com/ChrisTitusTech/linutil/main/linutil.sh | sh +``` + +### Permission Errors + +Most scripts require sudo access. Linutil will prompt for your password when needed. + +### Terminal Size Warning + +If you get a terminal size warning, resize your terminal to be larger, or use the `--size-bypass` flag: + +```bash +curl -fsSL https://christitus.com/linux | sh -s -- --size-bypass +``` + +## Next Steps + +- [Application Setup](../store/) — Learn about installing software +- [System Setup](../tweaks/) — Distro-specific configuration +- [Features & Utilities](../features/) — Security, gaming, and utilities +- [Automation](../automation/) — Run Linutil with a config file +- [FAQ](../../faq/) — Common questions and answers diff --git a/docs/content/userguide/store/_index.md b/docs/content/userguide/store/_index.md new file mode 100644 index 0000000..63aae95 --- /dev/null +++ b/docs/content/userguide/store/_index.md @@ -0,0 +1,101 @@ +--- +title: Application Setup +weight: 2 +--- + +The **Applications Setup** section of Linutil lets you install popular Linux software through pre-written install scripts. Each script handles package manager differences across distros automatically. + +## Finding Applications + +Use the search feature to quickly find what you need: + +- Press `/` while in the TUI to open the search/filter +- Type part of the application name +- The list filters in real time + +## Installing an Application + +1. Navigate to **Applications Setup** in the main menu +2. Browse categories or search for the app you want +3. Select the application and press `Enter` +4. Linutil will run the install script — you may be prompted for your `sudo` password + +## Application Categories + +### Communication Apps + +| App | Description | +|-----|-------------| +| Discord | Voice, video, and text chat for communities | +| Signal | End-to-end encrypted messaging | +| Slack | Team collaboration platform | +| Telegram | Fast, cloud-based messaging | +| Thunderbird | Open-source email client | +| Zoom | Video conferencing | + +### Developer Tools + +| App | Description | +|-----|-------------| +| VS Code | Lightweight code editor by Microsoft | +| VS Codium | VS Code without Microsoft telemetry | +| Cursor | AI-powered code editor | +| Neovim | CTT's configured Neovim setup | +| Zed | High-performance code editor written in Rust | +| GitHub Desktop | GUI for Git and GitHub | +| Docker | Container platform | +| Podman | Daemonless container engine | + +### Web Browsers + +| App | Description | +|-----|-------------| +| Firefox | Open-source browser by Mozilla | +| Brave | Privacy-focused Chromium browser | +| LibreWolf | Privacy-hardened Firefox fork | +| Chromium | Open-source base for Chrome | +| Zen Browser | Privacy-focused browser | +| Tor Browser | Anonymity browser via Tor network | + +### Design Tools + +| App | Description | +|-----|-------------| +| GIMP | Full-featured raster image editor | +| Inkscape | Vector graphics editor | +| Krita | Digital painting and 2D animation | +| Blender | 3D modeling and animation | +| OBS Studio | Screen recording and live streaming | +| Kdenlive | Non-linear video editor | + +### Terminal & Shell + +| App | Description | +|-----|-------------| +| Alacritty | GPU-accelerated terminal emulator | +| Kitty | Feature-rich GPU terminal emulator | +| Ghostty | Highly customizable terminal | +| Bash Prompt | CTT's `.bashrc` configuration | +| ZSH Prompt | ZSH shell with basic configuration | + +### Other Notable Apps + +| App | Description | +|-----|-------------| +| Fastfetch | System info display tool | +| Flatpak / Flathub | Universal Linux app sandbox | +| Bottles | Run Windows apps on Linux | +| Waydroid | Run Android apps on Linux | +| DWM-Titus | CTT's configured DWM window manager | +| Rofi | App launcher and window switcher | +| Auto CPU Frequency | Automatic CPU power optimizer | + +## Updating Linutil Itself + +Two scripts in Applications Setup manage Linutil's own lifecycle: + +- **Linutil Installer** — Installs a distro-specific Linutil package locally +- **Linutil Updater** — Updates your local Linutil crate installation + +> [!TIP] +> If you installed Linutil via `cargo install linutil_tui`, use the **Linutil Updater** script to keep it current instead of running `cargo install --force` manually. diff --git a/docs/content/userguide/tweaks/_index.md b/docs/content/userguide/tweaks/_index.md new file mode 100644 index 0000000..5118f4c --- /dev/null +++ b/docs/content/userguide/tweaks/_index.md @@ -0,0 +1,90 @@ +--- +title: System Setup +weight: 3 +--- + +The **System Setup** section contains distro-specific and general configuration scripts to get your Linux system set up quickly. These scripts handle driver installation, package manager configuration, desktop environments, and more. + +## Distro-Specific Setup + +### Arch Linux + +| Script | Description | +|--------|-------------| +| Arch Server Setup | Minimal Arch server install in under 5 minutes | +| Hyprland (JaKooLit) | Install JaKooLit's Hyprland configuration | +| Paru AUR Helper | Install the `paru` AUR helper | +| Yay AUR Helper | Install the `yay` AUR helper | +| Install Chaotic-AUR | Add the Chaotic-AUR repo for prebuilt AUR packages | +| Nvidia Drivers + HW Accel | Install and configure Nvidia drivers with hardware acceleration | +| Omarchy Rice by DHH | Simplified Hyprland config by DHH | +| Linux Neptune (SteamDeck) | Valve's fork of the Linux kernel for Steam Deck | +| Virtualization | Install QEMU, Libvirt, and Virt-Manager | + +### Fedora + +| Script | Description | +|--------|-------------| +| Configure DNF | Optimize DNF for parallel downloads | +| RPM Fusion | Add RPM Fusion free and non-free repositories | +| Multimedia Codecs | Install multimedia codecs with RPM Fusion | +| Nvidia Proprietary Drivers | Install proprietary Nvidia drivers | +| Hyprland (JaKooLit) | Install JaKooLit's Hyprland configuration | +| Virtualization | Enable virtualization via DNF | +| Btrfs Assistant + Snapper | Btrfs snapshots with grub-btrfs integration | +| Upgrade Fedora Release | Upgrade system to the next Fedora release | + +### Debian + +| Script | Description | +|--------|-------------| +| Hyprland (JaKooLit) | Install JaKooLit's Hyprland configuration | + +### Ubuntu + +| Script | Description | +|--------|-------------| +| Hyprland (JaKooLit) | Install JaKooLit's Hyprland configuration | +| Full System Cleanup | Remove unused packages, clear cache, empty trash | +| Full System Update | Update all packages to the latest available | +| Gaming Dependencies | Install gaming dependencies across distros | +| Global Theme | Install and configure a global desktop theme | +| Remove Snaps | Remove Snap and prevent it from reinstalling | +| Build Prerequisites | Install software build dependencies | +| TTY Fonts | Set the default TTY font to Terminus 32 Bold | + +### Alpine + +| Script | Description | +|--------|-------------| +| Alpine Update | Upgrade Alpine to the latest stable or edge release | + +## Desktop Environment Setup + +These scripts work across distros and let you install or uninstall full desktop environments and window managers interactively. + +### Install Desktop Environment + +An interactive menu lets you choose from: + +**Desktop Environments**: GNOME, KDE Plasma, XFCE, Cinnamon, MATE, Budgie, LXQt, LXDE + +**Window Managers**: i3, Sway, DWM, Awesome, BSPWM, Openbox, Fluxbox + +### Uninstall Desktop Environment + +The reverse operation — interactively select which DE or WM to remove. + +## General System Scripts + +These scripts work across all distributions: + +| Script | Description | +|--------|-------------| +| Full System Update | Update all packages using your distro's package manager | +| Full System Cleanup | Clear package caches, temp files, and trash | +| Gaming Dependencies | Install dependencies needed for gaming on Linux | +| Build Prerequisites | Install common software build dependencies | + +> [!TIP] +> Always run a **Full System Update** before installing new software or applying major configuration changes. diff --git a/docs/content/userguide/updates/_index.md b/docs/content/userguide/updates/_index.md new file mode 100644 index 0000000..f10f3dd --- /dev/null +++ b/docs/content/userguide/updates/_index.md @@ -0,0 +1,74 @@ +--- +title: Updating Linutil +weight: 5 +--- + +Linutil is actively developed and updated frequently. There are a few ways to keep your installation current. + +## Running the Latest Version Directly + +The simplest way to always use the latest release is to run the curl command each time: + +```bash +curl -fsSL https://christitus.com/linux | sh +``` + +This always pulls the latest stable release without any local install needed. + +## Updating a Local Install + +If you installed Linutil locally (via Cargo, AUR, or openSUSE packages), use the appropriate method to update. + +### Linutil Updater (Built-in) + +The easiest way to update a Cargo-based install is the **Linutil Updater** script inside the tool itself: + +1. Run Linutil +2. Navigate to **Applications Setup** +3. Select **Linutil Updater** +4. The script will update your local `linutil_tui` crate + +### Cargo + +```bash +cargo install --force linutil_tui +``` + +### Arch Linux (AUR) + +```bash +# Using paru +paru -Syu linutil + +# Using yay +yay -Syu linutil +``` + +### openSUSE + +```bash +sudo zypper update linutil +``` + +## Dev Branch + +To test the latest unreleased features, use the dev branch: + +```bash +curl -fsSL https://christitus.com/linuxdev | sh +``` + +> [!WARNING] +> The dev branch may contain untested or unstable features. Not recommended for daily use. + +## Checking the Current Version + +After installing Linutil locally, you can check the version with: + +```bash +linutil --version +``` + +## Release Notes + +All releases and changelogs are available on the [GitHub Releases page](https://github.com/ChrisTitusTech/linutil/releases). diff --git a/docs/userguide.md b/docs/content/userguide/walkthrough.md similarity index 100% rename from docs/userguide.md rename to docs/content/userguide/walkthrough.md diff --git a/docs/go.mod b/docs/go.mod new file mode 100644 index 0000000..64baab2 --- /dev/null +++ b/docs/go.mod @@ -0,0 +1,5 @@ +module github.com/ChrisTitusTech/linUtil + +go 1.23.3 + +require github.com/imfing/hextra v0.11.1 // indirect diff --git a/docs/go.sum b/docs/go.sum new file mode 100644 index 0000000..efb638f --- /dev/null +++ b/docs/go.sum @@ -0,0 +1,2 @@ +github.com/imfing/hextra v0.11.1 h1:8pTc4ReYbzGTHAnyiebmlT3ijFfIXiGu1r7tM/UGjFI= +github.com/imfing/hextra v0.11.1/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI= diff --git a/docs/hugo.toml b/docs/hugo.toml new file mode 100644 index 0000000..d2096a4 --- /dev/null +++ b/docs/hugo.toml @@ -0,0 +1,118 @@ +baseURL = "https://linutil.christitus.com/" +languageCode = "en-us" +title = "Linutil Documentation" +enableGitInfo = true +canonifyURLs = true + +[[module.mounts]] + source = "assets" + target = "assets" + +[[module.mounts]] + source = "static" + target = "static" + +[[module.mounts]] + source = "../.github" + target = "static" + includeFiles = "preview.gif" + +[[module.imports]] +path = "github.com/imfing/hextra" + +[[menu.main]] +name = "Developer Documentation" +pageRef = "/dev" +weight = 1 + +[[menu.main]] +name = "User Guides" +pageRef = "/userguide" +weight = 2 + +[[menu.main]] +name = "Contribution Guides" +pageRef = "CONTRIBUTING.md" +weight = 3 + +[[menu.main]] +name = "FAQ" +pageRef = "faq.md" +weight = 4 + +[[menu.main]] +name = "Known Issues" +pageRef = "KnownIssues.md" +weight = 4 + +[[menu.main]] +name = "Search" +weight = 6 + + [menu.main.params] + type = "search" + +[[menu.main]] +name = "GitHub" +weight = 7 +url = "https://github.com/christitustech/linutil" + + [menu.main.params] + icon = "github" + +[params] +description = "Chris Titus Tech's Linux Utility - Install Programs, Tweaks, Fixes, and Updates" +displayUpdatedDate = true +dateFormat = "January 2, 2006" + + [params.navbar] + displayTitle = false + displayLogo = false + + [params.navbar.logo] + path = "navlogo.png" + dark = "navlogo.png" + link = "/" + width = 150 + height = 50 + + [params.theme] + default = "system" + displayToggle = true + + [params.page] + width = "wide" + + [params.footer] + enable = true + displayCopyright = true + displayPoweredBy = false + width = "normal" + +[params.highlight.copy] +enable = true +display = "hover" + +[menu] + + [[menu.sidebar]] + name = "Links" + weight = 1 + [menu.sidebar.params] + type = "separator" + + [[menu.sidebar]] + name = "Github Repo ↗" + url = "https://github.com/ChrisTitusTech/linutil" + weight = 2 + + [[menu.sidebar]] + name = "Discord Server ↗" + url = "https://discord.gg/RUbZUZyByQ" + weight = 3 + + +[markup] + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true diff --git a/docs/i18n/en.yaml b/docs/i18n/en.yaml new file mode 100644 index 0000000..ba84014 --- /dev/null +++ b/docs/i18n/en.yaml @@ -0,0 +1,24 @@ +copyright: "©  Chris Titus Tech. All rights reserved." + +backToTop: "Scroll to top" +changeLanguage: "Change language" +changeTheme: "Change theme" +copy: "Copy" +copied: "Copied!" +copyAsMarkdown: "Copy as Markdown" +copyPage: "Copy Page" +copyCode: "Copy code" +dark: "Dark" +editThisPage: "Edit this page on GitHub →" +lastUpdated: "Last updated on" +light: "Light" +next: "Next" +noResultsFound: "No results found." +onThisPage: "On this page" +poweredBy: "Powered by Chris Titus Tech" +previous: "Prev" +readMore: "Read more →" +searchPlaceholder: "Search..." +system: "System" +tags: "Tags" +viewAsMarkdown: "View as Markdown" diff --git a/docs/layouts/shortcodes/autolinks.html b/docs/layouts/shortcodes/autolinks.html new file mode 100644 index 0000000..9243b03 --- /dev/null +++ b/docs/layouts/shortcodes/autolinks.html @@ -0,0 +1,17 @@ +{{- $section := .Get "section" | lower -}} +{{- $pages := slice -}} +{{- range .Site.RegularPages -}} +{{- if in .RelPermalink $section -}} +{{- $pageTitle := .Title -}} +{{- if eq $pageTitle "" -}} + {{- $pageTitle = .File.BaseFileName | humanize | title -}} +{{- end -}} +{{- $pageDesc := .Description -}} +{{- $pages = $pages | append (dict "title" $pageTitle "description" $pageDesc "url" .RelPermalink) -}} +{{- end -}} +{{- end -}} +
    +{{- range sort $pages "title" "asc" }} +
  • {{ .title }}{{ with .description }} - {{ . }}{{ end }}
  • +{{- end }} +
diff --git a/docs/layouts/shortcodes/image.html b/docs/layouts/shortcodes/image.html new file mode 100644 index 0000000..5e66ade --- /dev/null +++ b/docs/layouts/shortcodes/image.html @@ -0,0 +1,114 @@ +{{/*Retrieve Passed Shortcode Parameters*/}} +{{ $src := .Get "src" }} +{{ $alt := .Get "alt" }} + +{{/*Define sizes*/}} +{{ $Small := 200 }} +{{ $Medium := 600 }} +{{ $Large := 1000 }} + +{{/*Define Image variables as global variables to make them easily accessible in this shortcode*/}} +{{ $DarkImage := "" }} {{ $DarkSmallImage := "" }} {{ $DarkMediumImage := "" }} {{ $DarkLargeImage := "" }} +{{ $LightImage := "" }} {{ $LightSmallImage := "" }} {{ $LightMediumImage := "" }} {{ $LightLargeImage := "" }} +{{ $SingleImage := "" }} {{ $SingleSmallImage := "" }} {{ $SingleMediumImage := "" }} {{ $SingleLargeImage := "" }} + +{{/*Find images and update the previous Single,Dark,Light Images variables*/}} +{{ with resources.GetMatch (print $src ".jpg") }} {{ $SingleImage = . }} {{ end }} +{{ with resources.GetMatch (print $src "-Dark" ".jpg") }} {{ $DarkImage = . }} {{ end }} +{{ with resources.GetMatch (print $src "-Light" ".jpg") }} {{ $LightImage = . }} {{ end }} +{{ with resources.GetMatch (print $src ".png") }} {{ $SingleImage = . }} {{ end }} +{{ with resources.GetMatch (print $src "-Dark" ".png") }} {{ $DarkImage = . }} {{ end }} +{{ with resources.GetMatch (print $src "-Light" ".png") }} {{ $LightImage = . }} {{ end }} + +{{/*Applying Image Processing*/}} +{{ with $SingleImage }} + {{ with .Resize (printf "%dx%d webp q50" .Width .Height) }} + {{ $SingleImage = . }} + {{ end }} +{{ end }} +{{ with $DarkImage }} + {{ with .Resize (printf "%dx%d webp q50" .Width .Height) }} + {{ $DarkImage = . }} + {{ end }} +{{ end }} +{{ with $LightImage }} + {{ with .Resize (printf "%dx%d webp q50" .Width .Height) }} + {{ $LightImage = . }} + {{ end }} +{{ end }} + +{{/*Make different sized versions to images if applicable*/}} +{{ with $SingleImage }} + {{ if gt (.Width) ($Small) }} + {{ with .Resize (printf "%dx" $Small) }} + {{ $SingleSmallImage = . }} + {{ end }} + {{ end }} + {{ if gt (.Width) ($Medium) }} + {{ with .Resize (printf "%dx" $Medium) }} + {{ $SingleMediumImage = . }} + {{ end }} + {{ end }} + {{ if gt (.Width) ($Large) }} + {{ with .Resize (printf "%dx" $Large) }} + {{ $SingleLargeImage = . }} + {{ end }} + {{ end }} +{{ end }} +{{ with $DarkImage }} + {{ if gt (.Width) ($Small) }} + {{ with .Resize (printf "%dx" $Small) }} + {{ $DarkSmallImage = . }} + {{ end }} + {{ end }} + {{ if gt (.Width) ($Medium) }} + {{ with .Resize (printf "%dx" $Medium) }} + {{ $DarkMediumImage = . }} + {{ end }} + {{ end }} + {{ if gt (.Width) ($Large) }} + {{ with .Resize (printf "%dx" $Large) }} + {{ $DarkLargeImage = . }} + {{ end }} + {{ end }} +{{ end }} +{{ with $LightImage }} + {{ if gt (.Width) ($Small) }} + {{ with .Resize (printf "%dx" $Small) }} + {{ $LightSmallImage = . }} + {{ end }} + {{ end }} + {{ if gt (.Width) ($Medium) }} + {{ with .Resize (printf "%dx" $Medium) }} + {{ $LightMediumImage = . }} + {{ end }} + {{ end }} + {{ if gt (.Width) ($Large) }} + {{ with .Resize (printf "%dx" $Large) }} + {{ $LightLargeImage = . }} + {{ end }} + {{ end }} +{{ end }} + + +{{ if $SingleImage }} + + {{ with $SingleSmallImage }}{{ end }} + {{ with $SingleMediumImage }}{{ end }} + {{ with $SingleLargeImage }}{{ end }} + {{ with $SingleImage }}{{ end }} + +{{ else }} + + {{ with $DarkSmallImage }}{{ end }} + {{ with $DarkMediumImage }}{{ end }} + {{ with $DarkLargeImage }}{{ end }} + {{ with $DarkImage }}{{ end }} + {{ with $LightSmallImage }}{{ end }} + {{ with $LightMediumImage }}{{ end }} + {{ with $LightLargeImage }}{{ end }} + {{ with $LightImage }}{{ end }} + {{ with $LightImage }} + {{ else with $DarkImage }}{{ end }} + +{{ end }} diff --git a/docs/static/CNAME b/docs/static/CNAME new file mode 100644 index 0000000..dae2a55 --- /dev/null +++ b/docs/static/CNAME @@ -0,0 +1 @@ +linutil.christitus.com diff --git a/docs/static/android-chrome-192x192.png b/docs/static/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe939a7ebcaa575c3437844b6a3185dbf4b90a8 GIT binary patch literal 28177 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νo^3vE^20 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

P2sSa1ep^Xj?8(RmVPxIfv-*aT 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 G@&6ygi8C$$ literal 0 HcmV?d00001 diff --git a/docs/static/apple-touch-icon.png b/docs/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9ffa99522551453e5d9fb1ab742ff4f12119eaab GIT binary patch literal 25162 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

*md0%}|aLaN|B2q>oxpYPj4=l=auleP< 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 D(aV`s literal 0 HcmV?d00001 diff --git a/docs/static/favicon-32x32.png b/docs/static/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..5532ef6c4866144db1af50950db12722dac954b3 GIT binary patch literal 2315 zcmV+m3H0`fP)Px-#Ysd#R9HuqR|`;7=N10$y~|6M1fN(DHh}W*vG@Q1EozL2V#LSz#@gw$u^k24 z7@Ha&QAwwnPSsQsn@BThL!r|+9T89@X`l$Gh{Q*H#QD^G0QCUcXiuYww2uN1CM?L=CIzidax@p;RH}BJ zL&vo`08Ieyy8t1Dq>_wi&gqzT=-3y)7y$mz=>rAhju>(B&u0swJM15i{3U=dRhxYp z03!ASFja`p+^U=ON}`irTmJ(`L*5OgI^!IAZr7?WwW>gv9s*%a&^f8r9FK$OX%Hs= zB1W8&He2us9w`VAl!3NRd)DaP0IC4oC96XL7=`%bTXmDREOM=D#o9aIxO3vVa(RCl z2AaNdVWeBlEAvaL$3fH?5c-oS$+&%v;2Z8o$C@p9z|`T$^4kmG5`YE(y+czlNu0TV zvov$x2DrTFWJ7_XSlj#M+MH_T>hCIGX(bTW2RmgrAO<32!whlSuj9oLMt?yRTszE( z!O?!>j{Hw!27oI7z5!r%Eke>443AN<;_|ZXl5fQLp&$l<^tblNwSTQtsxvAe_gi6D z5iU-D<3({yltBnfk$Q>GkvTYj16By#}BW01J4K z0m>wWC^%xulzFLJQ+Jh=eE!Ahf`VICtCdQq7Xp?TbxR88y0Tz98Fv}qIswGG0&vu1 zHOQquE>`m_O*I+=Rvia1WpahlPcOCG6R|kG-mxOs#D@ zfAe~d&1SO+fiD|%iwhP#20*`VWBsh}0jT>&om{e^kaC-{X>)u+Lc$zLlB5e4FO&rv9YlcLjZiCcEa~kFoGHo6cn`hK*n!h69hq288~6FSXvRd zEJU|BFIf=2Q#f00Top`}=0}R~>rZaWpRXqXx74)sMKLk4p#*TQw6yHQ4>SLyrhp6# z79neZN*L$~9K!NYHOczSx;Y&OU4T{{a}T3Q<59XMRK?)C=3&5P-BE?aI~B}|pQ zx|D`Fg5JQkbxOA5`X4SSmtLpn`0U!VcWFd;1O*PC78RY%&d&O?T7=wP2LW&lV;cqm zh&^=Zojqgx{J1+RIoa8li;49aN|<(svz^*@lW{rR|ufA=yTFDG&3`+5!5)z0ul!W{H`@hIS^z!m@BENC- zM$@r(k6tjF&76>|&Mnw)t~V^LUFfdqMc7ZnP?y~fnSX(z=Dl!XLd3>RKZG)eI zI$QX!oSf_|08~QCvY8vC>m0`iIlBb_h+MaB{raUZFH2-GJ`^QWPk#QXFU!ly>txwM zAdG-A%VAX;MxGxZ5HN1-nzfO}$Y};ilAJqZ^Syh`Zynh8uGwtn9KgMRBOcKzt^hO^ z*p9)XC>m4K(l_G6^5VrBS(Z6maxBx29Xl>y<*Jp_qoSgN z-QC?;)Xtjh?Cj`#=kTGA>g(&z1Gue@c9eJL$Uk&`XEBm?PB+1#o7?0~DVvh#&zm3b z=H{jug)GZ*LqmhbWDYM({EI7`8Y&$x4QvW0Xw9CBFpmt7RJF+_rk&)9Plb5fU8xj%{q~+H& z;_mLQp3>6Ns=_m;&-eHD-%-adYCdz$qGRN&nZd)&BXgT-kRX^2_PbVK4~I@5VAiad zY01gU=LQ4@28g04n$3N^%6SYr01KM90s)rqW002ovPDHLkV1mrwWVQeR literal 0 HcmV?d00001 diff --git a/docs/static/favicon.ico b/docs/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f95955c6dec2db8ead0b9edd26173a42d8740a77 GIT binary patch literal 21897 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 Result { let mut md = String::new();