mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
commit
2ae54dea64
42
.docker/vivaldi/Dockerfile
Normal file
42
.docker/vivaldi/Dockerfile
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
ARG BASE_IMAGE=m1k1o/neko:base
|
||||||
|
FROM $BASE_IMAGE
|
||||||
|
|
||||||
|
ARG VIVALDI_VERSION="5.3.2679.34-1"
|
||||||
|
# TODO: Get chromium version from vivaldi
|
||||||
|
ARG CHROMIUM_VERSION="102.0.5005.72"
|
||||||
|
|
||||||
|
#
|
||||||
|
# install vivaldi
|
||||||
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
RUN set -eux; apt-get update; \
|
||||||
|
wget -O /tmp/vivaldi.deb "https://downloads.vivaldi.com/stable/vivaldi-stable_${VIVALDI_VERSION}_amd64.deb"; \
|
||||||
|
apt-get install -y --no-install-recommends wget unzip xz-utils jq openbox /tmp/vivaldi.deb; \
|
||||||
|
/opt/vivaldi/update-ffmpeg; \
|
||||||
|
#
|
||||||
|
# install latest version of uBlock Origin and SponsorBlock for YouTube
|
||||||
|
EXTENSIONS_DIR="/usr/share/chromium/extensions"; \
|
||||||
|
EXTENSIONS=( \
|
||||||
|
cjpalhdlnbpafiamejdnhcphjbkeiagm \
|
||||||
|
mnjggcdmjocbbbhaepdhchncahnbgone \
|
||||||
|
); \
|
||||||
|
mkdir -p "${EXTENSIONS_DIR}"; \
|
||||||
|
for EXT_ID in "${EXTENSIONS[@]}"; \
|
||||||
|
do \
|
||||||
|
EXT_URL="https://clients2.google.com/service/update2/crx?response=redirect&nacl_arch=x86-64&prodversion=${CHROMIUM_VERSION}&acceptformat=crx2,crx3&x=id%3D${EXT_ID}%26installsource%3Dondemand%26uc"; \
|
||||||
|
EXT_PATH="${EXTENSIONS_DIR}/${EXT_ID}.crx"; \
|
||||||
|
wget -O "${EXT_PATH}" "${EXT_URL}"; \
|
||||||
|
EXT_VERSION="$(unzip -p "${EXT_PATH}" manifest.json 2>/dev/null | jq -r ".version")"; \
|
||||||
|
echo -e "{\n \"external_crx\": \"${EXT_PATH}\",\n \"external_version\": \"${EXT_VERSION}\"\n}" > "${EXTENSIONS_DIR}"/"${EXT_ID}".json; \
|
||||||
|
done; \
|
||||||
|
#
|
||||||
|
# clean up
|
||||||
|
apt-get --purge autoremove -y xz-utils jq; \
|
||||||
|
apt-get clean -y; \
|
||||||
|
rm -rf /var/lib/apt/lists/* /var/cache/apt/*
|
||||||
|
|
||||||
|
#
|
||||||
|
# copy configuation files
|
||||||
|
COPY supervisord.conf /etc/neko/supervisord/vivaldi-browser.conf
|
||||||
|
COPY --chown=neko preferences.json /home/neko/.config/vivaldi/Default/Preferences
|
||||||
|
COPY policies.json /etc/opt/vivaldi/policies/managed/policies.json
|
||||||
|
COPY openbox.xml /etc/neko/openbox.xml
|
763
.docker/vivaldi/openbox.xml
Normal file
763
.docker/vivaldi/openbox.xml
Normal file
@ -0,0 +1,763 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!-- Default openbox config but all window decorations are moved
|
||||||
|
thereby making it harder to accidentally close the virtual browser -->
|
||||||
|
|
||||||
|
<openbox_config xmlns="http://openbox.org/3.4/rc"
|
||||||
|
xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||||
|
|
||||||
|
<resistance>
|
||||||
|
<strength>10</strength>
|
||||||
|
<screen_edge_strength>20</screen_edge_strength>
|
||||||
|
</resistance>
|
||||||
|
|
||||||
|
<applications>
|
||||||
|
<!-- Match all windows and remove their decorations (obxprop | grep "^_OB_APP") -->
|
||||||
|
<application class="Vivaldi-stable*" name="vivaldi-stable*" role="browser">
|
||||||
|
<decor>no</decor>
|
||||||
|
<maximized>true</maximized>
|
||||||
|
<focus>yes</focus>
|
||||||
|
<layer>normal</layer>
|
||||||
|
</application>
|
||||||
|
</applications>
|
||||||
|
|
||||||
|
<focus>
|
||||||
|
<focusNew>yes</focusNew>
|
||||||
|
<!-- always try to focus new windows when they appear. other rules do
|
||||||
|
apply -->
|
||||||
|
<followMouse>no</followMouse>
|
||||||
|
<!-- move focus to a window when you move the mouse into it -->
|
||||||
|
<focusLast>yes</focusLast>
|
||||||
|
<!-- focus the last used window when changing desktops, instead of the one
|
||||||
|
under the mouse pointer. when followMouse is enabled -->
|
||||||
|
<underMouse>no</underMouse>
|
||||||
|
<!-- move focus under the mouse, even when the mouse is not moving -->
|
||||||
|
<focusDelay>200</focusDelay>
|
||||||
|
<!-- when followMouse is enabled, the mouse must be inside the window for
|
||||||
|
this many milliseconds (1000 = 1 sec) before moving focus to it -->
|
||||||
|
<raiseOnFocus>no</raiseOnFocus>
|
||||||
|
<!-- when followMouse is enabled, and a window is given focus by moving the
|
||||||
|
mouse into it, also raise the window -->
|
||||||
|
</focus>
|
||||||
|
|
||||||
|
<placement>
|
||||||
|
<policy>Smart</policy>
|
||||||
|
<!-- 'Smart' or 'UnderMouse' -->
|
||||||
|
<center>yes</center>
|
||||||
|
<!-- whether to place windows in the center of the free area found or
|
||||||
|
the top left corner -->
|
||||||
|
<monitor>Primary</monitor>
|
||||||
|
<!-- with Smart placement on a multi-monitor system, try to place new windows
|
||||||
|
on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
|
||||||
|
the active window is, 'Primary' - only on the primary monitor -->
|
||||||
|
<primaryMonitor>1</primaryMonitor>
|
||||||
|
<!-- The monitor where Openbox should place popup dialogs such as the
|
||||||
|
focus cycling popup, or the desktop switch popup. It can be an index
|
||||||
|
from 1, specifying a particular monitor. Or it can be one of the
|
||||||
|
following: 'Mouse' - where the mouse is, or
|
||||||
|
'Active' - where the active window is -->
|
||||||
|
</placement>
|
||||||
|
|
||||||
|
<theme>
|
||||||
|
<name>Clearlooks</name>
|
||||||
|
<titleLayout>NLIMC</titleLayout>
|
||||||
|
<!--
|
||||||
|
available characters are NDSLIMC, each can occur at most once.
|
||||||
|
N: window icon
|
||||||
|
L: window label (AKA title).
|
||||||
|
I: iconify
|
||||||
|
M: maximize
|
||||||
|
C: close
|
||||||
|
S: shade (roll up/down)
|
||||||
|
D: omnipresent (on all desktops).
|
||||||
|
-->
|
||||||
|
<keepBorder>yes</keepBorder>
|
||||||
|
<animateIconify>yes</animateIconify>
|
||||||
|
<font place="ActiveWindow">
|
||||||
|
<name>sans</name>
|
||||||
|
<size>8</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>bold</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="InactiveWindow">
|
||||||
|
<name>sans</name>
|
||||||
|
<size>8</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>bold</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="MenuHeader">
|
||||||
|
<name>sans</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>normal</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="MenuItem">
|
||||||
|
<name>sans</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>normal</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="ActiveOnScreenDisplay">
|
||||||
|
<name>sans</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>bold</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="InactiveOnScreenDisplay">
|
||||||
|
<name>sans</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>bold</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
</theme>
|
||||||
|
|
||||||
|
<desktops>
|
||||||
|
<!-- this stuff is only used at startup, pagers allow you to change them
|
||||||
|
during a session
|
||||||
|
|
||||||
|
these are default values to use when other ones are not already set
|
||||||
|
by other applications, or saved in your session
|
||||||
|
|
||||||
|
use obconf if you want to change these without having to log out
|
||||||
|
and back in -->
|
||||||
|
<number>1</number>
|
||||||
|
<firstdesk>1</firstdesk>
|
||||||
|
<names>
|
||||||
|
<!-- set names up here if you want to, like this:
|
||||||
|
<name>desktop 1</name>
|
||||||
|
<name>desktop 2</name>
|
||||||
|
-->
|
||||||
|
</names>
|
||||||
|
<popupTime>875</popupTime>
|
||||||
|
<!-- The number of milliseconds to show the popup for when switching
|
||||||
|
desktops. Set this to 0 to disable the popup. -->
|
||||||
|
</desktops>
|
||||||
|
|
||||||
|
<resize>
|
||||||
|
<drawContents>yes</drawContents>
|
||||||
|
<popupShow>Nonpixel</popupShow>
|
||||||
|
<!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
|
||||||
|
<popupPosition>Center</popupPosition>
|
||||||
|
<!-- 'Center', 'Top', or 'Fixed' -->
|
||||||
|
<popupFixedPosition>
|
||||||
|
<!-- these are used if popupPosition is set to 'Fixed' -->
|
||||||
|
|
||||||
|
<x>10</x>
|
||||||
|
<!-- positive number for distance from left edge, negative number for
|
||||||
|
distance from right edge, or 'Center' -->
|
||||||
|
<y>10</y>
|
||||||
|
<!-- positive number for distance from top edge, negative number for
|
||||||
|
distance from bottom edge, or 'Center' -->
|
||||||
|
</popupFixedPosition>
|
||||||
|
</resize>
|
||||||
|
|
||||||
|
<!-- You can reserve a portion of your screen where windows will not cover when
|
||||||
|
they are maximized, or when they are initially placed.
|
||||||
|
Many programs reserve space automatically, but you can use this in other
|
||||||
|
cases. -->
|
||||||
|
<margins>
|
||||||
|
<top>0</top>
|
||||||
|
<bottom>0</bottom>
|
||||||
|
<left>0</left>
|
||||||
|
<right>0</right>
|
||||||
|
</margins>
|
||||||
|
|
||||||
|
<dock>
|
||||||
|
<position>TopLeft</position>
|
||||||
|
<!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
|
||||||
|
<floatingX>0</floatingX>
|
||||||
|
<floatingY>0</floatingY>
|
||||||
|
<noStrut>no</noStrut>
|
||||||
|
<stacking>Above</stacking>
|
||||||
|
<!-- 'Above', 'Normal', or 'Below' -->
|
||||||
|
<direction>Vertical</direction>
|
||||||
|
<!-- 'Vertical' or 'Horizontal' -->
|
||||||
|
<autoHide>no</autoHide>
|
||||||
|
<hideDelay>300</hideDelay>
|
||||||
|
<!-- in milliseconds (1000 = 1 second) -->
|
||||||
|
<showDelay>300</showDelay>
|
||||||
|
<!-- in milliseconds (1000 = 1 second) -->
|
||||||
|
<moveButton>Middle</moveButton>
|
||||||
|
<!-- 'Left', 'Middle', 'Right' -->
|
||||||
|
</dock>
|
||||||
|
|
||||||
|
<keyboard>
|
||||||
|
<chainQuitKey>C-g</chainQuitKey>
|
||||||
|
|
||||||
|
<!-- Keybindings for desktop switching -->
|
||||||
|
<keybind key="C-A-Left">
|
||||||
|
<action name="GoToDesktop"><to>left</to><wrap>no</wrap></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="C-A-Right">
|
||||||
|
<action name="GoToDesktop"><to>right</to><wrap>no</wrap></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="C-A-Up">
|
||||||
|
<action name="GoToDesktop"><to>up</to><wrap>no</wrap></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="C-A-Down">
|
||||||
|
<action name="GoToDesktop"><to>down</to><wrap>no</wrap></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="S-A-Left">
|
||||||
|
<action name="SendToDesktop"><to>left</to><wrap>no</wrap></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="S-A-Right">
|
||||||
|
<action name="SendToDesktop"><to>right</to><wrap>no</wrap></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="S-A-Up">
|
||||||
|
<action name="SendToDesktop"><to>up</to><wrap>no</wrap></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="S-A-Down">
|
||||||
|
<action name="SendToDesktop"><to>down</to><wrap>no</wrap></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-F1">
|
||||||
|
<action name="GoToDesktop"><to>1</to></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-F2">
|
||||||
|
<action name="GoToDesktop"><to>2</to></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-F3">
|
||||||
|
<action name="GoToDesktop"><to>3</to></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-F4">
|
||||||
|
<action name="GoToDesktop"><to>4</to></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-d">
|
||||||
|
<action name="ToggleShowDesktop"/>
|
||||||
|
</keybind>
|
||||||
|
|
||||||
|
<!-- Keybindings for windows -->
|
||||||
|
<keybind key="A-F4">
|
||||||
|
<action name="Close"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="A-Escape">
|
||||||
|
<action name="Lower"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="A-space">
|
||||||
|
<!--action name="ShowMenu"><menu>client-menu</menu></action-->
|
||||||
|
</keybind>
|
||||||
|
<!-- Take a screenshot of the current window with scrot when Alt+Print are pressed -->
|
||||||
|
<keybind key="A-Print">
|
||||||
|
<action name="Execute"><command>scrot -s</command></action>
|
||||||
|
</keybind>
|
||||||
|
|
||||||
|
<!-- Keybindings for window switching -->
|
||||||
|
<keybind key="A-Tab">
|
||||||
|
<action name="NextWindow">
|
||||||
|
<finalactions>
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</finalactions>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="A-S-Tab">
|
||||||
|
<action name="PreviousWindow">
|
||||||
|
<finalactions>
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</finalactions>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="C-A-Tab">
|
||||||
|
<action name="NextWindow">
|
||||||
|
<panels>yes</panels><desktop>yes</desktop>
|
||||||
|
<finalactions>
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</finalactions>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
|
||||||
|
<!-- Keybindings for window switching with the arrow keys -->
|
||||||
|
<keybind key="W-S-Right">
|
||||||
|
<action name="DirectionalCycleWindows">
|
||||||
|
<direction>right</direction>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-Left">
|
||||||
|
<action name="DirectionalCycleWindows">
|
||||||
|
<direction>left</direction>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-Up">
|
||||||
|
<action name="DirectionalCycleWindows">
|
||||||
|
<direction>up</direction>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-Down">
|
||||||
|
<action name="DirectionalCycleWindows">
|
||||||
|
<direction>down</direction>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
|
||||||
|
<!-- Keybindings for running applications -->
|
||||||
|
<keybind key="W-e">
|
||||||
|
<action name="Execute">
|
||||||
|
<startupnotify>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<name>Konqueror</name>
|
||||||
|
</startupnotify>
|
||||||
|
<command>kfmclient openProfile filemanagement</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<!-- Launch scrot when Print is pressed -->
|
||||||
|
<keybind key="Print">
|
||||||
|
<action name="Execute"><command>scrot</command></action>
|
||||||
|
</keybind>
|
||||||
|
</keyboard>
|
||||||
|
|
||||||
|
<mouse>
|
||||||
|
<dragThreshold>1</dragThreshold>
|
||||||
|
<!-- number of pixels the mouse must move before a drag begins -->
|
||||||
|
<doubleClickTime>500</doubleClickTime>
|
||||||
|
<!-- in milliseconds (1000 = 1 second) -->
|
||||||
|
<screenEdgeWarpTime>400</screenEdgeWarpTime>
|
||||||
|
<!-- Time before changing desktops when the pointer touches the edge of the
|
||||||
|
screen while moving a window, in milliseconds (1000 = 1 second).
|
||||||
|
Set this to 0 to disable warping -->
|
||||||
|
<screenEdgeWarpMouse>false</screenEdgeWarpMouse>
|
||||||
|
<!-- Set this to TRUE to move the mouse pointer across the desktop when
|
||||||
|
switching due to hitting the edge of the screen -->
|
||||||
|
|
||||||
|
<context name="Frame">
|
||||||
|
<mousebind button="A-Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Left" action="Click">
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Left" action="Drag">
|
||||||
|
<action name="Move"/>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<mousebind button="A-Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Right" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<mousebind button="A-Middle" action="Press">
|
||||||
|
<action name="Lower"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<mousebind button="A-Up" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>previous</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Down" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>next</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="C-A-Up" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>previous</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="C-A-Down" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>next</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-S-Up" action="Click">
|
||||||
|
<action name="SendToDesktop"><to>previous</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-S-Down" action="Click">
|
||||||
|
<action name="SendToDesktop"><to>next</to></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Titlebar">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Move"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="DoubleClick">
|
||||||
|
<action name="ToggleMaximize"/>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<mousebind button="Up" action="Click">
|
||||||
|
<action name="if">
|
||||||
|
<shaded>no</shaded>
|
||||||
|
<then>
|
||||||
|
<action name="Shade"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
<action name="Lower"/>
|
||||||
|
</then>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Down" action="Click">
|
||||||
|
<action name="if">
|
||||||
|
<shaded>yes</shaded>
|
||||||
|
<then>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</then>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<mousebind button="Middle" action="Press">
|
||||||
|
<action name="Lower"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<!--mousebind button="Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ShowMenu"><menu>client-menu</menu></action>
|
||||||
|
</mousebind-->
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Top">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"><edge>top</edge></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Left">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"><edge>left</edge></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Right">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"><edge>right</edge></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Bottom">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"><edge>bottom</edge></action>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<!--mousebind button="Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ShowMenu"><menu>client-menu</menu></action>
|
||||||
|
</mousebind-->
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="TRCorner BRCorner TLCorner BLCorner">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Client">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Middle" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Icon">
|
||||||
|
<!--mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
<action name="ShowMenu"><menu>client-menu</menu></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ShowMenu"><menu>client-menu</menu></action>
|
||||||
|
</mousebind-->
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="AllDesktops">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="Click">
|
||||||
|
<action name="ToggleOmnipresent"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Shade">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="Click">
|
||||||
|
<action name="ToggleShade"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Iconify">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="Click">
|
||||||
|
<action name="Iconify"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Maximize">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Middle" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="Click">
|
||||||
|
<action name="ToggleMaximize"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Middle" action="Click">
|
||||||
|
<action name="ToggleMaximize"><direction>vertical</direction></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Click">
|
||||||
|
<action name="ToggleMaximize"><direction>horizontal</direction></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Close">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Left" action="Click">
|
||||||
|
<action name="Close"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Desktop">
|
||||||
|
<mousebind button="Up" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>previous</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Down" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>next</to></action>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<mousebind button="A-Up" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>previous</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Down" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>next</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="C-A-Up" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>previous</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="C-A-Down" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>next</to></action>
|
||||||
|
</mousebind>
|
||||||
|
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="Root">
|
||||||
|
<!-- Menus -->
|
||||||
|
<!--mousebind button="Middle" action="Press">
|
||||||
|
<action name="ShowMenu"><menu>client-list-combined-menu</menu></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="ShowMenu"><menu>root-menu</menu></action>
|
||||||
|
</mousebind-->
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<context name="MoveResize">
|
||||||
|
<mousebind button="Up" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>previous</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Down" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>next</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Up" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>previous</to></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="A-Down" action="Click">
|
||||||
|
<action name="GoToDesktop"><to>next</to></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
</mouse>
|
||||||
|
|
||||||
|
<menu>
|
||||||
|
<!-- You can specify more than one menu file in here and they are all loaded,
|
||||||
|
just don't make menu ids clash or, well, it'll be kind of pointless -->
|
||||||
|
|
||||||
|
<!-- default menu file (or custom one in $HOME/.config/openbox/) -->
|
||||||
|
<!-- system menu files on Debian systems -->
|
||||||
|
<!--file>/var/lib/openbox/debian-menu.xml</file-->
|
||||||
|
<file>menu.xml</file>
|
||||||
|
<hideDelay>200</hideDelay>
|
||||||
|
<!-- if a press-release lasts longer than this setting (in milliseconds), the
|
||||||
|
menu is hidden again -->
|
||||||
|
<middle>no</middle>
|
||||||
|
<!-- center submenus vertically about the parent entry -->
|
||||||
|
<submenuShowDelay>100</submenuShowDelay>
|
||||||
|
<!-- time to delay before showing a submenu after hovering over the parent
|
||||||
|
entry.
|
||||||
|
if this is a negative value, then the delay is infinite and the
|
||||||
|
submenu will not be shown until it is clicked on -->
|
||||||
|
<submenuHideDelay>400</submenuHideDelay>
|
||||||
|
<!-- time to delay before hiding a submenu when selecting another
|
||||||
|
entry in parent menu
|
||||||
|
if this is a negative value, then the delay is infinite and the
|
||||||
|
submenu will not be hidden until a different submenu is opened -->
|
||||||
|
<showIcons>yes</showIcons>
|
||||||
|
<!-- controls if icons appear in the client-list-(combined-)menu -->
|
||||||
|
<manageDesktops>yes</manageDesktops>
|
||||||
|
<!-- show the manage desktops section in the client-list-(combined-)menu -->
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<applications>
|
||||||
|
<!--
|
||||||
|
# this is an example with comments through out. use these to make your
|
||||||
|
# own rules, but without the comments of course.
|
||||||
|
# you may use one or more of the name/class/role/title/type rules to specify
|
||||||
|
# windows to match
|
||||||
|
|
||||||
|
<application name="the window's _OB_APP_NAME property (see obxprop)"
|
||||||
|
class="the window's _OB_APP_CLASS property (see obxprop)"
|
||||||
|
groupname="the window's _OB_APP_GROUP_NAME property (see obxprop)"
|
||||||
|
groupclass="the window's _OB_APP_GROUP_CLASS property (see obxprop)"
|
||||||
|
role="the window's _OB_APP_ROLE property (see obxprop)"
|
||||||
|
title="the window's _OB_APP_TITLE property (see obxprop)"
|
||||||
|
type="the window's _OB_APP_TYPE property (see obxprob)..
|
||||||
|
(if unspecified, then it is 'dialog' for child windows)">
|
||||||
|
# you may set only one of name/class/role/title/type, or you may use more
|
||||||
|
# than one together to restrict your matches.
|
||||||
|
|
||||||
|
# the name, class, role, and title use simple wildcard matching such as those
|
||||||
|
# used by a shell. you can use * to match any characters and ? to match
|
||||||
|
# any single character.
|
||||||
|
|
||||||
|
# the type is one of: normal, dialog, splash, utility, menu, toolbar, dock,
|
||||||
|
# or desktop
|
||||||
|
|
||||||
|
# when multiple rules match a window, they will all be applied, in the
|
||||||
|
# order that they appear in this list
|
||||||
|
|
||||||
|
|
||||||
|
# each rule element can be left out or set to 'default' to specify to not
|
||||||
|
# change that attribute of the window
|
||||||
|
|
||||||
|
<decor>yes</decor>
|
||||||
|
# enable or disable window decorations
|
||||||
|
|
||||||
|
<shade>no</shade>
|
||||||
|
# make the window shaded when it appears, or not
|
||||||
|
|
||||||
|
<position force="no">
|
||||||
|
# the position is only used if both an x and y coordinate are provided
|
||||||
|
# (and not set to 'default')
|
||||||
|
# when force is "yes", then the window will be placed here even if it
|
||||||
|
# says you want it placed elsewhere. this is to override buggy
|
||||||
|
# applications who refuse to behave
|
||||||
|
<x>center</x>
|
||||||
|
# a number like 50, or 'center' to center on screen. use a negative number
|
||||||
|
# to start from the right (or bottom for <y>), ie -50 is 50 pixels from
|
||||||
|
# the right edge (or bottom). use 'default' to specify using value
|
||||||
|
# provided by the application, or chosen by openbox, instead.
|
||||||
|
<y>200</y>
|
||||||
|
<monitor>1</monitor>
|
||||||
|
# specifies the monitor in a xinerama setup.
|
||||||
|
# 1 is the first head, or 'mouse' for wherever the mouse is
|
||||||
|
</position>
|
||||||
|
|
||||||
|
<size>
|
||||||
|
# the size to make the window.
|
||||||
|
<width>20</width>
|
||||||
|
# a number like 20, or 'default' to use the size given by the application.
|
||||||
|
# you can use fractions such as 1/2 or percentages such as 75% in which
|
||||||
|
# case the value is relative to the size of the monitor that the window
|
||||||
|
# appears on.
|
||||||
|
<height>30%</height>
|
||||||
|
</size>
|
||||||
|
|
||||||
|
<focus>yes</focus>
|
||||||
|
# if the window should try be given focus when it appears. if this is set
|
||||||
|
# to yes it doesn't guarantee the window will be given focus. some
|
||||||
|
# restrictions may apply, but Openbox will try to
|
||||||
|
|
||||||
|
<desktop>1</desktop>
|
||||||
|
# 1 is the first desktop, 'all' for all desktops
|
||||||
|
|
||||||
|
<layer>normal</layer>
|
||||||
|
# 'above', 'normal', or 'below'
|
||||||
|
|
||||||
|
<iconic>no</iconic>
|
||||||
|
# make the window iconified when it appears, or not
|
||||||
|
|
||||||
|
<skip_pager>no</skip_pager>
|
||||||
|
# asks to not be shown in pagers
|
||||||
|
|
||||||
|
<skip_taskbar>no</skip_taskbar>
|
||||||
|
# asks to not be shown in taskbars. window cycling actions will also
|
||||||
|
# skip past such windows
|
||||||
|
|
||||||
|
<fullscreen>yes</fullscreen>
|
||||||
|
# make the window in fullscreen mode when it appears
|
||||||
|
|
||||||
|
<maximized>true</maximized>
|
||||||
|
# 'Horizontal', 'Vertical' or boolean (yes/no)
|
||||||
|
</application>
|
||||||
|
|
||||||
|
# end of the example
|
||||||
|
-->
|
||||||
|
</applications>
|
||||||
|
|
||||||
|
</openbox_config>
|
38
.docker/vivaldi/policies.json
Normal file
38
.docker/vivaldi/policies.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"HomepageLocation": "",
|
||||||
|
"AutoFillEnabled": false,
|
||||||
|
"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,
|
||||||
|
"URLBlacklist": [
|
||||||
|
"file://*",
|
||||||
|
"chrome://policy"
|
||||||
|
],
|
||||||
|
"ExtensionInstallForcelist": [
|
||||||
|
"cjpalhdlnbpafiamejdnhcphjbkeiagm;https://clients2.google.com/service/update2/crx",
|
||||||
|
"mnjggcdmjocbbbhaepdhchncahnbgone;https://clients2.google.com/service/update2/crx"
|
||||||
|
],
|
||||||
|
"ExtensionInstallWhitelist": [
|
||||||
|
"cjpalhdlnbpafiamejdnhcphjbkeiagm",
|
||||||
|
"mnjggcdmjocbbbhaepdhchncahnbgone"
|
||||||
|
],
|
||||||
|
"ExtensionInstallBlacklist": [
|
||||||
|
"*"
|
||||||
|
]
|
||||||
|
}
|
339
.docker/vivaldi/preferences.json
Normal file
339
.docker/vivaldi/preferences.json
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
{
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"default_search_provider_data": {
|
||||||
|
"image_template_url_data": {
|
||||||
|
"alternate_urls": ["https://www.google.com/#q={searchTerms}", "https://www.google.com/search#q={searchTerms}", "https://www.google.com/webhp#q={searchTerms}", "https://www.google.com/s#q={searchTerms}", "https://www.google.com/s?q={searchTerms}"],
|
||||||
|
"contextual_search_url": "",
|
||||||
|
"created_by_policy": false,
|
||||||
|
"created_from_play_api": false,
|
||||||
|
"date_created": "0",
|
||||||
|
"doodle_url": "",
|
||||||
|
"favicon_url": "https://www.google.com/favicon.ico",
|
||||||
|
"id": "11",
|
||||||
|
"image_url": "https://www.google.com/searchbyimage/upload",
|
||||||
|
"image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}",
|
||||||
|
"input_encodings": ["UTF-8"],
|
||||||
|
"is_active": 0,
|
||||||
|
"keyword": "g",
|
||||||
|
"last_modified": "0",
|
||||||
|
"last_visited": "0",
|
||||||
|
"logo_url": "",
|
||||||
|
"new_tab_url": "",
|
||||||
|
"originating_url": "",
|
||||||
|
"position": "IhxEc1dKb3ZJanppM1NCWTZhRHNGN0ljYkRHeVk9",
|
||||||
|
"preconnect_to_search_url": false,
|
||||||
|
"prepopulate_id": 1,
|
||||||
|
"safe_for_autoreplace": true,
|
||||||
|
"search_url_post_params": "",
|
||||||
|
"short_name": "Google",
|
||||||
|
"side_search_param": "",
|
||||||
|
"suggestions_url": "",
|
||||||
|
"suggestions_url_post_params": "",
|
||||||
|
"url": "https://www.google.com/search?q={searchTerms}&{google:originalQueryForSuggestion}{google:prefetchSource}{google:sourceId}{google:contextualSearchVersion}ie={inputEncoding}",
|
||||||
|
"usage_count": 0
|
||||||
|
},
|
||||||
|
"private_template_url_data": {
|
||||||
|
"alternate_urls": [],
|
||||||
|
"contextual_search_url": "",
|
||||||
|
"created_by_policy": false,
|
||||||
|
"created_from_play_api": false,
|
||||||
|
"date_created": "0",
|
||||||
|
"doodle_url": "",
|
||||||
|
"favicon_url": "https://duckduckgo.com/favicon.ico",
|
||||||
|
"id": "4",
|
||||||
|
"image_url": "",
|
||||||
|
"image_url_post_params": "",
|
||||||
|
"input_encodings": ["UTF-8"],
|
||||||
|
"is_active": 0,
|
||||||
|
"keyword": "d",
|
||||||
|
"last_modified": "0",
|
||||||
|
"last_visited": "0",
|
||||||
|
"logo_url": "",
|
||||||
|
"new_tab_url": "",
|
||||||
|
"originating_url": "",
|
||||||
|
"position": "Ih3bMkFheVB5WitEdGZmeU9hV0d5K3RGUXRhR3RFPQ==",
|
||||||
|
"preconnect_to_search_url": false,
|
||||||
|
"prepopulate_id": 7,
|
||||||
|
"safe_for_autoreplace": true,
|
||||||
|
"search_url_post_params": "",
|
||||||
|
"short_name": "DuckDuckGo",
|
||||||
|
"side_search_param": "",
|
||||||
|
"suggestions_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list",
|
||||||
|
"suggestions_url_post_params": "",
|
||||||
|
"url": "https://duckduckgo.com/?q={searchTerms}&{ddg:Referral}",
|
||||||
|
"usage_count": 0
|
||||||
|
},
|
||||||
|
"speeddials_template_url_data": {
|
||||||
|
"alternate_urls": ["https://www.google.com/#q={searchTerms}", "https://www.google.com/search#q={searchTerms}", "https://www.google.com/webhp#q={searchTerms}", "https://www.google.com/s#q={searchTerms}", "https://www.google.com/s?q={searchTerms}"],
|
||||||
|
"contextual_search_url": "",
|
||||||
|
"created_by_policy": false,
|
||||||
|
"created_from_play_api": false,
|
||||||
|
"date_created": "0",
|
||||||
|
"doodle_url": "",
|
||||||
|
"favicon_url": "https://www.google.com/favicon.ico",
|
||||||
|
"id": "11",
|
||||||
|
"image_url": "https://www.google.com/searchbyimage/upload",
|
||||||
|
"image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}",
|
||||||
|
"input_encodings": ["UTF-8"],
|
||||||
|
"is_active": 0,
|
||||||
|
"keyword": "g",
|
||||||
|
"last_modified": "0",
|
||||||
|
"last_visited": "0",
|
||||||
|
"logo_url": "",
|
||||||
|
"new_tab_url": "",
|
||||||
|
"originating_url": "",
|
||||||
|
"position": "IhxEc1dKb3ZJanppM1NCWTZhRHNGN0ljYkRHeVk9",
|
||||||
|
"preconnect_to_search_url": false,
|
||||||
|
"prepopulate_id": 1,
|
||||||
|
"safe_for_autoreplace": true,
|
||||||
|
"search_url_post_params": "",
|
||||||
|
"short_name": "Google",
|
||||||
|
"side_search_param": "",
|
||||||
|
"suggestions_url": "",
|
||||||
|
"suggestions_url_post_params": "",
|
||||||
|
"url": "https://www.google.com/search?q={searchTerms}&{google:originalQueryForSuggestion}{google:prefetchSource}{google:sourceId}{google:contextualSearchVersion}ie={inputEncoding}",
|
||||||
|
"usage_count": 0
|
||||||
|
},
|
||||||
|
"template_url_data": {
|
||||||
|
"alternate_urls": ["https://www.google.com/#q={searchTerms}", "https://www.google.com/search#q={searchTerms}", "https://www.google.com/webhp#q={searchTerms}", "https://www.google.com/s#q={searchTerms}", "https://www.google.com/s?q={searchTerms}"],
|
||||||
|
"contextual_search_url": "",
|
||||||
|
"created_by_policy": false,
|
||||||
|
"created_from_play_api": false,
|
||||||
|
"date_created": "0",
|
||||||
|
"doodle_url": "",
|
||||||
|
"favicon_url": "https://www.google.com/favicon.ico",
|
||||||
|
"id": "11",
|
||||||
|
"image_url": "https://www.google.com/searchbyimage/upload",
|
||||||
|
"image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}",
|
||||||
|
"input_encodings": ["UTF-8"],
|
||||||
|
"is_active": 0,
|
||||||
|
"keyword": "g",
|
||||||
|
"last_modified": "0",
|
||||||
|
"last_visited": "0",
|
||||||
|
"logo_url": "",
|
||||||
|
"new_tab_url": "",
|
||||||
|
"originating_url": "",
|
||||||
|
"position": "IhxEc1dKb3ZJanppM1NCWTZhRHNGN0ljYkRHeVk9",
|
||||||
|
"preconnect_to_search_url": false,
|
||||||
|
"prepopulate_id": 1,
|
||||||
|
"safe_for_autoreplace": true,
|
||||||
|
"search_url_post_params": "",
|
||||||
|
"short_name": "Google",
|
||||||
|
"side_search_param": "",
|
||||||
|
"suggestions_url": "",
|
||||||
|
"suggestions_url_post_params": "",
|
||||||
|
"url": "https://www.google.com/search?q={searchTerms}&{google:originalQueryForSuggestion}{google:prefetchSource}{google:sourceId}{google:contextualSearchVersion}ie={inputEncoding}",
|
||||||
|
"usage_count": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"enable_do_not_track": true,
|
||||||
|
"profile": {
|
||||||
|
"avatar_index": 34,
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"vivaldi": {
|
||||||
|
"address_bar": {
|
||||||
|
"autocomplete": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"omnibox": {
|
||||||
|
"show_browser_history": false,
|
||||||
|
"show_search_history": false,
|
||||||
|
"show_typed_history": false
|
||||||
|
},
|
||||||
|
"search": {
|
||||||
|
"display": 1,
|
||||||
|
"in_new_tab": false
|
||||||
|
},
|
||||||
|
"show_full_url": true,
|
||||||
|
"show_qr_generator": true,
|
||||||
|
"visible": true
|
||||||
|
},
|
||||||
|
"bookmarks": {
|
||||||
|
"deleted_partners": [
|
||||||
|
"f79cd6e8-ebc0-444d-ac96-00da456dcb59",
|
||||||
|
"d680347f-1073-46b9-a546-ae0238e7b9d9"
|
||||||
|
],
|
||||||
|
"language": "en-US",
|
||||||
|
"version": "24"
|
||||||
|
},
|
||||||
|
"downloads": {
|
||||||
|
"notify_on_complete": false,
|
||||||
|
"open_panel_on_new": false,
|
||||||
|
"start_automatically": false,
|
||||||
|
"update_default_download_when_saving_as": false
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"days_to_keep_visits": 0
|
||||||
|
},
|
||||||
|
"homepage": "vivaldi://startpage",
|
||||||
|
"incognito": {
|
||||||
|
"show_intro": false
|
||||||
|
},
|
||||||
|
"language_at_install": "en-US",
|
||||||
|
"menu": {
|
||||||
|
"icon_type": 1
|
||||||
|
},
|
||||||
|
"mouse_gestures": {
|
||||||
|
"enabled": false,
|
||||||
|
"rocker_gestures": {
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"popups": {
|
||||||
|
"show_in_tab": true
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"in_tab": true
|
||||||
|
},
|
||||||
|
"startpage": {
|
||||||
|
"navigation": 1,
|
||||||
|
"speed_dial": {
|
||||||
|
"add_button_visible": false,
|
||||||
|
"allow_dnd": false,
|
||||||
|
"columns": 4,
|
||||||
|
"delete_visible": false,
|
||||||
|
"display_search": true,
|
||||||
|
"privacy_stats_show": false,
|
||||||
|
"tracker_suggestion_show": false,
|
||||||
|
"width": 170
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"startup": {
|
||||||
|
"check_is_default": false,
|
||||||
|
"has_seen_feature": 1
|
||||||
|
},
|
||||||
|
"status_bar": {
|
||||||
|
"display": 0,
|
||||||
|
"minimized": 0
|
||||||
|
},
|
||||||
|
"system": {
|
||||||
|
"show_exit_confirmation_dialog": true
|
||||||
|
},
|
||||||
|
"tabs": {
|
||||||
|
"new_placement": 3,
|
||||||
|
"open_new_in_background": false,
|
||||||
|
"stacking": {
|
||||||
|
"open_accordions": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"theme": {
|
||||||
|
"schedule": {
|
||||||
|
"o_s": {
|
||||||
|
"dark": "Vivaldi2",
|
||||||
|
"light": "Vivaldi2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"use_animation": false
|
||||||
|
},
|
||||||
|
"translate": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"windows": {
|
||||||
|
"use_native_decoration": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
22
.docker/vivaldi/supervisord.conf
Normal file
22
.docker/vivaldi/supervisord.conf
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
[program:vivaldi-stable]
|
||||||
|
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
||||||
|
command=/usr/bin/vivaldi-stable --no-sandbox --window-position=0,0 --display=%(ENV_DISPLAY)s --user-data-dir=/home/neko/.config/vivaldi --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/vivaldi.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
|
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -50,7 +50,7 @@ jobs:
|
|||||||
# Will build all images even if some fail.
|
# Will build all images even if some fail.
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
tags: [ firefox, chromium, google-chrome, ungoogled-chromium, microsoft-edge, brave, tor-browser, remmina, vlc, xfce ]
|
tags: [ firefox, chromium, google-chrome, ungoogled-chromium, microsoft-edge, brave, vivaldi, tor-browser, remmina, vlc, xfce ]
|
||||||
env:
|
env:
|
||||||
DOCKER_TAG: ${{ matrix.tags }}
|
DOCKER_TAG: ${{ matrix.tags }}
|
||||||
steps:
|
steps:
|
||||||
|
2
.github/workflows/tags.yml
vendored
2
.github/workflows/tags.yml
vendored
@ -78,6 +78,8 @@ jobs:
|
|||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
- tag: brave
|
- tag: brave
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
|
- tag: vivaldi
|
||||||
|
platforms: linux/amd64
|
||||||
- tag: tor-browser
|
- tag: tor-browser
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
- tag: remmina
|
- tag: remmina
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
## master branch
|
## master branch
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
- Added `m1k1o/neko:vivaldi` tag (thanks @Xeddius).
|
||||||
|
|
||||||
## [n.eko v2.6](https://github.com/m1k1o/neko/releases/tag/v2.6)
|
## [n.eko v2.6](https://github.com/m1k1o/neko/releases/tag/v2.6)
|
||||||
|
|
||||||
### Bugs
|
### Bugs
|
||||||
|
@ -7,6 +7,7 @@ Use the following docker images:
|
|||||||
- `m1k1o/neko:ungoogled-chromium` - for [Ungoogled Chromium](https://github.com/Eloston/ungoogled-chromium) (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)) (by @whalehub).
|
- `m1k1o/neko:ungoogled-chromium` - for [Ungoogled Chromium](https://github.com/Eloston/ungoogled-chromium) (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)) (by @whalehub).
|
||||||
- `m1k1o/neko:microsoft-edge` - for Microsoft Edge (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)).
|
- `m1k1o/neko:microsoft-edge` - for Microsoft Edge (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)).
|
||||||
- `m1k1o/neko:brave` - for [Brave Browser](https://brave.com) (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)).
|
- `m1k1o/neko:brave` - for [Brave Browser](https://brave.com) (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)).
|
||||||
|
- `m1k1o/neko:vivaldi` - for [Vivaldi Browser](https://vivaldi.com) (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)) (by @Xeddius).
|
||||||
- `m1k1o/neko:tor-browser` - for Tor Browser.
|
- `m1k1o/neko:tor-browser` - for Tor Browser.
|
||||||
- `m1k1o/neko:remmina` - for remote desktop connection (by @lowne).
|
- `m1k1o/neko:remmina` - for remote desktop connection (by @lowne).
|
||||||
- Pass env var `REMMINA_URL=<proto>://[<username>[:<password>]@]server[:port]` (proto being `vnc`, `rdp` or `spice`).
|
- Pass env var `REMMINA_URL=<proto>://[<username>[:<password>]@]server[:port]` (proto being `vnc`, `rdp` or `spice`).
|
||||||
|
Loading…
Reference in New Issue
Block a user