diff --git a/.docker/opera/Dockerfile b/.docker/opera/Dockerfile new file mode 100644 index 00000000..023e87d7 --- /dev/null +++ b/.docker/opera/Dockerfile @@ -0,0 +1,43 @@ +ARG BASE_IMAGE=m1k1o/neko:base +FROM $BASE_IMAGE + +ARG SRC_URL="https://download.opera.com/download/get/?id=58545&location=415¬hanks=yes&sub=marine&utm_tryagain=yes" + +ARG WV_VER_URL="https://dl.google.com/widevine-cdm/versions.txt" +ARG WV_SRC_URL="https://dl.google.com/widevine-cdm/VERSION-linux-x64.zip" + +ARG LIBFFMPEG_URL="https://github.com/nwjs-ffmpeg-prebuilt/nwjs-ffmpeg-prebuilt/releases/download/0.67.1/0.67.1-linux-x64.zip" + +# +# install opera +RUN apt-get update +RUN wget -O /tmp/opera.deb $SRC_URL +RUN apt-get install -y --no-install-recommends openbox unzip /tmp/opera.deb +# install widevine +#RUN echo $WV_SRC_URL | sed -e "s/VERSION/$(wget -q -O - $WV_VER_URL | tail -n1)/" | xargs wget -O /tmp/wv.zip +#RUN mkdir -p /usr/lib/x86_64-linux-gnu/opera/lib_extra/WidevineCdm/_platform_specific/linux_x64 +#RUN unzip /tmp/wv.zip LICENSE.txt -d /usr/lib/x86_64-linux-gnu/opera/lib_extra/WidevineCdm/LICENSE +#RUN unzip /tmp/wv.zip manifest.json -d /usr/lib/x86_64-linux-gnu/opera/lib_extra/WidevineCdm +#RUN unzip /tmp/wv.zip libwidevinecdm.so -d /usr/lib/x86_64-linux-gnu/opera/lib_extra/WidevineCdm/_platform_specific/linux_x64 +#RUN echo '[{"preload":"/usr/lib/x86_64-linux-gnu/opera/lib_extra/WidevineCdm"}]' > /usr/lib/x86_64-linux-gnu/opera/resources/widevine_config.json +#RUN find /usr/lib/x86_64-linux-gnu/opera/lib_extra -type d -exec chmod 0755 '{}' \; +#RUN find /usr/lib/x86_64-linux-gnu/opera/lib_extra -type f -exec chmod 0644 '{}' \; +## install libffmpeg +RUN wget -O /tmp/libffmpeg.zip $LIBFFMPEG_URL +RUN unzip -o /tmp/libffmpeg.zip libffmpeg.so -d /usr/lib/x86_64-linux-gnu/opera/lib_extra +RUN echo '[]' > /usr/lib/x86_64-linux-gnu/opera/resources/ffmpeg_preload_config.json + +RUN ls -R /usr/lib/x86_64-linux-gnu/opera +# +# clean up +RUN apt-get clean -y +RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* + +ENV VLC_MEDIA="/media" + +# +# copy configuation files +COPY supervisord.conf /etc/neko/supervisord/vlc.conf +COPY --chown=neko preferences.json /home/neko/.config/opera/Default/Preferences +COPY policies.json /etc/opt/opera/policies/managed/policies.json +COPY openbox.xml /etc/neko/openbox.xml diff --git a/.docker/opera/openbox.xml b/.docker/opera/openbox.xml new file mode 100644 index 00000000..65881252 --- /dev/null +++ b/.docker/opera/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/.docker/opera/policies.json b/.docker/opera/policies.json new file mode 100644 index 00000000..c594d176 --- /dev/null +++ b/.docker/opera/policies.json @@ -0,0 +1,37 @@ +{ + "AutofillAddressEnabled": false, + "AutofillCreditCardEnabled": false, + "BrowserSignin": 0, + "DefaultNotificationsSetting": 2, + "DeveloperToolsAvailability": 2, + "EditBookmarksEnabled": false, + "FullscreenAllowed": true, + "IncognitoModeAvailability": 1, + "SyncDisabled": true, + "AutoplayAllowed": true, + "BrowserAddPersonEnabled": false, + "BrowserGuestModeEnabled": false, + "DefaultPopupsSetting": 2, + "DownloadRestrictions": 3, + "VideoCaptureAllowed": true, + "AllowFileSelectionDialogs": false, + "PromptForDownloadLocation": false, + "BookmarkBarEnabled": false, + "PasswordManagerEnabled": false, + "BrowserLabsEnabled": false, + "URLBlocklist": [ + "file://*", + "opera://policy" + ], + "ExtensionInstallForcelist": [ + "cjpalhdlnbpafiamejdnhcphjbkeiagm;https://clients2.google.com/service/update2/crx", + "mnjggcdmjocbbbhaepdhchncahnbgone;https://clients2.google.com/service/update2/crx" + ], + "ExtensionInstallAllowlist": [ + "cjpalhdlnbpafiamejdnhcphjbkeiagm", + "mnjggcdmjocbbbhaepdhchncahnbgone" + ], + "ExtensionInstallBlocklist": [ + "*" + ] +} diff --git a/.docker/opera/preferences.json b/.docker/opera/preferences.json new file mode 100644 index 00000000..31cd367a --- /dev/null +++ b/.docker/opera/preferences.json @@ -0,0 +1,110 @@ +{ + "homepage": "http://www.google.com", + "homepage_is_newtabpage": false, + "first_run_tabs": [ + "https://www.google.com/_/chrome/newtab?ie=UTF-8" + ], + "custom_links": { + "initialized": true, + "list": [ + { + "title": "YouTube", + "url": "https://www.youtube.com/" + }, + { + "title": "Netflix", + "url": "https://netflix.com" + }, + { + "title": "Hulu", + "url": "https://www.hulu.com/" + }, + { + "title": "9Anime", + "url": "https://9anime.to/" + }, + { + "title": "Crunchy Roll", + "url": "https://www.crunchyroll.com/" + }, + { + "title": "Funimation", + "url": "https://www.funimation.com/" + }, + { + "title": "Disney+", + "url": "https://www.disneyplus.com/" + }, + { + "title": "HBO Now", + "url": "https://play.hbonow.com/" + }, + { + "title": "Amazon Video", + "url": "https://www.amazon.com/Amazon-Video/b?node=2858778011" + }, + { + "title": "VRV", + "url": "https://vrv.co/" + }, + { + "title": "Twitch", + "url": "https://www.twitch.tv/" + }, + { + "title": "Mixer", + "url": "https://mixer.com/" + } + ] + }, + "browser": { + "custom_chrome_frame": false, + "show_home_button": true, + "window_placement": { + "maximized": true + } + }, + "bookmark_bar": { + "show_on_all_tabs": false + }, + "sync_promo": { + "show_on_first_run_allowed": false + }, + "distribution": { + "import_bookmarks_from_file": "bookmarks.html", + "import_bookmarks": true, + "import_history": true, + "import_home_page": true, + "import_search_engine": true, + "ping_delay": 60, + "do_not_create_desktop_shortcut": true, + "do_not_create_quick_launch_shortcut": true, + "do_not_create_taskbar_shortcut": true, + "do_not_launch_chrome": true, + "do_not_register_for_update_launch": true, + "make_chrome_default": true, + "make_chrome_default_for_user": true, + "system_level": false, + "verbose_logging": false + }, + "profile": { + "avatar_index": 19, + "default_content_setting_values": { + "clipboard": 2, + "cookies": 4, + "geolocation": 2, + "media_stream_camera": 2, + "media_stream_mic": 2, + "midi_sysex": 2, + "payment_handler": 2, + "usb_guard": 2 + }, + "name": "neko", + "using_default_avatar": false, + "using_default_name": false, + "using_gaia_avatar": false + }, + "signin": { + "allowed": false + } +} diff --git a/.docker/opera/supervisord.conf b/.docker/opera/supervisord.conf new file mode 100644 index 00000000..65558823 --- /dev/null +++ b/.docker/opera/supervisord.conf @@ -0,0 +1,22 @@ +[program:opera] +environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s" +command=/usr/bin/opera --no-sandbox --window-position=0,0 --display=%(ENV_DISPLAY)s --user-data-dir=/home/neko/.config/opera --no-first-run --start-maximized --bwsi --force-dark-mode --disable-file-system --disable-gpu --disable-software-rasterizer --disable-dev-shm-usage +stopsignal=INT +autorestart=true +priority=800 +user=%(ENV_USER)s +stdout_logfile=/var/log/neko/opera.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