Compare commits

...

18 commits

Author SHA1 Message Date
Doro Wu
44dc8bb18b fix: novnc language (#174) 2020-04-24 15:00:01 +08:00
Doro Wu
65235ce5c0 fix: USER does not work #176 2020-04-24 14:32:25 +08:00
Doro Wu
545a711f2b Merge branch 'develop' into bionic-lxqt 2020-04-16 08:16:26 +08:00
Doro Wu
8b542f6cdb fix: failed to start lxqt 2020-04-15 10:34:21 +08:00
Doro Wu
bd5d9134bf Merge branch 'develop' into bionic-lxqt 2020-04-15 08:40:32 +08:00
Doro Wu
d145ab0f2d
Merge branch 'master' into bionic-lxqt 2019-03-21 11:04:30 +08:00
Doro Wu
247c513519
Merge branch 'master' into bionic-lxqt 2018-12-18 19:40:34 +08:00
Doro Wu
fa5635665e
fix: vnc crash (issue #88)
upgrade x11vnc >= 0.9.13-6
2018-12-17 03:26:16 +08:00
Doro Wu
d9342e0c27
fix: security issue 2018-12-17 03:25:28 +08:00
DoroWu
ab7d3ad025
Merge pull request #96 from valentinvieriu/bionic-lxqt
allow the opportunity to configure the apps installed
2018-12-11 02:25:40 +08:00
Valentin Vieriu
5140dc372e allow the opportunity to configure the apps installed 2018-12-08 08:24:08 +01:00
DoroWu
6c58585ec8
Merge pull request #95 from valentinvieriu/bionic-lxqt
allow to run as another user as root
2018-12-05 10:02:06 +08:00
Valentin Vieriu
f7c196f58b allow to run as another user as root 2018-12-04 16:59:05 +01:00
DoroWu
2cab9f9ea6
Merge pull request #93 from valentinvieriu/bionic-lxqt
using a smaller image for the node build and fixing the arm build too
2018-12-04 22:08:16 +08:00
Valentin Vieriu
13c0ac0ea3 using a smaller image for the node build and fixing the arm build too 2018-12-04 13:14:25 +01:00
DoroWu
d77aecb46c
Merge pull request #92 from valentinvieriu/bionic-lxqt
be able to change the local build param
2018-12-04 00:40:49 +08:00
Valentin Vieriu
18e3bd4f0d be able to change the local build param 2018-12-03 17:06:02 +01:00
Doro Wu
e2c23cace0
feat: support lxqt 2018-11-27 13:44:47 +08:00
23 changed files with 1188 additions and 30 deletions

View file

@ -1 +1,2 @@
web/node_modules
.git

View file

@ -22,6 +22,13 @@ FLAVOR=lxqt ARCH=amd64 IMAGE=ubuntu:18.04 make build
make run
```
You can overwrite the local Ubuntu repo using `make LOCALBUILD=de build`.
You can run the image as adifferent user `make CUSTOM_USER=newuser run`.
You can configure your own installed programs by using `APPS` env vriable and `BUILD_DEPS` if you need special dependencies to build those apps.
`make BUILD_DEPS="build-essential software-properties-common" APPS="vim-tiny net-tools zenity xz-utils firefox chromium-browser" run`
## develop backend
You may wish to work on the backend app. As the "make run" makes sure

View file

@ -1,4 +1,4 @@
# Built with arch: amd64 flavor: lxde image: ubuntu:18.04
# Built with arch: amd64 flavor: lxqt image: ubuntu:18.04 localbuild: tw
#
################################################################################
# base system
@ -33,21 +33,21 @@ RUN add-apt-repository -y ppa:fcwu-tw/apps \
&& apt autoclean -y \
&& apt autoremove -y \
&& rm -rf /var/lib/apt/lists/*
RUN apt update \
&& apt install -y --no-install-recommends --allow-unauthenticated \
lxde gtk2-engines-murrine gnome-themes-standard gtk2-engines-pixbuf gtk2-engines-murrine arc-theme \
lxqt openbox gtk2-engines-murrine gnome-themes-standard gtk2-engines-pixbuf arc-theme \
&& apt autoclean -y \
&& apt autoremove -y \
&& rm -rf /var/lib/apt/lists/*
# Additional packages require ~600MB
# libreoffice pinta language-pack-zh-hant language-pack-gnome-zh-hant firefox-locale-zh-hant libreoffice-l10n-zh-tw
# tini to fix subreap
ARG TINI_VERSION=v0.18.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /bin/tini
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-amd64 /bin/tini
RUN chmod +x /bin/tini
# ffmpeg
@ -99,6 +99,7 @@ COPY web /src/web
RUN cd /src/web \
&& yarn \
&& yarn build
RUN sed -i 's#app/locale/#novnc/app/locale/#' /src/web/dist/static/novnc/app/ui.js

View file

@ -99,6 +99,7 @@ COPY web /src/web
RUN cd /src/web \
&& yarn \
&& npm run build
RUN sed -i 's#app/locale/#novnc/app/locale/#' /src/web/dist/static/novnc/app/ui.js
RUN cd /src/web/dist/static/novnc && patch -p0 < /src/web/novnc-armhf-1.patch

View file

@ -9,6 +9,8 @@ FROM ubuntu:18.04 as amd64
RUN apt update && apt install -y qemu-user-static
FROM arm32v7/ubuntu:18.04 as system
COPY --from=amd64 /usr/bin/qemu-arm-static /usr/bin/
ARG localbuild
RUN if [ "x$localbuild" != "x" ]; then sed -i 's#http://archive.ubuntu.com/#http://'$localbuild'.archive.ubuntu.com/#' /etc/apt/sources.list; fi
@ -17,11 +19,17 @@ RUN sed -i 's#http://archive.ubuntu.com/ubuntu/#mirror://mirrors.ubuntu.com/mirr
# built-in packages
ENV DEBIAN_FRONTEND noninteractive
# What apps you would like to be installed
ARG APPS="vim-tiny net-tools zenity xz-utils firefox chromium-browser"
ENV APPS=$APPS
ARG BUILD_DEPS="build-essential software-properties-common"
ENV BUILD_DEPS=$BUILD_DEPS
RUN apt update \
&& apt install -y --no-install-recommends software-properties-common curl apache2-utils \
&& apt install -y --no-install-recommends $BUILD_DEPS curl apache2-utils \
&& apt update \
&& apt install -y --no-install-recommends --allow-unauthenticated \
supervisor nginx sudo net-tools zenity xz-utils \
supervisor nginx sudo \
dbus-x11 x11-utils alsa-utils \
mesa-utils libgl1-mesa-dri \
&& apt autoclean -y \
@ -32,7 +40,7 @@ RUN add-apt-repository -y ppa:fcwu-tw/apps \
&& apt update \
&& apt install -y --no-install-recommends --allow-unauthenticated \
xvfb x11vnc=0.9.16-1 \
vim-tiny firefox chromium-browser ttf-ubuntu-font-family ttf-wqy-zenhei \
$APPS \
&& add-apt-repository -r ppa:fcwu-tw/apps \
&& apt autoclean -y \
&& apt autoremove -y \
@ -45,13 +53,13 @@ RUN apt update \
&& apt autoremove -y \
&& rm -rf /var/lib/apt/lists/*
# Additional packages require ~600MB
# libreoffice pinta language-pack-zh-hant language-pack-gnome-zh-hant firefox-locale-zh-hant libreoffice-l10n-zh-tw
# tini for subreap
ARG TINI_VERSION=v0.18.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-armhf /bin/tini
ENV TINI_VERSION=$TINI_VERSION
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /bin/tini
RUN chmod +x /bin/tini
# ffmpeg
@ -62,7 +70,7 @@ RUN mkdir -p /usr/local/ffmpeg \
COPY rootfs/usr/local/lib/web/backend/requirements.txt /tmp/
RUN apt-get update \
&& dpkg-query -W -f='${Package}\n' > /tmp/a.txt \
&& apt-get install -y python-pip python-dev build-essential \
&& apt-get install -y python-pip python-dev \
&& pip install setuptools wheel && pip install -r /tmp/requirements.txt \
&& dpkg-query -W -f='${Package}\n' > /tmp/b.txt \
&& apt-get remove -y `diff --changed-group-format='%>' --unchanged-group-format='' /tmp/a.txt /tmp/b.txt | xargs` \
@ -98,7 +106,14 @@ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
COPY web /src/web
RUN cd /src/web \
&& yarn \
&& npm run build
&& yarn run build
RUN sed -i 's#app/locale/#novnc/app/locale/#' /src/web/dist/static/novnc/app/ui.js
# build frontend
COPY web /src/web
RUN cd /src/web \
&& yarn install \
&& yarn build
RUN cd /src/web/dist/static/novnc && patch -p0 < /src/web/novnc-armhf-1.patch

View file

@ -126,6 +126,7 @@ COPY web /src/web
RUN cd /src/web \
&& yarn \
&& yarn build
RUN sed -i 's#app/locale/#novnc/app/locale/#' /src/web/dist/static/novnc/app/ui.js
{%if arch == "armhf"%}
RUN cd /src/web/dist/static/novnc && patch -p0 < /src/web/novnc-armhf-1.patch

View file

@ -5,8 +5,12 @@ REPO ?= dorowu/ubuntu-desktop-lxde-vnc
TAG ?= latest
# you can choose other base image versions
IMAGE ?= ubuntu:18.04
LOCALBUILD ?= tw
HTTP_PASSWORD ?= 123456
CUSTOM_USER ?= ubuntu
PASSWORD ?= ubuntu
# choose from supported flavors (see available ones in ./flavors/*.yml)
FLAVOR ?= lxde
FLAVOR ?= lxqt
# armhf or amd64
ARCH ?= amd64

View file

@ -19,30 +19,27 @@ stderr_logfile_maxbytes=0
[group:x]
programs=xvfb,wm,lxpanel,pcmanfm,x11vnc,novnc
# programs=xvfb,wm,lxpanel,pcmanfm,x11vnc,novnc
programs=xvfb,lxpanel,x11vnc,novnc
[program:wm]
priority=15
command=/usr/bin/openbox
environment=DISPLAY=":1",HOME="/root",USER="root"
# [program:wm]
# priority=15
# command=/usr/bin/openbox
# environment=DISPLAY=":1",HOME="/root",USER="root"
[program:lxpanel]
priority=15
directory=%HOME%
command=/usr/bin/lxpanel --profile LXDE
command=/usr/bin/startlxqt
user=%USER%
environment=DISPLAY=":1",HOME="%HOME%",USER="%USER%"
[program:pcmanfm]
priority=15
directory=%HOME%
command=/usr/bin/pcmanfm --desktop --profile LXDE
user=%USER%
environment=DISPLAY=":1",HOME="%HOME%",USER="%USER%"
# [program:pcmanfm]
# priority=15
# directory=%HOME%
# command=/usr/bin/pcmanfm --desktop --profile LXDE
# user=%USER%
# environment=DISPLAY=":1",HOME="%HOME%",USER="%USER%"
[program:xvfb]

View file

@ -0,0 +1,187 @@
[General]
AllowGrabBaseKeypad=true
AllowGrabBaseSpecial=false
AllowGrabLocks=false
AllowGrabMiscKeypad=true
AllowGrabMiscSpecial=true
MultipleActionsBehaviour=first
[Alt%2BF1.1]
Comment=Show/hide main menu
Enabled=true
path=/panel/mainmenu/show_hide
[Alt%2BF2.2]
Comment=Show/hide runner dialog
Enabled=true
path=/runner/show_hide_dialog
[Control%2BAlt%2BD.3]
Comment=Show desktop
Enabled=true
path=/panel/showdesktop/show_hide
[Control%2BAlt%2BE.4]
Comment=Pcmanfm
Enabled=true
Exec=pcmanfm-qt
[Control%2BAlt%2BI.5]
Comment=Web browser
Enabled=true
Exec=xdg-open, about:blank
[Control%2BAlt%2BT.6]
Comment=QTerminal
Enabled=true
Exec=qterminal
[Control%2BF1.7]
Comment=Switch to desktop 1
Enabled=true
path=/panel/desktopswitch/desktop_1
[Control%2BF10.8]
Comment=Switch to desktop 10
Enabled=true
path=/panel/desktopswitch/desktop_10
[Control%2BF11.9]
Comment=Switch to desktop 11
Enabled=true
path=/panel/desktopswitch/desktop_11
[Control%2BF12.10]
Comment=Switch to desktop 12
Enabled=true
path=/panel/desktopswitch/desktop_12
[Control%2BF2.11]
Comment=Switch to desktop 2
Enabled=true
path=/panel/desktopswitch/desktop_2
[Control%2BF3.12]
Comment=Switch to desktop 3
Enabled=true
path=/panel/desktopswitch/desktop_3
[Control%2BF4.13]
Comment=Switch to desktop 4
Enabled=true
path=/panel/desktopswitch/desktop_4
[Control%2BF5.14]
Comment=Switch to desktop 5
Enabled=true
path=/panel/desktopswitch/desktop_5
[Control%2BF6.15]
Comment=Switch to desktop 6
Enabled=true
path=/panel/desktopswitch/desktop_6
[Control%2BF7.16]
Comment=Switch to desktop 7
Enabled=true
path=/panel/desktopswitch/desktop_7
[Control%2BF8.17]
Comment=Switch to desktop 8
Enabled=true
path=/panel/desktopswitch/desktop_8
[Control%2BF9.18]
Comment=Switch to desktop 9
Enabled=true
path=/panel/desktopswitch/desktop_9
[Meta%2B0.19]
Comment=Activate task 10
Enabled=true
path=/panel/taskbar/task_10
[Meta%2B1.20]
Comment=Activate task 1
Enabled=true
path=/panel/taskbar/task_1
[Meta%2B2.21]
Comment=Activate task 2
Enabled=true
path=/panel/taskbar/task_2
[Meta%2B3.22]
Comment=Activate task 3
Enabled=true
path=/panel/taskbar/task_3
[Meta%2B4.23]
Comment=Activate task 4
Enabled=true
path=/panel/taskbar/task_4
[Meta%2B5.24]
Comment=Activate task 5
Enabled=true
path=/panel/taskbar/task_5
[Meta%2B6.25]
Comment=Activate task 6
Enabled=true
path=/panel/taskbar/task_6
[Meta%2B7.26]
Comment=Activate task 7
Enabled=true
path=/panel/taskbar/task_7
[Meta%2B8.27]
Comment=Activate task 8
Enabled=true
path=/panel/taskbar/task_8
[Meta%2B9.28]
Comment=Activate task 9
Enabled=true
path=/panel/taskbar/task_9
[Print.29]
Comment=screen shot
Enabled=true
Exec=lximage-qt, -s
[Shift%2BControl%2BF6.30]
Comment=\x2600 \x2193
Enabled=true
Exec=lxqt-config-brightness, -d
[Shift%2BControl%2BF7.31]
Comment=\x2600 \x2191
Enabled=true
Exec=lxqt-config-brightness, -i
[XF86AudioLowerVolume.32]
Comment=Decrease sound volume
Enabled=true
path=/panel/volume/down
[XF86AudioMute.33]
Comment=Mute/unmute sound volume
Enabled=true
path=/panel/volume/mute
[XF86AudioRaiseVolume.34]
Comment=Increase sound volume
Enabled=true
path=/panel/volume/up
[XF86MonBrightnessDown.35]
Comment=\x2600 \x2193
Enabled=true
Exec=lxqt-config-brightness, -d
[XF86MonBrightnessUp.36]
Comment=\x2600 \x2191
Enabled=true
Exec=lxqt-config-brightness, -i

View file

@ -0,0 +1,6 @@
[General]
__userfile__=true
enableBatteryWatcher=false
enableIdlenessWatcher=true
enableLidWatcher=false
runCheckLevel=1

View file

@ -0,0 +1,2 @@
[General]
__userfile__=true

View file

@ -0,0 +1,4 @@
[General]
__userfile__=true
icon_theme=LoginIcons
theme=light

View file

@ -0,0 +1,2 @@
[General]
__userfile__=true

View file

@ -0,0 +1,46 @@
[General]
__userfile__=true
[desktopswitch]
alignment=Left
type=desktopswitch
[mainmenu]
alignment=Left
type=mainmenu
[panel1]
alignment=-1
animation-duration=0
background-color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0)
background-image=
desktop=0
font-color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0)
hidable=false
iconSize=22
lineCount=1
lockPanel=false
opacity=100
panelSize=32
plugins=mainmenu, desktopswitch, quicklaunch, taskbar, clock, showdesktop
position=Bottom
reserve-space=true
show-delay=0
width=100
width-percent=true
[quicklaunch]
alignment=Left
apps\1\desktop=/usr/share/applications/chromium-browser.desktop
apps\2\desktop=/usr/share/applications/pcmanfm-qt.desktop
apps\3\desktop=/usr/share/applications/qterminal.desktop
apps\size=3
type=quicklaunch
[showdesktop]
alignment=Right
type=showdesktop
[taskbar]
alignment=Left
type=taskbar

View file

@ -0,0 +1,2 @@
[General]
__userfile__=true

View file

@ -0,0 +1,2 @@
[General]
__userfile__=true

View file

@ -0,0 +1,744 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file, it will be overwritten on install.
Copy the file to $HOME/.config/openbox/lxqt-rc.xml instead. -->
<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>
<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>Onyx</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>10</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>10</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>2</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>
<!-- 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.
Commented out as application shortcuts should be handled by lxqt-globalkeys in LXQt sessions.
<keybind key="W-q">
<action name="Execute">
<startupnotify>
<enabled>true</enabled>
<name>Qupzilla</name>
</startupnotify>
<command>qupzilla</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/) -->
<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>

View file

@ -0,0 +1,98 @@
[Behavior]
AutoSelectionDelay=600
BookmarkOpenMethod=current_tab
ConfirmDelete=true
ConfirmTrash=false
NoUsbTrash=false
QuickExec=false
SingleClick=false
UseTrash=true
[Desktop]
BgColor=#000000
DesktopCellMargins=@Size(3 1)
DesktopIconSize=48
FgColor=#ffffff
Font="Sans Serif,10,-1,5,50,0,0,0,0,0"
LastSlide=
ShadowColor=#000000
ShowHidden=false
ShowWmMenu=false
SlideShowInterval=0
SortColumn=name
SortFolderFirst=true
SortOrder=ascending
Wallpaper=/usr/share/lxqt/themes/light/simple_blue_widescreen.png
WallpaperDirectory=
WallpaperMode=stretch
WallpaperRandomize=false
[FolderView]
BackupAsHidden=false
BigIconSize=48
FolderViewCellMargins=@Size(3 3)
Mode=icon
ShadowHidden=false
ShowFilter=false
ShowFullNames=false
ShowHidden=false
SidePaneIconSize=24
SmallIconSize=24
SortCaseSensitive=false
SortColumn=name
SortFolderFirst=true
SortOrder=ascending
ThumbnailIconSize=128
[Places]
PlacesApplications=true
PlacesComputer=true
PlacesDesktop=true
PlacesHome=true
PlacesNetwork=true
PlacesRoot=true
PlacesTrash=true
[Search]
searchContentCaseInsensitive=false
searchContentRegexp=true
searchNameCaseInsensitive=false
searchNameRegexp=true
searchRecursive=false
searchhHidden=false
[System]
Archiver=file-roller
FallbackIconThemeName=oxygen
OnlyUserTemplates=false
SIUnit=false
SuCommand=lxqt-sudo %s
TemplateRunApp=false
TemplateTypeOnce=false
Terminal=xterm
[Thumbnail]
MaxThumbnailFileSize=4096
ShowThumbnails=true
ThumbnailLocalFilesOnly=true
[Volume]
AutoRun=true
CloseOnUnmount=true
MountOnStartup=true
MountRemovable=true
[Window]
AlwaysShowTabs=false
FixedHeight=480
FixedWidth=640
FullWidthTabBar=true
LastWindowHeight=480
LastWindowMaximized=false
LastWindowWidth=640
PathBarButtons=true
RememberWindowSize=true
ShowMenuBar=true
ShowTabClose=true
SidePaneMode=places
SplitterPos=150

View file

@ -0,0 +1 @@
/usr/local/share/doro-lxde-wallpapers/desktop-items-0.conf

View file

@ -0,0 +1 @@
/tmp/pulse-PKdhtXMmr18n

View file

@ -0,0 +1,12 @@
[General]
HideTabBarWithOneTab=false
TerminalTransparency=0
version=0.8.0
[MainWindow]
ApplicationTransparency=0
pos=@Point(0 0)
size=@Size(640 480)
[Shortcuts]
Paste%20Clipboard=Ctrl+Shift+V

View file

@ -31,7 +31,8 @@ if [ "$USER" != "root" ]; then
fi
HOME=/home/$USER
echo "$USER:$PASSWORD" | chpasswd
cp -r /root/{.gtkrc-2.0,.asoundrc} ${HOME}
cp -r /root/{.config,.gtkrc-2.0,.asoundrc} ${HOME}
chown -R $USER:$USER ${HOME}
[ -d "/dev/snd" ] && chgrp -R adm /dev/snd
fi
sed -i -e "s|%USER%|$USER|" -e "s|%HOME%|$HOME|" /etc/supervisor/conf.d/supervisord.conf

View file

@ -0,0 +1,23 @@
[General]
leave_confirmation=true
[Environment]
GTK_CSD=0
GTK_OVERLAY_SCROLLING=0
[Mouse]
cursor_size=18
cursor_theme=whiteglass
acc_factor=20
acc_threshold=10
left_handed=false
[Keyboard]
delay=500
interval=30
beep=false
[Font]
antialias=true
hinting=true
dpi=96