Chroot2pfs. Примеры скриптов

Скрипт для сборки в модуль из исходников тайлингового оконного менеджера bspwm, бара polybar и меню запуска программ rofi. Дополнительно из репозитория устанавливаются i3 и feh.
Размер модуля 13 мб при сжатии в lz4 -Xhc.

    #!/bin/bash -e

    # Author: ilfat <http://forum.magos-linux.ru>

    export LANG=ru_RU.UTF-8

    mkdir /work && cd /work

    urpmi --auto --no-suggests \
            feh \
            fonts-ttf-unifont \
            i3-wm \
            lib64asound2 \
            lib64cairo2 \
            lib64curl4 \
            lib64glib2.0_0 \
            lib64gmodule2.0_0 \
            lib64iw29 \
            lib64jsoncpp19 \
            lib64mpdclient2 \
            lib64nl-genl3_200 \
            lib64pango1.0_0 \
            lib64pangocairo1.0_0 \
            lib64pulseaudio0 \
            lib64rsvg2_2 \
            lib64startup-notification-1_0 \
            lib64xcb1 \
            lib64xcb-ewmh2 \
            lib64xcb-randr0 \
            lib64xcb-util1 \
            lib64xcb-util-image0 \
            lib64xcb-util-keysyms1 \
            lib64xcb-xinerama0 \
            lib64xcb-xkb1 \
            lib64xcb-xrm0 \
            lib64xcb-xtest0 \
            lib64xdg-basedir1 \
            lib64xkbcommon0 \
            lib64xkbcommon-x11_0

    urpmi.recover --checkpoint
    CHECKPOINT_TIME=$(date "+%F %T")

    urpmi --auto --no-suggests \
            bdftopcf \
            bison \
            cmake \
            git \
            lib64asound-devel \
            lib64cairo-devel \
            lib64curl-devel \
            lib64iw-devel \
            lib64jsoncpp-devel \
            lib64mpdclient-devel \
            lib64nl3-devel \
            lib64pango1.0-devel \
            lib64pangocairo1.0-devel \
            lib64pulseaudio-devel \
            lib64rsvg2-devel \
            lib64startup-notification-1-devel \
            lib64xcb-cursor-devel \
            lib64xcb-devel \
            lib64xcb-util-devel \
            lib64xcb-util-image-devel \
            lib64xcb-util-keysyms-devel \
            lib64xcb-util-wm-devel \
            lib64xcb-xrm-devel \
            lib64xdg-basedir-devel \
            lib64xkbcommon-devel \
            lib64xkbcommon-x11-devel \
            libtool \
            x11-proto-devel

    # bspwm, sxhkd, xdo, xtitle
    git clone https://github.com/baskerville/bspwm.git
    git clone https://github.com/baskerville/sxhkd.git
    git clone https://github.com/baskerville/xdo.git
    git clone https://github.com/baskerville/xtitle.git
    cd bspwm && make && make install PREFIX=/usr
    cd ../sxhkd && make && make install PREFIX=/usr
    cd ../xdo && make && make install PREFIX=/usr
    cd ../xtitle && make && make install PREFIX=/usr
    cd ..
    install -Dm755 /usr/share/doc/bspwm/examples/bspwmrc /etc/skel/.config/bspwm/bspwmrc
    install -Dm644 /usr/share/doc/bspwm/examples/sxhkdrc /etc/skel/.config/sxhkd/sxhkdrc

    # siji font for polybar
    git clone https://github.com/stark/siji
    cd siji
    ./install.sh -d /usr/share/fonts
    cd ..

    # polybar
    git clone --recursive https://github.com/jaagr/polybar
    mkdir -p polybar/build && cd polybar/build
    cmake -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j$(nproc) && make install
    cd /work
    install -Dm644 /usr/share/doc/polybar/config /etc/skel/.config/polybar/config

    # rofi
    git clone https://github.com/DaveDavenport/rofi
    cd rofi
    git submodule update --init
    autoreconf -i
    mkdir build && cd build
    ../configure --disable-check --libdir=/usr/lib64 --prefix=/usr
    make -j$(nproc) && make install
    cd /
    rm -rf /work

    urpmi.recover --auto --rollback "$CHECKPOINT_TIME"
    urpmi.recover --disable
    rm -rf /etc/rpm/macros.d

    rm -rf  /var/tmp  /var/cache/{urpmi,ldconfig}  /etc/{urpmi,ld.so.cache,localtime,machine-id,resolv.conf} \
    /var/lib/{rpm,urpmi,menu} /usr/share/applications/mimeinfo.cache  /.wh* 2>/dev/null
    find "/usr/share/icons" -type f -name icon-theme.cache 2>/dev/null | xargs rm -f

i3-bspwm.sh (3.3 КБ)

1 лайк

Не маленький получился :slight_smile:
Пересборку проверял?

Ага. Можно было в ширину увеличить, но так читабельнее :slight_smile:. Добавил все зависимости, в том числе и те, что уже установлены в систему, на случай, если придется собирать с другим набором базовых модулей. Правда для этого надо будет делать ребилд базы rpm “своими силами”, rpmdbreset из контейнера не будет работать.

Да. Все работает)

Принимаем заказы :slight_smile:

rofi оказывается в репозитории есть и достаточно свежей версии. Свежее только в Арче)

Недавно появился. В телеграме писали. И i3-gaps тоже вроде.

А, вон оно что. А то я удивился, мол неужели я в репах не проверил его наличие. Значит всё-таки не было его. Polybar бы ещё добавили для полной коллекции.