22 Commits
Author SHA1 Message Date
alvinlollo f6f00018d4 feat(iso): Point end4-pC scripts at fork and set its default wallpaper
Upstream pin check / quickshell-pin (push) Successful in 34s
Tests / tests (push) Successful in 3m15s
The fork's colour/wallpaper/kvantum scripts still hard-code
QUICKSHELL_CONFIG_NAME="ii", so they read and write
~/.config/quickshell/ii instead of end4-pC - rewrite them to end4-pC
at build time (verified against the current fork HEAD: 5 scripts match
the anchored pattern, re-runs are no-ops).

Also replace the fork's assets/images/default_wallpaper.png - fed to
switchwall.sh by FirstRunExperience.qml on first login - with the
wallpaper now shipped in skel's ~/Pictures/Wallpapers, so the first
login lands on the japan-street wallpaper instead of the fork's
default.
2026-10-15 15:47:23 +11:00
alvinlollo e377f9313a feat(installer): Offer repair chroot on post-pacstrap failure
Tests / tests (push) Successful in 3m5s
- offer_chroot(): optional arch-chroot shell into the still-mounted target,
  from install_cleanup() on success and from the EXIT trap when a step fails
  after pacstrap (TARGET_INSTALLED flag); temp NOPASSWD sudoers drop-ins are
  always removed before the shell is opened.
- INT/TERM handler re-exits with 128+N: without it bash runs the EXIT trap
  with $? = 0 for a signal-killed shell and the rc != 0 test would skip the
  offer. A signal during teardown only aborts the prompt (first) so the
  unmount still runs; a second forces the exit.
- cleanup(): report a failed umount -R / cryptsetup close instead of hiding
  stderr, so a repair shell leaving busy mounts is visible before reboot.
- Document the flow in AGENTS.md.
2026-10-14 23:08:18 +11:00
alvinlollo 00c89f23f0 feat(installer): Skip login manager when unl0kr handles the passphrase
Tests / tests (push) Successful in 2m56s
unl0kr already prompts for the LUKS passphrase on screen, so a login
manager on top of it would be a second prompt. The login screen now only
collects a fallback (none/greetd/sddm/gdm) when unl0kr is selected;
resolve_login_manager applies it only when install_unl0kr falls back to
the systemd initramfs, and the summary shows both states.

Also ships /etc/unl0kr.conf (breezy-dark) plus the empty
/usr/share/unl0kr/unl0kr.conf the package omits so unl0kr stops warning
about an unparseable config, and pins Hyprland in the user's
AccountsService record so gdm autologin does not fall back to
gnome.desktop.
2026-10-13 19:33:57 +11:00
alvinlollo 3b1e7d1982 chore: Add pre-commit hook running shellcheck on every commit
Tests / tests (push) Successful in 3m11s
2026-10-13 18:07:05 +11:00
alvinlollo 6a708c0303 feat(installer): Add warn-only post-install update step 2026-10-13 17:49:05 +11:00
alvinlollo 0cdaa6f82d fix(iso): Put [cachyos] ahead of [core] in live pacman.conf 2026-10-13 17:48:59 +11:00
alvinlollo 5735859179 chore(installer): Reformat alvin-install (shfmt, 2-space indent) 2026-10-13 17:48:42 +11:00
alvinlollo e57143c4bc docs/ci: implement yay 13 SIGSEGV workaround and update docs
Upstream pin check / quickshell-pin (push) Successful in 28s
Tests / tests (push) Successful in 3m31s
2026-10-12 12:57:37 +11:00
alvinlollo 3275ec9845 chore: add build runner CAP_SETFCAP check, fix MicroTeX compilation, and fix mono cert-sync
Upstream pin check / quickshell-pin (push) Successful in 18s
Tests / tests (push) Successful in 2m55s
2026-10-11 19:41:08 +11:00
alvinlolloandClaude Opus 5.5 b68623a782 docs: Document the zsh-autocomplete partial-load error and fixes
Upstream pin check / quickshell-pin (push) Successful in 20s
Tests / tests (push) Successful in 3m0s
Adds a Troubleshooting entry (symptom, cause, drop-or-keep fixes). The
keep path removes grml-zsh-config instead of setting
skip_global_compinit=1: grml's /etc/zsh/zshrc runs compinit
unconditionally and ignores that Debian/Ubuntu variable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 18:08:30 +11:00
alvinlolloandClaude Opus 5.5 88e73bbc22 docs: Sync AGENTS.md with CI lint, fish default, zshrc staging
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:41:39 +11:00
alvinlolloandClaude Opus 5.5 025082a92f fix(localrepo): Exact local package match, no .old on medium, rebuild on bump
- tests: match localrepo packages by exact name (foo no longer satisfied
  by foo-bar-*.pkg.tar.zst).
- update.sh: copy the db/files by name so repo-add's *.old backups stay
  off the medium.
- build-end4-deps.sh: rebuild a local PKGBUILD when it is newer than the
  built package (a quickshell _commit bump used to be skipped).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:41:38 +11:00
alvinlolloandClaude Opus 5.5 699ed6a935 fix(installer): Validate hostname, parse disk models, skip zram
- screen_hostname: reject names that break /etc/hostname and /etc/hosts.
- screen_disk: parse lsblk -P by regex so multi-word/empty MODELs show
  correctly, and never offer /dev/zram* (TYPE=disk) as a target.
- packages: add python-distro, the undeclared runtime dep of the shipped
  ssh-import-id (it always crashed and fell back to curl).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:41:38 +11:00
