From 5652a1520cbdcae47bc25aa2dbd028b448652dd6 Mon Sep 17 00:00:00 2001 From: Jackson Delahunt Date: Thu, 2 Nov 2023 06:31:03 +1100 Subject: [PATCH] pick-arm64-changes --- docker/Dockerfile | 96 +++++++++++++++++------------------ docker/scripts/environment.sh | 3 +- docker/scripts/start.sh | 4 +- 3 files changed, 53 insertions(+), 50 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 440ef04..6d9eabe 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -39,7 +39,6 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \ RUN apt-get update -qq && \ DEBIAN_FRONTEND=noninteractive apt-get install -qq --fix-missing \ acpi \ - alacritty \ alsa-utils \ apt-file \ apt-utils \ @@ -50,6 +49,7 @@ RUN apt-get update -qq && \ bat \ bc \ build-essential \ + cargo \ cmake \ cmatrix \ curl \ @@ -63,6 +63,7 @@ RUN apt-get update -qq && \ ffmpeg \ figlet \ fonts-font-awesome \ + fonts-noto-color-emoji \ g++ \ gcc \ git \ @@ -99,6 +100,7 @@ RUN apt-get update -qq && \ pcmanfm \ perl \ pipx \ + pkg-config \ pulseaudio \ pulseaudio-module-zeroconf \ pulsemixer \ @@ -141,6 +143,15 @@ RUN apt-get update -qq && \ zsh && \ apt-file update +# Install alacritty +RUN apt-get update -qq && \ + apt-get install -qq libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3 && \ + git clone --depth 1 https://github.com/sabrehagen/alacritty /opt/alacritty && \ + cd /opt/alacritty && \ + cargo build --release --no-default-features --features=x11 && \ + install target/release/alacritty /usr/local/bin && \ + cargo clean + # Install arc RUN wget -O /usr/local/bin/arc -q https://github.com/mholt/archiver/releases/download/v3.5.0/arc_3.5.0_linux_amd64 && \ chmod +x /usr/local/bin/arc @@ -194,16 +205,16 @@ RUN wget -q -O dive.deb https://github.com/wagoodman/dive/releases/download/v0.9 rm dive.deb # Install docker-compose -RUN curl -fsSL "https://github.com/docker/compose/releases/download/1.25.0-rc1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \ +RUN curl -fsSL "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \ chmod +x /usr/local/bin/docker-compose # Install dunst RUN apt-get update -qq && \ - apt-get install -qq libnotify-dev libxss-dev && \ + apt-get install -qq libdbus-1-dev libnotify-dev libsdl-pango-dev libxinerama-dev libxrandr-dev libxss-dev && \ git clone https://github.com/sabrehagen/dunst /opt/dunst && \ cd /opt/dunst && \ - make all && \ - make install + make WAYLAND=0 all && \ + make WAYLAND=0 install # Install fastfetch RUN git clone https://github.com/fastfetch-cli/fastfetch /opt/fastfetch && \ @@ -223,23 +234,16 @@ RUN git clone --depth 1 https://github.com/xxxserxxx/gotop /opt/gotop && \ install gotop /usr/local/bin # Install gping -RUN apt-get update -qq && \ - apt-get install -qq cargo && \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ - git clone --depth 30 https://github.com/orf/gping /opt/gping && \ +RUN git clone --depth 30 https://github.com/orf/gping /opt/gping && \ cd /opt/gping && \ git checkout fd1eccb && \ cargo install --locked --path ./gping && \ install target/release/gping /usr/local/bin && \ - yes | $HOME/.cargo/bin/rustup self uninstall + cargo clean # Install i3lock RUN apt-get update -qq && \ apt-get install -qq \ - autoconf \ - gcc \ - make \ - pkg-config \ libpam0g-dev \ libcairo2-dev \ libfontconfig1-dev \ @@ -264,13 +268,14 @@ RUN apt-get update -qq && \ # Install i3 extras RUN apt-get update -qq && \ - apt-get install -qq python3-i3ipc && \ + apt-get install -qq libgtk2.0-dev libglib2.0-dev python3-dev python3-i3ipc && \ pipx install i3-resurrect==1.4.2 && \ pipx install i3altlayout==1.1.1 && \ pipx install i3-workspace-names-daemon && \ sed -i s/'?'/''/ $HOME/.local/pipx/venvs/i3-workspace-names-daemon/lib/python3.11/site-packages/i3_workspace_names_daemon.py && \ git clone --depth 1 https://github.com/s-urbaniak/i3-focus-last $HOME/.config/i3/i3-focus-last && \ cd $HOME/.config/i3/i3-focus-last && \ + go install && \ git clone --depth 1 https://github.com/dmedvinsky/gsimplecal /opt/gsimplecal && \ cd /opt/gsimplecal && \ ./autogen.sh && \ @@ -299,21 +304,9 @@ RUN git clone --depth 10 https://github.com/gsamokovarov/jump /opt/jump && \ go build -o jump && \ install jump /usr/local/bin -# Install kasmvnc -# RUN apt-get install -qq libhash-merge-simple-perl libswitch-perl libyaml-tiny-perl ssl-cert && \ -# wget -q -O kasmvnc.deb https://github.com/kasmtech/KasmVNC/releases/download/v1.1.0/kasmvncserver_focal_1.1.0_amd64.deb && \ -# dpkg -i kasmvnc.deb && \ -# rm kasmvnc.deb - # Install kdenlive RUN apt-get update -qq && \ - apt-get install -qq \ - frei0r-plugins \ - kde-style-breeze \ - kdenlive \ - knewstuff-dialog \ - mediainfo \ - --no-install-recommends + apt-get install -qq frei0r-plugins kde-style-breeze kdenlive knewstuff-dialog mediainfo --no-install-recommends # Install lazyvim RUN git clone --depth 1 https://github.com/LazyVim/starter $HOME/.config/nvim && \ @@ -340,6 +333,15 @@ RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg - RUN git clone --depth 1 https://github.com/cloud-computer/noVNC.git /opt/noVNC && \ git clone --depth 1 https://github.com/novnc/websockify /opt/noVNC/utils/websockify +# Install op +RUN curl -sS https://downloads.1password.com/linux/keys/1password.asc | gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg && \ + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/$(dpkg --print-architecture) stable main" | tee /etc/apt/sources.list.d/1password.list && \ + mkdir -p /etc/debsig/policies/AC2D62742012EA22 /usr/share/debsig/keyrings/AC2D62742012EA22 && \ + curl -sS https://downloads.1password.com/linux/debian/debsig/1password.pol | tee /etc/debsig/policies/AC2D62742012EA22/1password.pol && \ + curl -sS https://downloads.1password.com/linux/keys/1password.asc | gpg --dearmor --output /usr/share/debsig/keyrings/AC2D62742012EA22/debsig.gpg && \ + apt-get update -qq && \ + apt-get install -qq 1password-cli + # Install picom RUN apt-get update -qq && \ apt-get install -qq libconfig-dev libdbus-1-dev libegl-dev libev-dev libgl-dev libpcre3-dev libpixman-1-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-dpms0-dev libxcb-glx0-dev libxcb-image0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-util-dev libxcb-xfixes0-dev libxext-dev meson ninja-build uthash-dev && \ @@ -352,22 +354,13 @@ RUN apt-get update -qq && \ # Install pywal RUN pipx install pywal -# Install resucetime time tracker -RUN wget -O rescuetime.deb -nv https://www.rescuetime.com/installers/rescuetime_current_amd64.deb && \ - dpkg -i rescuetime.deb || apt-get install -qq --fix-broken && \ - rm rescuetime.deb - -# Install whatsdesk -RUN wget -O whatsdesk.deb -nv https://zerkc.gitlab.io/whatsdesk/whatsdesk_0.3.9_amd64.deb && \ - dpkg -i whatsdesk.deb && \ - rm whatsdesk.deb - # Install speedtest RUN pipx install speedtest-cli -# Install telegram -RUN curl -fsSL https://telegram.org/dl/desktop/linux | \ - tar -C /opt -xJf - +# Install thorium +RUN wget -O thorium.deb -nv https://github.com/Alex313031/Thorium-Raspi/releases/download/M117.0.5938.157/thorium-browser_117.0.5938.157_arm64.deb && \ + dpkg -i thorium.deb || apt-get install -qq --fix-broken && \ + rm thorium.deb # Install timeago RUN wget -O /usr/local/bin/timeago -nv https://raw.githubusercontent.com/sabrehagen/timeago/master/timeago && \ @@ -386,12 +379,14 @@ RUN wget -O code.deb -nv https://go.microsoft.com/fwlink/?LinkID=760868 && \ # Install warnai RUN apt-get update -qq && \ - apt-get install -qq inkscape optipng xfconf && \ + apt-get install -qq inkscape optipng xfconf libegl-dev libwayland-dev && \ git clone --depth 1 https://github.com/reorr/warnai /opt/warnai && \ sed -i '/notify-send/d' /opt/warnai/warnai # Install warpd -RUN git clone --depth 1 https://github.com/rvaiya/warpd /opt/warpd && \ +RUN apt-get update -qq && \ + apt-get install -qq libxtst-dev && \ + git clone --depth 1 https://github.com/rvaiya/warpd /opt/warpd && \ cd /opt/warpd && \ make && \ make install @@ -411,8 +406,7 @@ RUN apt-get update -qq && \ cmake .. -DCMAKE_BUILD_TYPE=Debug -DINCLUDE_DIRS=lib/iniparser/src -DCMAKE_INSTALL_PREFIX=/usr -DWAYLAND=OFF && \ make -j$(nproc) && \ make install && \ - cp /usr/lib/xava/out_x11_cairo.so /usr/lib/xava/out_x11_opengl.so && \ - rm -rf ../../xava + cp /usr/lib/xava/out_x11_cairo.so /usr/lib/xava/out_x11_opengl.so # Install yarn RUN curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ @@ -456,15 +450,18 @@ RUN sed -i 's/allowed_users=console/allowed_users=anybody/' /etc/X11/Xwrapper.co RUN userdel -r ubuntu && \ useradd \ --create-home \ - --groups audio,chrome,docker,input,pulse-access,shadow,sudo,tty,video \ + --groups audio,docker,input,pulse-access,shadow,sudo,tty,video \ --shell /bin/zsh \ $USER # Set non-root user password RUN sed -i "s;^$USER:[^:]*;$USER:$DESKTOP_ENVIRONMENT_HOST_USER_PASSWORD;" /etc/shadow -# Clone the desktop environment -RUN git clone https://github.com/sabrehagen/desktop-environment /opt/desktop-environment +# Clean build caches to reduce take ownership +RUN rm -rf \ + $HOME/.cache/go-build \ + $HOME/.cargo/registry \ + /opt/vscode-wal/node_modules # Take ownership of user's home directory and applications RUN chown -R $USER:$USER $HOME /opt @@ -473,6 +470,9 @@ RUN chown -R $USER:$USER $HOME /opt USER $USER WORKDIR $HOME +# Clone the desktop environment +RUN git clone https://github.com/sabrehagen/desktop-environment /opt/desktop-environment + # If the DOTFILES_CACHEBUST build arg is supplied, rebuild from static dotfiles onwards ARG DOTFILES_CACHEBUST RUN DOTFILES_CACHEBUST=$DOTFILES_CACHEBUST echo "Building from dotfiles..." diff --git a/docker/scripts/environment.sh b/docker/scripts/environment.sh index fdcc9d9..cfc9807 100755 --- a/docker/scripts/environment.sh +++ b/docker/scripts/environment.sh @@ -30,6 +30,7 @@ echo export DESKTOP_ENVIRONMENT_CACHE_CHROME=$DESKTOP_ENVIRONMENT_USER_HOME/.cac echo export DESKTOP_ENVIRONMENT_CACHE_CODE=$DESKTOP_ENVIRONMENT_USER_HOME/.vscode echo export DESKTOP_ENVIRONMENT_CACHE_KDENLIVE=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/kdenlive echo export DESKTOP_ENVIRONMENT_CACHE_SSH=$DESKTOP_ENVIRONMENT_USER_HOME/.ssh +echo export DESKTOP_ENVIRONMENT_CACHE_THORIUM=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/thorium echo export DESKTOP_ENVIRONMENT_CACHE_TMUX=$DESKTOP_ENVIRONMENT_USER_HOME/.tmux echo export DESKTOP_ENVIRONMENT_CACHE_YARN=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/yarn echo export DESKTOP_ENVIRONMENT_CACHE_ZSH=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/zsh @@ -43,8 +44,8 @@ echo export DESKTOP_ENVIRONMENT_STATE_I3=$DESKTOP_ENVIRONMENT_USER_HOME/.config/ echo export DESKTOP_ENVIRONMENT_STATE_JUMP=$DESKTOP_ENVIRONMENT_USER_HOME/.jump echo export DESKTOP_ENVIRONMENT_STATE_KDENLIVE=$DESKTOP_ENVIRONMENT_USER_HOME/.local/share/kdenlive echo export DESKTOP_ENVIRONMENT_STATE_KEYRING=$DESKTOP_ENVIRONMENT_USER_HOME/.local/share/keyrings -echo export DESKTOP_ENVIRONMENT_STATE_RESCUETIME=$DESKTOP_ENVIRONMENT_USER_HOME/.config/RescueTime.com echo export DESKTOP_ENVIRONMENT_STATE_TELEGRAM=$DESKTOP_ENVIRONMENT_USER_HOME/.local/share/TelegramDesktop +echo export DESKTOP_ENVIRONMENT_STATE_THORIUM=$DESKTOP_ENVIRONMENT_USER_HOME/.config/thorium echo export DESKTOP_ENVIRONMENT_STATE_WHATSDESK=$DESKTOP_ENVIRONMENT_USER_HOME/.config/whatsdesk echo export DESKTOP_ENVIRONMENT_STATE_X11=/tmp/.X11-unix diff --git a/docker/scripts/start.sh b/docker/scripts/start.sh index 9ee053a..d929a26 100755 --- a/docker/scripts/start.sh +++ b/docker/scripts/start.sh @@ -33,6 +33,7 @@ docker run \ --interactive \ --name $DESKTOP_ENVIRONMENT_CONTAINER_NAME \ --network $DESKTOP_ENVIRONMENT_DOCKER_NETWORK \ + --publish 8022:22 \ --publish 8080 \ --publish 8081 \ --publish 8082 \ @@ -48,6 +49,7 @@ docker run \ --volume DESKTOP_ENVIRONMENT_CACHE_CODE:$DESKTOP_ENVIRONMENT_CACHE_CODE \ --volume DESKTOP_ENVIRONMENT_CACHE_KDENLIVE:$DESKTOP_ENVIRONMENT_CACHE_KDENLIVE \ --volume DESKTOP_ENVIRONMENT_CACHE_SSH:$DESKTOP_ENVIRONMENT_CACHE_SSH \ + --volume DESKTOP_ENVIRONMENT_CACHE_THORIUM:$DESKTOP_ENVIRONMENT_CACHE_THORIUM \ --volume DESKTOP_ENVIRONMENT_CACHE_TMUX:$DESKTOP_ENVIRONMENT_CACHE_TMUX \ --volume DESKTOP_ENVIRONMENT_CACHE_YARN:$DESKTOP_ENVIRONMENT_CACHE_YARN \ --volume DESKTOP_ENVIRONMENT_CACHE_ZSH:$DESKTOP_ENVIRONMENT_CACHE_ZSH \ @@ -59,8 +61,8 @@ docker run \ --volume DESKTOP_ENVIRONMENT_STATE_JUMP:$DESKTOP_ENVIRONMENT_STATE_JUMP \ --volume DESKTOP_ENVIRONMENT_STATE_KDENLIVE:$DESKTOP_ENVIRONMENT_STATE_KDENLIVE \ --volume DESKTOP_ENVIRONMENT_STATE_KEYRING:$DESKTOP_ENVIRONMENT_STATE_KEYRING \ - --volume DESKTOP_ENVIRONMENT_STATE_RESCUETIME:$DESKTOP_ENVIRONMENT_STATE_RESCUETIME \ --volume DESKTOP_ENVIRONMENT_STATE_TELEGRAM:$DESKTOP_ENVIRONMENT_STATE_TELEGRAM \ + --volume DESKTOP_ENVIRONMENT_STATE_THORIUM:$DESKTOP_ENVIRONMENT_STATE_THORIUM \ --volume DESKTOP_ENVIRONMENT_STATE_WHATSDESK:$DESKTOP_ENVIRONMENT_STATE_WHATSDESK \ --volume DESKTOP_ENVIRONMENT_STATE_X11:$DESKTOP_ENVIRONMENT_STATE_X11 \ --volume DESKTOP_ENVIRONMENT_USER_APPS:$DESKTOP_ENVIRONMENT_USER_APPS \