From 45ce12129c5ca09b6e128b16f92d60ba14043911 Mon Sep 17 00:00:00 2001 From: Vladimir Hodakov Date: Tue, 12 May 2026 16:18:04 +0300 Subject: [PATCH] Install 86box --- .gitignore | 2 + Dockerfile | 60 ++-- brave-browser.desktop | 222 ------------ openbox.xml | 763 +++++++++++++++++++++++++++++++++++++++++ scripts/fetch_86box.sh | 22 ++ sources.list | 4 - supervisord.conf | 21 +- 7 files changed, 828 insertions(+), 266 deletions(-) delete mode 100644 brave-browser.desktop create mode 100644 openbox.xml create mode 100644 scripts/fetch_86box.sh delete mode 100644 sources.list diff --git a/.gitignore b/.gitignore index 706fd07..dbd0a16 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .idea .vscode +docker-compose.yaml +d* diff --git a/Dockerfile b/Dockerfile index 50cc4f6..f96bc19 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,49 +1,39 @@ -FROM ghcr.io/m1k1o/neko/base:3.0.8 +FROM ghcr.io/m1k1o/neko/base:latest -# copy sources list file -COPY sources.list /etc/apt/sources.list ENV DEBIAN_FRONTEND=noninteractive # update the system -RUN set -eux; \ - apt-get update; \ - apt-get -y upgrade; +RUN apt-get update; \ + apt-get -y upgrade -# install xfce -RUN set -eux; \ - apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confold" xfce4 xfce4-terminal sudo vim curl pavucontrol +# install fuse for appimage support +RUN apt-get -y install fuse -# install brave -RUN set -eux; \ - curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg \ - https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg; \ - echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main" | \ - tee /etc/apt/sources.list.d/brave-browser-release.list; \ - apt update; \ - apt install -y brave-browser +# install openbox +RUN apt-get install -y --no-install-recommends openbox -# install transmission and VLC -RUN set -eux; \ - apt-get install -y transmission-gtk vlc +# install 86box +COPY scripts/fetch_86box.sh /tmp/fetch_86box.sh +RUN chmod +x /tmp/fetch_86box.sh; \ + /tmp/fetch_86box.sh; \ + rm -f /tmp/fetch_86box.sh -# install gstreamer plugins -RUN set -eux; \ - apt-get install -y gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad; \ - apt-get install -y gstreamer1.0-libav gstreamer1.0-tools - -# add user to sudoers -RUN set -eux; \ - usermod -aG sudo neko; \ - echo "neko:neko" | chpasswd; \ - echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +# create configuration directories for 86box +RUN mkdir -p /home/neko/.config/86Box; \ + chown -R neko:neko /home/neko/.config/86Box; \ + mkdir -p /home/neko/.local/share/86Box; \ + chown -R neko:neko /home/neko/.local/share/86Box/; \ + mkdir -p /home/neko/vmstorage; \ + chown -R neko:neko /home/neko/vmstorage # clean up -RUN set -eux; \ - apt-get clean -y; \ +RUN apt-get clean -y; \ rm -rf /var/lib/apt/lists/* /var/cache/apt/* # copy configuation files -COPY supervisord.conf /etc/neko/supervisord/xfce.conf -COPY brave-browser.desktop /usr/share/applications/ +COPY supervisord.conf /etc/neko/supervisord/86box.conf +COPY openbox.xml /etc/neko/openbox.xml -VOLUME /home/neko +VOLUME /home/neko/.config/86Box +VOLUME /home/neko/.local/share/86Box/ +VOLUME /home/neko/vmstorage diff --git a/brave-browser.desktop b/brave-browser.desktop deleted file mode 100644 index bf36418..0000000 --- a/brave-browser.desktop +++ /dev/null @@ -1,222 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=Brave Web Browser -# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. -# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. -GenericName=Web Browser -GenericName[ar]=متصفح الشبكة -GenericName[bg]=Уеб браузър -GenericName[ca]=Navegador web -GenericName[cs]=WWW prohlížeč -GenericName[da]=Browser -GenericName[de]=Web-Browser -GenericName[el]=Περιηγητής ιστού -GenericName[en_GB]=Web Browser -GenericName[es]=Navegador web -GenericName[et]=Veebibrauser -GenericName[fi]=WWW-selain -GenericName[fr]=Navigateur Web -GenericName[gu]=વેબ બ્રાઉઝર -GenericName[he]=דפדפן אינטרנט -GenericName[hi]=वेब ब्राउज़र -GenericName[hu]=Webböngésző -GenericName[it]=Browser Web -GenericName[ja]=ウェブブラウザ -GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ -GenericName[ko]=웹 브라우저 -GenericName[lt]=Žiniatinklio naršyklė -GenericName[lv]=Tīmekļa pārlūks -GenericName[ml]=വെബ് ബ്രൌസര്‍ -GenericName[mr]=वेब ब्राऊजर -GenericName[nb]=Nettleser -GenericName[nl]=Webbrowser -GenericName[pl]=Przeglądarka WWW -GenericName[pt]=Navegador Web -GenericName[pt_BR]=Navegador da Internet -GenericName[ro]=Navigator de Internet -GenericName[ru]=Веб-браузер -GenericName[sl]=Spletni brskalnik -GenericName[sv]=Webbläsare -GenericName[ta]=இணைய உலாவி -GenericName[th]=เว็บเบราว์เซอร์ -GenericName[tr]=Web Tarayıcı -GenericName[uk]=Навігатор Тенет -GenericName[zh_CN]=网页浏览器 -GenericName[zh_HK]=網頁瀏覽器 -GenericName[zh_TW]=網頁瀏覽器 -# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[fil]=Web Browser -GenericName[hr]=Web preglednik -GenericName[id]=Browser Web -GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର -GenericName[sk]=WWW prehliadač -GenericName[sr]=Интернет прегледник -GenericName[te]=మహాతల అన్వేషి -GenericName[vi]=Bộ duyệt Web -# Gnome and KDE 3 uses Comment. -Comment=Access the Internet -Comment[ar]=الدخول إلى الإنترنت -Comment[bg]=Достъп до интернет -Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন -Comment[ca]=Accedeix a Internet -Comment[cs]=Přístup k internetu -Comment[da]=Få adgang til internettet -Comment[de]=Internetzugriff -Comment[el]=Πρόσβαση στο Διαδίκτυο -Comment[en_GB]=Access the Internet -Comment[es]=Accede a Internet. -Comment[et]=Pääs Internetti -Comment[fi]=Käytä internetiä -Comment[fil]=I-access ang Internet -Comment[fr]=Accéder à Internet -Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો -Comment[he]=גישה אל האינטרנט -Comment[hi]=इंटरनेट तक पहुंच स्थापित करें -Comment[hr]=Pristup Internetu -Comment[hu]=Internetelérés -Comment[id]=Akses Internet -Comment[it]=Accesso a Internet -Comment[ja]=インターネットにアクセス -Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ -Comment[ko]=인터넷 연결 -Comment[lt]=Interneto prieiga -Comment[lv]=Piekļūt internetam -Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക -Comment[mr]=इंटरनेटमध्ये प्रवेश करा -Comment[nb]=Gå til Internett -Comment[nl]=Verbinding maken met internet -Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ -Comment[pl]=Skorzystaj z internetu -Comment[pt]=Aceder à Internet -Comment[pt_BR]=Acessar a internet -Comment[ro]=Accesaţi Internetul -Comment[ru]=Доступ в Интернет -Comment[sk]=Prístup do siete Internet -Comment[sl]=Dostop do interneta -Comment[sr]=Приступите Интернету -Comment[sv]=Gå ut på Internet -Comment[ta]=இணையத்தை அணுகுதல் -Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి -Comment[th]=เข้าถึงอินเทอร์เน็ต -Comment[tr]=İnternet'e erişin -Comment[uk]=Доступ до Інтернету -Comment[vi]=Truy cập Internet -Comment[zh_CN]=访问互联网 -Comment[zh_HK]=連線到網際網路 -Comment[zh_TW]=連線到網際網路 -Exec=bash -c "source ~/.bashrc && /usr/bin/brave-browser-stable --proxy-server=\$HTTP_PROXY %U" -StartupNotify=true -Terminal=false -Icon=brave-browser -Type=Application -Categories=Network;WebBrowser; -MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https; -Actions=new-window;new-private-window; - -[Desktop Action new-window] -Name=New Window -Name[am]=አዲስ መስኮት -Name[ar]=نافذة جديدة -Name[bg]=Нов прозорец -Name[bn]=নতুন উইন্ডো -Name[ca]=Finestra nova -Name[cs]=Nové okno -Name[da]=Nyt vindue -Name[de]=Neues Fenster -Name[el]=Νέο Παράθυρο -Name[en_GB]=New Window -Name[es]=Nueva ventana -Name[et]=Uus aken -Name[fa]=پنجره جدید -Name[fi]=Uusi ikkuna -Name[fil]=New Window -Name[fr]=Nouvelle fenêtre -Name[gu]=નવી વિંડો -Name[hi]=नई विंडो -Name[hr]=Novi prozor -Name[hu]=Új ablak -Name[id]=Jendela Baru -Name[it]=Nuova finestra -Name[iw]=חלון חדש -Name[ja]=新規ウインドウ -Name[kn]=ಹೊಸ ವಿಂಡೊ -Name[ko]=새 창 -Name[lt]=Naujas langas -Name[lv]=Jauns logs -Name[ml]=പുതിയ വിന്‍ഡോ -Name[mr]=नवीन विंडो -Name[nl]=Nieuw venster -Name[no]=Nytt vindu -Name[pl]=Nowe okno -Name[pt]=Nova janela -Name[pt_BR]=Nova janela -Name[ro]=Fereastră nouă -Name[ru]=Новое окно -Name[sk]=Nové okno -Name[sl]=Novo okno -Name[sr]=Нови прозор -Name[sv]=Nytt fönster -Name[sw]=Dirisha Jipya -Name[ta]=புதிய சாளரம் -Name[te]=క్రొత్త విండో -Name[th]=หน้าต่างใหม่ -Name[tr]=Yeni Pencere -Name[uk]=Нове вікно -Name[vi]=Cửa sổ Mới -Name[zh_CN]=新建窗口 -Name[zh_TW]=開新視窗 -Exec=/usr/bin/brave-browser-stable - -[Desktop Action new-private-window] -Name=New Incognito Window -Name[ar]=نافذة جديدة للتصفح المتخفي -Name[bg]=Нов прозорец „инкогнито“ -Name[bn]=নতুন ছদ্মবেশী উইন্ডো -Name[ca]=Finestra d'incògnit nova -Name[cs]=Nové anonymní okno -Name[da]=Nyt inkognitovindue -Name[de]=Neues Inkognito-Fenster -Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση -Name[en_GB]=New Incognito window -Name[es]=Nueva ventana de incógnito -Name[et]=Uus inkognito aken -Name[fa]=پنجره جدید حالت ناشناس -Name[fi]=Uusi incognito-ikkuna -Name[fil]=Bagong Incognito window -Name[fr]=Nouvelle fenêtre de navigation privée -Name[gu]=નવી છુપી વિંડો -Name[hi]=नई गुप्त विंडो -Name[hr]=Novi anoniman prozor -Name[hu]=Új Inkognitóablak -Name[id]=Jendela Penyamaran baru -Name[it]=Nuova finestra di navigazione in incognito -Name[iw]=חלון חדש לגלישה בסתר -Name[ja]=新しいシークレット ウィンドウ -Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ -Name[ko]=새 시크릿 창 -Name[lt]=Naujas inkognito langas -Name[lv]=Jauns inkognito režīma logs -Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ -Name[mr]=नवीन गुप्त विंडो -Name[nl]=Nieuw incognitovenster -Name[no]=Nytt inkognitovindu -Name[pl]=Nowe okno incognito -Name[pt]=Nova janela de navegação anónima -Name[pt_BR]=Nova janela anônima -Name[ro]=Fereastră nouă incognito -Name[ru]=Новое окно в режиме инкогнито -Name[sk]=Nové okno inkognito -Name[sl]=Novo okno brez beleženja zgodovine -Name[sr]=Нови прозор за прегледање без архивирања -Name[sv]=Nytt inkognitofönster -Name[ta]=புதிய மறைநிலைச் சாளரம் -Name[te]=క్రొత్త అజ్ఞాత విండో -Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน -Name[tr]=Yeni Gizli pencere -Name[uk]=Нове вікно в режимі анонімного перегляду -Name[vi]=Cửa sổ ẩn danh mới -Name[zh_CN]=新建隐身窗口 -Name[zh_TW]=新增無痕式視窗 -Exec=bash -c "source ~/.bashrc && /usr/bin/brave-browser-stable --proxy-server=\$HTTP_PROXY --incognito - diff --git a/openbox.xml b/openbox.xml new file mode 100644 index 0000000..9423b22 --- /dev/null +++ b/openbox.xml @@ -0,0 +1,763 @@ + + + + + + + + 10 + 20 + + + + + + no + true + yes + normal + + + + + yes + + no + + yes + + no + + 200 + + no + + + + + Smart + +
yes
+ + Primary + + 1 + +
+ + + Clearlooks + NLIMC + + yes + yes + + sans + 8 + + bold + + normal + + + + sans + 8 + + bold + + normal + + + + sans + 9 + + normal + + normal + + + + sans + 9 + + normal + + normal + + + + sans + 9 + + bold + + normal + + + + sans + 9 + + bold + + normal + + + + + + + 1 + 1 + + + + 875 + + + + + yes + Nonpixel + + Center + + + + + 10 + + 10 + + + + + + + 0 + 0 + 0 + 0 + + + + TopLeft + + 0 + 0 + no + Above + + Vertical + + no + 300 + + 300 + + Middle + + + + + C-g + + + + leftno + + + rightno + + + upno + + + downno + + + leftno + + + rightno + + + upno + + + downno + + + 1 + + + 2 + + + 3 + + + 4 + + + + + + + + + + + + + + + + + + + + scrot -s + + + + + + + + + + + + + + + + + + + + + + + + yesyes + + + + + + + + + + + + right + + + + + left + + + + + up + + + + + down + + + + + + + + true + Konqueror + + kfmclient openProfile filemanagement + + + + + scrot + + + + + 1 + + 500 + + 400 + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + + + next + + + previous + + + next + + + previous + + + next + + + + + + + + + + + + + + no + + + + + + + + + + + yes + + + + + + + + + + + + + + + + + + + + + + + + + + + top + + + + + + left + + + + + + right + + + + + + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vertical + + + horizontal + + + + + + + + + + + + + + + + + previous + + + next + + + + previous + + + next + + + previous + + + next + + + + + + + + + + + + + + + + + + + + previous + + + next + + + previous + + + next + + + + + + + + + + + menu.xml + 200 + + no + + 100 + + 400 + + yes + + yes + + + + + + + +
diff --git a/scripts/fetch_86box.sh b/scripts/fetch_86box.sh new file mode 100644 index 0000000..9cf6a48 --- /dev/null +++ b/scripts/fetch_86box.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +echo "Fetching 86Box AppImage and ROMs..." + +mkdir -p /opt/86box/roms + +if [ "$(uname -m)" == "aarch64" ]; then + echo "Fetching 86Box AppImage for ARM64 architecture..." + wget -O /opt/86box/86box \ + https://github.com/86Box/86Box/releases/download/v5.3/86Box-NDR-Linux-arm64-b8200.AppImage +elif [ "$(uname -m)" == "x86_64" ]; then + echo "Fetching 86Box AppImage for x86_64 architecture..." + wget -O /opt/86box/86box \ + https://github.com/86Box/86Box/releases/download/v5.3/86Box-Linux-x86_64-b8200.AppImage +fi + +chmod +x /opt/86box/86box + +wget -O /tmp/roms.tar.gz \ + https://github.com/86Box/roms/archive/refs/tags/v5.3.tar.gz + +tar -xzf /tmp/roms.tar.gz -C /opt/86box/roms --strip-components=1 diff --git a/sources.list b/sources.list deleted file mode 100644 index 2f1c515..0000000 --- a/sources.list +++ /dev/null @@ -1,4 +0,0 @@ -deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware -deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware -deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware -deb http://deb.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware diff --git a/supervisord.conf b/supervisord.conf index f3c7a82..29954ce 100644 --- a/supervisord.conf +++ b/supervisord.conf @@ -1,11 +1,22 @@ -[program:xfce] -environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s",HTTP_PROXY="%(ENV_HTTP_PROXY)s",HTTPS_PROXY="%(ENV_HTTP_PROXY)s",http_proxy="%(ENV_HTTP_PROXY)s",https_proxy="%(ENV_HTTP_PROXY)s" -command=/usr/bin/startxfce4 +[program:86box] +environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s" +command=/opt/86box/86box stopsignal=INT autorestart=true -priority=500 +priority=800 user=%(ENV_USER)s -stdout_logfile=/var/log/neko/xfce.log +stdout_logfile=/var/log/neko/86box.log +stdout_logfile_maxbytes=100MB +stdout_logfile_backups=10 +redirect_stderr=true + +[program:openbox] +environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s" +command=/usr/bin/openbox --config-file /etc/neko/openbox.xml +autorestart=true +priority=300 +user=%(ENV_USER)s +stdout_logfile=/var/log/neko/openbox.log stdout_logfile_maxbytes=100MB stdout_logfile_backups=10 redirect_stderr=true