Flip workspace relayout on Alt+Enter #255
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| name: Lint Quickshell | |
| on: | |
| push: | |
| branches: | |
| - distro/arch-omarchy-quattro | |
| paths: | |
| - '**/*.qml' | |
| - '.gitmodules' | |
| - 'omarchy-plugins.json' | |
| - 'omarchy/.config/omarchy/plugins/**' | |
| - '.github/workflows/quickshell-lint.yml' | |
| pull_request: | |
| paths: | |
| - '**/*.qml' | |
| - '.gitmodules' | |
| - 'omarchy-plugins.json' | |
| - 'omarchy/.config/omarchy/plugins/**' | |
| - '.github/workflows/quickshell-lint.yml' | |
| permissions: | |
| contents: read | |
| env: | |
| # Version of Arch's stable `quickshell` package used by Omarchy. It pulls | |
| # qt6-declarative, which provides qmllint. | |
| # Renovate keeps it in sync via Arch's package API (see the | |
| # customManagers entry in renovate.json); the version check below fails if | |
| # the container's quickshell has drifted from this pin, which is the signal | |
| # to merge the Renovate bump. | |
| QUICKSHELL_VERSION: "0.3.1" | |
| jobs: | |
| qmllint: | |
| runs-on: ubuntu-latest | |
| container: archlinux:latest | |
| steps: | |
| - name: Install quickshell and qmllint | |
| run: | | |
| # Refresh the keyring first (the base image's can lag and break | |
| # signature checks), then install quickshell (pulls qt6-declarative = | |
| # qmllint) and git (needed by actions/checkout in this container). | |
| pacman -Sy --noconfirm --needed archlinux-keyring | |
| pacman -Su --noconfirm --needed quickshell qt6-declarative git | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| submodules: recursive | |
| - name: Trust the checkout (container git ownership) | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: Verify quickshell matches the pinned version | |
| run: | | |
| installed="$(pacman -Q quickshell | awk '{print $2}' | cut -d- -f1)" | |
| echo "Installed quickshell: $installed (pinned QUICKSHELL_VERSION: $QUICKSHELL_VERSION)" | |
| if [ "$installed" != "$QUICKSHELL_VERSION" ]; then | |
| echo "::error::Arch quickshell is $installed but QUICKSHELL_VERSION is pinned to $QUICKSHELL_VERSION. Merge the Renovate bump so the pin matches the package being linted against." >&2 | |
| exit 1 | |
| fi | |
| - name: Lint QML | |
| run: | | |
| export PATH="/usr/lib/qt6/bin:$PATH" | |
| mapfile -t qml_files < <(git ls-files '*.qml') | |
| while IFS= read -r plugin_path; do | |
| while IFS= read -r qml_file; do | |
| qml_files+=("$plugin_path/$qml_file") | |
| done < <(git -C "$plugin_path" ls-files '*.qml') | |
| done < <(git config -f .gitmodules --get-regexp '^submodule\..*\.path$' | | |
| awk '$2 ~ /^omarchy\/\.config\/omarchy\/plugins\// { print $2 }') | |
| if [ "${#qml_files[@]}" -eq 0 ]; then | |
| echo 'No QML files found.' | |
| exit 0 | |
| fi | |
| printf 'Linting %s QML file(s) with %s:\n' "${#qml_files[@]}" "$(qmllint --version)" | |
| printf ' %s\n' "${qml_files[@]}" | |
| # quickshell installs its QML modules under /usr/lib/qt6/qml, so `-I` | |
| # lets qmllint resolve `Quickshell.*`. The Omarchy shell's own `qs.*` | |
| # modules ship in the (unpackaged) shell source, so the import | |
| # category stays disabled; qmllint still fails on real syntax errors. | |
| qmllint -I /usr/lib/qt6/qml --import disable --unqualified disable "${qml_files[@]}" |