alvinlolloandClaude Opus 5.5 e63f9cb14f fix(iso): Ship an archiso preset for linux-cachyos, the kernel we boot
linux.preset targeted the 'linux' package, which is not on the ISO, so
linux-cachyos generated its own default+fallback preset and the squashfs
carried an unused fallback initramfs. No package owns the preset file
(mkinitcpio's hook only creates one if missing), so this cannot conflict.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:41:38 +11:00
alvinlolloandClaude Opus 5.5 c5c7ab9b8b fix(ci): Lint extensionless scripts, serialize tests, drop pinned URLs
- ShellCheck now also covers bash scripts without .sh (alvin-install,
  choose-mirror, livecd-sound), picked up by shebang.
- concurrency group: the job rewrites the runner's /etc/pacman.conf.
- Import the CachyOS key from the keyserver instead of pacman -U on
  pinned keyring/mirrorlist URLs that break once the mirror prunes them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:39:22 +11:00
alvinlolloandClaude Opus 5.5 03f0ca05e0 fix(build): Verify cachyos and chaotic-aur signatures at ISO build time
Both repos used SigLevel = Optional TrustAll, so unsigned or tampered
packages went straight into the ISO. Inherit Required DatabaseOptional
from [options] and have build-iso import + lsign both signing keys.

Also in build-iso: detach only loop devices backed by the work dir
(losetup -D hit every loop on the runner host) and drop the ?token=
download fallback that put the API token into access logs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:39:22 +11:00
alvinlolloandClaude Opus 5.5 5299b90bbc fix(skel): Keep script exec bits and ship a .zshrc for oh-my-zsh
- Replace the 644/755 chmod sweep (which also undid its own chmod 700)
  with go-w,a+rX so non-.sh executables keep +x.
- Install an oh-my-zsh .zshrc into /etc/skel after pacstrap. It is staged
  as /root/.zshrc-skel because grml-zsh-config owns /etc/skel/.zshrc and
  an airootfs copy would abort pacstrap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:38:11 +11:00
alvinlolloandClaude Opus 5.5 55b66a1373 fix(installer): Survive copytoram, keep ISO repos, default to fish
- install_pacstrap: fall back to the live system's pacman -Q when the
  medium's pkglist is gone (copytoram unmounts bootmnt), and die on an
  empty list instead of pacstrapping only the essentials.
- screen_disk: find the live medium via archisosearchuuid when bootmnt
  is unmounted, and hide whole-disk sources (empty PKNAME).
- install_cachyos_repo: put [cachyos] ahead of [core] like the ISO build
  and add [chaotic-aur], so chaotic packages keep updating.
- install_user: create the user with fish; the 'none' login manager now
  autostarts Hyprland via ~/.config/fish/conf.d/alvin-hyprland.fish.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:38:11 +11:00
alvinlolloandClaude Opus 5.5 504a568570 chore(localrepo): Stop tracking makepkg output and repo-add backups
build-end4-deps.sh builds in place, so pkg/, src/ and the VCS mirrors
under end4-pkgbuilds/ (incl. a built quickshell tree) ended up in git.
Ignore everything there except PKGBUILDs and hooks, plus *.old backups.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:38:00 +11:00
alvinlolloandClaude Opus 5.5 0ae2f036b7 fix(ci): Stop bash -e from killing the conflict check silently
Tests / tests (push) Successful in 3m29s
The `pacman -S` in the conflict check exits non-zero by design (a
conflict fails in prepare, a clean list fails at the disabled download),
and `OUT=$(...)` carries that status, so `bash -e` aborted the step
before the output was inspected: exit 1 with no message on every run.
Ignore the status and judge by the output, as intended.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:25:17 +11:00
alvinlolloandClaude Opus 5.5 0e57df4360 fix(ci): Make the package conflict check actually detect conflicts
Tests / tests (push) Failing after 2m53s
The step ran `pacman -Sp`, which skips conflict checking entirely: it
happily prints URLs for eternalterminal + eternalterminal-client and
exits 0. It also skipped every localrepo package, so the conflict fixed
in f06bfd1 could never have been caught here.

Now the check resolves against a throwaway config that adds [local-aur]
(localrepo/), with a fresh dbpath/root so runner-installed packages
don't mask or fake conflicts, and runs a real `pacman -S`. Conflicts and
broken deps fail in "prepare", before any download; XferCommand is set
to /usr/bin/false after the sync so a clean list stops at the download
instead of fetching the whole ISO. Package availability comes from one
`-Slq` instead of ~400 `-Si` calls.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 11:50:35 +11:00
alvinlolloandClaude Opus 5.5 da26e88147 fix(localrepo): Drop stale packages so update.sh can't re-add them
f06bfd1 and a940d91 removed eternalterminal-client/-server,
illogical-impulse-quickshell-git, meshy-git and pacserve from
packages.x86_64, but their .pkg.tar.zst files stayed in localrepo/ and
in local-aur.db. update.sh appends every localrepo package name back to
the list, which would bring the eternalterminal conflict back, and CI
shipped the conflicting packages into the image's /opt/localrepo.

Remove the files and their repo DB entries, re-sort the vulkan-* lines
in packages.x86_64, and drop the names from README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 11:39:06 +11:00
161 changed files with 2457 additions and 274805 deletions
+54 -6
View File
@@ -101,6 +101,36 @@ jobs:
exit 1
fi
- name: Trust cachyos and chaotic-aur signing keys
run: |
set -euo pipefail
# The profile's pacman.conf verifies [cachyos] and [chaotic-aur]
# signatures (SigLevel inherited from [options]); mkarchiso's
# pacstrap checks them against the host keyring.
# F3B607488DB35A47 CachyOS <admin@cachyos.org>
# 3056513887B78AEB chaotic-aur (Pedro Henrique Lara Campos)
for key in F3B607488DB35A47 3056513887B78AEB; do
if pacman-key --list-keys "$key" >/dev/null 2>&1; then
echo " ✅ $key already in the keyring"
else
got=0
# Retry: gateway drops UDP/53 in bursts (see run 131)
for try in 1 2 3 4 5; do
if pacman-key --recv-keys "$key" --keyserver keyserver.ubuntu.com; then
got=1
break
fi
echo " ⚠️ recv-keys $key failed (attempt $try/5), retrying in $(( try * 15 ))s..." >&2
sleep $(( try * 15 ))
done
if [ "$got" -ne 1 ]; then
echo "❌ Could not fetch signing key $key" >&2
exit 1
fi
fi
pacman-key --lsign-key "$key"
done
- name: Ensure /dev/fd symlinks exist for mkinitcpio and procsub
run: |
set -euo pipefail
@@ -132,6 +162,23 @@ jobs:
rmdir "$d"
trap - EXIT
- name: Require CAP_SETFCAP for file capabilities
run: |
set -euo pipefail
# Without CAP_SETFCAP, pacstrap cannot restore security.capability
# xattrs ("unable to set CAP_SETFCAP effective capability"), so the
# live ISO silently ships newuidmap/newgidmap, snap-confine, dumpcap,
# kwin_wayland, ... without their capabilities. Fix the runner
# (e.g. allow CAP_SETFCAP in the gitea-runner service) rather than
# building a broken image.
eff="$(awk '/^CapEff:/{print $2}' /proc/self/status)"
if (( (16#$eff >> 31) & 1 )); then
echo "✅ CAP_SETFCAP is available (CapEff=$eff)"
else
echo "❌ CAP_SETFCAP missing (CapEff=$eff) - file capabilities would be dropped from the ISO" >&2
exit 1
fi
- name: Build Arch ISO
run: |
set -euo pipefail
@@ -503,13 +550,11 @@ jobs:
url="$GITEA_ORIGIN/$REPOSITORY/releases/download/$TAG_NAME/$enc_fname"
downloaded=0
for attempt in 1 2 3; do
# Try header auth, then ?token=, then anonymous (public repo).
# Try header auth, then anonymous (public repo). No ?token=
# fallback: a token in the query string lands in access logs.
if curl -sfL --max-time 600 -H "Authorization: token $GITEA_TOKEN" \
"$url" -o "$tmpdir/$fname"; then
downloaded=1
elif curl -sfL --max-time 600 "$url?token=$GITEA_TOKEN" \
-o "$tmpdir/$fname"; then
downloaded=1
elif curl -sfL --max-time 600 "$url" -o "$tmpdir/$fname"; then
downloaded=1
fi
@@ -572,8 +617,11 @@ jobs:
# Unmount any leftover loop devices or bind mounts in the work directory
$PRIV umount -R "$PWD/work" 2>/dev/null || true
# Clean up loop devices if any remain attached to the work dir
$PRIV losetup -D || true
# Detach only loop devices backed by files in our work dir:
# `losetup -D` would detach every loop device on the runner host.
$PRIV losetup -nO NAME,BACK-FILE 2>/dev/null \
| awk -v w="$PWD/work/" 'index($2, w) == 1 {print $1}' \
| while read -r dev; do $PRIV losetup -d "$dev" || true; done
# Remove working directories with proper permissions
$PRIV rm -rf "$PWD/work"
+70 -21
View File
@@ -5,6 +5,12 @@ on:
pull_request:
workflow_dispatch:
# This job rewrites the runner's shared /etc/pacman.conf - never let two
# runs do that at the same time.
concurrency:
group: host-pacman-conf
cancel-in-progress: false
jobs:
tests:
runs-on: archlinux
@@ -56,14 +62,12 @@ jobs:
- name: Set up CachyOS repo
run: |
# Key straight from the keyserver; no pinned keyring/mirrorlist
# package URLs (they 404 once the mirror prunes that version, and
# the mirrorlist was overwritten below anyway).
pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
pacman-key --lsign-key F3B607488DB35A47
pacman -U --noconfirm \
'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-keyring-20240331-1-any.pkg.tar.zst' \
'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-mirrorlist-27-1-any.pkg.tar.zst'
# Fix the mirrorlist URL (pacnew has wrong format)
printf '%s\n' 'Server = https://mirror.cachyos.org/repo/$arch/$repo' \
> /etc/pacman.d/cachyos-mirrorlist
@@ -112,10 +116,16 @@ jobs:
- name: Lint shell scripts with ShellCheck
run: |
echo "═══════════════════════════════════════════════════════════════"
echo " Running ShellCheck on all .sh files"
echo " Running ShellCheck on all bash scripts"
echo "═══════════════════════════════════════════════════════════════"
SH_FILES=$(find . -name '*.sh' -not -path './.git/*')
# *.sh plus extensionless bash scripts (alvin-install, choose-mirror,
# livecd-sound, ...) picked up by their shebang
SH_FILES=$(
find . -name '*.sh' -not -path './.git/*'
find airootfs/usr/local/bin -type f ! -name '*.sh' \
-exec grep -lE '^#!(/usr/bin/env bash|/bin/bash)' {} +
)
if [ -z "$SH_FILES" ]; then
echo "No shell scripts found."
exit 0
@@ -258,10 +268,18 @@ jobs:
done
# 2) Check localrepo/ for a pre-built .pkg.tar.zst
if [[ $MATCHED -eq 0 ]] && compgen -G "localrepo/${pkg}-*.pkg.tar.zst" > /dev/null 2>&1; then
# Exact name: strip -<pkgver>-<pkgrel>-<arch>.pkg.tar.zst, so
# "foo" is not satisfied by foo-bar-1.0-1-any.pkg.tar.zst
if [[ $MATCHED -eq 0 ]]; then
for f in localrepo/"${pkg}"-*.pkg.tar.zst; do
b=${f##*/}
if [[ "${b%-*-*-*}" == "$pkg" ]]; then
MATCHED=1
FOUND=$((FOUND + 1))
echo "📦 LOCAL: $pkg (pre-built in localrepo/)"
break
fi
done
fi
# 3) Check build-end4-deps.sh for the package name
@@ -309,34 +327,65 @@ jobs:
echo " Checking for conflicting packages in packages.x86_64"
echo "═══════════════════════════════════════════════════════════════"
# Sync databases first so pacman knows what exists
sudo pacman -Sy --noconfirm
# Resolve against the repos mkarchiso sees, including [local-aur]
# (localrepo/), so conflicts between pre-built AUR packages and
# anything else are caught here instead of in the ISO build.
# A fresh dbpath = empty local db, like pacstrap's target root:
# packages installed on the runner can neither mask a conflict
# nor cause a false one.
CONF=$(mktemp)
DB=$(mktemp -d)
ROOT=$(mktemp -d)
cp /etc/pacman.conf "$CONF"
printf '\n[local-aur]\nSigLevel = Optional TrustAll\nServer = file://%s/localrepo\n' \
"$PWD" >> "$CONF"
mkdir -p "$DB/sync"
cp -p /var/lib/pacman/sync/*.db "$DB/sync/"
pac() { pacman --config "$CONF" --dbpath "$DB" "$@"; }
pac -Sy --noconfirm
# From here on never download (set after -Sy, which needs to fetch
# the file:// local-aur db): the check only needs a prepared
# transaction
sed -i '/^\[options\]/a XferCommand = /usr/bin/false %u' "$CONF"
# Collect only packages that exist in the official repositories
# Packages built at ISO build time (build-end4-deps.sh) can't be
# resolved yet; everything else must be
mapfile -t AVAIL < <(pac -Slq | sort -u)
PKGS=()
while IFS= read -r pkg; do
[[ -z "$pkg" || "$pkg" =~ ^# ]] && continue
# Check if the package exists in official repos
if pacman -Si "$pkg" >/dev/null 2>&1; then
if printf '%s\n' "${AVAIL[@]}" | grep -qxF -- "$pkg"; then
PKGS+=("$pkg")
else
echo "⚠️ Skipping AUR/missing package: $pkg"
echo "⚠️ Skipping unresolvable package: $pkg"
fi
done < packages.x86_64
# Run conflict check only if we have official packages to test
# `pacman -Sp` skips conflict checks entirely, so run a real -S
# into an empty root. Conflicts and broken deps fail in "prepare",
# before any download; a clean list gets as far as the download,
# which the XferCommand above makes fail on purpose.
if [ ${#PKGS[@]} -eq 0 ]; then
echo "✅ No official packages to check."
elif CONFLICTS=$(pacman -Sp --needed "${PKGS[@]}" 2>&1); then
echo "✅ No package conflicts detected among official packages"
echo "✅ No resolvable packages to check."
else
# pacman exits non-zero either way; judge by its output, not
# its status (bash -e would otherwise kill the step silently)
OUT=$(pac -S --noconfirm --root "$ROOT" --cachedir "$ROOT" "${PKGS[@]}" 2>&1) || true
if grep -q 'failed to prepare transaction' <<< "$OUT"; then
echo "------- Pacman Output -------"
echo "$CONFLICTS"
grep -vE '^(http|file|ftp)' <<< "$OUT" | tail -40
echo "-----------------------------"
echo ""
echo "═══════════════════════════════════════════════════════════════"
echo " ❌ Conflicting packages found — fix packages.x86_64"
echo " ❌ Conflicting/unresolvable packages — fix packages.x86_64"
echo "═══════════════════════════════════════════════════════════════"
exit 1
elif ! grep -q 'Proceed with installation' <<< "$OUT"; then
echo "------- Pacman Output -------"
tail -40 <<< "$OUT"
echo "-----------------------------"
echo "❌ pacman stopped before the conflict check completed"
exit 1
fi
echo "✅ No package conflicts detected (repos + local-aur)"
fi
+8
View File
@@ -9,3 +9,11 @@ airootfs/opt/localrepo/
# Build stamp staged by profiledef.sh at ISO build time (see AGENTS.md);
# consumed by customize_airootfs.sh, never committed
airootfs/root/.iso-build-stamp
# makepkg output from localrepo/build-end4-deps.sh (it builds in place):
# keep only the PKGBUILDs and hooks under end4-pkgbuilds/
localrepo/end4-pkgbuilds/*/*
!localrepo/end4-pkgbuilds/*/PKGBUILD
!localrepo/end4-pkgbuilds/*/*.hook
# repo-add backups
localrepo/*.old
+23 -7
View File
@@ -22,7 +22,7 @@ ISO), so run it after touching `localrepo/` before building.
## CI Checks (must pass before merge)
- **ShellCheck**: all `.sh` files checked with `shellcheck -x -s bash`
- **ShellCheck**: all `.sh` files, plus extensionless bash scripts in `airootfs/usr/local/bin/` (by shebang), checked with `shellcheck -x -s bash`
- **yamllint**: all `.yml`/`.yaml` files (relaxed config)
- **packages.x86_64 syntax**: one package per line, no trailing whitespace, `[a-zA-Z0-9._@+\-]+` only
- **Package repo check**: every package in `packages.x86_64` must be resolvable via `pacman -Si` in allowed repos (`cachyos`, `extra`, `multilib`, `chaotic-aur`), OR have a pre-built `.pkg.tar.zst` in `localrepo/`, OR appear in `localrepo/build-end4-deps.sh`
@@ -53,8 +53,8 @@ install them into the target without the network.
| `pacman.conf` | Repos: cachyos → core → extra → multilib → chaotic-aur → local-aur |
| `bootstrap_packages` | Minimal build-time packages (`base`, `arch-install-scripts`) |
| `airootfs/root/customize_airootfs.sh` | Runs inside chroot during build: keyrings, skel dotfiles (incl. end4-pC), qsConfig patch, end-4 `install-deps`, package harvest, uv/font pre-warm |
| `airootfs/root/.live-pacman.conf` | `/etc/pacman.conf` of the built image (adds `[local-aur]` = `file:///opt/localrepo`) |
| `airootfs/usr/local/bin/alvin-install` | Installer: partitions, pacstrap, LUKS (systemd initramfs **or** experimental unl0kr + optional TPM2 unlock), user, git identity + GitHub SSH keys, login manager (none/greetd/sddm/gdm) + autologin, optional sshd (default on), end-4 dotfiles (`--skip-alldeps`), boot |
| `airootfs/root/.live-pacman.conf` | `/etc/pacman.conf` of the built image (adds `[local-aur]` = `file:///opt/localrepo`); also what pacstrap resolves the target from, so `[cachyos]` must stay ahead of `[core]` like in `pacman.conf` |
| `airootfs/usr/local/bin/alvin-install` | Installer: partitions, pacstrap, LUKS (systemd initramfs **or** experimental unl0kr + optional TPM2 unlock), user (fish shell), git identity + GitHub SSH keys, login manager (none/greetd/sddm/gdm) + autologin, optional sshd (default on), end-4 dotfiles (`--skip-alldeps`), boot |
| `localrepo/build-end4-deps.sh` | Non-interactive AUR builds for end-4 dependencies |
| `localrepo/update.sh` | Regenerates localrepo DB, syncs names to packages.x86_64, syncs `airootfs/opt/localrepo/` |
| `localrepo/check-quickshell-pin.sh` | Tripwire: our quickshell pin and end-4's must include the Qt 6.12 fix and stay <45d old (`QUICKSHELL_PIN_MAX_AGE_DAYS` overrides) |
@@ -74,7 +74,7 @@ The airootfs overlay ships it as `/usr/local/bin/alvin-install` (mode `0755` for
locale, login manager, sshd, summary) then a fixed order of `install_*` steps
(partition → LUKS → format/mount → pacstrap → fstab → repos → timezone → locale →
hostname → network → sshd → user → git/SSH → end-4 dots → mkinitcpio → bootloader →
TPM/unl0kr → login manager → autologin → cleanup). Screens and install steps are
TPM/unl0kr → login manager (none if unl0kr succeeded; with unl0kr selected the login screen only asks for a fallback) → autologin → update (reflector + keyrings + `pacman -Syu`, warn-only) → cleanup, which offers an optional `arch-chroot` shell into the target before unmounting; the `EXIT` trap offers the same shell when a step after pacstrap fails or the install is interrupted (INT/TERM re-exit with 128+N so signals count as failure). Screens and install steps are
independent — edit one without
touching the other. An `EXIT` trap unmounts `$TARGET` and closes `cryptroot` on any exit.
- **Package list**: `install_pacstrap` builds the *installed* system's list from the medium's
@@ -83,7 +83,7 @@ The airootfs overlay ships it as `/usr/local/bin/alvin-install` (mode `0755` for
(`archiso mkinitcpio-archiso mkinitcpio-nfs-utils syslinux memtest86+`) plus names not
resolvable in the live repos, then always appends hardcoded essentials
(`base linux linux-firmware linux-cachyos networkmanager grub efibootmgr sudo git …`).
- **CI never lints it**: the shellcheck step globs only `*.sh`. Check manually after edits:
- **Linting**: CI's shellcheck step picks it up by its bash shebang. Locally:
`shellcheck -x -s bash airootfs/usr/local/bin/alvin-install`
- end-4 quirks (`--skip-alldeps`, `yes i`, end4-pC re-copy) are in [Gotchas](#gotchas) below.
@@ -97,19 +97,35 @@ yamllint -d "{extends: relaxed, rules: {document-start: disable, line-length: di
`packages.x86_64` syntax: one package per line, `[a-zA-Z0-9._@+\-]+` only, no trailing
whitespace.
A **pre-commit hook** (`githooks/pre-commit`) runs the same ShellCheck pass on every
commit, so CI failures surface before you push. Enable it once per clone:
```bash
git config core.hooksPath githooks
```
It skips linting (with a warning) when `shellcheck` is missing rather than blocking the
commit; CI remains the enforcer. Bypass it with `git commit --no-verify`.
## Gotchas
- The profile root is the **repo root** (not a `releng/` subdirectory). CI builds with `mkarchiso -v -w "$PWD/work" -o "$PWD/out" -- "$PWD"` (`.gitea/workflows/build-iso.yaml`), and the local build command above does the same — never pass a `releng` path.
- `customize_airootfs.sh` clones git repos (oh-my-zsh, lazy.nvim, plugins, end-4 dots) into `/etc/skel` and `/opt` during the ISO build. These require network access at build time but make the live ISO work offline.
- `customize_airootfs.sh` runs `./setup install-deps -f -s --skip-plasmaintg` as the throwaway user `ii-builder` (end-4's scripts refuse to run as root) and aborts the build if it fails. `--skip-plasmaintg` is deliberate: that optional Firefox widget pulls 410 packages / 526 MiB of KDE.
- The `[local-aur]` repo path in `pacman.conf` (`file:///home/alvin/alvinarch/localrepo`) is for local builds only. The CI does not use this path.
- The `[local-aur]` repo path in `pacman.conf` (`file:///home/alvin/AlvinArch/localrepo`) is for local builds only. The CI does not use this path.
- The **image** ships its own `[local-aur]` at `file:///opt/localrepo` (see `.live-pacman.conf`). It holds `localrepo/` (copied by CI/`update.sh`) plus everything `install-deps` built. pacstrap runs without `-P`, so the target keeps the stock `/etc/pacman.conf`; `alvin-install` strips `[local-aur]` from it anyway as a safety net, because `/opt/localrepo` exists only on the medium.
- `alvin-install` runs end-4 with `--skip-alldeps` — dependencies must come from the ISO. It feeds `yes i` to end-4's failure prompt: inside the installer chroot the medium's `/run` is bind-mounted in, so end-4's `systemctl --machine=…@.host --user enable … --now` lines can never work (and `--now` would start services on the live medium). `install_end4_dots` re-applies the enable-only part (bluetooth, ydotool, i2c module) outside the chroot and reports every step end-4 had to skip. If the end-4 step reports "incomplete", check that `hyprctl`/`quickshell`/the venv were resolvable (harvest) before re-running anything.
- `/etc/skel/.cache/uv` + `/etc/skel/.local/share/uv/python` are pre-warmed by the build (~460 MB: CPython 3.12 and the pinned wheel cache) so end-4's `uv venv`/`uv pip install` at install time needs no network.
- **end4-pC** (`pctrade/end4-pC`) is the default quickshell config: cloned into `/etc/skel/.config/quickshell/end4-pC` at build time, selected by patching `hl.env("qsConfig", "ii")` → `"end4-pC"` in the **staged** `/opt/dots-hyprland/dots/.config/hypr/hyprland/variables.lua` (there is no `hypr/hyprland/` in this repo — `./setup install` copies it to the installed system). `alvin-install` re-copies end4-pC into the user's home *after* `./setup install`, because end-4's installer `rsync --delete`s all of `~/.config/quickshell`.
- **end4-pC** (`pctrade/end4-pC`) is the default quickshell config: cloned into `/etc/skel/.config/quickshell/end4-pC` at build time, selected by patching `hl.env("qsConfig", "ii")` → `"end4-pC"` in the **staged** `/opt/dots-hyprland/dots/.config/hypr/hyprland/variables.lua` (there is no `hypr/hyprland/` in this repo — `./setup install` copies it to the installed system). `alvin-install` re-copies end4-pC into the user's home *after* `./setup install`, because end-4's installer `rsync --delete`s all of `~/.config/quickshell`. The build also rewrites the fork's hard-coded `QUICKSHELL_CONFIG_NAME="ii"` in its colour/wallpaper/kvantum scripts to `end4-pC` (otherwise they act on `~/.config/quickshell/ii`), and overwrites its `assets/images/default_wallpaper.png` (applied by `FirstRunExperience.qml` on first login) with `airootfs/etc/skel/Pictures/Wallpapers/Dynamic-Wallpapers/Dark/japan-street-Dark.png`.
- `airootfs/etc/skel/.config/illogical-impulse/presets/` carries the user's presets (`Laptop.json`, `Personal-Performance.json`, `Personal-Performance.zip`). They embed `/home/alvin/...` paths, so wallpapers/screenshots need fixing up after install.
- End-4 metapackages are built from `localrepo/end4-pkgbuilds/` (quickshell-git, bibata-modern-classic-bin, microtex-git).
- **quickshell pin / Qt 6.12**: end-4 pins quickshell to `41651d7` (Sep 25), which predates upstream fix `5d5d498` (Oct 3, *"use MOC includes instead of opaque pointer definitions — … Qt 6.12 compatibility"*). Arch shipped qt6 6.12.0 on Oct 8 and the old pin died with `Meta Types must be fully defined` in the moc build of quickshell-hyprland-ipc (failed CI run 137). `customize_airootfs.sh` therefore rewrites end-4's `_commit` to `11ca60be` after cloning — but **only** while it still matches `^_commit='41651d7`, so once end-4 bumps their own pin the guard goes inert and theirs wins. `localrepo/check-quickshell-pin.sh` (weekly `pin-check.yaml` job) fails CI if either pin goes stale or loses the fix; it warns instead of failing when end-4's known-stale pin is covered by the override.
- **MicroTeX flags**: the image's `makepkg.conf` is CachyOS's (`-march=native -O3`, LTO). GCC 16.2 hit an internal compiler error (segfault) on MicroTeX's `gtkmm_main.cpp` with it (failed CI run 155; not reproducible locally), so `customize_airootfs.sh` patches end-4's `illogical-impulse-microtex-git` PKGBUILD to `options=(!lto)` + `-O2` (our `localrepo/end4-pkgbuilds/microtex-git` carries the same).
- **CAP_SETFCAP on the runner**: without it pacstrap drops `security.capability` xattrs (newuidmap/newgidmap, snap-confine, dumpcap, kwin_wayland, ...) from the live ISO with only a warning. `build-iso.yaml` fails the job early if the runner lacks it — fix the runner, don't remove the check.
- **yay SIGSEGV on exit**: yay 13 (libalpm via purego/`dyalpm`) can segfault in `alpm_release()` *after* a finished transaction (failed CI run at end-4's `illogical-impulse-kde` step), which aborted `install-deps`. `customize_airootfs.sh` puts a temporary `yay` shim first on the builder's `PATH`: a failed plain `yay -S <pkgs>` counts as success only if `pacman -T` confirms every target is installed (it logs `[yay-shim]`). Every other failure keeps yay's exit code.
- **gvfs / dead `~/.gvfs`**: `install_end4_dots` replays end-4's gsettings writes via `dbus-run-session` as the target user. A session bus D-Bus-activates gvfsd → gvfsd-fuse mounts `~/.gvfs` and dies with the bus, leaving a dead FUSE mount that root can't stat, so the home's catch-all `chown -R` failed (`cannot access '/mnt/home/<user>/.gvfs': Permission denied`) and aborted the install before the bootloader. The replay therefore runs with `GIO_USE_VFS=local GVFS_DISABLE_FUSE=1`, and the function unmounts anything mounted under the home before that chown — keep both.
- mono's `cert-sync` runs before `ca-certificates.crt` exists during pacstrap, so `customize_airootfs.sh` (live) and `install_pacstrap` (target) re-run it.
- `/etc/skel/.zshrc` is owned by `grml-zsh-config`, so ours is staged as `airootfs/root/.zshrc-skel` and installed by `customize_airootfs.sh` after pacstrap — never add files under `airootfs/` at paths a package owns, or pacstrap aborts with "exists in filesystem".
- `packages.x86_64` is sorted alphabetically. Keep it sorted when adding/removing entries.
- `airootfs/opt/localrepo/` is a build artifact (gitignored) — never commit it.
- **Build stamp flow**: `profiledef.sh` (sourced by mkarchiso) stages the gitignored `airootfs/root/.iso-build-stamp` when a `.git` dir exists **or** `CI`/`GITEA_ACTIONS` is set — line reads `AlvinArch build <date> | commit <date> | <4-char hash>` (falls back to `commit unknown` if `git -c safe.directory` can't read the repo; without `.git`/CI no file is staged). `customize_airootfs.sh` keeps it as `/etc/alvin-build-stamp` on the live medium **and appends it to the live `/etc/motd`**, so the booted ISO identifies its build. The installed system's motd is never touched by us — `alvin-install` has no motd step (an earlier `install_motd` that copied the banner + stamp into the target was removed on purpose).
Symlink
+1
View File
@@ -0,0 +1 @@
AGENTS.md
+68 -5
View File
@@ -21,7 +21,6 @@ AlvinArch/
├── localrepo/
│ ├── build-end4-deps.sh # non-interactive AUR build (all deps)
│ ├── end4-pkgbuilds/ # microtex-git, quickshell-git, bibata
│ ├── illogical-impulse-quickshell-git-*.pkg.tar.zst
│ ├── illogical-impulse-bibata-modern-classic-bin-*.pkg.tar.zst
│ └── update.sh # existing, regenerates repo db
└── packages.x86_64 # 420 packages (65+ end-4 deps added)
@@ -153,7 +152,7 @@ AlvinArch/
│ ├── update.sh # Regenerates repo DB + syncs names to packages.x86_64
│ ├── end4-pkgbuilds/ # PKGBUILDs: quickshell-git, microtex-git, bibata-modern-classic-bin
│ ├── *.pkg.tar.zst # Pre-built packages (illogical-impulse-*, wallust, grub-customizer,
│ │ # snapd, upscayl, meshy-git, pacserve, etc.)
│ │ # snapd, upscayl, eternalterminal, etc.)
│ └── local-aur.db{,.tar.gz} # Repo database files
├── efiboot/ # UEFI boot (systemd-boot)
│ └── loader/
@@ -231,7 +230,7 @@ Cross-shell prompt config for [Starship](https://starship.rs/). Works with both
### **.zshrc / .fzf.zsh**
Zsh configuration adapted for oh-my-zsh (installed by `customize_airootfs.sh`) and fzf shell integration.
Zsh configuration adapted for oh-my-zsh (installed by `customize_airootfs.sh`) and fzf shell integration. fish is the default login shell; zsh is there if you `chsh` to it. The `.zshrc` source lives at `airootfs/root/.zshrc-skel`, because grml-zsh-config owns `/etc/skel/.zshrc` and shipping it under `airootfs/etc/skel/` would abort the build. zsh-autocomplete is cloned but disabled; see [Troubleshooting](#zsh-autocomplete-partial-load-error).
---
@@ -286,7 +285,7 @@ Custom PKGBUILDs for end-4 metapackages:
### Pre-built Packages
Packages like `illogical-impulse-quickshell-git`, `illogical-impulse-bibata-modern-classic-bin`, `wallust`, `grub-customizer`, `snapd`, `upscayl-bin`, `meshy-git`, `xwaylandvideobridge`, `pacserve`, etc.
Packages like `illogical-impulse-bibata-modern-classic-bin`, `wallust`, `grub-customizer`, `snapd`, `upscayl-bin`, `xwaylandvideobridge`, `eternalterminal`, etc.
---
@@ -385,11 +384,25 @@ sudo mkarchiso -v -w work -o out/ .
### CI Checks (must pass before merge)
- **ShellCheck**: all `.sh` files checked with `shellcheck -x -s bash`
- **ShellCheck**: all `.sh` files, plus extensionless bash scripts in `airootfs/usr/local/bin/`, checked with `shellcheck -x -s bash`
- **yamllint**: all `.yml`/`.yaml` files (relaxed config)
- **packages.x86_64 syntax**: one package per line, no trailing whitespace, `[a-zA-Z0-9._@+\-]+` only
- **Package repo check**: every package in `packages.x86_64` must be resolvable via `pacman -Si` in allowed repos (`cachyos`, `extra`, `multilib`, `chaotic-aur`), OR have a pre-built `.pkg.tar.zst` in `localrepo/`, OR appear in `localrepo/build-end4-deps.sh`
### Git Hooks
A pre-commit hook (`githooks/pre-commit`) runs the ShellCheck pass on every commit, so lint failures surface before you push instead of in CI.
```bash
# Enable once per clone
git config core.hooksPath githooks
# Bypass the hook for a single commit
git commit --no-verify
```
If `shellcheck` is not installed the hook warns and skips rather than blocking the commit; CI remains the enforcer.
### Recommended VirtualBox Settings (for testing)
- RAM: 4GB minimum, 8GB recommended
@@ -438,6 +451,56 @@ The following dotfiles are not yet included but are planned for future versions:
- `customize_airootfs.sh` clones repos at build time — requires network access during `mkarchiso`
- Check build logs for git clone failures
### zsh-autocomplete partial-load error
Symptom:
```
_autocomplete__history_lines: function not defined
_autocomplete__unambiguous: function not defined
```
Cause: zsh-autocomplete was loaded after `compinit` (e.g. via oh-my-zsh
`plugins=(...)`), a stale completion dump, or a conflict with
zsh-autosuggestions / zsh-history-substring-search. On this ISO `compinit`
always runs first: grml-zsh-config's global `/etc/zsh/zshrc` calls it
unconditionally before `~/.zshrc` is read.
The shipped `~/.zshrc` leaves zsh-autocomplete out of `plugins=(...)`. The
plugin stays cloned at `~/.oh-my-zsh/custom/plugins/zsh-autocomplete/`
either way, just disabled by default.
**Fix: drop autocomplete (recommended)**
```bash
# 1. Edit ~/.zshrc, remove this line from plugins=(...):
# zsh-autocomplete
# 2. Clear stale dumps (bash avoids zsh's nomatch abort on the glob):
bash -c 'rm -f ~/.zcompdump* ~/.cache/zsh/zcompdump*'
# 3. Restart the shell and verify:
exec zsh
typeset -f _autocomplete__history_lines >/dev/null && echo "still loaded" || echo "clean"
```
**Fix: keep autocomplete instead**
```bash
# 1. Remove zsh-autocomplete, zsh-autosuggestions and
# zsh-history-substring-search from plugins=(...) in ~/.zshrc.
# 2. Stop the global compinit. `skip_global_compinit=1` in ~/.zshenv does
# NOT work here (that is a Debian/Ubuntu /etc/zsh/zshrc convention; grml
# ignores it), so remove the package that ships the global zshrc:
sudo pacman -R grml-zsh-config
# 3. At the very top of ~/.zshrc, before oh-my-zsh is sourced:
source ~/.oh-my-zsh/custom/plugins/zsh-autocomplete/zsh-autocomplete.plugin.zsh
# 4. Clear dumps as above, then: exec zsh
```
---
## Acknowledgements
@@ -0,0 +1,11 @@
# mkinitcpio preset file for the 'linux-cachyos' package on archiso
# (the kernel the boot entries load). Not owned by any package: mkinitcpio's
# install hook only generates a preset when none exists, so this one wins and
# the image gets the archiso initramfs alone - no unused fallback image.
PRESETS=('archiso')
ALL_kver='/boot/vmlinuz-linux-cachyos'
archiso_config='/etc/mkinitcpio.conf.d/archiso.conf'
archiso_image="/boot/initramfs-linux-cachyos.img"
-8
View File
@@ -1,8 +0,0 @@
# mkinitcpio preset file for the 'linux' package on archiso
PRESETS=('archiso')
ALL_kver='/boot/vmlinuz-linux'
archiso_config='/etc/mkinitcpio.conf.d/archiso.conf'
archiso_image="/boot/initramfs-linux.img"
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 MiB

+8 -4
View File
@@ -33,6 +33,14 @@ LocalFileSigLevel = Optional
# - URLs will have $arch replaced by the name of the architecture
#
# [cachyos] first, same as the build's pacman.conf: pacstrap installs the
# target from this file, so with [core] ahead the target got Arch builds of
# everything cachyos also ships (pacman -2 vs the live -4 -> libalpm
# "unknown key '%INSTALLED_DB%'" warnings) and flipped them on the first -Syu.
[cachyos]
SigLevel = Required DatabaseOptional
Include = /etc/pacman.d/cachyos-mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
@@ -42,10 +50,6 @@ Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[cachyos]
SigLevel = Required DatabaseOptional
Include = /etc/pacman.d/cachyos-mirrorlist
[chaotic-aur]
SigLevel = Required DatabaseOptional
Include = /etc/pacman.d/chaotic-mirrorlist
+31
View File
@@ -0,0 +1,31 @@
# ~/.zshrc - installed into /etc/skel by customize_airootfs.sh (it replaces
# grml-zsh-config's skel copy; grml's global /etc/zsh/zshrc still loads first).
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="" # starship draws the prompt
zstyle ':omz:update' mode reminder # never auto-pull on startup
# Plugins are pre-cloned into $ZSH/custom/plugins at ISO build time.
# zsh-syntax-highlighting must load before zsh-history-substring-search.
# zsh-autocomplete is cloned too but left off: it must load before compinit,
# which grml's /etc/zsh/zshrc already ran, and it fights zsh-autosuggestions.
# To use it anyway, see README.md "zsh-autocomplete partial-load error".
plugins=(
git
fzf-zsh-plugin
zsh-eza
zsh-autosuggestions
zsh-syntax-highlighting
zsh-history-substring-search
)
source "$ZSH/oh-my-zsh.sh"
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
[[ -f ~/.fzf.zsh ]] && source ~/.fzf.zsh
if command -v starship >/dev/null 2>&1 && [[ "$TERM" != "linux" ]]; then
eval "$(starship init zsh)"
fi
+98 -10
View File
@@ -72,6 +72,14 @@ for plugin in "${!OMZ_PLUGINS[@]}"; do
fi
done
# grml-zsh-config owns /etc/skel/.zshrc, so shipping ours in
# airootfs/etc/skel would make pacstrap abort ("exists in filesystem").
# Stage it under /root and overwrite the package's copy here, after pacstrap.
if [[ -f /root/.zshrc-skel ]]; then
install -m 0644 /root/.zshrc-skel "${SKEL}/.zshrc"
rm -f /root/.zshrc-skel
fi
# ── LazyVim (lazy.nvim bootstraps on first launch, but pre-clone the plugin) ─
NVIM_DATA="${SKEL}/.local/share/nvim"
mkdir -p "${NVIM_DATA}"
@@ -105,6 +113,18 @@ if [[ -f "${QS_PKG}" ]] && grep -q "^_commit='41651d7" "${QS_PKG}"; then
sed -i "s|^_commit='41651d7[^']*'|_commit='11ca60be22b063478ed9586ca1d7f92f0f261caf'|" "${QS_PKG}"
fi
# GCC 16.2 ICEs (segfault in ggc_set_mark) compiling MicroTeX's gtkmm_main.cpp
# - the LaTeX binary the package ships - under CachyOS's makepkg.conf
# (-march=native -O3 + -flto=auto), which killed CI run 155. Build it with -O2
# and no LTO; MicroTeX is tiny, the flags buy nothing. Re-running is a no-op.
MTX_PKG="${DOTS_REPO}/sdata/dist-arch/illogical-impulse-microtex-git/PKGBUILD"
if [[ -f "${MTX_PKG}" ]] && ! grep -q '^options=(!lto)' "${MTX_PKG}"; then
echo "[customize] Building MicroTeX with -O2 and no LTO (GCC 16 ICE)..."
# shellcheck disable=SC2016 # expanded by makepkg, not here
sed -i '/^build() {/a\ export CFLAGS="${CFLAGS//-O3/-O2}" CXXFLAGS="${CXXFLAGS//-O3/-O2}"' "${MTX_PKG}"
printf '\noptions=(!lto)\n' >> "${MTX_PKG}"
fi
# ── end4-pC: the default quickshell config, shipped in skel ──────────────────
# pctrade/end4-pC is a fork of the ii shell config. It lives next to ii in
# ~/.config/quickshell and does not modify it; which one runs is decided by
@@ -114,6 +134,29 @@ if [[ ! -d "${SKEL}/.config/quickshell/end4-pC" ]]; then
git clone --depth=1 https://github.com/pctrade/end4-pC.git \
"${SKEL}/.config/quickshell/end4-pC"
fi
# The fork's colour/wallpaper/kvantum scripts still hard-code
# QUICKSHELL_CONFIG_NAME="ii", so they'd read and write ~/.config/quickshell/ii
# instead of end4-pC. Point them at the fork. Re-running is a no-op.
mapfile -t PC_II_SCRIPTS < <(grep -rl --exclude-dir=.git \
'^QUICKSHELL_CONFIG_NAME="ii"$' "${SKEL}/.config/quickshell/end4-pC" || true)
if (( ${#PC_II_SCRIPTS[@]} )); then
echo "[customize] Pointing ${#PC_II_SCRIPTS[@]} end4-pC scripts at end4-pC..."
sed -i 's/^QUICKSHELL_CONFIG_NAME="ii"$/QUICKSHELL_CONFIG_NAME="end4-pC"/' \
"${PC_II_SCRIPTS[@]}"
fi
# Default wallpaper: end4-pC's first run (services/FirstRunExperience.qml)
# feeds assets/images/default_wallpaper.png to switchwall.sh, so replace that
# image with the one shipped in skel's ~/Pictures/Wallpapers.
DEFAULT_WALL="${SKEL}/Pictures/Wallpapers/Dynamic-Wallpapers/Dark/japan-street-Dark.png"
PC_DEFAULT_WALL="${SKEL}/.config/quickshell/end4-pC/assets/images/default_wallpaper.png"
if [[ ! -f "${DEFAULT_WALL}" ]]; then
echo "[customize] Default wallpaper ${DEFAULT_WALL} is missing" >&2
exit 1
fi
if ! cmp -s "${DEFAULT_WALL}" "${PC_DEFAULT_WALL}"; then
echo "[customize] Setting end4-pC default wallpaper to ${DEFAULT_WALL##*/}..."
install -Dm644 "${DEFAULT_WALL}" "${PC_DEFAULT_WALL}"
fi
# ── Default quickshell config: ii -> end4-pC ─────────────────────────────────
# alvin-install copies this staged repo onto the target and runs `./setup
@@ -152,6 +195,36 @@ chmod 440 /etc/sudoers.d/99-ii-builder
# so the tree must be owned by the account that runs it.
chown -R "${BUILD_USER}:${BUILD_USER}" "${DOTS_REPO}"
# yay 13 (libalpm via purego/dyalpm) can SIGSEGV in alpm_release() at exit,
# *after* the transaction and its hooks completed (failed CI run: crash in
# dyalpm handle.Release). end-4 sees exit 2 and aborts. This shim, put first
# on PATH for the install-deps run only, turns a failed plain `yay -S <pkgs>`
# into success when every target is installed afterwards (pacman -T); any
# other failure keeps yay's exit code. It lives in /tmp and is removed after.
YAY_SHIM_DIR="$(mktemp -d /tmp/ii-yay-shim.XXXXXX)"
cat > "${YAY_SHIM_DIR}/yay" <<'EOF'
#!/bin/bash
"${YAY_SHIM_REAL:-/usr/bin/yay}" "$@"
rc=$?
(( rc == 0 )) && exit 0
sync=0
targets=()
for a in "$@"; do
case "$a" in
-S|--sync) sync=1 ;;
-S*) exit "$rc" ;; # -Ss/-Si/-Syu/...: not a plain install
-*) ;;
*) targets+=("$a") ;;
esac
done
if (( sync && ${#targets[@]} )) && pacman -T -- "${targets[@]}" >/dev/null; then
echo "[yay-shim] yay exited ${rc}, but all ${#targets[@]} targets are installed - continuing" >&2
exit 0
fi
exit "$rc"
EOF
chmod 755 "${YAY_SHIM_DIR}" "${YAY_SHIM_DIR}/yay"
# -f: never prompt (ask=false); -s: skip "pacman -Syu";
# --skip-plasmaintg: optional Firefox widget that pulls 410 pkgs / 526 MiB of
# KDE packages onto a non-KDE system;
@@ -160,11 +233,14 @@ chown -R "${BUILD_USER}:${BUILD_USER}" "${DOTS_REPO}"
# shellcheck disable=SC2024 # the redirect is meant for the child, not sudo
if ! sudo -u "${BUILD_USER}" env HOME="/home/${BUILD_USER}" \
GIT_TERMINAL_PROMPT=0 \
PATH="${YAY_SHIM_DIR}:/usr/local/sbin:/usr/local/bin:/usr/bin" \
bash -c "cd ${DOTS_REPO} && ./setup install-deps -f -s --skip-plasmaintg" \
< <(yes e); then
rm -rf "${YAY_SHIM_DIR}"
echo "[customize] end-4 ./setup install-deps failed" >&2
exit 1
fi
rm -rf "${YAY_SHIM_DIR}"
# ── Harvest the packages install-deps just built into the in-image local repo ─
# The live /etc/pacman.conf points [local-aur] at /opt/localrepo; without the
@@ -217,11 +293,13 @@ fi
# Rebuild the repo database (CI/update.sh ship a pre-built one alongside the
# packages) and refresh the live system's copy of it. No network needed: the
# remote repos were synced during pacstrap.
# remote repos were synced during pacstrap. No -R: the loop above already
# deleted the replaced archives, so repo-add's own cleanup only logged a
# spurious "Cannot remove file" ERROR.
local_pkgs=(/opt/localrepo/*.pkg.tar.zst)
if ((${#local_pkgs[@]} > 0)); then
echo "[customize] Rebuilding local-aur db (${#local_pkgs[@]} packages)..."
repo-add -R /opt/localrepo/local-aur.db.tar.gz "${local_pkgs[@]}"
repo-add /opt/localrepo/local-aur.db.tar.gz "${local_pkgs[@]}"
mkdir -p /var/lib/pacman/sync
cp -fL /opt/localrepo/local-aur.db /var/lib/pacman/sync/local-aur.db
if [[ -f /opt/localrepo/local-aur.files ]]; then
@@ -229,6 +307,16 @@ if ((${#local_pkgs[@]} > 0)); then
fi
fi
# ── mono certificate store ──────────────────────────────────────────────────
# mono's post_install runs cert-sync during pacstrap, before the
# post-transaction hook has generated ca-certificates.crt, so the store ships
# empty ("Couldn't retrieve the file") and mono apps reject every TLS cert.
if command -v cert-sync &>/dev/null; then
echo "[customize] Populating mono certificate store..."
cert-sync --quiet /etc/ssl/certs/ca-certificates.crt \
|| echo "[customize] WARNING: cert-sync failed, mono store left empty" >&2
fi
# ── makepkg leftovers + throwaway account do not belong in the ISO ──────────
if [[ -d "${DOTS_REPO}/sdata/dist-arch" ]]; then
find "${DOTS_REPO}/sdata/dist-arch" -mindepth 2 -maxdepth 2 -type d \
@@ -354,18 +442,18 @@ else
echo "[customize] uv not found - skipping python/wheel pre-warm."
fi
# ── Fish: ensure default shell is set for the live user ──────────────────────
# The live user (usually 'archlinux' or 'root') gets fish as default shell
# ── Fish: default shell for the live root user ───────────────────────────────
# (alvin-install creates the installed user with fish as well.)
if command -v fish &>/dev/null; then
echo "[customize] Setting fish as default shell for skel..."
echo "[customize] Setting fish as root's shell on the live medium..."
chsh -s /usr/bin/fish root 2>/dev/null || true
fi
# ── Ensure skel directories have correct permissions ─────────────────────────
chmod 700 "${SKEL}/.config" 2>/dev/null || true
find "${SKEL}/.config" -type f -exec chmod 644 {} \; 2>/dev/null || true
find "${SKEL}/.config" -type d -exec chmod 755 {} \; 2>/dev/null || true
find "${SKEL}/.config" -name '*.sh' -exec chmod 755 {} \; 2>/dev/null || true
find "${SKEL}/.local" -type d -exec chmod 755 {} \; 2>/dev/null || true
# Only take away group/other write and make everything readable: forcing
# files to 644 stripped +x from executables that are not *.sh (python/fish
# helpers in the cloned quickshell configs).
chmod -R go-w,a+rX "${SKEL}/.config" "${SKEL}/.local" 2>/dev/null || true
find "${SKEL}/.config" -name '*.sh' -exec chmod 755 {} + 2>/dev/null || true
echo "[customize] Dotfile pre-installation complete."
File diff suppressed because it is too large Load Diff
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env bash
# pre-commit hook: run ShellCheck on every shell script in the repo.
#
# This mirrors the CI check in .gitea/workflows/tests.yaml so the local
# lint and the CI lint cannot drift apart. Enable it in a clone with:
#
# git config core.hooksPath githooks
set -u
if ! command -v shellcheck >/dev/null 2>&1; then
echo "pre-commit: shellcheck not found on PATH, skipping lint." >&2
echo "pre-commit: install it with 'pacman -S shellcheck'; CI still enforces it." >&2
exit 0
fi
# Same file set as CI: *.sh plus the extensionless bash scripts in
# airootfs/usr/local/bin picked up by their shebang.
# find's stderr is dropped because localrepo/end4-pkgbuilds/*/pkg is left
# at mode d--x--x--x by makepkg and prints "Permission denied" locally.
sh_files=$(
{
find . -name '*.sh' -not -path './.git/*' 2>/dev/null
find airootfs/usr/local/bin -type f ! -name '*.sh' \
-exec grep -lE '^#!(/usr/bin/env bash|/bin/bash)' {} + 2>/dev/null
} | sed '/^$/d' | sort -u
)
if [ -z "$sh_files" ]; then
echo "pre-commit: no shell scripts found."
exit 0
fi
failed=0
while IFS= read -r f; do
if shellcheck -x -s bash "$f"; then
echo " ok $f"
else
echo " FAIL $f" >&2
failed=1
fi
done <<< "$sh_files"
if [ "$failed" -ne 0 ]; then
echo "" >&2
echo "pre-commit: ShellCheck failed. Fix the issues above, or bypass with:" >&2
echo " git commit --no-verify" >&2
exit 1
fi
exit 0
+6 -2
View File
@@ -59,8 +59,12 @@ build_local_pkgbuild() {
local pkg_name
pkg_name=$(basename "${pkg_dir}")
if ls "${REPO_DIR}"/illogical-impulse-"${pkg_name}"-*.pkg.tar.zst 1>/dev/null 2>&1; then
info "Package already exists in localrepo, skipping: ${pkg_name}"
# Skip only while a built package is newer than its PKGBUILD - bumping
# e.g. quickshell's _commit must trigger a rebuild, not ship the old one.
if [[ -n "$(find "${REPO_DIR}" -maxdepth 1 \
-name "illogical-impulse-${pkg_name}-*.pkg.tar.zst" \
-newer "${pkg_dir}/PKGBUILD" -print -quit)" ]]; then
info "Package up to date in localrepo, skipping: ${pkg_name}"
return 0
fi
@@ -1 +0,0 @@
ref: refs/heads/master
@@ -1,9 +0,0 @@
[core]
repositoryformatversion = 0
filemode = true
bare = true
[remote "origin"]
url = https://github.com/end-4/MicroTeX.git
tagOpt = --no-tags
fetch = +refs/*:refs/*
mirror = true
@@ -1 +0,0 @@
Unnamed repository; edit this file 'description' to name the repository.
@@ -1,15 +0,0 @@
#!/bin/sh
#
# An example hook script to check the commit log message taken by
# applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit. The hook is
# allowed to edit the commit message file.
#
# To enable this hook, rename this file to "applypatch-msg".
. git-sh-setup
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
:
@@ -1,74 +0,0 @@
#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message. The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit. The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".
# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
# This example catches duplicate Signed-off-by lines and messages that
# would confuse 'git am'.
ret=0
test "" = "$(grep '^Signed-off-by: ' "$1" |
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
echo >&2 Duplicate Signed-off-by lines.
ret=1
}
comment_re="$(
{
git config --get-regexp "^core\.comment(char|string)\$" ||
echo '#'
} | sed -n -e '
${
s/^[^ ]* //
s|[][*./\]|\\&|g
s/^auto$/[#;@!$%^&|:]/
p
}'
)"
scissors_line="^${comment_re} -\{8,\} >8 -\{8,\}\$"
comment_line="^${comment_re}.*"
blank_line='^[ ]*$'
# Disallow lines starting with "diff -" or "Index: " in the body of the
# message. Stop looking if we see a scissors line.
line="$(sed -n -e "
# Skip comments and blank lines at the start of the file.
/${scissors_line}/q
/${comment_line}/d
/${blank_line}/d
# The first paragraph will become the subject header so
# does not need to be checked.
: subject
n
/${scissors_line}/q
/${blank_line}/!b subject
# Check the body of the message for problematic
# prefixes.
: body
n
/${scissors_line}/q
/${comment_line}/b body
/^diff -/{p;q;}
/^Index: /{p;q;}
b body
" "$1")"
if test -n "$line"
then
echo >&2 "Message contains a diff that will confuse 'git am'."
echo >&2 "To fix this indent the diff."
ret=1
fi
exit $ret
@@ -1,168 +0,0 @@
#!/usr/bin/perl
use strict;
use warnings;
use IPC::Open2;
# An example hook script to integrate Watchman
# (https://facebook.github.io/watchman/) with git to speed up detecting
# new and modified files.
#
# The hook is passed a version (currently 2) and last update token
# formatted as a string and outputs to stdout a new update token and
# all files that have been modified since the update token. Paths must
# be relative to the root of the working tree and separated by a single NUL.
#
# To enable this hook, rename this file to "query-watchman" and set
# 'git config core.fsmonitor .git/hooks/query-watchman'
#
my ($version, $last_update_token) = @ARGV;
# Uncomment for debugging
# print STDERR "$0 $version $last_update_token\n";
# Check the hook interface version
if ($version ne 2) {
die "Unsupported query-fsmonitor hook version '$version'.\n" .
"Falling back to scanning...\n";
}
my $git_work_tree = get_working_dir();
my $json_pkg;
eval {
require JSON::XS;
$json_pkg = "JSON::XS";
1;
} or do {
require JSON::PP;
$json_pkg = "JSON::PP";
};
launch_watchman();
sub launch_watchman {
my $o = watchman_query();
if (is_work_tree_watched($o)) {
output_result($o->{clock}, @{$o->{files}});
}
}
sub output_result {
my ($clockid, @files) = @_;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# binmode $fh, ":utf8";
# print $fh "$clockid\n@files\n";
# close $fh;
binmode STDOUT, ":utf8";
print $clockid;
print "\0";
local $, = "\0";
print @files;
}
sub watchman_clock {
my $response = qx/watchman clock "$git_work_tree"/;
die "Failed to get clock id on '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
return $json_pkg->new->utf8->decode($response);
}
sub watchman_query {
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
or die "open2() failed: $!\n" .
"Falling back to scanning...\n";
# In the query expression below we're asking for names of files that
# changed since $last_update_token but not from the .git folder.
#
# To accomplish this, we're using the "since" generator to use the
# recency index to select candidate nodes and "fields" to limit the
# output to file names only. Then we're using the "expression" term to
# further constrain the results.
my $last_update_line = "";
if (substr($last_update_token, 0, 1) eq "c") {
$last_update_token = "\"$last_update_token\"";
$last_update_line = qq[\n"since": $last_update_token,];
}
my $query = <<" END";
["query", "$git_work_tree", {$last_update_line
"fields": ["name"],
"expression": ["not", ["dirname", ".git"]]
}]
END
# Uncomment for debugging the watchman query
# open (my $fh, ">", ".git/watchman-query.json");
# print $fh $query;
# close $fh;
print CHLD_IN $query;
close CHLD_IN;
my $response = do {local $/; <CHLD_OUT>};
# Uncomment for debugging the watch response
# open ($fh, ">", ".git/watchman-response.json");
# print $fh $response;
# close $fh;
die "Watchman: command returned no output.\n" .
"Falling back to scanning...\n" if $response eq "";
die "Watchman: command returned invalid output: $response\n" .
"Falling back to scanning...\n" unless $response =~ /^\{/;
return $json_pkg->new->utf8->decode($response);
}
sub is_work_tree_watched {
my ($output) = @_;
my $error = $output->{error};
if ($error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
my $response = qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
$output = $json_pkg->new->utf8->decode($response);
$error = $output->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# close $fh;
# Watchman will always return all files on the first query so
# return the fast "everything is dirty" flag to git and do the
# Watchman query just to get it over with now so we won't pay
# the cost in git to look up each individual file.
my $o = watchman_clock();
$error = $o->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
output_result($o->{clock}, ("/"));
return 0;
}
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
return 1;
}
sub get_working_dir {
my $working_dir;
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
$working_dir = Win32::GetCwd();
$working_dir =~ tr/\\/\//;
} else {
require Cwd;
$working_dir = Cwd::cwd();
}
return $working_dir;
}
@@ -1,8 +0,0 @@
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
exec git update-server-info
@@ -1,14 +0,0 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed
# by applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-applypatch".
. git-sh-setup
precommit="$(git rev-parse --git-path hooks/pre-commit)"
test -x "$precommit" && exec "$precommit" ${1+"$@"}
:
@@ -1,49 +0,0 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=$(git hash-object -t tree /dev/null)
fi
# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --type=bool hooks.allownonascii)
# Redirect output to stderr.
exec 1>&2
# Cross platform projects tend to avoid non-ASCII filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
# Note that the use of brackets around a tr range is ok here, (it's
# even required, for portability to Solaris 10's /usr/bin/tr), since
# the square bracket bytes happen to fall in the designated range.
test $(git diff-index --cached --name-only --diff-filter=A -z $against |
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
cat <<\EOF
Error: Attempt to add a non-ASCII file name.
This can cause problems if you want to work with people on other platforms.
To be portable it is advisable to rename the file.
If you know what you are doing you can disable this check using:
git config hooks.allownonascii true
EOF
exit 1
fi
# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --
@@ -1,13 +0,0 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git merge" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message to
# stderr if it wants to stop the merge commit.
#
# To enable this hook, rename this file to "pre-merge-commit".
. git-sh-setup
test -x "$GIT_DIR/hooks/pre-commit" &&
exec "$GIT_DIR/hooks/pre-commit"
:
@@ -1,53 +0,0 @@
#!/bin/sh
# An example hook script to verify what is about to be pushed. Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
# <local ref> <local oid> <remote ref> <remote oid>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).
remote="$1"
url="$2"
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
while read local_ref local_oid remote_ref remote_oid
do
if test "$local_oid" = "$zero"
then
# Handle delete
:
else
if test "$remote_oid" = "$zero"
then
# New branch, examine all commits
range="$local_oid"
else
# Update to existing branch, examine new commits
range="$remote_oid..$local_oid"
fi
# Check for WIP commit
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
if test -n "$commit"
then
echo >&2 "Found WIP commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0
@@ -1,169 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2006, 2008 Junio C Hamano
#
# The "pre-rebase" hook is run just before "git rebase" starts doing
# its job, and can prevent the command from running by exiting with
# non-zero status.
#
# The hook is called with the following parameters:
#
# $1 -- the upstream the series was forked from.
# $2 -- the branch being rebased (or empty when rebasing the current branch).
#
# This sample shows how to prevent topic branches that are already
# merged to 'next' branch from getting rebased, because allowing it
# would result in rebasing already published history.
publish=next
basebranch="$1"
if test "$#" = 2
then
topic="refs/heads/$2"
else
topic=`git symbolic-ref HEAD` ||
exit 0 ;# we do not interrupt rebasing detached HEAD
fi
case "$topic" in
refs/heads/??/*)
;;
*)
exit 0 ;# we do not interrupt others.
;;
esac
# Now we are dealing with a topic branch being rebased
# on top of master. Is it OK to rebase it?
# Does the topic really exist?
git show-ref -q "$topic" || {
echo >&2 "No such branch $topic"
exit 1
}
# Is topic fully merged to master?
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
if test -z "$not_in_master"
then
echo >&2 "$topic is fully merged to master; better remove it."
exit 1 ;# we could allow it, but there is no point.
fi
# Is topic ever merged to next? If so you should not be rebasing it.
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
only_next_2=`git rev-list ^master ${publish} | sort`
if test "$only_next_1" = "$only_next_2"
then
not_in_topic=`git rev-list "^$topic" master`
if test -z "$not_in_topic"
then
echo >&2 "$topic is already up to date with master"
exit 1 ;# we could allow it, but there is no point.
else
exit 0
fi
else
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
/usr/bin/perl -e '
my $topic = $ARGV[0];
my $msg = "* $topic has commits already merged to public branch:\n";
my (%not_in_next) = map {
/^([0-9a-f]+) /;
($1 => 1);
} split(/\n/, $ARGV[1]);
for my $elem (map {
/^([0-9a-f]+) (.*)$/;
[$1 => $2];
} split(/\n/, $ARGV[2])) {
if (!exists $not_in_next{$elem->[0]}) {
if ($msg) {
print STDERR $msg;
undef $msg;
}
print STDERR " $elem->[1]\n";
}
}
' "$topic" "$not_in_next" "$not_in_master"
exit 1
fi
<<\DOC_END
This sample hook safeguards topic branches that have been
published from being rewound.
The workflow assumed here is:
* Once a topic branch forks from "master", "master" is never
merged into it again (either directly or indirectly).
* Once a topic branch is fully cooked and merged into "master",
it is deleted. If you need to build on top of it to correct
earlier mistakes, a new topic branch is created by forking at
the tip of the "master". This is not strictly necessary, but
it makes it easier to keep your history simple.
* Whenever you need to test or publish your changes to topic
branches, merge them into "next" branch.
The script, being an example, hardcodes the publish branch name
to be "next", but it is trivial to make it configurable via
$GIT_DIR/config mechanism.
With this workflow, you would want to know:
(1) ... if a topic branch has ever been merged to "next". Young
topic branches can have stupid mistakes you would rather
clean up before publishing, and things that have not been
merged into other branches can be easily rebased without
affecting other people. But once it is published, you would
not want to rewind it.
(2) ... if a topic branch has been fully merged to "master".
Then you can delete it. More importantly, you should not
build on top of it -- other people may already want to
change things related to the topic as patches against your
"master", so if you need further changes, it is better to
fork the topic (perhaps with the same name) afresh from the
tip of "master".
Let's look at this example:
o---o---o---o---o---o---o---o---o---o "next"
/ / / /
/ a---a---b A / /
/ / / /
/ / c---c---c---c B /
/ / / \ /
/ / / b---b C \ /
/ / / / \ /
---o---o---o---o---o---o---o---o---o---o---o "master"
A, B and C are topic branches.
* A has one fix since it was merged up to "next".
* B has finished. It has been fully merged up to "master" and "next",
and is ready to be deleted.
* C has not merged to "next" at all.
We would want to allow C to be rebased, refuse A, and encourage
B to be deleted.
To compute (1):
git rev-list ^master ^topic next
git rev-list ^master next
if these match, topic has not merged in next at all.
To compute (2):
git rev-list master..topic
if this is empty, it is fully merged to "master".
DOC_END
@@ -1,24 +0,0 @@
#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".
if test -n "$GIT_PUSH_OPTION_COUNT"
then
i=0
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
do
eval "value=\$GIT_PUSH_OPTION_$i"
case "$value" in
echoback=*)
echo "echo from the pre-receive-hook: ${value#*=}" >&2
;;
reject)
exit 1
esac
i=$((i + 1))
done
fi
@@ -1,42 +0,0 @@
#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".
# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output. It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited. This is rarely a good idea.
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
# case "$COMMIT_SOURCE,$SHA1" in
# ,|template,)
# /usr/bin/perl -i.bak -pe '
# print "\n" . `git diff --cached --name-status -r`
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
# *) ;;
# esac
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
# if test -z "$COMMIT_SOURCE"
# then
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
# fi
@@ -1,78 +0,0 @@
#!/bin/sh
# An example hook script to update a checked-out tree on a git push.
#
# This hook is invoked by git-receive-pack(1) when it reacts to git
# push and updates reference(s) in its repository, and when the push
# tries to update the branch that is currently checked out and the
# receive.denyCurrentBranch configuration variable is set to
# updateInstead.
#
# By default, such a push is refused if the working tree and the index
# of the remote repository has any difference from the currently
# checked out commit; when both the working tree and the index match
# the current commit, they are updated to match the newly pushed tip
# of the branch. This hook is to be used to override the default
# behaviour; however the code below reimplements the default behaviour
# as a starting point for convenient modification.
#
# The hook receives the commit with which the tip of the current
# branch is going to be updated:
commit=$1
# It can exit with a non-zero status to refuse the push (when it does
# so, it must not modify the index or the working tree).
die () {
echo >&2 "$*"
exit 1
}
# Or it can make any necessary changes to the working tree and to the
# index to bring them to the desired state when the tip of the current
# branch is updated to the new commit, and exit with a zero status.
#
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
# in order to emulate git fetch that is run in the reverse direction
# with git push, as the two-tree form of git read-tree -u -m is
# essentially the same as git switch or git checkout that switches
# branches while keeping the local changes in the working tree that do
# not interfere with the difference between the branches.
# The below is a more-or-less exact translation to shell of the C code
# for the default behaviour for git's push-to-checkout hook defined in
# the push_to_deploy() function in builtin/receive-pack.c.
#
# Note that the hook will be executed from the repository directory,
# not from the working tree, so if you want to perform operations on
# the working tree, you will have to adapt your code accordingly, e.g.
# by adding "cd .." or using relative paths.
if ! git update-index -q --ignore-submodules --refresh
then
die "Up-to-date check failed"
fi
if ! git diff-files --quiet --ignore-submodules --
then
die "Working directory has unstaged changes"
fi
# This is a rough translation of:
#
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
if git cat-file -e HEAD 2>/dev/null
then
head=HEAD
else
head=$(git hash-object -t tree --stdin </dev/null)
fi
if ! git diff-index --quiet --cached --ignore-submodules $head --
then
die "Working directory has staged changes"
fi
if ! git read-tree -u -m "$commit"
then
die "Could not update working tree to new HEAD"
fi
@@ -1,77 +0,0 @@
#!/bin/sh
# An example hook script to validate a patch (and/or patch series) before
# sending it via email.
#
# The hook should exit with non-zero status after issuing an appropriate
# message if it wants to prevent the email(s) from being sent.
#
# To enable this hook, rename this file to "sendemail-validate".
#
# By default, it will only check that the patch(es) can be applied on top of
# the default upstream branch without conflicts in a secondary worktree. After
# validation (successful or not) of the last patch of a series, the worktree
# will be deleted.
#
# The following config variables can be set to change the default remote and
# remote ref that are used to apply the patches against:
#
# sendemail.validateRemote (default: origin)
# sendemail.validateRemoteRef (default: HEAD)
#
# Replace the TODO placeholders with appropriate checks according to your
# needs.
validate_cover_letter () {
file="$1"
# TODO: Replace with appropriate checks (e.g. spell checking).
true
}
validate_patch () {
file="$1"
# Ensure that the patch applies without conflicts.
git am -3 "$file" || return
# TODO: Replace with appropriate checks for this patch
# (e.g. checkpatch.pl).
true
}
validate_series () {
# TODO: Replace with appropriate checks for the whole series
# (e.g. quick build, coding style checks, etc.).
true
}
# main -------------------------------------------------------------------------
if test "$GIT_SENDEMAIL_FILE_COUNTER" = 1
then
remote=$(git config --default origin --get sendemail.validateRemote) &&
ref=$(git config --default HEAD --get sendemail.validateRemoteRef) &&
worktree=$(mktemp --tmpdir -d sendemail-validate.XXXXXXX) &&
git worktree add -fd --checkout "$worktree" "refs/remotes/$remote/$ref" &&
git config --replace-all sendemail.validateWorktree "$worktree"
else
worktree=$(git config --get sendemail.validateWorktree)
fi || {
echo "sendemail-validate: error: failed to prepare worktree" >&2
exit 1
}
unset GIT_DIR GIT_WORK_TREE
cd "$worktree" &&
if grep -q "^diff --git " "$1"
then
validate_patch "$1"
else
validate_cover_letter "$1"
fi &&
if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL"
then
git config --unset-all sendemail.validateWorktree &&
trap 'git worktree remove -ff "$worktree"' EXIT &&
validate_series
fi
@@ -1,128 +0,0 @@
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
# This boolean sets whether unannotated tags will be allowed into the
# repository. By default they won't be.
# hooks.allowdeletetag
# This boolean sets whether deleting tags will be allowed in the
# repository. By default they won't be.
# hooks.allowmodifytag
# This boolean sets whether a tag may be modified after creation. By default
# it won't be.
# hooks.allowdeletebranch
# This boolean sets whether deleting branches will be allowed in the
# repository. By default they won't be.
# hooks.denycreatebranch
# This boolean sets whether remotely creating branches will be denied
# in the repository. By default this is allowed.
#
# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"
# --- Safety check
if [ -z "$GIT_DIR" ]; then
echo "Don't run this script from the command line." >&2
echo " (if you want, you could supply GIT_DIR then run" >&2
echo " $0 <ref> <oldrev> <newrev>)" >&2
exit 1
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
exit 1
fi
# --- Config
allowunannotated=$(git config --type=bool hooks.allowunannotated)
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)
# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
echo "*** Project description file hasn't been set" >&2
exit 1
;;
esac
# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
if [ "$newrev" = "$zero" ]; then
newrev_type=delete
else
newrev_type=$(git cat-file -t $newrev)
fi
case "$refname","$newrev_type" in
refs/tags/*,commit)
# un-annotated tag
short_refname=${refname##refs/tags/}
if [ "$allowunannotated" != "true" ]; then
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
exit 1
fi
;;
refs/tags/*,delete)
# delete tag
if [ "$allowdeletetag" != "true" ]; then
echo "*** Deleting a tag is not allowed in this repository" >&2
exit 1
fi
;;
refs/tags/*,tag)
# annotated tag
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
then
echo "*** Tag '$refname' already exists." >&2
echo "*** Modifying a tag is not allowed in this repository." >&2
exit 1
fi
;;
refs/heads/*,commit)
# branch
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
echo "*** Creating a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/remotes/*,commit)
# tracking branch
;;
refs/remotes/*,delete)
# delete tracking branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
exit 1
fi
;;
*)
# Anything else (is there anything else?)
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
exit 1
;;
esac
# --- Finished
exit 0
@@ -1 +0,0 @@
* -export-subst -export-ignore
@@ -1,6 +0,0 @@
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
@@ -1,2 +0,0 @@
# pack-refs with: peeled fully-peeled sorted
e8c6e58b1306119e51297b02f0b449fa7300416d refs/heads/master
@@ -18,6 +18,8 @@ depends=(
makedepends=("git" "cmake")
source=("git+${url}.git")
sha256sums=("SKIP")
# -O3 + LTO (CachyOS makepkg.conf) make GCC 16.2 ICE on gtkmm_main.cpp
options=(!lto)
prepare() {
cd $_pkgname
@@ -26,6 +28,7 @@ prepare() {
}
build() {
export CFLAGS="${CFLAGS//-O3/-O2}" CXXFLAGS="${CXXFLAGS//-O3/-O2}"
cd $_pkgname
cmake -B build -S . -DCMAKE_BUILD_TYPE=None
cmake --build build
Submodule localrepo/end4-pkgbuilds/microtex-git/src/MicroTeX deleted from f1dc9f74bb
@@ -1,52 +0,0 @@
# Generated by makepkg 7.1.0
# using fakeroot version 1.37.2
pkgname = illogical-impulse-quickshell-git
pkgbase = illogical-impulse-quickshell-git
xdata = pkgtype=pkg
pkgver = 0.1.0.r1-9
pkgdesc = quickshell-git pinned commit and extra deps for illogical-impulse
url = https://git.outfoxxed.me/quickshell/quickshell
builddate = 1791439825
packager = Unknown Packager
size = 198896342
arch = x86_64
license = LGPL-3.0-only
group = illogical-impulse
conflict = quickshell
conflict = quickshell-git
provides = quickshell
provides = quickshell-git
depend = cpptrace
depend = jemalloc
depend = mesa
depend = qt6-declarative
depend = qt6-base
depend = qt6-svg
depend = libdrm
depend = libpipewire
depend = libxcb
depend = wayland
depend = qt6-5compat
depend = qt6-avif-image-plugin
depend = qt6-imageformats
depend = qt6-multimedia
depend = qt6-positioning
depend = qt6-quicktimeline
depend = qt6-sensors
depend = qt6-svg
depend = qt6-tools
depend = qt6-translations
depend = qt6-virtualkeyboard
depend = qt6-wayland
depend = kirigami
depend = kdialog
depend = syntax-highlighting
makedepend = cli11
makedepend = cmake
makedepend = git
makedepend = ninja
makedepend = qt6-shadertools
makedepend = spirv-tools
makedepend = vulkan-headers
makedepend = wayland
makedepend = wayland-protocols
@@ -1 +0,0 @@
/usr/bin/quickshell
@@ -1,8 +0,0 @@
module Quickshell.Bluetooth
linktarget quickshell-bluetoothplugin
optional plugin quickshell-bluetoothplugin
classname Quickshell_BluetoothPlugin
typeinfo quickshell-bluetooth.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Bluetooth/
@@ -1,411 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "adapter.hpp"
lineNumber: 57
name: "qs::bluetooth::BluetoothAdapter"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Bluetooth/BluetoothAdapter 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "name"
type: "QString"
bindable: "bindableName"
read: "default"
notify: "nameChanged"
index: 0
lineNumber: 63
isReadonly: true
}
Property {
name: "enabled"
type: "bool"
read: "enabled"
write: "setEnabled"
notify: "enabledChanged"
index: 1
lineNumber: 65
}
Property {
name: "state"
type: "BluetoothAdapterState::Enum"
bindable: "bindableState"
read: "default"
notify: "stateChanged"
index: 2
lineNumber: 67
isReadonly: true
}
Property {
name: "discoverable"
type: "bool"
read: "discoverable"
write: "setDiscoverable"
notify: "discoverableChanged"
index: 3
lineNumber: 69
}
Property {
name: "discoverableTimeout"
type: "uint"
read: "discoverableTimeout"
write: "setDiscoverableTimeout"
notify: "discoverableTimeoutChanged"
index: 4
lineNumber: 72
}
Property {
name: "discovering"
type: "bool"
read: "discovering"
write: "setDiscovering"
notify: "discoveringChanged"
index: 5
lineNumber: 74
}
Property {
name: "pairable"
type: "bool"
read: "pairable"
write: "setPairable"
notify: "pairableChanged"
index: 6
lineNumber: 79
}
Property {
name: "pairableTimeout"
type: "uint"
read: "pairableTimeout"
write: "setPairableTimeout"
notify: "pairableTimeoutChanged"
index: 7
lineNumber: 82
}
Property {
name: "devices"
type: "UntypedObjectModel"
isPointer: true
read: "devices"
index: 8
lineNumber: 85
isReadonly: true
isPropertyConstant: true
}
Property {
name: "adapterId"
type: "QString"
read: "adapterId"
index: 9
lineNumber: 87
isReadonly: true
isPropertyConstant: true
}
Property {
name: "dbusPath"
type: "QString"
read: "path"
index: 10
lineNumber: 89
isReadonly: true
isPropertyConstant: true
}
Signal { name: "nameChanged"; lineNumber: 136 }
Signal { name: "enabledChanged"; lineNumber: 137 }
Signal { name: "stateChanged"; lineNumber: 138 }
Signal { name: "discoverableChanged"; lineNumber: 139 }
Signal { name: "discoverableTimeoutChanged"; lineNumber: 140 }
Signal { name: "discoveringChanged"; lineNumber: 141 }
Signal { name: "pairableChanged"; lineNumber: 142 }
Signal { name: "pairableTimeoutChanged"; lineNumber: 143 }
}
Component {
file: "adapter.hpp"
lineNumber: 15
name: "qs::bluetooth::BluetoothAdapterState"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Bluetooth/BluetoothAdapterState 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 21
values: [
"Disabled",
"Enabled",
"Enabling",
"Disabling",
"Blocked"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 35
Parameter { name: "state"; type: "BluetoothAdapterState::Enum" }
}
}
Component {
file: "device.hpp"
lineNumber: 55
name: "qs::bluetooth::BluetoothDevice"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Bluetooth/BluetoothDevice 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "address"
type: "QString"
bindable: "bindableAddress"
read: "default"
notify: "addressChanged"
index: 0
lineNumber: 61
isReadonly: true
}
Property {
name: "name"
type: "QString"
read: "name"
write: "setName"
notify: "nameChanged"
index: 1
lineNumber: 66
}
Property {
name: "deviceName"
type: "QString"
bindable: "bindableDeviceName"
read: "default"
notify: "deviceNameChanged"
index: 2
lineNumber: 69
isReadonly: true
}
Property {
name: "icon"
type: "QString"
bindable: "bindableIcon"
read: "default"
notify: "iconChanged"
index: 3
lineNumber: 71
isReadonly: true
}
Property {
name: "state"
type: "BluetoothDeviceState::Enum"
bindable: "bindableState"
read: "default"
notify: "stateChanged"
index: 4
lineNumber: 73
isReadonly: true
}
Property {
name: "connected"
type: "bool"
read: "connected"
write: "setConnected"
notify: "connectedChanged"
index: 5
lineNumber: 79
}
Property {
name: "paired"
type: "bool"
bindable: "bindablePaired"
read: "default"
notify: "pairedChanged"
index: 6
lineNumber: 83
isReadonly: true
}
Property {
name: "bonded"
type: "bool"
bindable: "bindableBonded"
read: "default"
notify: "bondedChanged"
index: 7
lineNumber: 85
isReadonly: true
}
Property {
name: "pairing"
type: "bool"
read: "pairing"
notify: "pairingChanged"
index: 8
lineNumber: 89
isReadonly: true
}
Property {
name: "trusted"
type: "bool"
read: "trusted"
write: "setTrusted"
notify: "trustedChanged"
index: 9
lineNumber: 92
}
Property {
name: "blocked"
type: "bool"
read: "blocked"
write: "setBlocked"
notify: "blockedChanged"
index: 10
lineNumber: 95
}
Property {
name: "wakeAllowed"
type: "bool"
read: "wakeAllowed"
write: "setWakeAllowed"
notify: "wakeAllowedChanged"
index: 11
lineNumber: 97
}
Property {
name: "batteryAvailable"
type: "bool"
read: "batteryAvailable"
notify: "batteryAvailableChanged"
index: 12
lineNumber: 99
isReadonly: true
}
Property {
name: "battery"
type: "double"
bindable: "bindableBattery"
read: "default"
notify: "batteryChanged"
index: 13
lineNumber: 101
isReadonly: true
}
Property {
name: "adapter"
type: "BluetoothAdapter"
isPointer: true
read: "adapter"
notify: "adapterChanged"
index: 14
lineNumber: 103
isReadonly: true
}
Property {
name: "dbusPath"
type: "QString"
read: "path"
index: 15
lineNumber: 105
isReadonly: true
isPropertyConstant: true
}
Signal { name: "addressChanged"; lineNumber: 167 }
Signal { name: "deviceNameChanged"; lineNumber: 168 }
Signal { name: "nameChanged"; lineNumber: 169 }
Signal { name: "connectedChanged"; lineNumber: 170 }
Signal { name: "stateChanged"; lineNumber: 171 }
Signal { name: "pairedChanged"; lineNumber: 172 }
Signal { name: "bondedChanged"; lineNumber: 173 }
Signal { name: "pairingChanged"; lineNumber: 174 }
Signal { name: "trustedChanged"; lineNumber: 175 }
Signal { name: "blockedChanged"; lineNumber: 176 }
Signal { name: "wakeAllowedChanged"; lineNumber: 177 }
Signal { name: "iconChanged"; lineNumber: 178 }
Signal { name: "batteryAvailableChanged"; lineNumber: 179 }
Signal { name: "batteryChanged"; lineNumber: 180 }
Signal { name: "adapterChanged"; lineNumber: 181 }
Method { name: "connect"; lineNumber: 112 }
Method { name: "disconnect"; lineNumber: 114 }
Method { name: "pair"; lineNumber: 118 }
Method { name: "cancelPair"; lineNumber: 120 }
Method { name: "forget"; lineNumber: 122 }
}
Component {
file: "device.hpp"
lineNumber: 14
name: "qs::bluetooth::BluetoothDeviceState"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Bluetooth/BluetoothDeviceState 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 20
values: [
"Disconnected",
"Connected",
"Disconnecting",
"Connecting"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 32
Parameter { name: "state"; type: "BluetoothDeviceState::Enum" }
}
}
Component {
file: "bluez.hpp"
lineNumber: 63
name: "qs::bluetooth::BluezQml"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Bluetooth/Bluetooth 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "defaultAdapter"
type: "BluetoothAdapter"
isPointer: true
bindable: "bindableDefaultAdapter"
read: "default"
notify: "defaultAdapterChanged"
index: 0
lineNumber: 69
isReadonly: true
}
Property {
name: "adapters"
type: "UntypedObjectModel"
isPointer: true
read: "adapters"
index: 1
lineNumber: 72
isReadonly: true
isPropertyConstant: true
}
Property {
name: "devices"
type: "UntypedObjectModel"
isPointer: true
read: "devices"
index: 2
lineNumber: 76
isReadonly: true
isPropertyConstant: true
}
Signal { name: "defaultAdapterChanged"; lineNumber: 80 }
}
}
@@ -1,10 +0,0 @@
module Quickshell.DBusMenu
linktarget quickshell-dbusmenuplugin
optional plugin quickshell-dbusmenuplugin
classname Quickshell_DBusMenuPlugin
typeinfo quickshell-dbusmenu.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/DBusMenu/
depends Quickshell
depends QtQuick
@@ -1,67 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "dbusmenu.hpp"
lineNumber: 118
name: "qs::dbus::dbusmenu::DBusMenu"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.DBusMenu/DBusMenuHandle 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "menu"
type: "qs::dbus::dbusmenu::DBusMenuItem"
isPointer: true
read: "menu"
index: 0
lineNumber: 120
isReadonly: true
isPropertyConstant: true
}
Signal { name: "iconThemePathChanged"; lineNumber: 130 }
Method {
name: "onLayoutUpdated"
lineNumber: 146
Parameter { name: "revision"; type: "uint" }
Parameter { name: "parent"; type: "int" }
}
Method {
name: "onItemPropertiesUpdated"
lineNumber: 147
Parameter { name: "updatedProps"; type: "DBusMenuItemPropertiesList" }
Parameter { name: "removedProps"; type: "DBusMenuItemPropertyNamesList" }
}
}
Component {
file: "dbusmenu.hpp"
lineNumber: 48
name: "qs::dbus::dbusmenu::DBusMenuItem"
accessSemantics: "reference"
prototype: "QsMenuEntry"
exports: ["Quickshell.DBusMenu/DBusMenuItem 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "menuHandle"
type: "qs::dbus::dbusmenu::DBusMenu"
isPointer: true
read: "menuHandle"
index: 0
lineNumber: 51
isReadonly: true
isPropertyConstant: true
}
Signal { name: "layoutUpdated"; lineNumber: 92 }
Method { name: "sendOpened"; isMethodConstant: true; lineNumber: 95 }
Method { name: "sendClosed"; isMethodConstant: true; lineNumber: 96 }
Method { name: "sendTriggered"; isMethodConstant: true; lineNumber: 97 }
Method { name: "updateLayout"; isMethodConstant: true; lineNumber: 64 }
}
}
@@ -1,10 +0,0 @@
module Quickshell.Hyprland._FocusGrab
linktarget quickshell-hyprland-focus-grabplugin
optional plugin quickshell-hyprland-focus-grabplugin
classname Quickshell_Hyprland__FocusGrabPlugin
typeinfo quickshell-hyprland-focus-grab.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Hyprland/_FocusGrab/
depends Quickshell
depends QtQuick
@@ -1,48 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 55
name: "qs::hyprland::HyprlandFocusGrab"
accessSemantics: "reference"
prototype: "QObject"
interfaces: ["QQmlParserStatus"]
exports: ["Quickshell.Hyprland._FocusGrab/HyprlandFocusGrab 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "active"
type: "bool"
read: "isActive"
write: "setActive"
notify: "activeChanged"
index: 0
lineNumber: 68
}
Property {
name: "windows"
type: "QObjectList"
read: "windows"
write: "setWindows"
notify: "windowsChanged"
index: 1
lineNumber: 70
}
Signal { name: "cleared"; lineNumber: 90 }
Signal { name: "activeChanged"; lineNumber: 92 }
Signal { name: "windowsChanged"; lineNumber: 93 }
Method { name: "onGrabActivated"; lineNumber: 96 }
Method { name: "onGrabCleared"; lineNumber: 97 }
Method { name: "onProxyConnected"; lineNumber: 98 }
Method {
name: "onObjectDestroyed"
lineNumber: 99
Parameter { name: "object"; type: "QObject"; isPointer: true }
}
}
}
@@ -1,9 +0,0 @@
module Quickshell.Hyprland._GlobalShortcuts
linktarget quickshell-hyprland-global-shortcutsplugin
optional plugin quickshell-hyprland-global-shortcutsplugin
classname Quickshell_Hyprland__GlobalShortcutsPlugin
typeinfo quickshell-hyprland-global-shortcuts.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Hyprland/_GlobalShortcuts/
depends QtQuick
@@ -1,72 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 35
name: "qs::hyprland::global_shortcuts::GlobalShortcut"
accessSemantics: "reference"
prototype: "PostReloadHook"
exports: ["Quickshell.Hyprland._GlobalShortcuts/GlobalShortcut 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "pressed"
type: "bool"
read: "isPressed"
notify: "pressedChanged"
index: 0
lineNumber: 41
isReadonly: true
}
Property {
name: "appid"
type: "QString"
read: "appid"
write: "setAppid"
notify: "appidChanged"
index: 1
lineNumber: 47
}
Property {
name: "name"
type: "QString"
read: "name"
write: "setName"
notify: "nameChanged"
index: 2
lineNumber: 50
}
Property {
name: "description"
type: "QString"
read: "description"
write: "setDescription"
notify: "descriptionChanged"
index: 3
lineNumber: 53
}
Property {
name: "triggerDescription"
type: "QString"
read: "triggerDescription"
write: "setTriggerDescription"
notify: "triggerDescriptionChanged"
index: 4
lineNumber: 55
}
Signal { name: "pressed"; lineNumber: 82 }
Signal { name: "released"; lineNumber: 84 }
Signal { name: "pressedChanged"; lineNumber: 86 }
Signal { name: "appidChanged"; lineNumber: 87 }
Signal { name: "nameChanged"; lineNumber: 88 }
Signal { name: "descriptionChanged"; lineNumber: 89 }
Signal { name: "triggerDescriptionChanged"; lineNumber: 90 }
Method { name: "onPressed"; lineNumber: 93 }
Method { name: "onReleased"; lineNumber: 94 }
}
}
@@ -1,9 +0,0 @@
module Quickshell.Hyprland._Ipc
linktarget quickshell-hyprland-ipcplugin
optional plugin quickshell-hyprland-ipcplugin
classname Quickshell_Hyprland__IpcPlugin
typeinfo quickshell-hyprland-ipc.qmltypes
depends QtQuick
prefer :/qt/qml/Quickshell/Hyprland/_Ipc/
depends Quickshell
@@ -1,538 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "connection.hpp"
lineNumber: 40
name: "qs::hyprland::ipc::HyprlandIpcEvent"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Hyprland._Ipc/HyprlandEvent 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "name"
type: "QString"
read: "nameStr"
index: 0
lineNumber: 45
isReadonly: true
isPropertyConstant: true
}
Property {
name: "data"
type: "QString"
read: "dataStr"
index: 1
lineNumber: 47
isReadonly: true
isPropertyConstant: true
}
Method {
name: "parse"
type: "QString"
isList: true
isMethodConstant: true
lineNumber: 58
Parameter { name: "argumentCount"; type: "int" }
}
}
Component {
file: "qml.hpp"
lineNumber: 16
name: "qs::hyprland::ipc::HyprlandIpcQml"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Hyprland._Ipc/Hyprland 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "usingLua"
type: "bool"
bindable: "bindableUsingLua"
read: "default"
notify: "usingLuaChanged"
index: 0
lineNumber: 22
isReadonly: true
}
Property {
name: "requestSocketPath"
type: "QString"
read: "requestSocketPath"
index: 1
lineNumber: 24
isReadonly: true
isPropertyConstant: true
}
Property {
name: "eventSocketPath"
type: "QString"
read: "eventSocketPath"
index: 2
lineNumber: 26
isReadonly: true
isPropertyConstant: true
}
Property {
name: "focusedMonitor"
type: "qs::hyprland::ipc::HyprlandMonitor"
isPointer: true
bindable: "bindableFocusedMonitor"
read: "default"
notify: "focusedMonitorChanged"
index: 3
lineNumber: 28
isReadonly: true
}
Property {
name: "focusedWorkspace"
type: "qs::hyprland::ipc::HyprlandWorkspace"
isPointer: true
bindable: "bindableFocusedWorkspace"
read: "default"
notify: "focusedWorkspaceChanged"
index: 4
lineNumber: 30
isReadonly: true
}
Property {
name: "activeToplevel"
type: "qs::hyprland::ipc::HyprlandToplevel"
isPointer: true
bindable: "bindableActiveToplevel"
read: "default"
notify: "activeToplevelChanged"
index: 5
lineNumber: 32
isReadonly: true
}
Property {
name: "monitors"
type: "UntypedObjectModel"
isPointer: true
read: "monitors"
index: 6
lineNumber: 35
isReadonly: true
isPropertyConstant: true
}
Property {
name: "workspaces"
type: "UntypedObjectModel"
isPointer: true
read: "workspaces"
index: 7
lineNumber: 40
isReadonly: true
isPropertyConstant: true
}
Property {
name: "toplevels"
type: "UntypedObjectModel"
isPointer: true
read: "toplevels"
index: 8
lineNumber: 43
isReadonly: true
isPropertyConstant: true
}
Signal {
name: "rawEvent"
lineNumber: 89
Parameter { name: "event"; type: "qs::hyprland::ipc::HyprlandIpcEvent"; isPointer: true }
}
Signal { name: "usingLuaChanged"; lineNumber: 91 }
Signal { name: "focusedMonitorChanged"; lineNumber: 92 }
Signal { name: "focusedWorkspaceChanged"; lineNumber: 93 }
Signal { name: "activeToplevelChanged"; lineNumber: 94 }
Method {
name: "dispatch"
lineNumber: 52
Parameter { name: "request"; type: "QString" }
}
Method {
name: "monitorFor"
type: "HyprlandMonitor"
isPointer: true
lineNumber: 55
Parameter { name: "screen"; type: "QuickshellScreenInfo"; isPointer: true }
}
Method { name: "refreshMonitors"; lineNumber: 61 }
Method { name: "refreshWorkspaces"; lineNumber: 67 }
Method { name: "refreshToplevels"; lineNumber: 73 }
}
Component {
file: "monitor.hpp"
lineNumber: 17
name: "qs::hyprland::ipc::HyprlandMonitor"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Hyprland._Ipc/HyprlandMonitor 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "id"
type: "int"
bindable: "bindableId"
read: "default"
notify: "idChanged"
index: 0
lineNumber: 20
isReadonly: true
}
Property {
name: "name"
type: "QString"
bindable: "bindableName"
read: "default"
notify: "nameChanged"
index: 1
lineNumber: 21
isReadonly: true
}
Property {
name: "description"
type: "QString"
bindable: "bindableDescription"
read: "default"
notify: "descriptionChanged"
index: 2
lineNumber: 22
isReadonly: true
}
Property {
name: "x"
type: "int"
bindable: "bindableX"
read: "default"
notify: "xChanged"
index: 3
lineNumber: 23
isReadonly: true
}
Property {
name: "y"
type: "int"
bindable: "bindableY"
read: "default"
notify: "yChanged"
index: 4
lineNumber: 24
isReadonly: true
}
Property {
name: "width"
type: "int"
bindable: "bindableWidth"
read: "default"
notify: "widthChanged"
index: 5
lineNumber: 25
isReadonly: true
}
Property {
name: "height"
type: "int"
bindable: "bindableHeight"
read: "default"
notify: "heightChanged"
index: 6
lineNumber: 26
isReadonly: true
}
Property {
name: "scale"
type: "double"
bindable: "bindableScale"
read: "default"
notify: "scaleChanged"
index: 7
lineNumber: 27
isReadonly: true
}
Property {
name: "lastIpcObject"
type: "QVariantMap"
read: "lastIpcObject"
notify: "lastIpcObjectChanged"
index: 8
lineNumber: 33
isReadonly: true
}
Property {
name: "activeWorkspace"
type: "qs::hyprland::ipc::HyprlandWorkspace"
isPointer: true
bindable: "bindableActiveWorkspace"
read: "default"
notify: "activeWorkspaceChanged"
index: 9
lineNumber: 35
isReadonly: true
}
Property {
name: "focused"
type: "bool"
bindable: "bindableFocused"
read: "default"
notify: "focusedChanged"
index: 10
lineNumber: 37
isReadonly: true
}
Signal { name: "idChanged"; lineNumber: 66 }
Signal { name: "nameChanged"; lineNumber: 67 }
Signal { name: "descriptionChanged"; lineNumber: 68 }
Signal { name: "xChanged"; lineNumber: 69 }
Signal { name: "yChanged"; lineNumber: 70 }
Signal { name: "widthChanged"; lineNumber: 71 }
Signal { name: "heightChanged"; lineNumber: 72 }
Signal { name: "scaleChanged"; lineNumber: 73 }
Signal { name: "lastIpcObjectChanged"; lineNumber: 74 }
Signal { name: "activeWorkspaceChanged"; lineNumber: 75 }
Signal { name: "focusedChanged"; lineNumber: 76 }
Method { name: "onActiveWorkspaceDestroyed"; lineNumber: 79 }
}
Component {
file: "hyprland_toplevel.hpp"
lineNumber: 20
name: "qs::hyprland::ipc::HyprlandToplevel"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Hyprland._Ipc/HyprlandToplevel 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
attachedType: "qs::hyprland::ipc::HyprlandToplevel"
Property {
name: "address"
type: "QString"
read: "addressStr"
notify: "addressChanged"
index: 0
lineNumber: 28
isReadonly: true
}
Property {
name: "handle"
type: "HyprlandToplevel"
isPointer: true
read: "hyprlandHandle"
notify: "hyprlandHandleChanged"
index: 1
lineNumber: 31
isReadonly: true
}
Property {
name: "wayland"
type: "qs::wayland::toplevel::Toplevel"
isPointer: true
read: "waylandHandle"
notify: "waylandHandleChanged"
index: 2
lineNumber: 33
isReadonly: true
}
Property {
name: "title"
type: "QString"
bindable: "bindableTitle"
read: "default"
notify: "titleChanged"
index: 3
lineNumber: 35
isReadonly: true
}
Property {
name: "activated"
type: "bool"
bindable: "bindableActivated"
read: "default"
notify: "activatedChanged"
index: 4
lineNumber: 37
isReadonly: true
}
Property {
name: "urgent"
type: "bool"
bindable: "bindableUrgent"
read: "default"
notify: "urgentChanged"
index: 5
lineNumber: 39
isReadonly: true
}
Property {
name: "lastIpcObject"
type: "QVariantMap"
bindable: "bindableLastIpcObject"
read: "default"
notify: "lastIpcObjectChanged"
index: 6
lineNumber: 45
isReadonly: true
}
Property {
name: "workspace"
type: "qs::hyprland::ipc::HyprlandWorkspace"
isPointer: true
bindable: "bindableWorkspace"
read: "default"
notify: "workspaceChanged"
index: 7
lineNumber: 47
isReadonly: true
}
Property {
name: "monitor"
type: "qs::hyprland::ipc::HyprlandMonitor"
isPointer: true
bindable: "bindableMonitor"
read: "default"
notify: "monitorChanged"
index: 8
lineNumber: 49
isReadonly: true
}
Signal { name: "addressChanged"; lineNumber: 90 }
Signal { name: "waylandHandleChanged"; lineNumber: 91 }
Signal { name: "hyprlandHandleChanged"; lineNumber: 92 }
Signal { name: "titleChanged"; lineNumber: 94 }
Signal { name: "activatedChanged"; lineNumber: 95 }
Signal { name: "urgentChanged"; lineNumber: 96 }
Signal { name: "workspaceChanged"; lineNumber: 97 }
Signal { name: "monitorChanged"; lineNumber: 98 }
Signal { name: "lastIpcObjectChanged"; lineNumber: 99 }
Method { name: "onActivatedChanged"; lineNumber: 102 }
}
Component {
file: "workspace.hpp"
lineNumber: 19
name: "qs::hyprland::ipc::HyprlandWorkspace"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Hyprland._Ipc/HyprlandWorkspace 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "address"
type: "QString"
bindable: "bindableAddress"
read: "default"
notify: "addressChanged"
index: 0
lineNumber: 25
isReadonly: true
}
Property {
name: "id"
type: "int"
bindable: "bindableId"
read: "default"
notify: "idChanged"
index: 1
lineNumber: 29
isReadonly: true
}
Property {
name: "name"
type: "QString"
bindable: "bindableName"
read: "default"
notify: "nameChanged"
index: 2
lineNumber: 30
isReadonly: true
}
Property {
name: "active"
type: "bool"
bindable: "bindableActive"
read: "default"
notify: "activeChanged"
index: 3
lineNumber: 32
isReadonly: true
}
Property {
name: "focused"
type: "bool"
bindable: "bindableFocused"
read: "default"
notify: "focusedChanged"
index: 4
lineNumber: 35
isReadonly: true
}
Property {
name: "urgent"
type: "bool"
bindable: "bindableUrgent"
read: "default"
notify: "urgentChanged"
index: 5
lineNumber: 38
isReadonly: true
}
Property {
name: "hasFullscreen"
type: "bool"
bindable: "bindableHasFullscreen"
read: "default"
notify: "hasFullscreenChanged"
index: 6
lineNumber: 40
isReadonly: true
}
Property {
name: "lastIpcObject"
type: "QVariantMap"
read: "lastIpcObject"
notify: "lastIpcObjectChanged"
index: 7
lineNumber: 46
isReadonly: true
}
Property {
name: "monitor"
type: "qs::hyprland::ipc::HyprlandMonitor"
isPointer: true
bindable: "bindableMonitor"
read: "default"
notify: "monitorChanged"
index: 8
lineNumber: 47
isReadonly: true
}
Property {
name: "toplevels"
type: "UntypedObjectModel"
isPointer: true
read: "toplevels"
index: 9
lineNumber: 50
isReadonly: true
isPropertyConstant: true
}
Signal { name: "addressChanged"; lineNumber: 87 }
Signal { name: "idChanged"; lineNumber: 88 }
Signal { name: "typeChanged"; lineNumber: 89 }
Signal { name: "nameChanged"; lineNumber: 90 }
Signal { name: "activeChanged"; lineNumber: 91 }
Signal { name: "focusedChanged"; lineNumber: 92 }
Signal { name: "urgentChanged"; lineNumber: 93 }
Signal { name: "hasFullscreenChanged"; lineNumber: 94 }
Signal { name: "lastIpcObjectChanged"; lineNumber: 95 }
Signal { name: "monitorChanged"; lineNumber: 96 }
Method { name: "onMonitorDestroyed"; lineNumber: 99 }
Method { name: "updateUrgent"; lineNumber: 100 }
Method { name: "activate"; lineNumber: 67 }
}
}
@@ -1,9 +0,0 @@
module Quickshell.Hyprland._SurfaceExtensions
linktarget quickshell-hyprland-surface-extensionsplugin
optional plugin quickshell-hyprland-surface-extensionsplugin
classname Quickshell_Hyprland__SurfaceExtensionsPlugin
typeinfo quickshell-hyprland-surface-extensions.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Hyprland/_SurfaceExtensions/
depends QtQuick
@@ -1,50 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 33
name: "qs::hyprland::surface::HyprlandWindow"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Hyprland._SurfaceExtensions/HyprlandWindow 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
attachedType: "qs::hyprland::surface::HyprlandWindow"
Property {
name: "opacity"
type: "double"
read: "opacity"
write: "setOpacity"
notify: "opacityChanged"
index: 0
lineNumber: 40
}
Property {
name: "visibleMask"
type: "PendingRegion"
isPointer: true
read: "visibleMask"
write: "setVisibleMask"
notify: "visibleMaskChanged"
index: 1
lineNumber: 45
}
Signal { name: "opacityChanged"; lineNumber: 65 }
Signal { name: "visibleMaskChanged"; lineNumber: 66 }
Method { name: "onWindowConnected"; lineNumber: 69 }
Method { name: "onWindowVisibleChanged"; lineNumber: 70 }
Method { name: "onWaylandWindowDestroyed"; lineNumber: 71 }
Method { name: "onWaylandSurfaceCreated"; lineNumber: 72 }
Method { name: "onWaylandSurfaceDestroyed"; lineNumber: 73 }
Method { name: "onProxyWindowDestroyed"; lineNumber: 74 }
Method { name: "onVisibleMaskDestroyed"; lineNumber: 75 }
Method { name: "onWindowPolished"; lineNumber: 76 }
Method { name: "updateVisibleMask"; lineNumber: 77 }
}
}
@@ -1,11 +0,0 @@
module Quickshell.Hyprland
linktarget quickshell-hyprlandplugin
optional plugin quickshell-hyprlandplugin
classname Quickshell_HyprlandPlugin
typeinfo quickshell-hyprland.qmltypes
import Quickshell.Hyprland._Ipc
import Quickshell.Hyprland._FocusGrab
import Quickshell.Hyprland._GlobalShortcuts
import Quickshell.Hyprland._SurfaceExtensions
prefer :/qt/qml/Quickshell/Hyprland/
@@ -1,8 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {}
@@ -1,10 +0,0 @@
module Quickshell.I3._Ipc
linktarget quickshell-i3-ipcplugin
optional plugin quickshell-i3-ipcplugin
classname Quickshell_I3__IpcPlugin
typeinfo quickshell-i3-ipc.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/I3/_Ipc/
depends Quickshell
depends QtQuick
@@ -1,413 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "connection.hpp"
lineNumber: 41
name: "qs::i3::ipc::I3IpcEvent"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.I3._Ipc/I3Event 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "type"
type: "QString"
read: "type"
index: 0
lineNumber: 44
isReadonly: true
isPropertyConstant: true
}
Property {
name: "data"
type: "QString"
read: "data"
index: 1
lineNumber: 45
isReadonly: true
isPropertyConstant: true
}
}
Component {
file: "listener.hpp"
lineNumber: 36
name: "qs::i3::ipc::I3IpcListener"
accessSemantics: "reference"
prototype: "PostReloadHook"
exports: ["Quickshell.I3._Ipc/I3IpcListener 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "subscriptions"
type: "QString"
isList: true
read: "subscriptions"
write: "setSubscriptions"
notify: "subscriptionsChanged"
index: 0
lineNumber: 40
}
Signal {
name: "ipcEvent"
lineNumber: 55
Parameter { name: "event"; type: "I3IpcEvent"; isPointer: true }
}
Signal { name: "subscriptionsChanged"; lineNumber: 56 }
}
Component {
file: "qml.hpp"
lineNumber: 15
name: "qs::i3::ipc::I3IpcQml"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.I3._Ipc/I3 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "socketPath"
type: "QString"
read: "socketPath"
index: 0
lineNumber: 19
isReadonly: true
isPropertyConstant: true
}
Property {
name: "focusedWorkspace"
type: "qs::i3::ipc::I3Workspace"
isPointer: true
bindable: "bindableFocusedWorkspace"
read: "default"
notify: "focusedWorkspaceChanged"
index: 1
lineNumber: 21
isReadonly: true
}
Property {
name: "focusedMonitor"
type: "qs::i3::ipc::I3Monitor"
isPointer: true
bindable: "bindableFocusedMonitor"
read: "default"
notify: "focusedMonitorChanged"
index: 2
lineNumber: 22
isReadonly: true
}
Property {
name: "monitors"
type: "UntypedObjectModel"
isPointer: true
read: "monitors"
index: 3
lineNumber: 25
isReadonly: true
isPropertyConstant: true
}
Property {
name: "workspaces"
type: "UntypedObjectModel"
isPointer: true
read: "workspaces"
index: 4
lineNumber: 28
isReadonly: true
isPropertyConstant: true
}
Signal {
name: "rawEvent"
lineNumber: 70
Parameter { name: "event"; type: "I3IpcEvent"; isPointer: true }
}
Signal { name: "connected"; lineNumber: 71 }
Signal { name: "focusedWorkspaceChanged"; lineNumber: 72 }
Signal { name: "focusedMonitorChanged"; lineNumber: 73 }
Method {
name: "dispatch"
lineNumber: 37
Parameter { name: "request"; type: "QString" }
}
Method { name: "refreshMonitors"; lineNumber: 40 }
Method { name: "refreshWorkspaces"; lineNumber: 43 }
Method {
name: "findWorkspaceByName"
type: "I3Workspace"
isPointer: true
lineNumber: 46
Parameter { name: "name"; type: "QString" }
}
Method {
name: "findMonitorByName"
type: "I3Monitor"
isPointer: true
lineNumber: 49
Parameter { name: "name"; type: "QString" }
}
Method {
name: "monitorFor"
type: "I3Monitor"
isPointer: true
lineNumber: 52
Parameter { name: "screen"; type: "QuickshellScreenInfo"; isPointer: true }
}
}
Component {
file: "monitor.hpp"
lineNumber: 12
name: "qs::i3::ipc::I3Monitor"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.I3._Ipc/I3Monitor 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "id"
type: "int"
bindable: "bindableId"
read: "default"
notify: "idChanged"
index: 0
lineNumber: 16
isReadonly: true
}
Property {
name: "name"
type: "QString"
bindable: "bindableName"
read: "default"
notify: "nameChanged"
index: 1
lineNumber: 18
isReadonly: true
}
Property {
name: "power"
type: "bool"
bindable: "bindablePower"
read: "default"
notify: "powerChanged"
index: 2
lineNumber: 20
isReadonly: true
}
Property {
name: "activeWorkspace"
type: "qs::i3::ipc::I3Workspace"
isPointer: true
bindable: "bindableActiveWorkspace"
read: "default"
notify: "activeWorkspaceChanged"
index: 3
lineNumber: 22
isReadonly: true
}
Property {
name: "focusedWorkspace"
type: "qs::i3::ipc::I3Workspace"
isPointer: true
bindable: "bindableActiveWorkspace"
read: "default"
notify: "activeWorkspaceChanged"
index: 4
lineNumber: 24
isReadonly: true
}
Property {
name: "x"
type: "int"
bindable: "bindableX"
read: "default"
notify: "xChanged"
index: 5
lineNumber: 26
isReadonly: true
}
Property {
name: "y"
type: "int"
bindable: "bindableY"
read: "default"
notify: "yChanged"
index: 6
lineNumber: 28
isReadonly: true
}
Property {
name: "width"
type: "int"
bindable: "bindableWidth"
read: "default"
notify: "widthChanged"
index: 7
lineNumber: 30
isReadonly: true
}
Property {
name: "height"
type: "int"
bindable: "bindableHeight"
read: "default"
notify: "heightChanged"
index: 8
lineNumber: 32
isReadonly: true
}
Property {
name: "scale"
type: "double"
bindable: "bindableScale"
read: "default"
notify: "scaleChanged"
index: 9
lineNumber: 34
isReadonly: true
}
Property {
name: "focused"
type: "bool"
bindable: "bindableFocused"
read: "default"
notify: "focusedChanged"
index: 10
lineNumber: 36
isReadonly: true
}
Property {
name: "lastIpcObject"
type: "QVariantMap"
read: "lastIpcObject"
notify: "lastIpcObjectChanged"
index: 11
lineNumber: 40
isReadonly: true
}
Signal { name: "idChanged"; lineNumber: 68 }
Signal { name: "nameChanged"; lineNumber: 69 }
Signal { name: "powerChanged"; lineNumber: 70 }
Signal { name: "activeWorkspaceChanged"; lineNumber: 71 }
Signal { name: "xChanged"; lineNumber: 72 }
Signal { name: "yChanged"; lineNumber: 73 }
Signal { name: "widthChanged"; lineNumber: 74 }
Signal { name: "heightChanged"; lineNumber: 75 }
Signal { name: "scaleChanged"; lineNumber: 76 }
Signal { name: "lastIpcObjectChanged"; lineNumber: 77 }
Signal { name: "focusedChanged"; lineNumber: 78 }
Method { name: "onActiveWorkspaceDestroyed"; lineNumber: 81 }
}
Component {
file: "workspace.hpp"
lineNumber: 15
name: "qs::i3::ipc::I3Workspace"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.I3._Ipc/I3Workspace 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "id"
type: "int"
bindable: "bindableId"
read: "default"
notify: "idChanged"
index: 0
lineNumber: 19
isReadonly: true
}
Property {
name: "name"
type: "QString"
bindable: "bindableName"
read: "default"
notify: "nameChanged"
index: 1
lineNumber: 21
isReadonly: true
}
Property {
name: "number"
type: "int"
bindable: "bindableNumber"
read: "default"
notify: "numberChanged"
index: 2
lineNumber: 23
isReadonly: true
}
Property {
name: "num"
type: "int"
bindable: "bindableNumber"
read: "default"
notify: "numberChanged"
index: 3
lineNumber: 25
isReadonly: true
}
Property {
name: "urgent"
type: "bool"
bindable: "bindableUrgent"
read: "default"
notify: "urgentChanged"
index: 4
lineNumber: 27
isReadonly: true
}
Property {
name: "active"
type: "bool"
bindable: "bindableActive"
read: "default"
notify: "activeChanged"
index: 5
lineNumber: 29
isReadonly: true
}
Property {
name: "focused"
type: "bool"
bindable: "bindableFocused"
read: "default"
notify: "focusedChanged"
index: 6
lineNumber: 32
isReadonly: true
}
Property {
name: "monitor"
type: "qs::i3::ipc::I3Monitor"
isPointer: true
bindable: "bindableMonitor"
read: "default"
notify: "monitorChanged"
index: 7
lineNumber: 34
isReadonly: true
}
Property {
name: "lastIpcObject"
type: "QVariantMap"
read: "lastIpcObject"
notify: "lastIpcObjectChanged"
index: 8
lineNumber: 38
isReadonly: true
}
Signal { name: "idChanged"; lineNumber: 68 }
Signal { name: "nameChanged"; lineNumber: 69 }
Signal { name: "urgentChanged"; lineNumber: 70 }
Signal { name: "activeChanged"; lineNumber: 71 }
Signal { name: "focusedChanged"; lineNumber: 72 }
Signal { name: "numberChanged"; lineNumber: 73 }
Signal { name: "monitorChanged"; lineNumber: 74 }
Signal { name: "lastIpcObjectChanged"; lineNumber: 75 }
Method { name: "onMonitorDestroyed"; lineNumber: 78 }
Method { name: "activate"; lineNumber: 52 }
}
}
@@ -1,8 +0,0 @@
module Quickshell.I3
linktarget quickshell-i3plugin
optional plugin quickshell-i3plugin
classname Quickshell_I3Plugin
typeinfo quickshell-i3.qmltypes
import Quickshell.I3._Ipc
prefer :/qt/qml/Quickshell/I3/
@@ -1,8 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {}
@@ -1,53 +0,0 @@
import Quickshell.Io
FileViewInternal {
property bool preload: this.__preload;
property bool blockLoading: this.__blockLoading;
property bool blockAllReads: this.__blockAllReads;
property bool printErrors: this.__printErrors;
property string path: this.__path;
onPreloadChanged: this.__preload = preload;
onBlockLoadingChanged: this.__blockLoading = this.blockLoading;
onBlockAllReadsChanged: this.__blockAllReads = this.blockAllReads;
onPrintErrorsChanged: this.__printErrors = this.printErrors;
// Unfortunately path can't be kept as an empty string until the file loads
// without using QQmlPropertyValueInterceptor which is private. If we lean fully
// into using private code in the future, there will be no reason not to do it here.
onPathChanged: {
if (!this.preload) this.__preload = false;
this.__printErrors = this.printErrors;
this.__path = this.path;
if (this.preload) this.__preload = true;
}
// The C++ side can't force bindings to be resolved in a specific order so
// its done here. Functions are used to avoid the eager loading aspect of properties.
// Preload is set as it is below to avoid starting an async read from a preload
// if the user wants an initial blocking read.
function text(): string {
if (!this.preload) this.__preload = false;
this.__blockLoading = this.blockLoading;
this.__blockAllReads = this.blockAllReads;
this.__printErrors = this.printErrors;
this.__path = this.path;
const text = this.__text;
if (this.preload) this.__preload = true;
return text;
}
function data(): var {
if (!this.preload) this.__preload = false;
this.__blockLoading = this.blockLoading;
this.__blockAllReads = this.blockAllReads;
this.__printErrors = this.printErrors;
this.__path = this.path;
const data = this.__data;
if (this.preload) this.__preload = true;
return data;
}
}
@@ -1,11 +0,0 @@
module Quickshell.Io
linktarget quickshell-ioplugin
optional plugin quickshell-ioplugin
classname Quickshell_IoPlugin
typeinfo quickshell-io.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Io/
FileView 0.0 FileView.qml
depends Quickshell
depends QtQuick
@@ -1,642 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "datastream.hpp"
lineNumber: 15
name: "DataStream"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Io/DataStream 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "parser"
type: "DataStreamParser"
isPointer: true
read: "reader"
write: "setReader"
notify: "readerChanged"
index: 0
lineNumber: 19
}
Signal { name: "readerChanged"; lineNumber: 30 }
Method { name: "onBytesAvailable"; lineNumber: 33 }
Method { name: "onReaderDestroyed"; lineNumber: 39 }
}
Component {
file: "datastream.hpp"
lineNumber: 48
name: "DataStreamParser"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Io/DataStreamParser 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Signal {
name: "read"
lineNumber: 62
Parameter { name: "data"; type: "QString" }
}
}
Component {
file: "process.hpp"
lineNumber: 34
name: "Process"
accessSemantics: "reference"
prototype: "PostReloadHook"
exports: ["Quickshell.Io/Process 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "running"
type: "bool"
read: "isRunning"
write: "setRunning"
notify: "runningChanged"
index: 0
lineNumber: 56
}
Property {
name: "processId"
type: "QVariant"
read: "processId"
notify: "processIdChanged"
index: 1
lineNumber: 58
isReadonly: true
}
Property {
name: "command"
type: "QString"
isList: true
read: "command"
write: "setCommand"
notify: "commandChanged"
index: 2
lineNumber: 76
}
Property {
name: "workingDirectory"
type: "QString"
read: "workingDirectory"
write: "setWorkingDirectory"
notify: "workingDirectoryChanged"
index: 3
lineNumber: 84
}
Property {
name: "environment"
type: "QVariantHash"
read: "environment"
write: "setEnvironment"
notify: "environmentChanged"
index: 4
lineNumber: 105
}
Property {
name: "clearEnvironment"
type: "bool"
read: "environmentCleared"
write: "setEnvironmentCleared"
notify: "environmentClearChanged"
index: 5
lineNumber: 125
}
Property {
name: "stdout"
type: "DataStreamParser"
isPointer: true
read: "stdoutParser"
write: "setStdoutParser"
notify: "stdoutParserChanged"
index: 6
lineNumber: 128
}
Property {
name: "stderr"
type: "DataStreamParser"
isPointer: true
read: "stderrParser"
write: "setStderrParser"
notify: "stderrParserChanged"
index: 7
lineNumber: 131
}
Property {
name: "stdinEnabled"
type: "bool"
read: "stdinEnabled"
write: "setStdinEnabled"
notify: "stdinEnabledChanged"
index: 8
lineNumber: 134
}
Signal { name: "started"; lineNumber: 220 }
Signal {
name: "exited"
lineNumber: 221
Parameter { name: "exitCode"; type: "int" }
Parameter { name: "exitStatus"; type: "QProcess::ExitStatus" }
}
Signal { name: "runningChanged"; lineNumber: 223 }
Signal { name: "processIdChanged"; lineNumber: 224 }
Signal { name: "commandChanged"; lineNumber: 225 }
Signal { name: "workingDirectoryChanged"; lineNumber: 226 }
Signal { name: "environmentChanged"; lineNumber: 227 }
Signal { name: "environmentClearChanged"; lineNumber: 228 }
Signal { name: "stdoutParserChanged"; lineNumber: 229 }
Signal { name: "stderrParserChanged"; lineNumber: 230 }
Signal { name: "stdinEnabledChanged"; lineNumber: 231 }
Method { name: "onStarted"; lineNumber: 234 }
Method {
name: "onFinished"
lineNumber: 235
Parameter { name: "exitCode"; type: "int" }
Parameter { name: "exitStatus"; type: "QProcess::ExitStatus" }
}
Method {
name: "onErrorOccurred"
lineNumber: 236
Parameter { name: "error"; type: "QProcess::ProcessError" }
}
Method { name: "onStdoutReadyRead"; lineNumber: 237 }
Method { name: "onStderrReadyRead"; lineNumber: 238 }
Method { name: "onStdoutParserDestroyed"; lineNumber: 239 }
Method { name: "onStderrParserDestroyed"; lineNumber: 240 }
Method { name: "onGlobalWorkingDirectoryChanged"; lineNumber: 241 }
Method {
name: "exec"
lineNumber: 146
Parameter { name: "command"; type: "QString"; isList: true }
}
Method {
name: "exec"
lineNumber: 177
Parameter { name: "context"; type: "qs::io::process::ProcessContext" }
}
Method {
name: "signal"
lineNumber: 180
Parameter { name: "signal"; type: "int" }
}
Method {
name: "write"
lineNumber: 183
Parameter { name: "data"; type: "QString" }
}
Method { name: "startDetached"; lineNumber: 191 }
}
Component {
file: "socket.hpp"
lineNumber: 20
name: "Socket"
accessSemantics: "reference"
prototype: "DataStream"
exports: ["Quickshell.Io/Socket 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "connected"
type: "bool"
read: "isConnected"
write: "setConnected"
notify: "connectionStateChanged"
index: 0
lineNumber: 27
}
Property {
name: "path"
type: "QString"
read: "path"
write: "setPath"
notify: "pathChanged"
index: 1
lineNumber: 31
}
Signal {
name: "error"
lineNumber: 56
Parameter { name: "error"; type: "QLocalSocket::LocalSocketError" }
}
Signal { name: "connectionStateChanged"; lineNumber: 58 }
Signal { name: "pathChanged"; lineNumber: 59 }
Method { name: "onSocketConnected"; lineNumber: 65 }
Method { name: "onSocketDisconnected"; lineNumber: 66 }
Method {
name: "onSocketError"
lineNumber: 67
Parameter { name: "error"; type: "QLocalSocket::LocalSocketError" }
}
Method {
name: "write"
lineNumber: 40
Parameter { name: "data"; type: "QString" }
}
Method { name: "flush"; lineNumber: 43 }
}
Component {
file: "socket.hpp"
lineNumber: 95
name: "SocketServer"
accessSemantics: "reference"
prototype: "Reloadable"
exports: ["Quickshell.Io/SocketServer 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "active"
type: "bool"
read: "isActive"
write: "setActive"
notify: "activeStatusChanged"
index: 0
lineNumber: 103
}
Property {
name: "path"
type: "QString"
read: "path"
write: "setPath"
notify: "pathChanged"
index: 1
lineNumber: 107
}
Property {
name: "handler"
type: "QQmlComponent"
isPointer: true
read: "handler"
write: "setHandler"
notify: "handlerChanged"
index: 2
lineNumber: 114
}
Signal { name: "activeStatusChanged"; lineNumber: 134 }
Signal { name: "pathChanged"; lineNumber: 135 }
Signal { name: "handlerChanged"; lineNumber: 136 }
Method { name: "onNewConnection"; lineNumber: 139 }
}
Component {
file: "datastream.hpp"
lineNumber: 67
name: "SplitParser"
accessSemantics: "reference"
prototype: "DataStreamParser"
exports: ["Quickshell.Io/SplitParser 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "splitMarker"
type: "QString"
read: "splitMarker"
write: "setSplitMarker"
notify: "splitMarkerChanged"
index: 0
lineNumber: 73
}
Signal { name: "splitMarkerChanged"; lineNumber: 86 }
}
Component {
file: "datastream.hpp"
lineNumber: 95
name: "StdioCollector"
accessSemantics: "reference"
prototype: "DataStreamParser"
exports: ["Quickshell.Io/StdioCollector 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "text"
type: "QString"
read: "text"
notify: "dataChanged"
index: 0
lineNumber: 100
isReadonly: true
}
Property {
name: "data"
type: "QByteArray"
read: "data"
notify: "dataChanged"
index: 1
lineNumber: 105
isReadonly: true
}
Property {
name: "waitForEnd"
type: "bool"
read: "waitForEnd"
write: "setWaitForEnd"
notify: "waitForEndChanged"
index: 2
lineNumber: 107
}
Signal { name: "waitForEndChanged"; lineNumber: 122 }
Signal { name: "dataChanged"; lineNumber: 123 }
Signal { name: "streamFinished"; lineNumber: 124 }
}
Component {
file: "fileview.hpp"
lineNumber: 164
name: "qs::io::FileView"
accessSemantics: "reference"
defaultProperty: "adapter"
prototype: "QObject"
exports: ["Quickshell.Io/FileViewInternal 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "blockWrites"
type: "bool"
bindable: "bindableBlockWrites"
read: "default"
write: "default"
notify: "blockWritesChanged"
index: 0
lineNumber: 201
}
Property {
name: "atomicWrites"
type: "bool"
bindable: "bindableAtomicWrites"
read: "default"
write: "default"
notify: "atomicWritesChanged"
index: 1
lineNumber: 207
}
Property {
name: "watchChanges"
type: "bool"
bindable: "bindableWatchChanges"
read: "default"
write: "default"
notify: "watchChangesChanged"
index: 2
lineNumber: 222
}
Property {
name: "adapter"
type: "FileViewAdapter"
isPointer: true
read: "adapter"
write: "setAdapter"
notify: "adapterChanged"
index: 3
lineNumber: 230
}
Property {
name: "__path"
type: "QString"
read: "path"
write: "setPath"
notify: "pathChanged"
index: 4
lineNumber: 232
}
Property {
name: "__text"
type: "QString"
read: "text"
notify: "internalTextChanged"
index: 5
lineNumber: 233
isReadonly: true
}
Property {
name: "__data"
type: "QByteArray"
read: "data"
notify: "internalDataChanged"
index: 6
lineNumber: 234
isReadonly: true
}
Property {
name: "__preload"
type: "bool"
read: "shouldPreload"
write: "setPreload"
notify: "preloadChanged"
index: 7
lineNumber: 235
}
Property {
name: "loaded"
type: "bool"
read: "isLoadedOrAsync"
notify: "loadedOrAsyncChanged"
index: 8
lineNumber: 241
isReadonly: true
}
Property {
name: "__blockLoading"
type: "bool"
read: "blockLoading"
write: "setBlockLoading"
notify: "blockLoadingChanged"
index: 9
lineNumber: 242
}
Property {
name: "__blockAllReads"
type: "bool"
read: "blockAllReads"
write: "setBlockAllReads"
notify: "blockAllReadsChanged"
index: 10
lineNumber: 243
}
Property {
name: "__printErrors"
type: "bool"
bindable: "bindablePrintErrors"
read: "default"
write: "default"
notify: "printErrorsChanged"
index: 11
lineNumber: 244
}
Signal { name: "loaded"; lineNumber: 338 }
Signal {
name: "loadFailed"
lineNumber: 340
Parameter { name: "error"; type: "qs::io::FileViewError::Enum" }
}
Signal { name: "saved"; lineNumber: 342 }
Signal {
name: "saveFailed"
lineNumber: 344
Parameter { name: "error"; type: "qs::io::FileViewError::Enum" }
}
Signal { name: "fileChanged"; lineNumber: 346 }
Signal { name: "adapterUpdated"; lineNumber: 348 }
Signal { name: "pathChanged"; lineNumber: 350 }
Signal { name: "internalTextChanged"; lineNumber: 351 }
Signal { name: "internalDataChanged"; lineNumber: 352 }
Signal { name: "textChanged"; lineNumber: 353 }
Signal { name: "dataChanged"; lineNumber: 354 }
Signal { name: "preloadChanged"; lineNumber: 355 }
Signal { name: "loadedOrAsyncChanged"; lineNumber: 356 }
Signal { name: "blockLoadingChanged"; lineNumber: 357 }
Signal { name: "blockAllReadsChanged"; lineNumber: 358 }
Signal { name: "blockWritesChanged"; lineNumber: 359 }
Signal { name: "atomicWritesChanged"; lineNumber: 360 }
Signal { name: "printErrorsChanged"; lineNumber: 361 }
Signal { name: "watchChangesChanged"; lineNumber: 362 }
Signal { name: "adapterChanged"; lineNumber: 363 }
Method { name: "operationFinished"; lineNumber: 366 }
Method { name: "onAdapterDestroyed"; lineNumber: 367 }
Method { name: "waitForJob"; type: "bool"; lineNumber: 293 }
Method { name: "reload"; lineNumber: 298 }
Method { name: "writeAdapter"; lineNumber: 300 }
Method {
name: "setData"
lineNumber: 316
Parameter { name: "data"; type: "QByteArray" }
}
Method {
name: "setText"
lineNumber: 324
Parameter { name: "text"; type: "QString" }
}
}
Component {
file: "fileview.hpp"
lineNumber: 436
name: "qs::io::FileViewAdapter"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Io/FileViewAdapter 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Signal { name: "adapterUpdated"; lineNumber: 448 }
Method { name: "onDataChanged"; lineNumber: 451 }
}
Component {
file: "fileview.hpp"
lineNumber: 25
name: "qs::io::FileViewError"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Io/FileViewError 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 31
values: [
"Success",
"Unknown",
"FileNotFound",
"PermissionDenied",
"NotAFile"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 46
Parameter { name: "value"; type: "qs::io::FileViewError::Enum" }
}
}
Component {
file: "jsonadapter.hpp"
lineNumber: 89
name: "qs::io::JsonAdapter"
accessSemantics: "reference"
prototype: "qs::io::FileViewAdapter"
interfaces: ["QQmlParserStatus"]
exports: ["Quickshell.Io/JsonAdapter 0.0"]
exportMetaObjectRevisions: [0]
Method { name: "onPropertyChanged"; lineNumber: 104 }
}
Component {
file: "jsonadapter.hpp"
lineNumber: 19
name: "qs::io::JsonObject"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Io/JsonObject 0.0"]
exportMetaObjectRevisions: [0]
}
Component {
file: "ipchandler.hpp"
lineNumber: 222
name: "qs::io::ipc::IpcHandler"
accessSemantics: "reference"
prototype: "PostReloadHook"
exports: ["Quickshell.Io/IpcHandler 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "enabled"
type: "bool"
read: "enabled"
write: "setEnabled"
notify: "enabledChanged"
index: 0
lineNumber: 225
}
Property {
name: "target"
type: "QString"
read: "target"
write: "setTarget"
notify: "targetChanged"
index: 1
lineNumber: 228
}
Signal { name: "enabledChanged"; lineNumber: 251 }
Signal { name: "targetChanged"; lineNumber: 252 }
Method {
name: "onSignalTriggered"
isMethodConstant: true
lineNumber: 255
Parameter { name: "signal"; type: "QString" }
Parameter { name: "value"; type: "QString" }
}
}
Component {
file: "processcore.hpp"
lineNumber: 14
name: "qs::io::process::ProcessContext"
accessSemantics: "value"
exports: ["Quickshell.Io/processContext 0.0"]
isStructured: true
exportMetaObjectRevisions: [0]
Property {
name: "command"
type: "QString"
isList: true
write: "setCommand"
index: 0
lineNumber: 15
}
Property {
name: "environment"
type: "QVariantHash"
write: "setEnvironment"
index: 1
lineNumber: 16
}
Property {
name: "clearEnvironment"
type: "bool"
write: "setClearEnvironment"
index: 2
lineNumber: 17
}
Property {
name: "workingDirectory"
type: "QString"
write: "setWorkingDirectory"
index: 3
lineNumber: 18
}
Property { name: "unbindStdout"; type: "bool"; write: "setUnbindStdout"; index: 4; lineNumber: 19 }
}
}
@@ -1,9 +0,0 @@
module Quickshell.Networking
linktarget quickshell-networkplugin
optional plugin quickshell-networkplugin
classname Quickshell_NetworkingPlugin
typeinfo quickshell-network.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Networking/
depends Quickshell
@@ -1,614 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "enums.hpp"
lineNumber: 67
name: "qs::network::ConnectionFailReason"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/ConnectionFailReason 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 73
values: [
"Unknown",
"NoSecrets",
"WifiClientDisconnected",
"WifiClientFailed",
"WifiAuthTimeout",
"WifiNetworkLost"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 88
Parameter { name: "reason"; type: "ConnectionFailReason::Enum" }
}
}
Component {
file: "enums.hpp"
lineNumber: 49
name: "qs::network::ConnectionState"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/ConnectionState 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 55
values: [
"Unknown",
"Connecting",
"Connected",
"Disconnecting",
"Disconnected"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 63
Parameter { name: "state"; type: "ConnectionState::Enum" }
}
}
Component {
file: "enums.hpp"
lineNumber: 92
name: "qs::network::DeviceType"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/DeviceType 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 98
values: ["None", "Wifi", "Wired"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 104
Parameter { name: "type"; type: "DeviceType::Enum" }
}
}
Component {
file: "network.hpp"
lineNumber: 21
name: "qs::network::Network"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/Network 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "name"
type: "QString"
bindable: "bindableName"
read: "default"
notify: "nameChanged"
index: 0
lineNumber: 28
isReadonly: true
}
Property {
name: "device"
type: "NetworkDevice"
isPointer: true
read: "device"
index: 1
lineNumber: 30
isReadonly: true
isPropertyConstant: true
}
Property {
name: "nmSettings"
type: "QList<NMSettings*>"
bindable: "bindableNmSettings"
read: "default"
notify: "nmSettingsChanged"
index: 2
lineNumber: 34
isReadonly: true
}
Property {
name: "connected"
type: "bool"
bindable: "bindableConnected"
read: "default"
notify: "connectedChanged"
index: 3
lineNumber: 36
isReadonly: true
}
Property {
name: "known"
type: "bool"
bindable: "bindableKnown"
read: "default"
notify: "knownChanged"
index: 4
lineNumber: 38
isReadonly: true
}
Property {
name: "state"
type: "ConnectionState::Enum"
bindable: "bindableState"
read: "default"
notify: "stateChanged"
index: 5
lineNumber: 40
isReadonly: true
}
Property {
name: "stateChanging"
type: "bool"
bindable: "bindableStateChanging"
read: "default"
notify: "stateChangingChanged"
index: 6
lineNumber: 42
isReadonly: true
}
Signal {
name: "connectionFailed"
lineNumber: 80
Parameter { name: "reason"; type: "ConnectionFailReason::Enum" }
}
Signal { name: "nameChanged"; lineNumber: 82 }
Signal { name: "connectedChanged"; lineNumber: 83 }
Signal { name: "knownChanged"; lineNumber: 84 }
Signal { name: "stateChanged"; lineNumber: 85 }
Signal { name: "stateChangingChanged"; lineNumber: 86 }
Signal { name: "nmSettingsChanged"; lineNumber: 87 }
Signal { name: "requestConnect"; lineNumber: 88 }
Signal {
name: "requestConnectWithSettings"
lineNumber: 89
Parameter { name: "settings"; type: "NMSettings"; isPointer: true }
}
Signal { name: "requestDisconnect"; lineNumber: 90 }
Signal { name: "requestForget"; lineNumber: 91 }
Method { name: "connect"; lineNumber: 52 }
Method {
name: "connectWithSettings"
lineNumber: 56
Parameter { name: "settings"; type: "NMSettings"; isPointer: true }
}
Method { name: "disconnect"; lineNumber: 58 }
Method { name: "forget"; lineNumber: 60 }
}
Component {
file: "enums.hpp"
lineNumber: 34
name: "qs::network::NetworkBackendType"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/NetworkBackendType 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 40
values: ["None", "NetworkManager"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 45
Parameter { name: "type"; type: "NetworkBackendType::Enum" }
}
}
Component {
file: "enums.hpp"
lineNumber: 10
name: "qs::network::NetworkConnectivity"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/NetworkConnectivity 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 16
values: ["Unknown", "None", "Portal", "Limited", "Full"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 30
Parameter { name: "conn"; type: "NetworkConnectivity::Enum" }
}
}
Component {
file: "device.hpp"
lineNumber: 18
name: "qs::network::NetworkDevice"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/NetworkDevice 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "type"
type: "DeviceType::Enum"
read: "type"
index: 0
lineNumber: 28
isReadonly: true
isPropertyConstant: true
}
Property {
name: "name"
type: "QString"
bindable: "bindableName"
read: "name"
notify: "nameChanged"
index: 1
lineNumber: 30
isReadonly: true
}
Property {
name: "networks"
type: "UntypedObjectModel"
isPointer: true
read: "networks"
index: 2
lineNumber: 35
isReadonly: true
isPropertyConstant: true
}
Property {
name: "address"
type: "QString"
bindable: "bindableAddress"
read: "default"
notify: "addressChanged"
index: 3
lineNumber: 37
isReadonly: true
}
Property {
name: "connected"
type: "bool"
bindable: "bindableConnected"
read: "default"
notify: "connectedChanged"
index: 4
lineNumber: 39
isReadonly: true
}
Property {
name: "state"
type: "qs::network::ConnectionState::Enum"
bindable: "bindableState"
read: "default"
notify: "stateChanged"
index: 5
lineNumber: 41
isReadonly: true
}
Property {
name: "nmManaged"
type: "bool"
read: "nmManaged"
write: "setNmManaged"
notify: "nmManagedChanged"
index: 6
lineNumber: 45
}
Property {
name: "autoconnect"
type: "bool"
read: "autoconnect"
write: "setAutoconnect"
notify: "autoconnectChanged"
index: 7
lineNumber: 47
}
Signal { name: "requestDisconnect"; lineNumber: 74 }
Signal {
name: "requestSetAutoconnect"
lineNumber: 75
Parameter { name: "autoconnect"; type: "bool" }
}
Signal {
name: "requestSetNmManaged"
lineNumber: 76
Parameter { name: "managed"; type: "bool" }
}
Signal { name: "nameChanged"; lineNumber: 77 }
Signal { name: "addressChanged"; lineNumber: 78 }
Signal { name: "connectedChanged"; lineNumber: 79 }
Signal { name: "stateChanged"; lineNumber: 80 }
Signal { name: "nmManagedChanged"; lineNumber: 81 }
Signal { name: "autoconnectChanged"; lineNumber: 82 }
Method { name: "disconnect"; lineNumber: 54 }
}
Component {
file: "qml.hpp"
lineNumber: 79
name: "qs::network::NetworkingQml"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/Networking 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "devices"
type: "UntypedObjectModel"
isPointer: true
read: "devices"
index: 0
lineNumber: 86
isReadonly: true
isPropertyConstant: true
}
Property {
name: "backend"
type: "qs::network::NetworkBackendType::Enum"
read: "backend"
index: 1
lineNumber: 88
isReadonly: true
isPropertyConstant: true
}
Property {
name: "wifiEnabled"
type: "bool"
read: "wifiEnabled"
write: "setWifiEnabled"
notify: "wifiEnabledChanged"
index: 2
lineNumber: 90
}
Property {
name: "wifiHardwareEnabled"
type: "bool"
bindable: "bindableWifiHardwareEnabled"
read: "default"
notify: "wifiHardwareEnabledChanged"
index: 3
lineNumber: 92
isReadonly: true
}
Property {
name: "canCheckConnectivity"
type: "bool"
bindable: "bindableCanCheckConnectivity"
read: "default"
notify: "canCheckConnectivityChanged"
index: 4
lineNumber: 94
isReadonly: true
}
Property {
name: "connectivityCheckEnabled"
type: "bool"
read: "connectivityCheckEnabled"
write: "setConnectivityCheckEnabled"
notify: "connectivityCheckEnabledChanged"
index: 5
lineNumber: 96
}
Property {
name: "connectivity"
type: "qs::network::NetworkConnectivity::Enum"
bindable: "bindableConnectivity"
read: "default"
notify: "connectivityChanged"
index: 6
lineNumber: 106
isReadonly: true
}
Signal { name: "wifiEnabledChanged"; lineNumber: 144 }
Signal { name: "wifiHardwareEnabledChanged"; lineNumber: 145 }
Signal { name: "canCheckConnectivityChanged"; lineNumber: 146 }
Signal { name: "connectivityCheckEnabledChanged"; lineNumber: 147 }
Signal { name: "connectivityChanged"; lineNumber: 148 }
Method { name: "checkConnectivity"; lineNumber: 114 }
}
Component {
file: "wifi.hpp"
lineNumber: 57
name: "qs::network::WifiDevice"
accessSemantics: "reference"
prototype: "qs::network::NetworkDevice"
exports: ["Quickshell.Networking/WifiDevice 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "scannerEnabled"
type: "bool"
bindable: "bindableScannerEnabled"
read: "scannerEnabled"
write: "setScannerEnabled"
notify: "scannerEnabledChanged"
index: 0
lineNumber: 65
}
Property {
name: "mode"
type: "WifiDeviceMode::Enum"
bindable: "bindableMode"
read: "default"
notify: "modeChanged"
index: 1
lineNumber: 67
isReadonly: true
}
Signal { name: "modeChanged"; lineNumber: 79 }
Signal {
name: "scannerEnabledChanged"
lineNumber: 80
Parameter { name: "enabled"; type: "bool" }
}
}
Component {
file: "enums.hpp"
lineNumber: 133
name: "qs::network::WifiDeviceMode"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/WifiDeviceMode 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 139
values: ["AdHoc", "Station", "AccessPoint", "Mesh", "Unknown"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 152
Parameter { name: "mode"; type: "WifiDeviceMode::Enum" }
}
}
Component {
file: "wifi.hpp"
lineNumber: 17
name: "qs::network::WifiNetwork"
accessSemantics: "reference"
prototype: "qs::network::Network"
exports: ["Quickshell.Networking/WifiNetwork 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "signalStrength"
type: "double"
bindable: "bindableSignalStrength"
read: "default"
notify: "signalStrengthChanged"
index: 0
lineNumber: 23
isReadonly: true
}
Property {
name: "security"
type: "WifiSecurityType::Enum"
bindable: "bindableSecurity"
read: "default"
notify: "securityChanged"
index: 1
lineNumber: 25
isReadonly: true
}
Signal {
name: "requestConnectWithPsk"
lineNumber: 45
Parameter { name: "psk"; type: "QString" }
}
Signal { name: "signalStrengthChanged"; lineNumber: 46 }
Signal { name: "securityChanged"; lineNumber: 47 }
Method {
name: "connectWithPsk"
lineNumber: 39
Parameter { name: "psk"; type: "QString" }
}
}
Component {
file: "enums.hpp"
lineNumber: 108
name: "qs::network::WifiSecurityType"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Networking/WifiSecurityType 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 114
values: [
"Wpa3SuiteB192",
"Sae",
"Wpa2Eap",
"Wpa2Psk",
"WpaEap",
"WpaPsk",
"StaticWep",
"DynamicWep",
"Leap",
"Owe",
"Open",
"Unknown"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 129
Parameter { name: "type"; type: "WifiSecurityType::Enum" }
}
}
Component {
file: "wired.hpp"
lineNumber: 15
name: "qs::network::WiredDevice"
accessSemantics: "reference"
prototype: "qs::network::NetworkDevice"
exports: ["Quickshell.Networking/WiredDevice 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "network"
type: "Network"
isPointer: true
bindable: "bindableNetwork"
read: "network"
notify: "networkChanged"
index: 0
lineNumber: 23
isReadonly: true
}
Property {
name: "linkSpeed"
type: "uint"
bindable: "bindableLinkSpeed"
read: "default"
notify: "linkSpeedChanged"
index: 1
lineNumber: 25
isReadonly: true
}
Property {
name: "hasLink"
type: "bool"
bindable: "bindableHasLink"
read: "default"
notify: "hasLinkChanged"
index: 2
lineNumber: 27
isReadonly: true
}
Signal { name: "networkChanged"; lineNumber: 41 }
Signal { name: "linkSpeedChanged"; lineNumber: 42 }
Signal { name: "hasLinkChanged"; lineNumber: 43 }
}
}
@@ -1,9 +0,0 @@
module Quickshell.Services.Greetd
linktarget quickshell-service-greetdplugin
optional plugin quickshell-service-greetdplugin
classname Quickshell_Services_GreetdPlugin
typeinfo quickshell-service-greetd.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Services/Greetd/
depends QtQuick
@@ -1,127 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 16
name: "Greetd"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Greetd/Greetd 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "available"
type: "bool"
read: "isAvailable"
index: 0
lineNumber: 19
isReadonly: true
isPropertyConstant: true
}
Property {
name: "state"
type: "GreetdState::Enum"
read: "state"
notify: "stateChanged"
index: 1
lineNumber: 21
isReadonly: true
}
Property {
name: "user"
type: "QString"
read: "user"
notify: "userChanged"
index: 2
lineNumber: 23
isReadonly: true
}
Signal {
name: "authMessage"
lineNumber: 78
Parameter { name: "message"; type: "QString" }
Parameter { name: "error"; type: "bool" }
Parameter { name: "responseRequired"; type: "bool" }
Parameter { name: "echoResponse"; type: "bool" }
}
Signal {
name: "authFailure"
lineNumber: 82
Parameter { name: "message"; type: "QString" }
}
Signal { name: "readyToLaunch"; lineNumber: 84 }
Signal { name: "launched"; lineNumber: 89 }
Signal {
name: "error"
lineNumber: 91
Parameter { name: "error"; type: "QString" }
}
Signal { name: "stateChanged"; lineNumber: 93 }
Signal { name: "userChanged"; lineNumber: 94 }
Method {
name: "createSession"
lineNumber: 31
Parameter { name: "user"; type: "QString" }
}
Method { name: "cancelSession"; lineNumber: 33 }
Method {
name: "respond"
lineNumber: 37
Parameter { name: "response"; type: "QString" }
}
Method {
name: "launch"
lineNumber: 44
Parameter { name: "command"; type: "QString"; isList: true }
}
Method {
name: "launch"
lineNumber: 47
Parameter { name: "command"; type: "QString"; isList: true }
Parameter { name: "environment"; type: "QString"; isList: true }
}
Method {
name: "launch"
lineNumber: 59
Parameter { name: "command"; type: "QString"; isList: true }
Parameter { name: "environment"; type: "QString"; isList: true }
Parameter { name: "quit"; type: "bool" }
}
}
Component {
file: "connection.hpp"
lineNumber: 15
name: "GreetdState"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Greetd/GreetdState 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 21
values: [
"Inactive",
"Authenticating",
"ReadyToLaunch",
"Launching",
"Launched"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 30
Parameter { name: "value"; type: "GreetdState::Enum" }
}
}
}
@@ -1,9 +0,0 @@
module Quickshell.Services.Mpris
linktarget quickshell-service-mprisplugin
optional plugin quickshell-service-mprisplugin
classname Quickshell_Services_MprisPlugin
typeinfo quickshell-service-mpris.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Services/Mpris/
depends Quickshell
@@ -1,529 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "player.hpp"
lineNumber: 38
name: "qs::service::mpris::MprisLoopState"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Mpris/MprisLoopState 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 44
values: ["None", "Track", "Playlist"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 51
Parameter { name: "status"; type: "qs::service::mpris::MprisLoopState::Enum" }
}
}
Component {
file: "player.hpp"
lineNumber: 20
name: "qs::service::mpris::MprisPlaybackState"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Mpris/MprisPlaybackState 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 26
values: ["Stopped", "Playing", "Paused"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 33
Parameter { name: "status"; type: "qs::service::mpris::MprisPlaybackState::Enum" }
}
}
Component {
file: "player.hpp"
lineNumber: 87
name: "qs::service::mpris::MprisPlayer"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Mpris/MprisPlayer 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "canControl"
type: "bool"
bindable: "bindableCanControl"
read: "default"
notify: "canControlChanged"
index: 0
lineNumber: 90
isReadonly: true
}
Property {
name: "canPlay"
type: "bool"
bindable: "bindableCanPlay"
read: "default"
notify: "canPlayChanged"
index: 1
lineNumber: 91
isReadonly: true
}
Property {
name: "canPause"
type: "bool"
bindable: "bindableCanPause"
read: "default"
notify: "canPauseChanged"
index: 2
lineNumber: 92
isReadonly: true
}
Property {
name: "canTogglePlaying"
type: "bool"
bindable: "bindableCanTogglePlaying"
read: "default"
notify: "canTogglePlayingChanged"
index: 3
lineNumber: 93
isReadonly: true
}
Property {
name: "canSeek"
type: "bool"
bindable: "bindableCanSeek"
read: "default"
notify: "canSeekChanged"
index: 4
lineNumber: 94
isReadonly: true
}
Property {
name: "canGoNext"
type: "bool"
bindable: "bindableCanGoNext"
read: "default"
notify: "canGoNextChanged"
index: 5
lineNumber: 95
isReadonly: true
}
Property {
name: "canGoPrevious"
type: "bool"
bindable: "bindableCanGoPrevious"
read: "default"
notify: "canGoPreviousChanged"
index: 6
lineNumber: 96
isReadonly: true
}
Property {
name: "canQuit"
type: "bool"
bindable: "bindableCanQuit"
read: "default"
notify: "canQuitChanged"
index: 7
lineNumber: 97
isReadonly: true
}
Property {
name: "canRaise"
type: "bool"
bindable: "bindableCanRaise"
read: "default"
notify: "canRaiseChanged"
index: 8
lineNumber: 98
isReadonly: true
}
Property {
name: "canSetFullscreen"
type: "bool"
bindable: "bindableCanSetFullscreen"
read: "default"
notify: "canSetFullscreenChanged"
index: 9
lineNumber: 99
isReadonly: true
}
Property {
name: "identity"
type: "QString"
bindable: "bindableIdentity"
read: "default"
notify: "identityChanged"
index: 10
lineNumber: 101
isReadonly: true
}
Property {
name: "desktopEntry"
type: "QString"
bindable: "bindableDesktopEntry"
read: "default"
notify: "desktopEntryChanged"
index: 11
lineNumber: 103
isReadonly: true
}
Property {
name: "dbusName"
type: "QString"
read: "address"
index: 12
lineNumber: 105
isReadonly: true
isPropertyConstant: true
}
Property {
name: "position"
type: "double"
read: "position"
write: "setPosition"
notify: "positionChanged"
index: 13
lineNumber: 139
}
Property {
name: "positionSupported"
type: "bool"
read: "positionSupported"
notify: "positionSupportedChanged"
index: 14
lineNumber: 140
isReadonly: true
}
Property {
name: "length"
type: "double"
read: "length"
notify: "lengthChanged"
index: 15
lineNumber: 143
isReadonly: true
}
Property {
name: "lengthSupported"
type: "bool"
bindable: "bindableLengthSupported"
read: "default"
notify: "lengthSupportedChanged"
index: 16
lineNumber: 144
isReadonly: true
}
Property {
name: "volume"
type: "double"
read: "volume"
write: "setVolume"
notify: "volumeChanged"
index: 17
lineNumber: 148
}
Property {
name: "volumeSupported"
type: "bool"
read: "volumeSupported"
notify: "volumeSupportedChanged"
index: 18
lineNumber: 149
isReadonly: true
}
Property {
name: "metadata"
type: "QVariantMap"
bindable: "bindableMetadata"
read: "default"
notify: "metadataChanged"
index: 19
lineNumber: 158
isReadonly: true
}
Property {
name: "uniqueId"
type: "uint"
bindable: "bindableUniqueId"
read: "default"
notify: "uniqueIdChanged"
index: 20
lineNumber: 163
isReadonly: true
}
Property {
name: "trackTitle"
type: "QString"
bindable: "bindableTrackTitle"
read: "default"
notify: "trackTitleChanged"
index: 21
lineNumber: 168
isReadonly: true
}
Property {
name: "trackArtist"
type: "QString"
bindable: "bindableTrackArtist"
read: "default"
notify: "trackArtistChanged"
index: 22
lineNumber: 173
isReadonly: true
}
Property {
name: "trackArtists"
type: "QString"
bindable: "bindableTrackArtist"
read: "default"
notify: "trackArtistChanged"
index: 23
lineNumber: 175
isReadonly: true
}
Property {
name: "trackAlbum"
type: "QString"
bindable: "bindableTrackAlbum"
read: "default"
notify: "trackAlbumChanged"
index: 24
lineNumber: 180
isReadonly: true
}
Property {
name: "trackAlbumArtist"
type: "QString"
bindable: "bindableTrackAlbumArtist"
read: "default"
notify: "trackAlbumArtistChanged"
index: 25
lineNumber: 185
isReadonly: true
}
Property {
name: "trackArtUrl"
type: "QString"
bindable: "bindableTrackArtUrl"
read: "default"
notify: "trackArtUrlChanged"
index: 26
lineNumber: 187
isReadonly: true
}
Property {
name: "playbackState"
type: "qs::service::mpris::MprisPlaybackState::Enum"
read: "playbackState"
write: "setPlaybackState"
notify: "playbackStateChanged"
index: 27
lineNumber: 194
}
Property {
name: "isPlaying"
type: "bool"
read: "isPlaying"
write: "setPlaying"
notify: "isPlayingChanged"
index: 28
lineNumber: 199
}
Property {
name: "loopState"
type: "qs::service::mpris::MprisLoopState::Enum"
read: "loopState"
write: "setLoopState"
notify: "loopStateChanged"
index: 29
lineNumber: 203
}
Property {
name: "loopSupported"
type: "bool"
read: "loopSupported"
notify: "loopSupportedChanged"
index: 30
lineNumber: 204
isReadonly: true
}
Property {
name: "rate"
type: "double"
read: "rate"
write: "setRate"
notify: "rateChanged"
index: 31
lineNumber: 211
}
Property {
name: "minRate"
type: "double"
bindable: "bindableMinRate"
read: "default"
notify: "minRateChanged"
index: 32
lineNumber: 212
isReadonly: true
}
Property {
name: "maxRate"
type: "double"
bindable: "bindableMaxRate"
read: "default"
notify: "maxRateChanged"
index: 33
lineNumber: 213
isReadonly: true
}
Property {
name: "shuffle"
type: "bool"
read: "shuffle"
write: "setShuffle"
notify: "shuffleChanged"
index: 34
lineNumber: 217
}
Property {
name: "shuffleSupported"
type: "bool"
read: "shuffleSupported"
notify: "shuffleSupportedChanged"
index: 35
lineNumber: 218
isReadonly: true
}
Property {
name: "fullscreen"
type: "bool"
read: "fullscreen"
write: "setFullscreen"
notify: "fullscreenChanged"
index: 36
lineNumber: 222
}
Property {
name: "supportedUriSchemes"
type: "QString"
isList: true
bindable: "bindableSupportedUriSchemes"
read: "default"
notify: "supportedUriSchemesChanged"
index: 37
lineNumber: 224
isReadonly: true
}
Property {
name: "supportedMimeTypes"
type: "QString"
isList: true
bindable: "bindableSupportedMimeTypes"
read: "default"
notify: "supportedMimeTypesChanged"
index: 38
lineNumber: 226
isReadonly: true
}
Signal { name: "trackChanged"; lineNumber: 359 }
Signal { name: "postTrackChanged"; lineNumber: 365 }
Signal { name: "ready"; lineNumber: 367 }
Signal { name: "canControlChanged"; lineNumber: 368 }
Signal { name: "canPlayChanged"; lineNumber: 369 }
Signal { name: "canPauseChanged"; lineNumber: 370 }
Signal { name: "canTogglePlayingChanged"; lineNumber: 371 }
Signal { name: "canSeekChanged"; lineNumber: 372 }
Signal { name: "canGoNextChanged"; lineNumber: 373 }
Signal { name: "canGoPreviousChanged"; lineNumber: 374 }
Signal { name: "canQuitChanged"; lineNumber: 375 }
Signal { name: "canRaiseChanged"; lineNumber: 376 }
Signal { name: "canSetFullscreenChanged"; lineNumber: 377 }
Signal { name: "identityChanged"; lineNumber: 378 }
Signal { name: "desktopEntryChanged"; lineNumber: 379 }
Signal { name: "positionChanged"; lineNumber: 380 }
Signal { name: "positionSupportedChanged"; lineNumber: 381 }
Signal { name: "lengthChanged"; lineNumber: 382 }
Signal { name: "lengthSupportedChanged"; lineNumber: 383 }
Signal { name: "volumeChanged"; lineNumber: 384 }
Signal { name: "volumeSupportedChanged"; lineNumber: 385 }
Signal { name: "metadataChanged"; lineNumber: 386 }
Signal { name: "uniqueIdChanged"; lineNumber: 387 }
Signal { name: "trackTitleChanged"; lineNumber: 388 }
Signal { name: "trackArtistChanged"; lineNumber: 389 }
Signal { name: "trackAlbumChanged"; lineNumber: 390 }
Signal { name: "trackAlbumArtistChanged"; lineNumber: 391 }
Signal { name: "trackArtUrlChanged"; lineNumber: 392 }
Signal { name: "playbackStateChanged"; lineNumber: 393 }
Signal { name: "isPlayingChanged"; lineNumber: 394 }
Signal { name: "loopStateChanged"; lineNumber: 395 }
Signal { name: "loopSupportedChanged"; lineNumber: 396 }
Signal { name: "rateChanged"; lineNumber: 397 }
Signal { name: "minRateChanged"; lineNumber: 398 }
Signal { name: "maxRateChanged"; lineNumber: 399 }
Signal { name: "shuffleChanged"; lineNumber: 400 }
Signal { name: "shuffleSupportedChanged"; lineNumber: 401 }
Signal { name: "fullscreenChanged"; lineNumber: 402 }
Signal { name: "supportedUriSchemesChanged"; lineNumber: 403 }
Signal { name: "supportedMimeTypesChanged"; lineNumber: 404 }
Method { name: "onGetAllFinished"; lineNumber: 407 }
Method { name: "onExportedPositionChanged"; lineNumber: 408 }
Method {
name: "onSeek"
lineNumber: 409
Parameter { name: "time"; type: "qlonglong" }
}
Method { name: "raise"; lineNumber: 237 }
Method { name: "quit"; lineNumber: 241 }
Method {
name: "openUri"
lineNumber: 246
Parameter { name: "uri"; type: "QString" }
}
Method { name: "next"; lineNumber: 250 }
Method { name: "previous"; lineNumber: 254 }
Method {
name: "seek"
lineNumber: 261
Parameter { name: "offset"; type: "double" }
}
Method { name: "play"; lineNumber: 263 }
Method { name: "pause"; lineNumber: 265 }
Method { name: "stop"; lineNumber: 267 }
Method { name: "togglePlaying"; lineNumber: 272 }
}
Component {
file: "watcher.hpp"
lineNumber: 45
name: "qs::service::mpris::MprisQml"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Mpris/Mpris 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "players"
type: "UntypedObjectModel"
isPointer: true
read: "players"
index: 0
lineNumber: 51
isReadonly: true
isPropertyConstant: true
}
}
}
@@ -1,9 +0,0 @@
module Quickshell.Services.Notifications
linktarget quickshell-service-notificationsplugin
optional plugin quickshell-service-notificationsplugin
classname Quickshell_Services_NotificationsPlugin
typeinfo quickshell-service-notifications.qmltypes
prefer :/qt/qml/Quickshell/Services/Notifications/
depends Quickshell
depends QtQuick
@@ -1,441 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "notification.hpp"
lineNumber: 66
name: "qs::service::notifications::Notification"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Notifications/Notification 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "id"
type: "uint"
read: "id"
index: 0
lineNumber: 72
isReadonly: true
isPropertyConstant: true
}
Property {
name: "tracked"
type: "bool"
read: "isTracked"
write: "setTracked"
notify: "trackedChanged"
index: 1
lineNumber: 76
}
Property {
name: "lastGeneration"
type: "bool"
read: "isLastGeneration"
index: 2
lineNumber: 82
isReadonly: true
isPropertyConstant: true
}
Property {
name: "expireTimeout"
type: "double"
bindable: "bindableExpireTimeout"
read: "default"
notify: "expireTimeoutChanged"
index: 3
lineNumber: 84
isReadonly: true
}
Property {
name: "appName"
type: "QString"
bindable: "bindableAppName"
read: "default"
notify: "appNameChanged"
index: 4
lineNumber: 86
isReadonly: true
}
Property {
name: "appIcon"
type: "QString"
bindable: "bindableAppIcon"
read: "default"
notify: "appIconChanged"
index: 5
lineNumber: 89
isReadonly: true
}
Property {
name: "summary"
type: "QString"
bindable: "bindableSummary"
read: "default"
notify: "summaryChanged"
index: 6
lineNumber: 91
isReadonly: true
}
Property {
name: "body"
type: "QString"
bindable: "bindableBody"
read: "default"
notify: "bodyChanged"
index: 7
lineNumber: 92
isReadonly: true
}
Property {
name: "urgency"
type: "qs::service::notifications::NotificationUrgency::Enum"
bindable: "bindableUrgency"
read: "default"
notify: "urgencyChanged"
index: 8
lineNumber: 93
isReadonly: true
}
Property {
name: "actions"
type: "QList<qs::service::notifications::NotificationAction*>"
read: "actions"
notify: "actionsChanged"
index: 9
lineNumber: 95
isReadonly: true
}
Property {
name: "hasActionIcons"
type: "bool"
bindable: "bindableHasActionIcons"
read: "default"
notify: "hasActionIconsChanged"
index: 10
lineNumber: 99
isReadonly: true
}
Property {
name: "resident"
type: "bool"
bindable: "bindableResident"
read: "default"
notify: "residentChanged"
index: 11
lineNumber: 101
isReadonly: true
}
Property {
name: "transient"
type: "bool"
bindable: "bindableTransient"
read: "default"
notify: "transientChanged"
index: 12
lineNumber: 103
isReadonly: true
}
Property {
name: "desktopEntry"
type: "QString"
bindable: "bindableDesktopEntry"
read: "default"
notify: "desktopEntryChanged"
index: 13
lineNumber: 105
isReadonly: true
}
Property {
name: "image"
type: "QString"
bindable: "bindableImage"
read: "default"
notify: "imageChanged"
index: 14
lineNumber: 109
isReadonly: true
}
Property {
name: "hasInlineReply"
type: "bool"
bindable: "bindableHasInlineReply"
read: "default"
notify: "hasInlineReplyChanged"
index: 15
lineNumber: 113
isReadonly: true
}
Property {
name: "inlineReplyPlaceholder"
type: "QString"
bindable: "bindableInlineReplyPlaceholder"
read: "default"
notify: "inlineReplyPlaceholderChanged"
index: 16
lineNumber: 115
isReadonly: true
}
Property {
name: "hints"
type: "QVariantMap"
bindable: "bindableHints"
read: "default"
notify: "hintsChanged"
index: 17
lineNumber: 118
isReadonly: true
}
Signal {
name: "closed"
lineNumber: 188
Parameter { name: "reason"; type: "qs::service::notifications::NotificationCloseReason::Enum" }
}
Signal { name: "trackedChanged"; lineNumber: 190 }
Signal { name: "expireTimeoutChanged"; lineNumber: 191 }
Signal { name: "appNameChanged"; lineNumber: 192 }
Signal { name: "appIconChanged"; lineNumber: 193 }
Signal { name: "summaryChanged"; lineNumber: 194 }
Signal { name: "bodyChanged"; lineNumber: 195 }
Signal { name: "urgencyChanged"; lineNumber: 196 }
Signal { name: "actionsChanged"; lineNumber: 197 }
Signal { name: "hasActionIconsChanged"; lineNumber: 198 }
Signal { name: "residentChanged"; lineNumber: 199 }
Signal { name: "transientChanged"; lineNumber: 200 }
Signal { name: "desktopEntryChanged"; lineNumber: 201 }
Signal { name: "imageChanged"; lineNumber: 202 }
Signal { name: "hasInlineReplyChanged"; lineNumber: 203 }
Signal { name: "inlineReplyPlaceholderChanged"; lineNumber: 204 }
Signal { name: "hintsChanged"; lineNumber: 205 }
Method { name: "expire"; lineNumber: 128 }
Method { name: "dismiss"; lineNumber: 131 }
Method {
name: "sendInlineReply"
lineNumber: 137
Parameter { name: "replyText"; type: "QString" }
}
}
Component {
file: "notification.hpp"
lineNumber: 241
name: "qs::service::notifications::NotificationAction"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Notifications/NotificationAction 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "identifier"
type: "QString"
read: "identifier"
index: 0
lineNumber: 247
isReadonly: true
isPropertyConstant: true
}
Property {
name: "text"
type: "QString"
read: "text"
notify: "textChanged"
index: 1
lineNumber: 249
isReadonly: true
}
Signal { name: "textChanged"; lineNumber: 268 }
Method { name: "invoke"; lineNumber: 261 }
}
Component {
file: "notification.hpp"
lineNumber: 39
name: "qs::service::notifications::NotificationCloseReason"
accessSemantics: "reference"
prototype: "QObject"
exports: [
"Quickshell.Services.Notifications/NotificationCloseReason 0.0"
]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 45
values: ["Expired", "Dismissed", "CloseRequested"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 56
Parameter { name: "value"; type: "qs::service::notifications::NotificationCloseReason::Enum" }
}
}
Component {
file: "qml.hpp"
lineNumber: 24
name: "qs::service::notifications::NotificationServerQml"
accessSemantics: "reference"
prototype: "PostReloadHook"
exports: ["Quickshell.Services.Notifications/NotificationServer 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "keepOnReload"
type: "bool"
read: "keepOnReload"
write: "setKeepOnReload"
notify: "keepOnReloadChanged"
index: 0
lineNumber: 31
}
Property {
name: "persistenceSupported"
type: "bool"
read: "persistenceSupported"
write: "setPersistenceSupported"
notify: "persistenceSupportedChanged"
index: 1
lineNumber: 34
}
Property {
name: "bodySupported"
type: "bool"
read: "bodySupported"
write: "setBodySupported"
notify: "bodySupportedChanged"
index: 2
lineNumber: 40
}
Property {
name: "bodyMarkupSupported"
type: "bool"
read: "bodyMarkupSupported"
write: "setBodyMarkupSupported"
notify: "bodyMarkupSupportedChanged"
index: 3
lineNumber: 47
}
Property {
name: "bodyHyperlinksSupported"
type: "bool"
read: "bodyHyperlinksSupported"
write: "setBodyHyperlinksSupported"
notify: "bodyHyperlinksSupportedChanged"
index: 4
lineNumber: 54
}
Property {
name: "bodyImagesSupported"
type: "bool"
read: "bodyImagesSupported"
write: "setBodyImagesSupported"
notify: "bodyImagesSupportedChanged"
index: 5
lineNumber: 61
}
Property {
name: "actionsSupported"
type: "bool"
read: "actionsSupported"
write: "setActionsSupported"
notify: "actionsSupportedChanged"
index: 6
lineNumber: 63
}
Property {
name: "actionIconsSupported"
type: "bool"
read: "actionIconsSupported"
write: "setActionIconsSupported"
notify: "actionIconsSupportedChanged"
index: 7
lineNumber: 65
}
Property {
name: "imageSupported"
type: "bool"
read: "imageSupported"
write: "setImageSupported"
notify: "imageSupportedChanged"
index: 8
lineNumber: 67
}
Property {
name: "inlineReplySupported"
type: "bool"
read: "inlineReplySupported"
write: "setInlineReplySupported"
notify: "inlineReplySupportedChanged"
index: 9
lineNumber: 69
}
Property {
name: "trackedNotifications"
type: "UntypedObjectModel"
isPointer: true
read: "trackedNotifications"
notify: "trackedNotificationsChanged"
index: 10
lineNumber: 72
isReadonly: true
}
Property {
name: "extraHints"
type: "QString"
isList: true
read: "extraHints"
write: "setExtraHints"
notify: "extraHintsChanged"
index: 11
lineNumber: 74
}
Signal {
name: "notification"
lineNumber: 120
Parameter {
name: "notification"
type: "qs::service::notifications::Notification"
isPointer: true
}
}
Signal { name: "keepOnReloadChanged"; lineNumber: 122 }
Signal { name: "persistenceSupportedChanged"; lineNumber: 123 }
Signal { name: "bodySupportedChanged"; lineNumber: 124 }
Signal { name: "bodyMarkupSupportedChanged"; lineNumber: 125 }
Signal { name: "bodyHyperlinksSupportedChanged"; lineNumber: 126 }
Signal { name: "bodyImagesSupportedChanged"; lineNumber: 127 }
Signal { name: "actionsSupportedChanged"; lineNumber: 128 }
Signal { name: "actionIconsSupportedChanged"; lineNumber: 129 }
Signal { name: "imageSupportedChanged"; lineNumber: 130 }
Signal { name: "inlineReplySupportedChanged"; lineNumber: 131 }
Signal { name: "extraHintsChanged"; lineNumber: 132 }
Signal { name: "trackedNotificationsChanged"; lineNumber: 133 }
}
Component {
file: "notification.hpp"
lineNumber: 21
name: "qs::service::notifications::NotificationUrgency"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Notifications/NotificationUrgency 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 27
values: ["Low", "Normal", "Critical"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 34
Parameter { name: "value"; type: "qs::service::notifications::NotificationUrgency::Enum" }
}
}
}
@@ -1,9 +0,0 @@
module Quickshell.Services.Pam
linktarget quickshell-service-pamplugin
optional plugin quickshell-service-pamplugin
classname Quickshell_Services_PamPlugin
typeinfo quickshell-service-pam.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Services/Pam/
depends QtQuick
@@ -1,181 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 20
name: "PamContext"
accessSemantics: "reference"
prototype: "QObject"
interfaces: ["QQmlParserStatus"]
exports: ["Quickshell.Services.Pam/PamContext 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "active"
type: "bool"
read: "isActive"
write: "setActive"
notify: "activeChanged"
index: 0
lineNumber: 31
}
Property {
name: "config"
type: "QString"
read: "config"
write: "setConfig"
notify: "configChanged"
index: 1
lineNumber: 37
}
Property {
name: "configDirectory"
type: "QString"
read: "configDirectory"
write: "setConfigDirectory"
notify: "configDirectoryChanged"
index: 2
lineNumber: 45
}
Property {
name: "user"
type: "QString"
read: "user"
write: "setUser"
notify: "userChanged"
index: 3
lineNumber: 49
}
Property {
name: "message"
type: "QString"
read: "message"
notify: "messageChanged"
index: 4
lineNumber: 51
isReadonly: true
}
Property {
name: "messageIsError"
type: "bool"
read: "messageIsError"
notify: "messageIsErrorChanged"
index: 5
lineNumber: 53
isReadonly: true
}
Property {
name: "responseRequired"
type: "bool"
read: "isResponseRequired"
notify: "responseRequiredChanged"
index: 6
lineNumber: 57
isReadonly: true
}
Property {
name: "responseVisible"
type: "bool"
read: "isResponseVisible"
notify: "responseVisibleChanged"
index: 7
lineNumber: 59
isReadonly: true
}
Signal {
name: "completed"
lineNumber: 101
Parameter { name: "result"; type: "PamResult::Enum" }
}
Signal {
name: "error"
lineNumber: 105
Parameter { name: "error"; type: "PamError::Enum" }
}
Signal { name: "pamMessage"; lineNumber: 109 }
Signal { name: "activeChanged"; lineNumber: 111 }
Signal { name: "configChanged"; lineNumber: 112 }
Signal { name: "configDirectoryChanged"; lineNumber: 113 }
Signal { name: "userChanged"; lineNumber: 114 }
Signal { name: "messageChanged"; lineNumber: 115 }
Signal { name: "messageIsErrorChanged"; lineNumber: 116 }
Signal { name: "responseRequiredChanged"; lineNumber: 117 }
Signal { name: "responseVisibleChanged"; lineNumber: 118 }
Method {
name: "onCompleted"
lineNumber: 121
Parameter { name: "result"; type: "PamResult::Enum" }
}
Method {
name: "onError"
lineNumber: 122
Parameter { name: "error"; type: "PamError::Enum" }
}
Method {
name: "onMessage"
lineNumber: 123
Parameter { name: "message"; type: "QString" }
Parameter { name: "isError"; type: "bool" }
Parameter { name: "responseRequired"; type: "bool" }
Parameter { name: "responseVisible"; type: "bool" }
}
Method { name: "start"; type: "bool"; lineNumber: 72 }
Method { name: "abort"; lineNumber: 75 }
Method {
name: "respond"
lineNumber: 80
Parameter { name: "response"; type: "QString" }
}
}
Component {
file: "conversation.hpp"
lineNumber: 41
name: "PamError"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pam/PamError 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 47
values: ["StartFailed", "TryAuthFailed", "InternalError"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 58
Parameter { name: "value"; type: "PamError::Enum" }
}
}
Component {
file: "conversation.hpp"
lineNumber: 18
name: "PamResult"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pam/PamResult 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 24
values: ["Success", "Failed", "Error", "MaxTries"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 36
Parameter { name: "value"; type: "PamResult::Enum" }
}
}
}
@@ -1,10 +0,0 @@
module Quickshell.Services.Pipewire
linktarget quickshell-service-pipewireplugin
optional plugin quickshell-service-pipewireplugin
classname Quickshell_Services_PipewirePlugin
typeinfo quickshell-service-pipewire.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Services/Pipewire/
depends Quickshell
depends QtQuick
@@ -1,646 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 56
name: "qs::service::pipewire::Pipewire"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/Pipewire 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "nodes"
type: "UntypedObjectModel"
isPointer: true
read: "nodes"
index: 0
lineNumber: 67
isReadonly: true
isPropertyConstant: true
}
Property {
name: "links"
type: "UntypedObjectModel"
isPointer: true
read: "links"
index: 1
lineNumber: 79
isReadonly: true
isPropertyConstant: true
}
Property {
name: "linkGroups"
type: "UntypedObjectModel"
isPointer: true
read: "linkGroups"
index: 2
lineNumber: 87
isReadonly: true
isPropertyConstant: true
}
Property {
name: "defaultAudioSink"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "defaultAudioSink"
notify: "defaultAudioSinkChanged"
index: 3
lineNumber: 97
isReadonly: true
}
Property {
name: "defaultAudioSource"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "defaultAudioSource"
notify: "defaultAudioSourceChanged"
index: 4
lineNumber: 107
isReadonly: true
}
Property {
name: "preferredDefaultAudioSink"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "defaultConfiguredAudioSink"
write: "setDefaultConfiguredAudioSink"
notify: "defaultConfiguredAudioSinkChanged"
index: 5
lineNumber: 114
}
Property {
name: "preferredDefaultAudioSource"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "defaultConfiguredAudioSource"
write: "setDefaultConfiguredAudioSource"
notify: "defaultConfiguredAudioSourceChanged"
index: 6
lineNumber: 121
}
Property {
name: "ready"
type: "bool"
read: "isReady"
notify: "readyChanged"
index: 7
lineNumber: 128
isReadonly: true
}
Signal { name: "defaultAudioSinkChanged"; lineNumber: 152 }
Signal { name: "defaultAudioSourceChanged"; lineNumber: 153 }
Signal { name: "defaultConfiguredAudioSinkChanged"; lineNumber: 155 }
Signal { name: "defaultConfiguredAudioSourceChanged"; lineNumber: 156 }
Signal { name: "readyChanged"; lineNumber: 158 }
Method {
name: "onNodeAdded"
lineNumber: 161
Parameter { name: "node"; type: "PwNode"; isPointer: true }
}
Method {
name: "onNodeRemoved"
lineNumber: 162
Parameter { name: "object"; type: "QObject"; isPointer: true }
}
Method {
name: "onLinkAdded"
lineNumber: 163
Parameter { name: "link"; type: "PwLink"; isPointer: true }
}
Method {
name: "onLinkRemoved"
lineNumber: 164
Parameter { name: "object"; type: "QObject"; isPointer: true }
}
Method {
name: "onLinkGroupAdded"
lineNumber: 165
Parameter { name: "group"; type: "PwLinkGroup"; isPointer: true }
}
Method {
name: "onLinkGroupRemoved"
lineNumber: 166
Parameter { name: "object"; type: "QObject"; isPointer: true }
}
}
Component {
file: "node.hpp"
lineNumber: 27
name: "qs::service::pipewire::PwAudioChannel"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/PwAudioChannel 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
lineNumber: 33
values: [
"Unknown",
"NA",
"Mono",
"FrontCenter",
"FrontLeft",
"FrontRight",
"FrontLeftCenter",
"FrontRightCenter",
"FrontLeftWide",
"FrontRightWide",
"FrontCenterHigh",
"FrontLeftHigh",
"FrontRightHigh",
"LowFrequencyEffects",
"LowFrequencyEffects2",
"LowFrequencyEffectsLeft",
"LowFrequencyEffectsRight",
"SideLeft",
"SideRight",
"RearCenter",
"RearLeft",
"RearRight",
"RearLeftCenter",
"RearRightCenter",
"TopCenter",
"TopFrontCenter",
"TopFrontLeft",
"TopFrontRight",
"TopFrontLeftCenter",
"TopFrontRightCenter",
"TopSideLeft",
"TopSideRight",
"TopRearCenter",
"TopRearLeft",
"TopRearRight",
"BottomCenter",
"BottomLeftCenter",
"BottomRightCenter",
"AuxRangeStart",
"AuxRangeEnd",
"CustomRangeStart"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 89
Parameter { name: "value"; type: "qs::service::pipewire::PwAudioChannel::Enum" }
}
}
Component {
file: "qml.hpp"
lineNumber: 388
name: "qs::service::pipewire::PwLinkGroupIface"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/PwLinkGroup 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "target"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "target"
index: 0
lineNumber: 393
isReadonly: true
isPropertyConstant: true
}
Property {
name: "source"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "source"
index: 1
lineNumber: 395
isReadonly: true
isPropertyConstant: true
}
Property {
name: "state"
type: "qs::service::pipewire::PwLinkState::Enum"
read: "state"
notify: "stateChanged"
index: 2
lineNumber: 399
isReadonly: true
}
Signal { name: "stateChanged"; lineNumber: 420 }
}
Component {
file: "qml.hpp"
lineNumber: 350
name: "qs::service::pipewire::PwLinkIface"
accessSemantics: "reference"
prototype: "qs::service::pipewire::PwObjectIface"
exports: ["Quickshell.Services.Pipewire/PwLink 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "id"
type: "uint"
read: "id"
index: 0
lineNumber: 356
isReadonly: true
isPropertyConstant: true
}
Property {
name: "target"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "target"
index: 1
lineNumber: 358
isReadonly: true
isPropertyConstant: true
}
Property {
name: "source"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "source"
index: 2
lineNumber: 360
isReadonly: true
isPropertyConstant: true
}
Property {
name: "state"
type: "PwLinkState::Enum"
read: "state"
notify: "stateChanged"
index: 3
lineNumber: 364
isReadonly: true
}
Signal { name: "stateChanged"; lineNumber: 380 }
}
Component {
file: "link.hpp"
lineNumber: 18
name: "qs::service::pipewire::PwLinkState"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/PwLinkState 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "qint8"
lineNumber: 24
values: [
"Error",
"Unlinked",
"Init",
"Negotiating",
"Allocating",
"Paused",
"Active"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 35
Parameter { name: "value"; type: "qs::service::pipewire::PwLinkState::Enum" }
}
}
Component {
file: "qml.hpp"
lineNumber: 220
name: "qs::service::pipewire::PwNodeAudioIface"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/PwNodeAudio 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "muted"
type: "bool"
read: "isMuted"
write: "setMuted"
notify: "mutedChanged"
index: 0
lineNumber: 226
}
Property {
name: "volume"
type: "float"
read: "averageVolume"
write: "setAverageVolume"
notify: "volumesChanged"
index: 1
lineNumber: 231
}
Property {
name: "channels"
type: "qs::service::pipewire::PwAudioChannel::Enum"
isList: true
read: "channels"
notify: "channelsChanged"
index: 2
lineNumber: 235
isReadonly: true
}
Property {
name: "volumes"
type: "float"
isList: true
read: "volumes"
write: "setVolumes"
notify: "volumesChanged"
index: 3
lineNumber: 241
}
Signal { name: "mutedChanged"; lineNumber: 261 }
Signal { name: "channelsChanged"; lineNumber: 262 }
Signal { name: "volumesChanged"; lineNumber: 263 }
}
Component {
file: "qml.hpp"
lineNumber: 270
name: "qs::service::pipewire::PwNodeIface"
accessSemantics: "reference"
prototype: "qs::service::pipewire::PwObjectIface"
exports: ["Quickshell.Services.Pipewire/PwNode 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "id"
type: "uint"
read: "id"
index: 0
lineNumber: 276
isReadonly: true
isPropertyConstant: true
}
Property {
name: "name"
type: "QString"
read: "name"
index: 1
lineNumber: 278
isReadonly: true
isPropertyConstant: true
}
Property {
name: "description"
type: "QString"
read: "description"
index: 2
lineNumber: 282
isReadonly: true
isPropertyConstant: true
}
Property {
name: "nickname"
type: "QString"
read: "nickname"
index: 3
lineNumber: 286
isReadonly: true
isPropertyConstant: true
}
Property {
name: "isSink"
type: "bool"
read: "isSink"
index: 4
lineNumber: 289
isReadonly: true
isPropertyConstant: true
}
Property {
name: "isStream"
type: "bool"
read: "isStream"
index: 5
lineNumber: 292
isReadonly: true
isPropertyConstant: true
}
Property {
name: "type"
type: "qs::service::pipewire::PwNodeType::Flags"
read: "type"
index: 6
lineNumber: 294
isReadonly: true
isPropertyConstant: true
}
Property {
name: "properties"
type: "QVariantMap"
read: "properties"
notify: "propertiesChanged"
index: 7
lineNumber: 307
isReadonly: true
}
Property {
name: "audio"
type: "qs::service::pipewire::PwNodeAudioIface"
isPointer: true
read: "audio"
index: 8
lineNumber: 312
isReadonly: true
isPropertyConstant: true
}
Property {
name: "ready"
type: "bool"
read: "isReady"
notify: "readyChanged"
index: 9
lineNumber: 317
isReadonly: true
}
Signal { name: "propertiesChanged"; lineNumber: 339 }
Signal { name: "readyChanged"; lineNumber: 340 }
}
Component {
file: "qml.hpp"
lineNumber: 175
name: "qs::service::pipewire::PwNodeLinkTracker"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/PwNodeLinkTracker 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "node"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "node"
write: "setNode"
notify: "nodeChanged"
index: 0
lineNumber: 179
}
Property {
name: "linkGroups"
type: "qs::service::pipewire::PwLinkGroupIface"
isList: true
read: "linkGroups"
notify: "linkGroupsChanged"
index: 1
lineNumber: 184
isReadonly: true
}
Signal { name: "nodeChanged"; lineNumber: 197 }
Signal { name: "linkGroupsChanged"; lineNumber: 198 }
Method { name: "onNodeDestroyed"; lineNumber: 201 }
Method {
name: "onLinkGroupCreated"
lineNumber: 202
Parameter { name: "linkGroup"; type: "PwLinkGroup"; isPointer: true }
}
Method {
name: "onLinkGroupDestroyed"
lineNumber: 203
Parameter { name: "object"; type: "QObject"; isPointer: true }
}
}
Component {
file: "peak.hpp"
lineNumber: 21
name: "qs::service::pipewire::PwNodePeakMonitor"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/PwNodePeakMonitor 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "node"
type: "qs::service::pipewire::PwNodeIface"
isPointer: true
read: "node"
write: "setNode"
notify: "nodeChanged"
index: 0
lineNumber: 25
}
Property {
name: "enabled"
type: "bool"
read: "isEnabled"
write: "setEnabled"
notify: "enabledChanged"
index: 1
lineNumber: 27
}
Property {
name: "peaks"
type: "float"
isList: true
read: "peaks"
notify: "peaksChanged"
index: 2
lineNumber: 31
isReadonly: true
}
Property {
name: "peak"
type: "float"
read: "peak"
notify: "peakChanged"
index: 3
lineNumber: 33
isReadonly: true
}
Property {
name: "channels"
type: "qs::service::pipewire::PwAudioChannel::Enum"
isList: true
read: "channels"
notify: "channelsChanged"
index: 4
lineNumber: 35
isReadonly: true
}
Signal { name: "nodeChanged"; lineNumber: 55 }
Signal { name: "enabledChanged"; lineNumber: 56 }
Signal { name: "peaksChanged"; lineNumber: 57 }
Signal { name: "peakChanged"; lineNumber: 58 }
Signal { name: "channelsChanged"; lineNumber: 59 }
Method { name: "onNodeDestroyed"; lineNumber: 62 }
}
Component {
file: "node.hpp"
lineNumber: 93
name: "qs::service::pipewire::PwNodeType"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/PwNodeType 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Flag"
type: "quint8"
lineNumber: 99
values: [
"Untracked",
"Audio",
"Video",
"Stream",
"Source",
"Sink",
"AudioSink",
"AudioSource",
"AudioDuplex",
"AudioOutStream",
"AudioInStream",
"VideoSource",
"VideoSink"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 151
Parameter { name: "type"; type: "qs::service::pipewire::PwNodeType::Flags" }
}
}
Component {
file: "qml.hpp"
lineNumber: 33
name: "qs::service::pipewire::PwObjectIface"
accessSemantics: "reference"
prototype: "QObject"
Method { name: "onObjectDestroying"; lineNumber: 48 }
}
Component {
file: "qml.hpp"
lineNumber: 437
name: "qs::service::pipewire::PwObjectTracker"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Pipewire/PwObjectTracker 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "objects"
type: "QObjectList"
read: "objects"
write: "setObjects"
notify: "objectsChanged"
index: 0
lineNumber: 440
}
Signal { name: "objectsChanged"; lineNumber: 452 }
Method {
name: "objectDestroyed"
lineNumber: 455
Parameter { name: "object"; type: "QObject"; isPointer: true }
}
}
}
@@ -1,9 +0,0 @@
module Quickshell.Services.Polkit
linktarget quickshell-service-polkitplugin
optional plugin quickshell-service-polkitplugin
classname Quickshell_Services_PolkitPlugin
typeinfo quickshell-service-polkit.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Services/Polkit/
depends QtQuick
@@ -1,251 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "flow.hpp"
lineNumber: 14
name: "qs::service::polkit::AuthFlow"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.Polkit/AuthFlow 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "message"
type: "QString"
read: "message"
index: 0
lineNumber: 24
isReadonly: true
isPropertyConstant: true
}
Property {
name: "iconName"
type: "QString"
read: "iconName"
index: 1
lineNumber: 31
isReadonly: true
isPropertyConstant: true
}
Property {
name: "actionId"
type: "QString"
read: "actionId"
index: 2
lineNumber: 36
isReadonly: true
isPropertyConstant: true
}
Property {
name: "cookie"
type: "QString"
read: "cookie"
index: 3
lineNumber: 41
isReadonly: true
isPropertyConstant: true
}
Property {
name: "identities"
type: "QList<Identity*>"
read: "identities"
index: 4
lineNumber: 48
isReadonly: true
isPropertyConstant: true
}
Property {
name: "selectedIdentity"
type: "Identity"
isPointer: true
bindable: "selectedIdentity"
read: "default"
write: "setSelectedIdentity"
notify: "selectedIdentityChanged"
index: 5
lineNumber: 53
}
Property {
name: "isResponseRequired"
type: "bool"
bindable: "isResponseRequired"
read: "default"
notify: "isResponseRequiredChanged"
index: 6
lineNumber: 57
isReadonly: true
}
Property {
name: "inputPrompt"
type: "QString"
bindable: "inputPrompt"
read: "default"
notify: "inputPromptChanged"
index: 7
lineNumber: 60
isReadonly: true
}
Property {
name: "responseVisible"
type: "bool"
bindable: "responseVisible"
read: "default"
notify: "responseVisibleChanged"
index: 8
lineNumber: 63
isReadonly: true
}
Property {
name: "supplementaryMessage"
type: "QString"
bindable: "supplementaryMessage"
read: "default"
notify: "supplementaryMessageChanged"
index: 9
lineNumber: 69
isReadonly: true
}
Property {
name: "supplementaryIsError"
type: "bool"
bindable: "supplementaryIsError"
read: "default"
notify: "supplementaryIsErrorChanged"
index: 10
lineNumber: 72
isReadonly: true
}
Property {
name: "isCompleted"
type: "bool"
bindable: "isCompleted"
read: "default"
notify: "isCompletedChanged"
index: 11
lineNumber: 75
isReadonly: true
}
Property {
name: "isSuccessful"
type: "bool"
bindable: "isSuccessful"
read: "default"
notify: "isSuccessfulChanged"
index: 12
lineNumber: 78
isReadonly: true
}
Property {
name: "isCancelled"
type: "bool"
bindable: "isCancelled"
read: "default"
notify: "isCancelledChanged"
index: 13
lineNumber: 81
isReadonly: true
}
Property {
name: "failed"
type: "bool"
bindable: "failed"
read: "default"
notify: "failedChanged"
index: 14
lineNumber: 84
isReadonly: true
}
Signal { name: "authenticationSucceeded"; lineNumber: 124 }
Signal { name: "authenticationFailed"; lineNumber: 135 }
Signal { name: "authenticationRequestCancelled"; lineNumber: 138 }
Signal { name: "selectedIdentityChanged"; lineNumber: 140 }
Signal { name: "isResponseRequiredChanged"; lineNumber: 141 }
Signal { name: "inputPromptChanged"; lineNumber: 142 }
Signal { name: "responseVisibleChanged"; lineNumber: 143 }
Signal { name: "supplementaryMessageChanged"; lineNumber: 144 }
Signal { name: "supplementaryIsErrorChanged"; lineNumber: 145 }
Signal { name: "isCompletedChanged"; lineNumber: 146 }
Signal { name: "isSuccessfulChanged"; lineNumber: 147 }
Signal { name: "isCancelledChanged"; lineNumber: 148 }
Signal { name: "failedChanged"; lineNumber: 149 }
Method {
name: "request"
lineNumber: 153
Parameter { name: "message"; type: "QString" }
Parameter { name: "echo"; type: "bool" }
}
Method {
name: "completed"
lineNumber: 154
Parameter { name: "gainedAuthorization"; type: "bool" }
}
Method {
name: "showError"
lineNumber: 155
Parameter { name: "message"; type: "QString" }
}
Method {
name: "showInfo"
lineNumber: 156
Parameter { name: "message"; type: "QString" }
}
Method {
name: "submit"
lineNumber: 95
Parameter { name: "value"; type: "QString" }
}
Method { name: "cancelAuthenticationRequest"; lineNumber: 97 }
}
Component {
file: "qml.hpp"
lineNumber: 25
name: "qs::service::polkit::PolkitAgent"
accessSemantics: "reference"
prototype: "QObject"
interfaces: ["QQmlParserStatus"]
exports: ["Quickshell.Services.Polkit/PolkitAgent 0.0"]
exportMetaObjectRevisions: [0]
Property { name: "path"; type: "QString"; read: "path"; write: "setPath"; index: 0; lineNumber: 36 }
Property {
name: "isRegistered"
type: "bool"
bindable: "isRegistered"
read: "default"
notify: "isRegisteredChanged"
index: 1
lineNumber: 39
isReadonly: true
}
Property {
name: "isActive"
type: "bool"
bindable: "isActive"
read: "default"
notify: "isActiveChanged"
index: 2
lineNumber: 45
isReadonly: true
}
Property {
name: "flow"
type: "AuthFlow"
isPointer: true
bindable: "flow"
read: "default"
notify: "flowChanged"
index: 3
lineNumber: 50
isReadonly: true
}
Signal { name: "authenticationRequestStarted"; lineNumber: 71 }
Signal { name: "isRegisteredChanged"; lineNumber: 73 }
Signal { name: "isActiveChanged"; lineNumber: 74 }
Signal { name: "flowChanged"; lineNumber: 75 }
}
}
@@ -1,11 +0,0 @@
module Quickshell.Services.SystemTray
linktarget quickshell-service-statusnotifierplugin
optional plugin quickshell-service-statusnotifierplugin
classname Quickshell_Services_SystemTrayPlugin
typeinfo quickshell-service-statusnotifier.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Services/SystemTray/
depends Quickshell
depends Quickshell.DBusMenu
depends QtQuick
@@ -1,211 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 16
name: "SystemTray"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.SystemTray/SystemTray 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "items"
type: "UntypedObjectModel"
isPointer: true
read: "items"
index: 0
lineNumber: 20
isReadonly: true
isPropertyConstant: true
}
Method {
name: "onItemRegistered"
lineNumber: 30
Parameter { name: "item"; type: "qs::service::sni::StatusNotifierItem"; isPointer: true }
}
Method {
name: "onItemUnregistered"
lineNumber: 31
Parameter { name: "item"; type: "qs::service::sni::StatusNotifierItem"; isPointer: true }
}
}
Component {
file: "item.hpp"
lineNumber: 43
name: "qs::service::sni::Category"
accessSemantics: "none"
exports: ["Quickshell.Services.SystemTray/Category 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 47
values: [
"Hardware",
"SystemServices",
"ApplicationStatus",
"Communications"
]
}
}
Component {
file: "item.hpp"
lineNumber: 26
name: "qs::service::sni::Status"
accessSemantics: "none"
exports: ["Quickshell.Services.SystemTray/Status 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 30
values: ["Passive", "Active", "NeedsAttention"]
}
}
Component {
file: "item.hpp"
lineNumber: 100
name: "qs::service::sni::StatusNotifierItem"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.SystemTray/SystemTrayItem 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "id"
type: "QString"
bindable: "bindableId"
read: "default"
notify: "idChanged"
index: 0
lineNumber: 105
isReadonly: true
}
Property {
name: "title"
type: "QString"
bindable: "bindableTitle"
read: "default"
notify: "titleChanged"
index: 1
lineNumber: 107
isReadonly: true
}
Property {
name: "status"
type: "qs::service::sni::Status::Enum"
bindable: "bindableStatus"
read: "default"
notify: "statusChanged"
index: 2
lineNumber: 108
isReadonly: true
}
Property {
name: "category"
type: "qs::service::sni::Category::Enum"
bindable: "bindableCategory"
read: "default"
notify: "categoryChanged"
index: 3
lineNumber: 109
isReadonly: true
}
Property {
name: "icon"
type: "QString"
bindable: "bindableIcon"
read: "default"
notify: "iconChanged"
index: 4
lineNumber: 111
isReadonly: true
}
Property {
name: "tooltipTitle"
type: "QString"
read: "tooltipTitle"
notify: "tooltipTitleChanged"
index: 5
lineNumber: 112
isReadonly: true
}
Property {
name: "tooltipDescription"
type: "QString"
read: "tooltipDescription"
notify: "tooltipDescriptionChanged"
index: 6
lineNumber: 113
isReadonly: true
}
Property {
name: "hasMenu"
type: "bool"
bindable: "bindableHasMenu"
read: "default"
notify: "hasMenuChanged"
index: 7
lineNumber: 115
isReadonly: true
}
Property {
name: "menu"
type: "qs::dbus::dbusmenu::DBusMenuHandle"
isPointer: true
read: "menuHandle"
notify: "hasMenuChanged"
index: 8
lineNumber: 119
isReadonly: true
}
Property {
name: "onlyMenu"
type: "bool"
bindable: "bindableOnlyMenu"
read: "default"
notify: "onlyMenuChanged"
index: 9
lineNumber: 121
isReadonly: true
}
Signal { name: "ready"; lineNumber: 155 }
Signal { name: "idChanged"; lineNumber: 157 }
Signal { name: "titleChanged"; lineNumber: 158 }
Signal { name: "iconChanged"; lineNumber: 159 }
Signal { name: "statusChanged"; lineNumber: 160 }
Signal { name: "categoryChanged"; lineNumber: 161 }
Signal { name: "tooltipTitleChanged"; lineNumber: 162 }
Signal { name: "tooltipDescriptionChanged"; lineNumber: 163 }
Signal { name: "hasMenuChanged"; lineNumber: 164 }
Signal { name: "onlyMenuChanged"; lineNumber: 165 }
Method { name: "onGetAllFinished"; lineNumber: 168 }
Method { name: "onGetAllFailed"; isMethodConstant: true; lineNumber: 169 }
Method { name: "activate"; lineNumber: 130 }
Method { name: "secondaryActivate"; lineNumber: 132 }
Method {
name: "scroll"
isMethodConstant: true
lineNumber: 134
Parameter { name: "delta"; type: "int" }
Parameter { name: "horizontal"; type: "bool" }
}
Method {
name: "display"
lineNumber: 136
Parameter { name: "parentWindow"; type: "QObject"; isPointer: true }
Parameter { name: "relativeX"; type: "int" }
Parameter { name: "relativeY"; type: "int" }
}
}
}
@@ -1,9 +0,0 @@
module Quickshell.Services.UPower
linktarget quickshell-service-upowerplugin
optional plugin quickshell-service-upowerplugin
classname Quickshell_Services_UPowerPlugin
typeinfo quickshell-service-upower.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Services/UPower/
depends Quickshell
@@ -1,461 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "powerprofiles.hpp"
lineNumber: 42
name: "qs::service::upower::PerformanceDegradationReason"
accessSemantics: "reference"
prototype: "QObject"
exports: [
"Quickshell.Services.UPower/PerformanceDegradationReason 0.0"
]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 48
values: ["None", "LapDetected", "HighTemperature"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 60
Parameter { name: "reason"; type: "qs::service::upower::PerformanceDegradationReason::Enum" }
}
}
Component {
file: "powerprofiles.hpp"
lineNumber: 20
name: "qs::service::upower::PowerProfile"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.UPower/PowerProfile 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 26
values: ["PowerSaver", "Balanced", "Performance"]
}
Method {
name: "toString"
type: "QString"
lineNumber: 37
Parameter { name: "profile"; type: "qs::service::upower::PowerProfile::Enum" }
}
}
Component {
file: "powerprofiles.hpp"
lineNumber: 104
name: "qs::service::upower::PowerProfileHold"
accessSemantics: "value"
exports: ["Quickshell.Services.UPower/powerProfileHold 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "profile"
type: "qs::service::upower::PowerProfile::Enum"
index: 0
lineNumber: 107
isPropertyConstant: true
}
Property {
name: "applicationId"
type: "QString"
index: 1
lineNumber: 108
isPropertyConstant: true
}
Property { name: "reason"; type: "QString"; index: 2; lineNumber: 109; isPropertyConstant: true }
}
Component {
file: "powerprofiles.hpp"
lineNumber: 167
name: "qs::service::upower::PowerProfilesQml"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.UPower/PowerProfiles 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "profile"
type: "qs::service::upower::PowerProfile::Enum"
bindable: "bindableProfile"
read: "default"
write: "setProfile"
notify: "profileChanged"
index: 0
lineNumber: 176
}
Property {
name: "hasPerformanceProfile"
type: "bool"
bindable: "bindableHasPerformanceProfile"
read: "default"
notify: "hasPerformanceProfileChanged"
index: 1
lineNumber: 181
isReadonly: true
}
Property {
name: "degradationReason"
type: "qs::service::upower::PerformanceDegradationReason::Enum"
bindable: "bindableDegradationReason"
read: "default"
notify: "degradationReasonChanged"
index: 2
lineNumber: 184
isReadonly: true
}
Property {
name: "holds"
type: "qs::service::upower::PowerProfileHold"
isList: true
bindable: "bindableHolds"
read: "default"
notify: "holdsChanged"
index: 3
lineNumber: 200
isReadonly: true
}
Signal { name: "profileChanged"; lineNumber: 204 }
Signal { name: "hasPerformanceProfileChanged"; lineNumber: 205 }
Signal { name: "degradationReasonChanged"; lineNumber: 206 }
Signal { name: "holdsChanged"; lineNumber: 207 }
}
Component {
file: "device.hpp"
lineNumber: 115
name: "qs::service::upower::UPowerDevice"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.UPower/UPowerDevice 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "type"
type: "qs::service::upower::UPowerDeviceType::Enum"
bindable: "bindableType"
read: "default"
notify: "typeChanged"
index: 0
lineNumber: 119
isReadonly: true
}
Property {
name: "powerSupply"
type: "bool"
bindable: "bindablePowerSupply"
read: "default"
notify: "powerSupplyChanged"
index: 1
lineNumber: 121
isReadonly: true
}
Property {
name: "energy"
type: "double"
bindable: "bindableEnergy"
read: "default"
notify: "energyChanged"
index: 2
lineNumber: 123
isReadonly: true
}
Property {
name: "energyCapacity"
type: "double"
bindable: "bindableEnergyCapacity"
read: "default"
notify: "energyCapacityChanged"
index: 3
lineNumber: 125
isReadonly: true
}
Property {
name: "changeRate"
type: "double"
bindable: "bindableChangeRate"
read: "default"
notify: "changeRateChanged"
index: 4
lineNumber: 127
isReadonly: true
}
Property {
name: "timeToEmpty"
type: "double"
bindable: "bindableTimeToEmpty"
read: "default"
notify: "timeToEmptyChanged"
index: 5
lineNumber: 131
isReadonly: true
}
Property {
name: "timeToFull"
type: "double"
bindable: "bindableTimeToFull"
read: "default"
notify: "timeToFullChanged"
index: 6
lineNumber: 135
isReadonly: true
}
Property {
name: "percentage"
type: "double"
bindable: "bindablePercentage"
read: "default"
notify: "percentageChanged"
index: 7
lineNumber: 139
isReadonly: true
}
Property {
name: "isPresent"
type: "bool"
bindable: "bindableIsPresent"
read: "default"
notify: "isPresentChanged"
index: 8
lineNumber: 143
isReadonly: true
}
Property {
name: "state"
type: "qs::service::upower::UPowerDeviceState::Enum"
bindable: "bindableState"
read: "default"
notify: "stateChanged"
index: 9
lineNumber: 145
isReadonly: true
}
Property {
name: "healthPercentage"
type: "double"
bindable: "bindableHealthPercentage"
read: "default"
notify: "healthPercentageChanged"
index: 10
lineNumber: 147
isReadonly: true
}
Property {
name: "healthSupported"
type: "bool"
bindable: "bindableHealthSupported"
read: "default"
notify: "healthSupportedChanged"
index: 11
lineNumber: 148
isReadonly: true
}
Property {
name: "iconName"
type: "QString"
bindable: "bindableIconName"
read: "default"
notify: "iconNameChanged"
index: 12
lineNumber: 150
isReadonly: true
}
Property {
name: "isLaptopBattery"
type: "bool"
bindable: "bindableIsLaptopBattery"
read: "default"
notify: "isLaptopBatteryChanged"
index: 13
lineNumber: 154
isReadonly: true
}
Property {
name: "nativePath"
type: "QString"
bindable: "bindableNativePath"
read: "default"
notify: "nativePathChanged"
index: 14
lineNumber: 156
isReadonly: true
}
Property {
name: "model"
type: "QString"
bindable: "bindableModel"
read: "default"
notify: "modelChanged"
index: 15
lineNumber: 158
isReadonly: true
}
Property {
name: "ready"
type: "bool"
bindable: "bindableReady"
read: "default"
notify: "readyChanged"
index: 16
lineNumber: 162
isReadonly: true
}
Signal { name: "readyChanged"; lineNumber: 197 }
Signal { name: "typeChanged"; lineNumber: 199 }
Signal { name: "powerSupplyChanged"; lineNumber: 200 }
Signal { name: "energyChanged"; lineNumber: 201 }
Signal { name: "energyCapacityChanged"; lineNumber: 202 }
Signal { name: "changeRateChanged"; lineNumber: 203 }
Signal { name: "timeToEmptyChanged"; lineNumber: 204 }
Signal { name: "timeToFullChanged"; lineNumber: 205 }
Signal { name: "percentageChanged"; lineNumber: 206 }
Signal { name: "isPresentChanged"; lineNumber: 207 }
Signal { name: "stateChanged"; lineNumber: 208 }
Signal { name: "healthPercentageChanged"; lineNumber: 209 }
Signal { name: "healthSupportedChanged"; lineNumber: 210 }
Signal { name: "iconNameChanged"; lineNumber: 211 }
Signal { name: "isLaptopBatteryChanged"; lineNumber: 212 }
Signal { name: "nativePathChanged"; lineNumber: 213 }
Signal { name: "modelChanged"; lineNumber: 214 }
Method { name: "onGetAllFinished"; lineNumber: 217 }
}
Component {
file: "device.hpp"
lineNumber: 17
name: "qs::service::upower::UPowerDeviceState"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.UPower/UPowerDeviceState 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 23
values: [
"Unknown",
"Charging",
"Discharging",
"Empty",
"FullyCharged",
"PendingCharge",
"PendingDischarge"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 36
Parameter { name: "status"; type: "qs::service::upower::UPowerDeviceState::Enum" }
}
}
Component {
file: "device.hpp"
lineNumber: 41
name: "qs::service::upower::UPowerDeviceType"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.UPower/UPowerDeviceType 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 47
values: [
"Unknown",
"LinePower",
"Battery",
"Ups",
"Monitor",
"Mouse",
"Keyboard",
"Pda",
"Phone",
"MediaPlayer",
"Tablet",
"Computer",
"GamingInput",
"Pen",
"Touchpad",
"Modem",
"Network",
"Headset",
"Speakers",
"Headphones",
"Video",
"OtherAudio",
"RemoteControl",
"Printer",
"Scanner",
"Camera",
"Wearable",
"Toy",
"BluetoothGeneric"
]
}
Method {
name: "toString"
type: "QString"
lineNumber: 80
Parameter { name: "type"; type: "qs::service::upower::UPowerDeviceType::Enum" }
}
}
Component {
file: "core.hpp"
lineNumber: 65
name: "qs::service::upower::UPowerQml"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Services.UPower/UPower 0.0"]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "displayDevice"
type: "qs::service::upower::UPowerDevice"
isPointer: true
read: "displayDevice"
index: 0
lineNumber: 75
isReadonly: true
isPropertyConstant: true
}
Property {
name: "devices"
type: "UntypedObjectModel"
isPointer: true
read: "devices"
index: 1
lineNumber: 78
isReadonly: true
isPropertyConstant: true
}
Property {
name: "onBattery"
type: "bool"
bindable: "bindableOnBattery"
read: "default"
notify: "onBatteryChanged"
index: 2
lineNumber: 80
isReadonly: true
}
Signal { name: "onBatteryChanged"; lineNumber: 94 }
}
}
@@ -1,9 +0,0 @@
module Quickshell.Wayland._BackgroundEffect
linktarget quickshell-wayland-background-effectplugin
optional plugin quickshell-wayland-background-effectplugin
classname Quickshell_Wayland__BackgroundEffectPlugin
typeinfo quickshell-wayland-background-effect.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Wayland/_BackgroundEffect/
depends QtQuick
@@ -1,40 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 36
name: "qs::wayland::background_effect::BackgroundEffect"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Wayland._BackgroundEffect/BackgroundEffect 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
attachedType: "qs::wayland::background_effect::BackgroundEffect"
Property {
name: "blurRegion"
type: "PendingRegion"
isPointer: true
read: "blurRegion"
write: "setBlurRegion"
notify: "blurRegionChanged"
index: 0
lineNumber: 40
}
Signal { name: "blurRegionChanged"; lineNumber: 57 }
Method { name: "onWindowConnected"; lineNumber: 60 }
Method { name: "onWindowVisibleChanged"; lineNumber: 61 }
Method { name: "onWaylandWindowDestroyed"; lineNumber: 62 }
Method { name: "onWaylandSurfaceCreated"; lineNumber: 63 }
Method { name: "onWaylandSurfaceDestroyed"; lineNumber: 64 }
Method { name: "onProxyWindowDestroyed"; lineNumber: 65 }
Method { name: "onBlurRegionDestroyed"; lineNumber: 66 }
Method { name: "onWindowPolished"; lineNumber: 67 }
Method { name: "updateBlurRegion"; lineNumber: 68 }
}
}
@@ -1,9 +0,0 @@
module Quickshell.Wayland._IdleInhibitor
linktarget quickshell-wayland-idle-inhibitplugin
optional plugin quickshell-wayland-idle-inhibitplugin
classname Quickshell_Wayland__IdleInhibitorPlugin
typeinfo quickshell-wayland-idle-inhibit.qmltypes
depends QtQuick
prefer :/qt/qml/Quickshell/Wayland/_IdleInhibitor/
depends Quickshell
@@ -1,45 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "inhibitor.hpp"
lineNumber: 27
name: "qs::wayland::idle_inhibit::IdleInhibitor"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Wayland._IdleInhibitor/IdleInhibitor 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "enabled"
type: "bool"
bindable: "bindableEnabled"
read: "default"
write: "default"
notify: "enabledChanged"
index: 0
lineNumber: 32
}
Property {
name: "window"
type: "QObject"
isPointer: true
read: "window"
write: "setWindow"
notify: "windowChanged"
index: 1
lineNumber: 37
}
Signal { name: "enabledChanged"; lineNumber: 51 }
Signal { name: "windowChanged"; lineNumber: 52 }
Method { name: "onWindowDestroyed"; lineNumber: 55 }
Method { name: "onWindowVisibilityChanged"; lineNumber: 56 }
Method { name: "onWaylandWindowDestroyed"; lineNumber: 57 }
Method { name: "onWaylandSurfaceCreated"; lineNumber: 58 }
Method { name: "onWaylandSurfaceDestroyed"; lineNumber: 59 }
}
}
@@ -1,9 +0,0 @@
module Quickshell.Wayland._IdleNotify
linktarget quickshell-wayland-idle-notifyplugin
optional plugin quickshell-wayland-idle-notifyplugin
classname Quickshell_Wayland__IdleNotifyPlugin
typeinfo quickshell-wayland-idle-notify.qmltypes
depends QtQuick
prefer :/qt/qml/Quickshell/Wayland/_IdleNotify/
depends Quickshell
@@ -1,61 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "monitor.hpp"
lineNumber: 21
name: "qs::wayland::idle_notify::IdleMonitor"
accessSemantics: "reference"
prototype: "PostReloadHook"
exports: ["Quickshell.Wayland._IdleNotify/IdleMonitor 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "enabled"
type: "bool"
read: "isEnabled"
write: "setEnabled"
notify: "enabledChanged"
index: 0
lineNumber: 26
}
Property {
name: "timeout"
type: "double"
bindable: "bindableTimeout"
read: "default"
write: "default"
notify: "timeoutChanged"
index: 1
lineNumber: 30
}
Property {
name: "respectInhibitors"
type: "bool"
bindable: "bindableRespectInhibitors"
read: "default"
write: "default"
notify: "respectInhibitorsChanged"
index: 2
lineNumber: 33
}
Property {
name: "isIdle"
type: "bool"
bindable: "bindableIsIdle"
read: "default"
notify: "isIdleChanged"
index: 3
lineNumber: 36
isReadonly: true
}
Signal { name: "enabledChanged"; lineNumber: 54 }
Signal { name: "timeoutChanged"; lineNumber: 55 }
Signal { name: "respectInhibitorsChanged"; lineNumber: 56 }
Signal { name: "isIdleChanged"; lineNumber: 57 }
}
}
@@ -1,8 +0,0 @@
module Quickshell.Wayland._Screencopy
linktarget quickshell-wayland-screencopyplugin
optional plugin quickshell-wayland-screencopyplugin
classname Quickshell_Wayland__ScreencopyPlugin
typeinfo quickshell-wayland-screencopy.qmltypes
depends QtQuick
prefer :/qt/qml/Quickshell/Wayland/_Screencopy/
@@ -1,90 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "view.hpp"
lineNumber: 17
name: "qs::wayland::screencopy::ScreencopyView"
accessSemantics: "reference"
defaultProperty: "data"
parentProperty: "parent"
prototype: "QQuickItem"
exports: ["Quickshell.Wayland._Screencopy/ScreencopyView 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "captureSource"
type: "QObject"
isPointer: true
read: "captureSource"
write: "setCaptureSource"
notify: "captureSourceChanged"
index: 0
lineNumber: 28
}
Property {
name: "paintCursor"
type: "bool"
read: "paintCursors"
write: "setPaintCursors"
notify: "paintCursorsChanged"
index: 1
lineNumber: 30
}
Property {
name: "live"
type: "bool"
read: "live"
write: "setLive"
notify: "liveChanged"
index: 2
lineNumber: 33
}
Property {
name: "hasContent"
type: "bool"
bindable: "bindableHasContent"
read: "default"
notify: "hasContentChanged"
index: 3
lineNumber: 36
isReadonly: true
}
Property {
name: "sourceSize"
type: "QSize"
bindable: "bindableSourceSize"
read: "default"
notify: "sourceSizeChanged"
index: 4
lineNumber: 38
isReadonly: true
}
Property {
name: "constraintSize"
type: "QSizeF"
bindable: "bindableConstraintSize"
read: "default"
write: "default"
notify: "constraintSizeChanged"
index: 5
lineNumber: 41
}
Signal { name: "stopped"; lineNumber: 67 }
Signal { name: "captureSourceChanged"; lineNumber: 69 }
Signal { name: "paintCursorsChanged"; lineNumber: 70 }
Signal { name: "liveChanged"; lineNumber: 71 }
Signal { name: "hasContentChanged"; lineNumber: 72 }
Signal { name: "sourceSizeChanged"; lineNumber: 73 }
Signal { name: "constraintSizeChanged"; lineNumber: 74 }
Method { name: "onCaptureSourceDestroyed"; lineNumber: 80 }
Method { name: "onFrameCaptured"; lineNumber: 81 }
Method { name: "destroyContextWithUpdate"; lineNumber: 82 }
Method { name: "onBuffersReady"; lineNumber: 83 }
Method { name: "captureFrame"; lineNumber: 50 }
}
}
@@ -1,9 +0,0 @@
module Quickshell.Wayland._ShortcutsInhibitor
linktarget quickshell-wayland-shortcuts-inhibitplugin
optional plugin quickshell-wayland-shortcuts-inhibitplugin
classname Quickshell_Wayland__ShortcutsInhibitorPlugin
typeinfo quickshell-wayland-shortcuts-inhibit.qmltypes
depends QtQuick
prefer :/qt/qml/Quickshell/Wayland/_ShortcutsInhibitor/
depends Quickshell
@@ -1,61 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "inhibitor.hpp"
lineNumber: 26
name: "qs::wayland::shortcuts_inhibit::ShortcutInhibitor"
accessSemantics: "reference"
prototype: "QObject"
exports: [
"Quickshell.Wayland._ShortcutsInhibitor/ShortcutInhibitor 0.0"
]
exportMetaObjectRevisions: [0]
Property {
name: "enabled"
type: "bool"
bindable: "bindableEnabled"
read: "default"
write: "default"
notify: "enabledChanged"
index: 0
lineNumber: 31
}
Property {
name: "window"
type: "QObject"
isPointer: true
bindable: "bindableWindow"
read: "default"
write: "default"
notify: "windowChanged"
index: 1
lineNumber: 36
}
Property {
name: "active"
type: "bool"
bindable: "bindableActive"
read: "default"
notify: "activeChanged"
index: 2
lineNumber: 43
isReadonly: true
}
Signal { name: "enabledChanged"; lineNumber: 56 }
Signal { name: "windowChanged"; lineNumber: 57 }
Signal { name: "activeChanged"; lineNumber: 58 }
Signal { name: "cancelled"; lineNumber: 60 }
Method { name: "onWindowDestroyed"; lineNumber: 63 }
Method { name: "onWindowVisibilityChanged"; lineNumber: 64 }
Method { name: "onWaylandWindowDestroyed"; lineNumber: 65 }
Method { name: "onWaylandSurfaceCreated"; lineNumber: 66 }
Method { name: "onWaylandSurfaceDestroyed"; lineNumber: 67 }
Method { name: "onInhibitorActiveChanged"; lineNumber: 68 }
}
}
@@ -1,11 +0,0 @@
module Quickshell.Wayland._ToplevelManagement
linktarget quickshell-wayland-toplevel-managementplugin
optional plugin quickshell-wayland-toplevel-managementplugin
classname Quickshell_Wayland__ToplevelManagementPlugin
typeinfo quickshell-wayland-toplevel-management.qmltypes
depends QtQml
prefer :/qt/qml/Quickshell/Wayland/_ToplevelManagement/
depends Quickshell
depends Quickshell.Wayland
depends QtQuick
@@ -1,152 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qml.hpp"
lineNumber: 24
name: "qs::wayland::toplevel::Toplevel"
accessSemantics: "reference"
prototype: "QObject"
exports: ["Quickshell.Wayland._ToplevelManagement/Toplevel 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property {
name: "appId"
type: "QString"
read: "appId"
notify: "appIdChanged"
index: 0
lineNumber: 26
isReadonly: true
}
Property {
name: "title"
type: "QString"
read: "title"
notify: "titleChanged"
index: 1
lineNumber: 27
isReadonly: true
}
Property {
name: "parent"
type: "qs::wayland::toplevel::Toplevel"
isPointer: true
read: "parent"
notify: "parentChanged"
index: 2
lineNumber: 29
isReadonly: true
}
Property {
name: "activated"
type: "bool"
read: "activated"
notify: "activatedChanged"
index: 3
lineNumber: 33
isReadonly: true
}
Property {
name: "screens"
type: "QList<QuickshellScreenInfo*>"
read: "screens"
notify: "screensChanged"
index: 4
lineNumber: 38
isReadonly: true
}
Property {
name: "maximized"
type: "bool"
read: "maximized"
write: "setMaximized"
notify: "maximizedChanged"
index: 5
lineNumber: 43
}
Property {
name: "minimized"
type: "bool"
read: "minimized"
write: "setMinimized"
notify: "minimizedChanged"
index: 6
lineNumber: 48
}
Property {
name: "fullscreen"
type: "bool"
read: "fullscreen"
write: "setFullscreen"
notify: "fullscreenChanged"
index: 7
lineNumber: 54
}
Signal { name: "closed"; lineNumber: 97 }
Signal { name: "appIdChanged"; lineNumber: 98 }
Signal { name: "titleChanged"; lineNumber: 99 }
Signal { name: "parentChanged"; lineNumber: 100 }
Signal { name: "activatedChanged"; lineNumber: 101 }
Signal { name: "screensChanged"; lineNumber: 102 }
Signal { name: "maximizedChanged"; lineNumber: 103 }
Signal { name: "minimizedChanged"; lineNumber: 104 }
Signal { name: "fullscreenChanged"; lineNumber: 105 }
Method { name: "onClosed"; lineNumber: 108 }
Method { name: "onRectangleProxyConnected"; lineNumber: 109 }
Method { name: "onRectangleProxyDestroyed"; lineNumber: 110 }
Method { name: "activate"; lineNumber: 63 }
Method { name: "close"; lineNumber: 67 }
Method {
name: "fullscreenOn"
lineNumber: 71
Parameter { name: "screen"; type: "QuickshellScreenInfo"; isPointer: true }
}
Method {
name: "setRectangle"
lineNumber: 76
Parameter { name: "window"; type: "QObject"; isPointer: true }
Parameter { name: "rect"; type: "QRect" }
}
Method { name: "unsetRectangle"; lineNumber: 77 }
}
Component {
file: "qml.hpp"
lineNumber: 157
name: "qs::wayland::toplevel::ToplevelManagerQml"
accessSemantics: "reference"
prototype: "QObject"
exports: [
"Quickshell.Wayland._ToplevelManagement/ToplevelManager 0.0"
]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [0]
Property {
name: "toplevels"
type: "UntypedObjectModel"
isPointer: true
read: "toplevels"
index: 0
lineNumber: 162
isReadonly: true
isPropertyConstant: true
}
Property {
name: "activeToplevel"
type: "qs::wayland::toplevel::Toplevel"
isPointer: true
read: "activeToplevel"
notify: "activeToplevelChanged"
index: 1
lineNumber: 167
isReadonly: true
}
Signal { name: "activeToplevelChanged"; lineNumber: 179 }
}
}
@@ -1,10 +0,0 @@
module Quickshell.Wayland._WlrLayerShell
linktarget quickshell-wayland-layershellplugin
optional plugin quickshell-wayland-layershellplugin
classname Quickshell_Wayland__WlrLayerShellPlugin
typeinfo quickshell-wayland-layershell.qmltypes
depends QtQuick
prefer :/qt/qml/Quickshell/Wayland/_WlrLayerShell/
depends Quickshell
depends Quickshell.Wayland
@@ -1,139 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "wlr_layershell.hpp"
lineNumber: 47
name: "qs::wayland::layershell::WlrKeyboardFocus"
accessSemantics: "none"
exports: ["Quickshell.Wayland._WlrLayerShell/WlrKeyboardFocus 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 51
values: ["None", "Exclusive", "OnDemand"]
}
}
Component {
file: "wlr_layershell.hpp"
lineNumber: 26
name: "qs::wayland::layershell::WlrLayer"
accessSemantics: "none"
exports: ["Quickshell.Wayland._WlrLayerShell/WlrLayer 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Enum {
name: "Enum"
type: "quint8"
lineNumber: 30
values: ["Background", "Bottom", "Top", "Overlay"]
}
}
Component {
file: "wlr_layershell.hpp"
lineNumber: 97
name: "qs::wayland::layershell::WlrLayershell"
accessSemantics: "reference"
prototype: "ProxyWindowBase"
exports: ["Quickshell.Wayland._WlrLayerShell/WlrLayershell 0.0"]
exportMetaObjectRevisions: [0]
attachedType: "qs::wayland::layershell::WlrLayershell"
Property {
name: "layer"
type: "qs::wayland::layershell::WlrLayer::Enum"
read: "layer"
write: "setLayer"
notify: "layerChanged"
index: 0
lineNumber: 102
}
Property {
name: "namespace"
type: "QString"
read: "ns"
write: "setNamespace"
notify: "namespaceChanged"
index: 1
lineNumber: 106
}
Property {
name: "keyboardFocus"
type: "qs::wayland::layershell::WlrKeyboardFocus::Enum"
read: "keyboardFocus"
write: "setKeyboardFocus"
notify: "keyboardFocusChanged"
index: 2
lineNumber: 108
}
Property {
name: "anchors"
type: "Anchors"
read: "anchors"
write: "setAnchors"
notify: "anchorsChanged"
index: 3
lineNumber: 110
}
Property {
name: "exclusiveZone"
type: "int"
read: "exclusiveZone"
write: "setExclusiveZone"
notify: "exclusiveZoneChanged"
index: 4
lineNumber: 111
}
Property {
name: "exclusionMode"
type: "ExclusionMode::Enum"
read: "exclusionMode"
write: "setExclusionMode"
notify: "exclusionModeChanged"
index: 5
lineNumber: 112
}
Property {
name: "margins"
type: "Margins"
read: "margins"
write: "setMargins"
notify: "marginsChanged"
index: 6
lineNumber: 113
}
Property {
name: "aboveWindows"
type: "bool"
read: "aboveWindows"
write: "setAboveWindows"
notify: "layerChanged"
index: 7
lineNumber: 114
}
Property {
name: "focusable"
type: "bool"
read: "focusable"
write: "setFocusable"
notify: "keyboardFocusChanged"
index: 8
lineNumber: 115
}
Signal { name: "layerChanged"; lineNumber: 170 }
Signal { name: "namespaceChanged"; lineNumber: 171 }
Signal { name: "keyboardFocusChanged"; lineNumber: 172 }
Signal { name: "anchorsChanged"; lineNumber: 173 }
Signal { name: "exclusiveZoneChanged"; lineNumber: 174 }
Signal { name: "exclusionModeChanged"; lineNumber: 175 }
Signal { name: "marginsChanged"; lineNumber: 176 }
Method { name: "updateAutoExclusion"; lineNumber: 179 }
Method { name: "onBridgeDestroyed"; lineNumber: 180 }
}
}
@@ -1,16 +0,0 @@
module Quickshell.Wayland
linktarget quickshell-waylandplugin
optional plugin quickshell-waylandplugin
classname Quickshell_WaylandPlugin
typeinfo quickshell-wayland.qmltypes
import Quickshell.Wayland._WlrLayerShell
import Quickshell.Wayland._ToplevelManagement
import Quickshell.Wayland._Screencopy
import Quickshell.Wayland._BackgroundEffect
import Quickshell.Wayland._IdleInhibitor
import Quickshell.Wayland._IdleNotify
import Quickshell.Wayland._ShortcutsInhibitor
depends QtQuick
prefer :/qt/qml/Quickshell/Wayland/
depends Quickshell
@@ -1,134 +0,0 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "session_lock.hpp"
lineNumber: 56
name: "WlSessionLock"
accessSemantics: "reference"
defaultProperty: "surface"
prototype: "Reloadable"
exports: ["Quickshell.Wayland/WlSessionLock 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "locked"
type: "bool"
read: "isLocked"
write: "setLocked"
notify: "lockStateChanged"
index: 0
lineNumber: 63
}
Property {
name: "secure"
type: "bool"
read: "isSecure"
notify: "secureStateChanged"
index: 1
lineNumber: 67
isReadonly: true
}
Property {
name: "surface"
type: "QQmlComponent"
isPointer: true
read: "surfaceComponent"
write: "setSurfaceComponent"
notify: "surfaceComponentChanged"
index: 2
lineNumber: 69
}
Signal { name: "lockStateChanged"; lineNumber: 90 }
Signal { name: "secureStateChanged"; lineNumber: 91 }
Signal { name: "surfaceComponentChanged"; lineNumber: 92 }
Method { name: "unlock"; lineNumber: 95 }
Method { name: "onScreensChanged"; lineNumber: 96 }
}
Component {
file: "session_lock.hpp"
lineNumber: 114
name: "WlSessionLockSurface"
accessSemantics: "reference"
defaultProperty: "data"
prototype: "Reloadable"
exports: ["Quickshell.Wayland/WlSessionLockSurface 0.0"]
exportMetaObjectRevisions: [0]
Property {
name: "contentItem"
type: "QQuickItem"
isPointer: true
read: "contentItem"
index: 0
lineNumber: 117
isReadonly: true
}
Property {
name: "visible"
type: "bool"
read: "isVisible"
notify: "visibleChanged"
index: 1
lineNumber: 121
isReadonly: true
}
Property {
name: "width"
type: "int"
read: "width"
notify: "widthChanged"
index: 2
lineNumber: 122
isReadonly: true
}
Property {
name: "height"
type: "int"
read: "height"
notify: "heightChanged"
index: 3
lineNumber: 123
isReadonly: true
}
Property {
name: "screen"
type: "QuickshellScreenInfo"
isPointer: true
read: "screen"
notify: "screenChanged"
index: 4
lineNumber: 125
isReadonly: true
}
Property {
name: "color"
type: "QColor"
read: "color"
write: "setColor"
notify: "colorChanged"
index: 5
lineNumber: 142
}
Property {
name: "data"
type: "QObject"
isList: true
read: "data"
index: 6
lineNumber: 143
isReadonly: true
}
Signal { name: "visibleChanged"; lineNumber: 175 }
Signal { name: "widthChanged"; lineNumber: 176 }
Signal { name: "heightChanged"; lineNumber: 177 }
Signal { name: "screenChanged"; lineNumber: 178 }
Signal { name: "colorChanged"; lineNumber: 179 }
Method { name: "onScreenDestroyed"; lineNumber: 182 }
Method { name: "onWidthChanged"; lineNumber: 183 }
Method { name: "onHeightChanged"; lineNumber: 184 }
}
}

Some files were not shown because too many files have changed in this diff Show More