Hypr Biblioteker

Introduksjon til Hypr Biblioteker

Hypr bibliotekene tilbyr nødvendige verktøy for hele Hypr økosystemet. Selv om tre av pakkene som er installert på denne siden ikke er strengt nødvendige (hyprtoolkit, hyprland-qt-support og hyprland-guiutils), er de nødvendige for noen dialogbokser, og denne boken forutsetter at du har bygget dem.

[Viktig]

Viktig

Det er kjent at oppdatering av denne pakken ødelegger ABI.

[Notat]

Notat

Dette kan ta litt tid å bygge. Gjør gjerne noe annet mens dette bygges.

Hypr Biblioteker Avhengigheter

Påkrevd

Cairo, CMake, GBM (libgbm eller Mesa), Glslang, libdisplay-info, libdrm, libinput, libjxl, libpng, librsvg, libwebp, libzip-1.11.4, OpenGL + EGL + GLESv2 (libglvnd eller Mesa; Mesa's GL is not supported), Pixman, pugixml-1.15, Qt-6, seatd-0.9.1, toml++-3.4.0, Wayland, og Wayland-Protocols

Anbefalt

Laste ned Hypr Biblioteker

Lag først en liste over filer som skal lastes ned:

cat > hypr-list << "EOF"
hyprland-protocols/archive/v0.7.0/hyprland-protocols-v0.7.0.tar.gz
hyprutils/archive/v0.10.2/hyprutils-v0.10.2.tar.gz
hyprlang/archive/v0.6.6/hyprlang-v0.6.6.tar.gz
hyprcursor/archive/v0.1.13/hyprcursor-v0.1.13.tar.gz
hyprwayland-scanner/archive/v0.4.5/hyprwayland-scanner-v0.4.5.tar.gz
aquamarine/archive/v0.9.5/aquamarine-v0.9.5.tar.gz
hyprgraphics/archive/v0.3.0/hyprgraphics-v0.3.0.tar.gz
hyprtoolkit/archive/v0.3.0/hyprtoolkit-v0.3.0.tar.gz
hyprland-qt-support/archive/v0.1.0/hyprland-qt-support-v0.1.0.tar.gz
hyprland-guiutils/archive/v0.1.0/hyprland-guiutils-v0.1.0.tar.gz
EOF

For å laste ned de nødvendige filene ved hjelp av Wget, bruk følgende kommandoer:

mkdir hyprlib &&
cd    hyprlib &&
grep -v '^#' ../hypr-list | wget -i- -c \
    -B https://github.com/hyprwm/

Installasjon av Hypr Biblioteker

Opprett /etc/profile.d/hypr.sh for å sikre at QML filer kan lastes inn og importeres som root bruker:

cat > /etc/profile.d/hypr.sh << "EOF"
# Begin /etc/profile.d/hypr.sh

pathappend /usr/lib/plugins        QT_PLUGIN_PATH
pathappend $QT6DIR/lib/plugins     QT_PLUGIN_PATH

pathappend /usr/lib/qt6/qml        QML2_IMPORT_PATH
pathappend $QT6DIR/lib/qml         QML2_IMPORT_PATH

# End /etc/profile.d/hypr.sh
EOF

Nå henter du hovedprofilen:

source /etc/profile
[Notat]

Notat

Når du installerer flere pakker i et skript, må installasjonen gjøres som root bruker. Det finnes tre generelle alternativer som kan brukes til å gjøre dette:

  1. Kjør hele skriptet som root bruker (ikke anbefalt).

  2. Bruk sudo kommandoen fra sudo pakken.

  3. Use su -c "command arguments" (anførselstegn kreves) som vil be om root passordet for hver iterasjon av løkken.

En måte å håndtere denne situasjonen på er å lage en kort bash funksjon som automatisk velger riktig metode. Når kommandoen er satt i miljøet, trenger den ikke å settes på nytt.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Deretter starter du et underskall som avsluttes ved feil:

bash -e

Installer alle pakkene ved å kjøre følgende kommandoer:

for package in $(grep -v '^#' ../hypr-list)
do
package=$(basename "$package")
packagedir=${package%.tar.?z*}
packagedir=$(echo -n "$packagedir" | sed 's/-v\([0-9]\)/-\1/')
echo "Building $packagedir"

  tar -xf $package
  pushd $packagedir

  case $packagedir in
    hyprland-protocols-[0-9]* )
      mkdir build
      cd build
        meson setup --prefix=/usr ..
    ;;

    * )
      mkdir build
      cd    build
        cmake -D CMAKE_INSTALL_PREFIX=/usr       \
              -D CMAKE_BUILD_TYPE=Release        \
              -D CMAKE_SKIP_INSTALL_RPATH=ON     \
              -D INSTALL_QML_PREFIX=/lib/qt6/qml \
              -D DISABLE_TESTS=ON                \
              -D BUILD_TESTING=OFF               \
              -W no-dev -G Ninja ..
    ;;
  esac

  ninja
  as_root ninja install
  popd
  rm -rf $packagedir
  as_root /sbin/ldconfig
done

Til slutt, avslutt skallet som ble startet tidligere:

exit

Parameterforklaringer

-D CMAKE_SKIP_INSTALL_RPATH=ON: Denne bryteren gjør at cmake fjerner hardkodede biblioteksøk stier (rpath) når du installerer en binær kjørbar fil eller et delt bibliotek. Denne pakken trenger ikke rpath når den er installert på standard plassering, og rpath kan noen ganger forårsake uønskede effekter eller til og med sikkerhetsproblemer.

Innhold

Installerte Programmer: hyprcursor-util, hyprland-dialog, hyprland-donate-screen, hyprland-update-screen, og hyprwayland-scanner
Installerte Biblioteker: libaquamarine, libhyprcursor, libhyprgraphics, libhyprland-quick-style-implplugin, libhyprland-quick-style-impl, libhyprland-quick-styleplugin, libhyprland-quick-style, libhyprlang, libhyprtoolkit, og libhyprutils
Installerte Mapper: /usr/include/{aquamarine,hypr{cursor,graphics,toolkit,utils}}, /usr/lib/cmake/hyprwayland-scanner, /usr/lib/qt6/qml/org/hyprland/style, og /usr/share/hyprland-protocols

Korte Beskrivelser

hyprcursor-util

kompilerer, pakker og pakker ut hyprcursor og xcursor temaer

hyprland-dialog

viser visse dialoger ved bruk av Qt-6

hyprland-donate-screen

viser en popup-boks som ber brukerne om å donere ved hjelp av Qt-6

hyprland-update-screen

viser en popup-boks som ber brukerne om å oppdatere ved hjelp av Qt-6

hyprwayland-scanner

genererer C++-kode fra Wayland protokollens XML filer

libaquamarine

tilbyr API funksjoner for rendering av bakstykket

libhyprcursor

tilbyr API funksjoner for hyprcursor formatet

libhyprgraphics

tilbyr grafikkverktøyfunksjoner for Hypr økosystemet

libhyprland-quick-style-implplugin

er Hyprland Quick Style IMPL programtillegget

libhyprland-quick-style-impl

er Hyprland Quick Style IMPL biblioteket

libhyprland-quick-styleplugin

er Hyprland Quick Style programtillegget

libhyprland-quick-style

er Hyprland Quick Style biblioteket

libhyprlang

tilbyr funksjoner for å analysere og bruke Hypr konfigurasjonsspråket

libhyprtoolkit

tilbyr GUI verktøysettfunksjoner for bruk med noen Hypr pakker

libhyprutils

tilbyr nyttefunksjoner for Hypr økosystemet