From b08a545ece476e71e1200133883b10c6bccd4698 Mon Sep 17 00:00:00 2001 From: Elysia <1391048988@qq.com> Date: Sat, 8 Nov 2025 10:48:23 +0800 Subject: [PATCH] Use a locally built RPM instead of directly modifying it. --- sdata/dist-fedora/README.md | 14 ++- .../SPECS/Bibata-Modern-Classic.spec | 36 ++++++ .../SPECS/JetBrainsMonoNerdFont-Regular.spec | 42 +++++++ sdata/dist-fedora/SPECS/MicroTeX.spec | 50 ++++++++ sdata/dist-fedora/SPECS/breeze-plus.spec | 38 ++++++ sdata/dist-fedora/SPECS/otf-SpaceGrotesk.spec | 44 +++++++ sdata/dist-fedora/SPECS/ttf-gabarito.spec | 46 +++++++ .../SPECS/ttf-material-symbols-variable.spec | 42 +++++++ sdata/dist-fedora/SPECS/ttf-roboto-flex.spec | 42 +++++++ .../dist-fedora/SPECS/ttf-rubik-variable.spec | 46 +++++++ sdata/dist-fedora/install-deps.sh | 13 +- sdata/dist-fedora/install-setups.sh | 119 +++--------------- 12 files changed, 419 insertions(+), 113 deletions(-) create mode 100644 sdata/dist-fedora/SPECS/Bibata-Modern-Classic.spec create mode 100644 sdata/dist-fedora/SPECS/JetBrainsMonoNerdFont-Regular.spec create mode 100644 sdata/dist-fedora/SPECS/MicroTeX.spec create mode 100644 sdata/dist-fedora/SPECS/breeze-plus.spec create mode 100644 sdata/dist-fedora/SPECS/otf-SpaceGrotesk.spec create mode 100644 sdata/dist-fedora/SPECS/ttf-gabarito.spec create mode 100644 sdata/dist-fedora/SPECS/ttf-material-symbols-variable.spec create mode 100644 sdata/dist-fedora/SPECS/ttf-roboto-flex.spec create mode 100644 sdata/dist-fedora/SPECS/ttf-rubik-variable.spec diff --git a/sdata/dist-fedora/README.md b/sdata/dist-fedora/README.md index 7b00ca71c..d2a0b3081 100644 --- a/sdata/dist-fedora/README.md +++ b/sdata/dist-fedora/README.md @@ -1,12 +1,20 @@ # Install scripts for Fedora Linux - Synchronize all dependencies in arch. -- I've tested it on Fedora 43 (KDE Plasma Desktop Edition) on the x86_64 platform. +- It has been tested on Fedora 43 (KDE Plasma Desktop Edition) on the x86_64 platform. - If you have any questions, please submit them to the discussions section. +## About `hyprland-qtutils` and `hyprland-qt-support` + +The hyprland-qt-support's GitHub repository requires Qt 6.6 or higher, which I think makes DNF's requirement of Qt 6.9 too strict; it should also support Qt 6.10. + +According to @clsty 's discussion `hyprland-qtutils` and `hyprland-qt-support` have been removed in dist-arch recently. +https://github.com/end-4/dots-hyprland/pull/2393#discussion_r2503594243 +However, if this package is not installed, a yellow warning⚠️ will appear every time you log in to Hyprland. +so for now, these two packages will be kept by default. +Of course, you can choose to skip installing these two packages during the installation process, or uninstall them after installation. + # Usage - `git clone --recurse-submodules https://github.com/end-4/dots-hyprland ~/.cache/dots-hyprland` - `cd ~/.cache/dots-hyprland` - `./setup install` - -After installation, you may be prompted to delete some font files; ignore that. \ No newline at end of file diff --git a/sdata/dist-fedora/SPECS/Bibata-Modern-Classic.spec b/sdata/dist-fedora/SPECS/Bibata-Modern-Classic.spec new file mode 100644 index 000000000..1522ae851 --- /dev/null +++ b/sdata/dist-fedora/SPECS/Bibata-Modern-Classic.spec @@ -0,0 +1,36 @@ +Name: Bibata-Modern-Classic +Version: 2.0.7 +Release: %autorelease +Summary: Open source, compact, and material designed cursor set. + +License: GPL-3.0 +URL: https://github.com/ful1e5/Bibata_Cursor +Source0: %{name}.tar.xz + +BuildArch: noarch + +%description +Open source, compact, and material designed cursor set. + +%prep +wget --content-disposition -q -N -P %{_sourcedir} %{url}/releases/download/v%{version}/Bibata-Modern-Classic.tar.xz +wget -q -O %{_buildrootdir}/LICENSE %{url}/raw/refs/heads/main/LICENSE +%setup -q -n %{name} + +%build +: + +%install +install -d -m 0755 %{buildroot}%{_iconsdir}/Bibata-Modern-Classic +cp -r * %{buildroot}%{_iconsdir}/Bibata-Modern-Classic + +install -d -m 0755 %{buildroot}%{_licensedir}/%{name} +install -m 0644 %{_buildrootdir}/LICENSE %{buildroot}%{_licensedir}/%{name}/ + +%files +%{_iconsdir}/Bibata-Modern-Classic +%license %{_licensedir}/%{name}/LICENSE + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/SPECS/JetBrainsMonoNerdFont-Regular.spec b/sdata/dist-fedora/SPECS/JetBrainsMonoNerdFont-Regular.spec new file mode 100644 index 000000000..01f1e0e08 --- /dev/null +++ b/sdata/dist-fedora/SPECS/JetBrainsMonoNerdFont-Regular.spec @@ -0,0 +1,42 @@ +Name: JetBrainsMonoNerdFont-Regular +Version: 1.2 +Release: %autorelease +Summary: JetBrainsMonoNerdFonts (TrueType Outlines) (Regulear) + +License: MIT +URL: https://github.com/Zhaopudark/JetBrainsMonoNerdFonts +Source0: %{name} + +BuildRequires: fonts-rpm-macros +BuildArch: noarch + +%description +An auto-updated compiling version of JetBrains Mono that has been patched with Nerd Fonts. + +%prep +wget --content-disposition -q -N -P %{_sourcedir} %{url}/releases/download/v%{version}/JetBrainsMonoNerdFont-Regular-v%{version}.ttf +wget -q -P %{_sourcedir} %{url}/raw/refs/heads/main/LICENSE + +%build +: + +%install +install -d -m 0755 %{buildroot}%{_fontdir} +install -m 0644 %{_sourcedir}/JetBrainsMonoNerdFont*ttf %{buildroot}%{_fontdir} + +install -d -m 0755 %{buildroot}%{_licensedir}/%{name} +install -m 0644 %{_sourcedir}/LICENSE %{buildroot}%{_licensedir}/%{name}/ + +%post +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%postun +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%files +%{_fontdir}/JetBrainsMonoNerdFont*ttf +%license %{_licensedir}/%{name}/LICENSE + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/SPECS/MicroTeX.spec b/sdata/dist-fedora/SPECS/MicroTeX.spec new file mode 100644 index 000000000..ec8ae436f --- /dev/null +++ b/sdata/dist-fedora/SPECS/MicroTeX.spec @@ -0,0 +1,50 @@ +%global commit0 0e3707f6dafebb121d98b53c64364d16fefe481d +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) +%global bumpver 100 + +Name: MicroTeX +Version: 0.0.1%{?bumpver:^%{bumpver}.git%{shortcommit0}} +Release: %autorelease +Summary: A dynamic, cross-platform, and embeddable LaTeX rendering library + +License: MIT +URL: https://github.com/NanoMichael/MicroTeX +Source0: %{name}-%{shortcommit0}.tar.gz + +BuildRequires: gcc-c++ cmake +BuildRequires: pkgconfig(tinyxml2) +BuildRequires: gtkmm3.0-devel gtksourceviewmm3-devel cairomm-devel + +%description +MicroTeX is a library for rendering LaTeX mathematical formulas, supporting multiple backends +such as GTK+, Qt, and Skia. It provides both library components and demo applications for +testing LaTeX rendering. + +%prep +curl -fsSL --retry 3 \ + https://codeload.github.com/NanoMichael/MicroTeX/tar.gz/%{shortcommit0} \ + -o %{_sourcedir}/%{name}-%{shortcommit0}.tar.gz +%setup -q -n %{name}-%{shortcommit0} + +%build +mkdir -p build +cd build +cmake .. +make -j$(nproc) + +%install +mkdir -p %{buildroot}/opt/MicroTeX +cp build/LaTeX %{buildroot}/opt/MicroTeX/ +cp -r build/res %{buildroot}/opt/MicroTeX/ + +install -Dpm 0644 LICENSE %{buildroot}%{_licensedir}/%{name}/LICENSE +install -Dpm 0644 res/greek/LICENSE %{buildroot}%{_licensedir}/%{name}/LICENSE-greek +install -Dpm 0644 res/cyrillic/LICENSE %{buildroot}%{_licensedir}/%{name}/LICENSE-cyrillic + +%files +/opt/MicroTeX/ +%license %{_licensedir}/%{name}/ + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/SPECS/breeze-plus.spec b/sdata/dist-fedora/SPECS/breeze-plus.spec new file mode 100644 index 000000000..d37ff8e41 --- /dev/null +++ b/sdata/dist-fedora/SPECS/breeze-plus.spec @@ -0,0 +1,38 @@ +Name: breeze-plus +Version: 6.19.0 +Release: %autorelease +Summary: Breeze theme with additional icons + +License: LGPL-2.1 +URL: https://github.com/mjkim0727/breeze-plus +Source0: %{name}-%{version}.tar.gz + +BuildArch: noarch + +%description +Breeze icon theme with additional icons for applications not covered by the +official Breeze theme. Includes icons for Wine, third-party apps, and more. + +%prep +wget --content-disposition -q -N -P %{_sourcedir} %{url}/archive/refs/tags/%{version}.tar.gz +%setup -q + +%build +: + +%install +install -d -m 0755 %{buildroot}%{_iconsdir}/breeze-plus +cp -r src/breeze-plus %{buildroot}%{_iconsdir}/ +cp -r src/breeze-plus-dark %{buildroot}%{_iconsdir}/ + +install -d -m 0755 %{buildroot}%{_licensedir}/%{name} +install -m 0644 LICENSE %{buildroot}%{_licensedir}/%{name}/ + +%files +%{_iconsdir}/breeze-plus/ +%{_iconsdir}/breeze-plus-dark/ +%license %{_licensedir}/%{name}/LICENSE + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/SPECS/otf-SpaceGrotesk.spec b/sdata/dist-fedora/SPECS/otf-SpaceGrotesk.spec new file mode 100644 index 000000000..e42e4bc8e --- /dev/null +++ b/sdata/dist-fedora/SPECS/otf-SpaceGrotesk.spec @@ -0,0 +1,44 @@ +Name: otf-SpaceGrotesk +Version: 2.0.0 +Release: %autorelease +Summary: Space Grotesk: a proportional variant of the original fixed-width Space Mono family + +License: OFL-1.1 +URL: https://github.com/floriankarsten/space-grotesk +Source0: %{name}-%{version} + +BuildRequires: fonts-rpm-macros +BuildArch: noarch + +%description +Space Grotesk is a proportional sans-serif typeface variant based on Colophon Foundry's fixed-width Space Mono family (2016). +Originally designed by Florian Karsten in 2018, +Space Grotesk retains the monospace's idiosyncratic details while optimizing for improved readability at non-display sizes. + +%prep +wget --content-disposition -q -N -P %{_sourcedir} %{url}/releases/download/%{version}/SpaceGrotesk-%{version}.zip +unzip %{_sourcedir}/SpaceGrotesk-%{version}.zip + +%build +: + +%install +install -d -m 0755 %{buildroot}%{_fontdir} +install -m 0644 %{_buildrootdir}/SpaceGrotesk-%{version}/otf/SpaceGrotesk*otf %{buildroot}%{_fontdir} + +install -d -m 0755 %{buildroot}%{_licensedir}/%{name} +install -m 0644 %{_buildrootdir}/SpaceGrotesk-%{version}/OFL.txt %{buildroot}%{_licensedir}/%{name}/ + +%post +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%postun +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%files +%{_fontdir}/SpaceGrotesk*otf +%license %{_licensedir}/%{name}/OFL.txt + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/SPECS/ttf-gabarito.spec b/sdata/dist-fedora/SPECS/ttf-gabarito.spec new file mode 100644 index 000000000..a46341bf9 --- /dev/null +++ b/sdata/dist-fedora/SPECS/ttf-gabarito.spec @@ -0,0 +1,46 @@ +%global commit0 1f3fb39d6449eefa880543f109f33ede0cd4064f +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) +%global bumpver 100 + +Name: ttf-gabarito +Version: 1.000%{?bumpver:^%{bumpver}.git%{shortcommit0}} +Release: %autorelease +Summary: Gabarito Font + +License: OFL-1.1 +URL: https://github.com/naipefoundry/gabarito +Source0: gabarito-%{shortcommit0}.tar.gz + +BuildRequires: fonts-rpm-macros +BuildArch: noarch + +%description +Gabarito is a light-hearted geometric sans typeface with 6 weights ranging from Regular to Black originally designed for an online learning platform in Brazil. + +%prep +wget --content-disposition -q -N -P %{_sourcedir} https://codeload.github.com/naipefoundry/gabarito/tar.gz/%{shortcommit0} +%setup -q -n gabarito-%{shortcommit0} + +%build +: + +%install +install -d -m 0755 %{buildroot}%{_fontdir} +install -m 0644 fonts/ttf/Gabarito*.ttf %{buildroot}%{_fontdir} + +install -d -m 0755 %{buildroot}%{_licensedir}/%{name} +install -m 0644 OFL.txt %{buildroot}%{_licensedir}/%{name}/ + +%post +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%postun +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%files +%{_fontdir}/Gabarito*ttf +%license %{_licensedir}/%{name}/OFL.txt + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/SPECS/ttf-material-symbols-variable.spec b/sdata/dist-fedora/SPECS/ttf-material-symbols-variable.spec new file mode 100644 index 000000000..989540ec3 --- /dev/null +++ b/sdata/dist-fedora/SPECS/ttf-material-symbols-variable.spec @@ -0,0 +1,42 @@ +Name: ttf-material-symbols-variable +Version: 4.0.0 +Release: %autorelease +Summary: Material Design icons by Google (Material Symbols) + +License: Apache-2.0 +URL: https://github.com/google/material-design-icons +Source0: %{name}-%{version} + +BuildRequires: fonts-rpm-macros +BuildArch: noarch + +%description +Google Material Symbols Rounded + +%prep +wget --content-disposition -q -N -P %{_sourcedir} %{url}/raw/refs/heads/master/variablefont/MaterialSymbolsRounded%5BFILL,GRAD,opsz,wght%5D.ttf +wget -q -N -P %{_sourcedir} %{url}/raw/refs/heads/master/LICENSE + +%build +: + +%install +install -d -m 0755 %{buildroot}%{_fontdir}/variable-fonts +install -m 0644 %{_sourcedir}/MaterialSymbolsRounded*ttf %{buildroot}%{_fontdir}/variable-fonts/ + +install -d -m 0755 %{buildroot}%{_licensedir}/%{name} +install -m 0644 %{_sourcedir}/LICENSE %{buildroot}%{_licensedir}/%{name}/ + +%post +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%postun +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%files +%{_fontdir}/variable-fonts/MaterialSymbolsRounded*ttf +%license %{_licensedir}/%{name}/LICENSE + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/SPECS/ttf-roboto-flex.spec b/sdata/dist-fedora/SPECS/ttf-roboto-flex.spec new file mode 100644 index 000000000..e95917bf1 --- /dev/null +++ b/sdata/dist-fedora/SPECS/ttf-roboto-flex.spec @@ -0,0 +1,42 @@ +Name: ttf-roboto-flex +Version: 3.200 +Release: %autorelease +Summary: Roboto Flex + +License: OFL-1.1 +URL: https://github.com/googlefonts/roboto-flex +Source0: %{name} + +BuildRequires: fonts-rpm-macros +BuildArch: noarch + +%description +: + +%prep +wget --content-disposition -q -N -P %{_sourcedir} %{url}/raw/refs/heads/main/fonts/RobotoFlex%5BGRAD,XOPQ,XTRA,YOPQ,YTAS,YTDE,YTFI,YTLC,YTUC,opsz,slnt,wdth,wght%5D.ttf +wget -q -O %{_sourcedir}/OFL.txt %{url}/raw/refs/heads/main/OFL.txt + +%build +: + +%install +install -d -m 0755 %{buildroot}%{_fontdir} +install -m 0644 %{_sourcedir}/RobotoFlex*ttf %{buildroot}%{_fontdir} + +install -d -m 0755 %{buildroot}%{_licensedir}/%{name} +install -m 0644 %{_sourcedir}/OFL.txt %{buildroot}%{_licensedir}/%{name}/ + +%post +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%postun +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%files +%{_fontdir}/RobotoFlex*ttf +%license %{_licensedir}/%{name}/OFL.txt + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/SPECS/ttf-rubik-variable.spec b/sdata/dist-fedora/SPECS/ttf-rubik-variable.spec new file mode 100644 index 000000000..ec276be74 --- /dev/null +++ b/sdata/dist-fedora/SPECS/ttf-rubik-variable.spec @@ -0,0 +1,46 @@ +%global commit0 e337a5f69a9bea30e58d05bd40184d79cc099628 +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) +%global bumpver 100 + +Name: ttf-rubik-variable +Version: 1.0%{?bumpver:^%{bumpver}.git%{shortcommit0}} +Release: %autorelease +Summary: Rubik fonts variable + +License: OFL-1.1 +URL: https://github.com/googlefonts/rubik +Source0: rubik-%{shortcommit0}.tar.gz + +BuildRequires: fonts-rpm-macros +BuildArch: noarch + +%description +: + +%prep +wget --content-disposition -q -N -P %{_sourcedir} https://codeload.github.com/googlefonts/rubik/tar.gz/%{shortcommit0} +%setup -q -n rubik-%{shortcommit0} + +%build +: + +%install +install -d -m 0755 %{buildroot}%{_fontdir}/variable-fonts +install -m 0644 fonts/variable/Rubik*ttf %{buildroot}%{_fontdir}/variable-fonts/ + +install -d -m 0755 %{buildroot}%{_licensedir}/%{name} +install -m 0644 OFL.txt %{buildroot}%{_licensedir}/%{name}/ + +%post +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%postun +/usr/bin/fc-cache -fv >/dev/null 2>&1 || : + +%files +%{_fontdir}/variable-fonts/Rubik*ttf +%license %{_licensedir}/%{name}/OFL.txt + +%changelog +%autochangelog + diff --git a/sdata/dist-fedora/install-deps.sh b/sdata/dist-fedora/install-deps.sh index 07d69b635..47e4e5767 100644 --- a/sdata/dist-fedora/install-deps.sh +++ b/sdata/dist-fedora/install-deps.sh @@ -13,7 +13,7 @@ case $SKIP_SYSUPDATE in esac # Group installation -v sudo dnf install @development-tools -y +v sudo dnf install @development-tools fedora-packager rpmdevtools fonts-rpm-macros -y # COPR repositories v sudo dnf copr enable solopasha/hyprland -y @@ -42,13 +42,16 @@ v sudo dnf install ${themes_deps[@]} -y # Hyprland hyprland_deps=( - hypridle hyprland-qtutils hyprland hyprlock hyprpicker + hypridle hyprland hyprlock hyprpicker hyprsunset xdg-desktop-portal-hyprland wl-clipboard ) -v dnf download hyprland-qt-support -v sudo rpm -ivh --nodeps hyprland-qt-support-*.fc$(rpm -E %fedora).$(uname -m).rpm -# hyprland-qtutils depends on hyprland-qt-support, but since it does not yet support Qt 6.10, this package has been temporarily removed. v sudo dnf install --setopt="install_weak_deps=False" "${hyprland_deps[@]}" -y +# Deprecation +echo -e "${STY_YELLOW}${STY_BOLD}!DeprecationWarning! hyprland-qtutils and hyprland-qt-support have been removed in dist-arch recently.$STY_RST" +echo -e "${STY_YELLOW}${STY_BOLD}You can choose whether or not to install these two packages.$STY_RST" +# The GitHub repository requires Qt 6.6 or higher, which I think makes DNF's requirement of Qt 6.9 too strict; it should also support Qt 6.10. +v dnf download hyprland-qt-support && sudo rpm -ivh --nodeps hyprland-qt-support-*.fc$(rpm -E %fedora).$(uname -m).rpm +v sudo dnf install hyprland-qtutils -y # KDE v sudo dnf install bluedevil gnome-keyring NetworkManager plasma-nm polkit-kde dolphin plasma-systemsettings -y diff --git a/sdata/dist-fedora/install-setups.sh b/sdata/dist-fedora/install-setups.sh index 8db75dad2..797cad9eb 100644 --- a/sdata/dist-fedora/install-setups.sh +++ b/sdata/dist-fedora/install-setups.sh @@ -1,115 +1,24 @@ # This script is meant to be sourced. # It's not for directly running. -install_Font() { - local FONT_NAME="${FUNCNAME[2]#install_}" - local CACHE_DIR="$REPO_ROOT/cache/${FONT_NAME:-noname}/" - local LOCAL_FONT_DIR="/usr/local/share/fonts/${1^^}/${FONT_NAME:-noname}/" - local LOCAL_FONT_LICENSES_DIR="/usr/local/share/licenses/${FONT_NAME:-noname}/" - local DL_FILE - - x mkdir -p "$CACHE_DIR" - x wget --content-disposition -q -N -P "$CACHE_DIR" "$2" - mapfile -t -d '' files < <(find "$CACHE_DIR" -maxdepth 1 -type f -print0) - DL_FILE="${files[0]}" - - x wget -q -N -O "$CACHE_DIR/LICENSE" "$3" - x sudo mkdir -p "$LOCAL_FONT_DIR" - x sudo mkdir -p "$LOCAL_FONT_LICENSES_DIR" - x sudo cp "$CACHE_DIR/LICENSE" "$LOCAL_FONT_LICENSES_DIR" - x sudo cp "$CACHE_DIR"/*.$1 "$LOCAL_FONT_DIR" - x fc-cache -fv +# Start building the missing RPM package locally. +install_RPMS() { + rpmbuildroot=${REPO_ROOT}/sdata/dist-fedora + x mkdir $rpmbuildroot/{BUILD,RPMS,SOURCES} + x cd $rpmbuildroot/SPECS + mapfile -t -d '' local_specs < <(find "$rpmbuildroot/SPECS" -maxdepth 1 -type f -name "*.spec" -print0) + for spec_file in ${local_specs[@]}; do + x rpmbuild -bb --define "_topdir $rpmbuildroot" $spec_file + done + mapfile -t -d '' local_rpms < <(find "$rpmbuildroot/RPMS" -maxdepth 2 -type f -name '*.rpm' -not -name '*debug*' -print0) + x sudo dnf install "${local_rpms[@]}" -y + cd ${REPO_ROOT} } -install_ttf_material_symbols_variable() { - local ttf_material_symbols_variable="https://github.com/google/material-design-icons/raw/refs/heads/master/variablefont/MaterialSymbolsRounded%5BFILL,GRAD,opsz,wght%5D.ttf" - local ttf_material_symbols_variable_license="https://raw.githubusercontent.com/google/material-design-icons/refs/heads/master/LICENSE" - showfun install_Font - x install_Font ttf "$ttf_material_symbols_variable" "$ttf_material_symbols_variable_license" -} - -install_JetBrainsMonoNerdFont() { - local JetBrainsMonoNerdFont="https://github.com/Zhaopudark/JetBrainsMonoNerdFonts/releases/download/v1.2/JetBrainsMonoNerdFont-Regular-v1.2.ttf" - local JetBrainsMonoNerdFontLicense="https://raw.githubusercontent.com/JetBrains/JetBrainsMono/refs/heads/master/OFL.txt" - showfun install_Font - x install_Font ttf "$JetBrainsMonoNerdFont" "$JetBrainsMonoNerdFontLicense" -} - -install_RobotoFlex() { - local RobotoFlexFont="https://github.com/googlefonts/roboto-flex/raw/refs/heads/main/fonts/RobotoFlex%5BGRAD,XOPQ,XTRA,YOPQ,YTAS,YTDE,YTFI,YTLC,YTUC,opsz,slnt,wdth,wght%5D.ttf" - local RobotoFlexFontLicense="https://github.com/googlefonts/roboto-flex/raw/refs/heads/main/OFL.txt" - showfun install_Font - x install_Font ttf "$RobotoFlexFont" "$RobotoFlexFontLicense" -} -install_SpaceGroteskFont() { - local FONT_NAME="${FUNCNAME[0]#install_}" - local CACHE_DIR="$REPO_ROOT/cache/${FONT_NAME:-noname}/" - local LOCAL_FONT_DIR="/usr/local/share/fonts/OTF/${FONT_NAME:-noname}/" - local LOCAL_FONT_LICENSES_DIR="/usr/local/share/licenses/${FONT_NAME:-noname}/" - local SpaceGroteskFont="https://github.com/floriankarsten/space-grotesk/releases/download/2.0.0/SpaceGrotesk-2.0.0.zip" - x mkdir -p "$CACHE_DIR" - x wget -q -N -P "$CACHE_DIR" "$SpaceGroteskFont" - x unzip -j "$CACHE_DIR/$(basename "$SpaceGroteskFont")" -d "$CACHE_DIR" - x sudo mkdir -p "$LOCAL_FONT_DIR" - x sudo mkdir -p "$LOCAL_FONT_LICENSES_DIR" - x sudo cp "$CACHE_DIR"/SpaceGrotesk*.otf "$LOCAL_FONT_DIR" - x sudo cp "$CACHE_DIR"/OFL.txt "$LOCAL_FONT_LICENSES_DIR" - x fc-cache -fv - x cd "$REPO_ROOT" -} - -install_breeze_plus(){ - x mkdir -p $REPO_ROOT/cache/breeze-plus - x cd $REPO_ROOT/cache/breeze-plus - try git init -b main - try git remote add origin https://github.com/mjkim0727/breeze-plus.git - x git pull origin main - x sudo mkdir -p /usr/share/icons - x cd ./src - x sudo cp -r breeze-plus-dark /usr/share/icons - x sudo cp -r breeze-plus /usr/share/icons - x cd "$REPO_ROOT" -} - -install_Bibata_Modern_Classic() { - local BibataModernClassic="https://github.com/ful1e5/Bibata_Cursor/releases/download/v2.0.7/Bibata-Modern-Classic.tar.xz" - x mkdir -p "$REPO_ROOT/cache/" - x wget -q -N -P "$REPO_ROOT/cache/" "$BibataModernClassic" - x tar -xf "$REPO_ROOT/cache/$(basename "$BibataModernClassic")" -C "$REPO_ROOT/cache/" - x sudo cp -r "$REPO_ROOT/cache/Bibata-Modern-Classic" /usr/share/icons/ -} +showfun install_RPMS +v install_RPMS ##################################################################################### - -showfun install-MicroTeX -v install-MicroTeX - -showfun install_Bibata_Modern_Classic -v install_Bibata_Modern_Classic - -showfun install_breeze_plus -v install_breeze_plus - -showfun install-Rubik -v install-Rubik - -showfun install-Gabarito -v install-Gabarito - -showfun install_SpaceGroteskFont -v install_SpaceGroteskFont - -showfun install_ttf_material_symbols_variable -v install_ttf_material_symbols_variable - -showfun install_RobotoFlex -v install_RobotoFlex - -showfun install_JetBrainsMonoNerdFont -v install_JetBrainsMonoNerdFont - -v install-uv - # These python packages are installed using uv into the venv (virtual environment). Once the folder of the venv gets deleted, they are all gone cleanly. So it's considered as setups, not dependencies. showfun install-python-packages v install-python-packages