Skip to content
Snippets Groups Projects
Commit 0f651ef6 authored by Stefano Alberto Russo's avatar Stefano Alberto Russo
Browse files

added XUbuntuDesktop container

parent e740eec4
No related branches found
No related tags found
No related merge requests found
Showing
with 813 additions and 0 deletions
FROM ubuntu:18.04
MAINTAINER Stefano Alberto Russo <stefano.russo@gmail.com>
#----------------------
# Basics
#----------------------
# Set non-interactive
ENV DEBIAN_FRONTEND noninteractive
# Update first of all
RUN apt-get update
# Utilities
RUN apt-get install -y nano telnet unzip wget supervisor build-essential python-dev git-core openjdk-8-jre
#------------------------
# Ubuntu user
#------------------------
# Add group.
RUN groupadd -g 1000 ubuntu
# Add user.
RUN useradd ubuntu -d /home/ubuntu -u 1000 -g 1000 -m -s /bin/bash
# Add metuaser user to sudoers
RUN adduser ubuntu sudo
# Install suodo
RUN apt-get install sudo -y
# No pass sudo (for everyone, actually)
COPY files/sudoers /etc/sudoers
#------------------------
# Supervisor conf
#------------------------
# Supervisord conf
COPY files/supervisord.conf /etc/supervisor/
#------------------------
# VNC
#------------------------
# Install xvfb that triggers minimal install of X base packages and xterm as sample application
RUN apt-get install xvfb xterm -y
# Install base packages for VNC server and headless desktop (2)
#RUN cd /opt && wget https://bintray.com/tigervnc/stable/download_file?file_path=tigervnc-1.8.0.x86_64.tar.gz -O tigervnc-1.8.0.x86_64.tar.gz \
# && tar -zxvf tigervnc-1.8.0.x86_64.tar.gz \
# && mv tigervnc-1.8.0.x86_64 tigervnc
# Supervisord configuration
COPY files/supervisord_kasm.conf /etc/supervisor/conf.d/
COPY files/run_kasm.sh /etc/supervisor/conf.d/
RUN chmod 755 /etc/supervisor/conf.d/run_kasm.sh
# Kasm VNC (modded by gtaffoni to use a socket named by an env var)
COPY files/kasmvnc-Linux-x86_64-0.9.tar.gz /tmp
RUN sudo tar xz --strip 1 -C / -f /tmp/kasmvnc-Linux-x86_64-0.9.tar.gz && rm /tmp/kasmvnc-Linux-x86_64-0.9.tar.gz
RUN mkdir /usr/local/share/kasmvnc/certs
RUN chown ubuntu:ubuntu /usr/local/share/kasmvnc/certs
COPY files/index.html /usr/local/share/kasmvnc/www/
# Other utilities
RUN apt-get install -y net-tools
# X environment setup/startup
RUN apt-get install fluxbox -y
RUN mkdir -p /ubuntu_home_vanilla/.vnc
COPY files/config /ubuntu_home_vanilla/.vnc
COPY files/xstartup /ubuntu_home_vanilla/.vnc
RUN chmod 755 /ubuntu_home_vanilla/.vnc/xstartup
RUN chown -R ubuntu:ubuntu /ubuntu_home_vanilla/.vnc
# Prepare for logs
RUN mkdir /ubuntu_home_vanilla/.logs && chown ubuntu:ubuntu /ubuntu_home_vanilla/.logs
# Rename ubuntu home folder as a "vanilla" home folder
#RUN mv /home/ubuntu /ubuntu_home_vanilla
# Add fluxbox customisations
COPY files/dot_fluxbox /ubuntu_home_vanilla/.fluxbox
RUN chown -R ubuntu:ubuntu /ubuntu_home_vanilla/.fluxbox
COPY files/background.jpg /usr/share/images/fluxbox/background.jpg
# Give write access to anyone to the home folder so the entrypoint will be able
# to copy over the /home/matauser_vanilla into /home/ubuntu (for Singularity)
RUN chmod 777 /home
# Extra for 18.04
RUN apt-get install net-tools dbus-x11 -y
#----------------------
# Xfce
#----------------------
RUN apt-get update
RUN apt-get install xfce4 xfce4-terminal mousepad ristretto tumbler firefox -y
# Replace X startup with version that uses Xfce as Window Manager
COPY files/xstartup /opt/tigervnc/
RUN chmod 755 /opt/tigervnc/xstartup
# X startup
COPY files/xstartup /opt/tigervnc/
RUN chmod 755 /opt/tigervnc/xstartup
#----------------------
# Desktop
#----------------------
# Add some dependencies
RUN apt-get install imwheel zenity x11-xserver-utils -y
# Create the Desktop
RUN mkdir /ubuntu_home_vanilla/Desktop && chown ubuntu:ubuntu /ubuntu_home_vanilla/Desktop
# Add mouse scrolling script
COPY files/set_mouse_scrolling_speed /usr/bin/
COPY files/Set_Mouse_Scrolling_Speed.desktop /ubuntu_home_vanilla/Desktop/
RUN chmod 755 /usr/bin/set_mouse_scrolling_speed
# Add Display Resolution stuff
#COPY add_display_resolution /usr/bin/
#COPY add_display_resolution_gui /usr/bin/
#COPY Set_Display_Resolution.desktop /ubuntu_home_vanilla/Desktop/
#COPY Add_Display_Resolution.desktop /ubuntu_home_vanilla/Desktop/
#RUN chmod 755 /usr/bin/add_display_resolution && chmod 755 /usr/bin/add_display_resolution_gui
# Correct ownership of Desktop shortcuts
RUN chown -R ubuntu:ubuntu /ubuntu_home_vanilla/Desktop/
# Shorter bash prompt
#RUN echo "PS1=\"\u@XUbuntuDesktop:\W $ \"" >> /ubuntu_home_vanilla/.bashrc
# Default conf (mostly eyecandy)
COPY files/home_ubuntu_.config /ubuntu_home_vanilla/.config
#COPY data/desktop-cf881dd7/ubuntu_home_vanilla/.config /ubuntu_home_vanilla/.config
RUN chown -R ubuntu:ubuntu /ubuntu_home_vanilla/.config
# Disable screensaver
COPY files/dot_xscreensaver /ubuntu_home_vanilla/.xscreensaver
RUN chown ubuntu:ubuntu /ubuntu_home_vanilla/.xscreensaver
# Disable logout dialog
RUN chmod 000 /usr/bin/xfce4-session-logout
# Create Downloads folder. This is "required" for showing proper spacing between icons in the filemanager a bounch
RUN mkdir /ubuntu_home_vanilla/Downloads && chown ubuntu:ubuntu /ubuntu_home_vanilla/Downloads
#----------------------
# Extra SW
#----------------------
RUN sudo apt-get install gdebi-core -y
COPY files/software/dropbox_2015.10.28_amd64.deb /root/
RUN gdebi /root/dropbox_2015.10.28_amd64.deb -n
#RUN apt-get install libreoffice gimp -y
# Shell for temrinal
COPY files/runshell.sh /bin/
RUN chmod 755 /bin/runshell.sh
#--------------------------------------
# Jupyter, Eclipse, keybindings etc.
#--------------------------------------
# Download and install Eclipse and Pydev
RUN wget http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/SR2/eclipse-standard-kepler-SR2-linux-gtk-x86_64.tar.gz
RUN mv download.php* eclipse-standard-kepler-SR2-linux-gtk-x86_64.tar.gz
RUN tar -zxvf eclipse-standard-kepler-SR2-linux-gtk-x86_64.tar.gz
COPY files/PyDev_3.4.1.zip /tmp
RUN cd eclipse/dropins/ && unzip /tmp/PyDev_3.4.1.zip
RUN mv eclipse /opt/
COPY files/eclipse128.png /opt/eclipse/eclipse128.png
COPY files/Eclipse.desktop /ubuntu_home_vanilla/Desktop/
RUN chown -R ubuntu:ubuntu /ubuntu_home_vanilla/Desktop/
# Giveagain, since xfce install "fixed" it) write access to anyone to the home folder so the entrypoint
# will be able to copy over the /home/matauser_vanilla into /home/ubuntu (for Singularity)
RUN chmod 777 /home
#----------------------
# Entrypoint
#----------------------
# Copy entrypoint
COPY files/entrypoint.sh /
# Give right permissions
RUN chmod 755 /entrypoint.sh
# Set entrypoint
ENTRYPOINT ["/entrypoint.sh"]
# Set user (mainly for Singularity)
USER ubuntu
# To access: expose 8590/tcp and 5900/tcp
ENV CONTAINER_NAME='xubuntudesktop'
#!/bin/bash
docker build . -t xubuntudesktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Add Display Resolution
Comment=
Exec=add_display_resolution_gui
Icon=video-display
Path=
Terminal=false
StartupNotify=false
[Desktop Entry]
Version=1.0
Type=Application
Name=Eclipse
Comment=
Exec=/opt/eclipse/eclipse
Icon=/opt/eclipse/eclipse128.png
Path=
Terminal=false
StartupNotify=false
File added
[Desktop Entry]
Version=1.0
Type=Application
Name=Set Display Resolution
Comment=
Exec=xfce4-display-settings
Icon=video-display
Path=
Terminal=false
StartupNotify=false
[Desktop Entry]
Version=1.0
Type=Application
Name=Set Mouse Scrolling Speed
Comment=
Exec=/usr/bin/set_mouse_scrolling_speed
Icon=input-mouse
Path=
Terminal=false
StartupNotify=false
#!/usr/bin/env python
import sys
import os
sh = os.system
# I don't think the refresh rate matters for VNC modes.
REFRESH_RATE = 60
DISPLAY_NAME = 'VNC-0'
if len(sys.argv) != 2:
print('Usage: {} <geometry>'.format(sys.argv[0]))
sys.exit(0)
geometry = sys.argv[1]
(horz, vert) = (int(x) for x in geometry.split('x'))
pixel_freq = (horz * vert * REFRESH_RATE) / 1.0e6
sh('xrandr --newmode {} {} {} 0 0 {} {} 0 0 {}'.format(
geometry, pixel_freq, horz, horz, vert, vert))
sh('xrandr --addmode {} {}'.format(DISPLAY_NAME, geometry))
# Local Variables:
# mode: python
# End:
#!/bin/bash
NEWRES=$(zenity --entry --title="Add new resolution" --text="New Resolution (i.e. 1440x900):")
add_display_resolution $NEWRES
\ No newline at end of file
XUbuntuDesktop/files/background.jpg

9.96 KiB

## Supported server options to pass to vncserver upon invocation can be listed
## in this file. See the following manpages for more: vncserver(1) Xvnc(1).
## Several common ones are shown below. Uncomment and modify to your liking.
##
# securitytypes=vncauth,tlsvnc
# desktop=sandbox
# geometry=2000x1200
# localhost
# alwaysshared
username=ubuntu
[app] (name=fbrun)
[Position] (WINCENTER) {0 0}
[Layer] {2}
[end]
session.screen0.tabs.usePixmap: true
session.screen0.tabs.maxOver: false
session.screen0.tabs.intitlebar: true
session.screen0.clientMenu.usePixmap: true
session.screen0.iconbar.usePixmap: true
session.screen0.iconbar.iconTextPadding: 10
session.screen0.iconbar.iconWidth: 128
session.screen0.iconbar.alignment: Relative
session.screen0.iconbar.mode: {static groups} (workspace)
session.screen0.toolbar.visible: true
session.screen0.toolbar.height: 0
session.screen0.toolbar.onhead: 1
session.screen0.toolbar.widthPercent: 100
session.screen0.toolbar.alpha: 255
session.screen0.toolbar.maxOver: false
session.screen0.toolbar.autoHide: false
session.screen0.toolbar.layer: Dock
session.screen0.toolbar.placement: BottomCenter
#session.screen0.toolbar.tools: prevworkspace, workspacename, nextworkspace, clock, prevwindow, nextwindow, iconbar, systemtray
session.screen0.toolbar.tools: iconbar, systemtray
session.screen0.menu.alpha: 255
session.screen0.tab.placement: TopLeft
session.screen0.tab.width: 64
session.screen0.titlebar.left: Stick
session.screen0.titlebar.right: Minimize Maximize Close
session.screen0.window.focus.alpha: 255
session.screen0.window.unfocus.alpha: 255
session.screen0.slit.alpha: 255
session.screen0.slit.maxOver: false
session.screen0.slit.placement: RightBottom
session.screen0.slit.autoHide: false
session.screen0.slit.acceptKdeDockapps: true
session.screen0.slit.onhead: 0
session.screen0.slit.layer: Dock
session.screen0.colPlacementDirection: TopToBottom
session.screen0.tabFocusModel: ClickToTabFocus
session.screen0.autoRaise: true
session.screen0.maxDisableMove: false
session.screen0.edgeSnapThreshold: 10
session.screen0.tooltipDelay: 500
session.screen0.opaqueMove: true
session.screen0.windowPlacement: RowMinOverlapPlacement
session.screen0.focusNewWindows: true
session.screen0.clickRaises: true
session.screen0.maxDisableResize: false
session.screen0.windowMenu: /home/ubuntu/.fluxbox/windowmenu
session.screen0.allowRemoteActions: false
session.screen0.strftimeFormat: %d %b, %a %02k:%M:%S
session.screen0.focusSameHead: false
session.screen0.workspacewarping: true
session.screen0.fullMaximization: false
session.screen0.defaultDeco: NORMAL
session.screen0.noFocusWhileTypingDelay: 0
session.screen0.menuDelay: 200
session.screen0.workspaceNames: Workspace 1,Workspace 2,Workspace 3,Workspace 4,
session.screen0.rowPlacementDirection: LeftToRight
session.screen0.focusModel: ClickFocus
session.screen0.showwindowposition: false
session.screen0.maxIgnoreIncrement: true
session.screen0.workspaces: 1
session.styleOverlay: /home/ubuntu/.fluxbox/overlay
session.keyFile: ~/.fluxbox/keys
session.cacheMax: 200
session.tabsAttachArea: Window
session.slitlistFile: /home/ubuntu/.fluxbox/slitlist
session.forcePseudoTransparency: false
session.tabPadding: 0
session.colorsPerChannel: 4
session.styleFile: /usr/share/fluxbox/styles//ubuntu-light
session.autoRaiseDelay: 250
session.cacheLife: 5
session.appsFile: /home/ubuntu/.fluxbox/apps
session.ignoreBorder: false
session.configVersion: 13
session.doubleClickInterval: 250
session.menuFile: ~/.fluxbox/menu
# click on the desktop to get menus
OnDesktop Mouse1 :HideMenus
OnDesktop Mouse2 :WorkspaceMenu
OnDesktop Mouse3 :RootMenu
# scroll on the desktop to change workspaces
OnDesktop Mouse4 :PrevWorkspace
OnDesktop Mouse5 :NextWorkspace
# scroll on the toolbar to change current window
OnToolbar Mouse4 :PrevWindow {static groups} (iconhidden=no)
OnToolbar Mouse5 :NextWindow {static groups} (iconhidden=no)
# alt + left/right click to move/resize a window
OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving}
OnWindowBorder Move1 :StartMoving
OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner}
OnLeftGrip Move1 :StartResizing bottomleft
OnRightGrip Move1 :StartResizing bottomright
# alt + middle click to lower the window
OnWindow Mod1 Mouse2 :Lower
# control-click a window's titlebar and drag to attach windows
OnTitlebar Control Mouse1 :StartTabbing
# double click on the titlebar to shade
OnTitlebar Double Mouse1 :Shade
# left click on the titlebar to move the window
OnTitlebar Mouse1 :MacroCmd {Raise} {Focus} {ActivateTab}
OnTitlebar Move1 :StartMoving
# middle click on the titlebar to lower
OnTitlebar Mouse2 :Lower
# right click on the titlebar for a menu of options
OnTitlebar Mouse3 :WindowMenu
# alt-tab
Mod1 Tab :NextWindow {groups} (workspace=[current])
Mod1 Shift Tab :PrevWindow {groups} (workspace=[current])
# cycle through tabs in the current window
Mod4 Tab :NextTab
Mod4 Shift Tab :PrevTab
# go to a specific tab in the current window
Mod4 1 :Tab 1
Mod4 2 :Tab 2
Mod4 3 :Tab 3
Mod4 4 :Tab 4
Mod4 5 :Tab 5
Mod4 6 :Tab 6
Mod4 7 :Tab 7
Mod4 8 :Tab 8
Mod4 9 :Tab 9
# open a terminal
Mod1 F1 :Exec x-terminal-emulator
# open a dialog to run programs
Mod1 F2 :Exec fbrun
# volume settings, using common keycodes
# if these don't work, use xev to find out your real keycodes
176 :Exec amixer sset Master,0 1+
174 :Exec amixer sset Master,0 1-
160 :Exec amixer sset Master,0 toggle
# current window commands
Mod1 F4 :Close
Mod1 F5 :Kill
Mod1 F9 :Minimize
Mod1 F10 :Maximize
Mod1 F11 :Fullscreen
# open the window menu
Mod1 space :WindowMenu
# exit fluxbox
Control Mod1 Delete :Exit
# change to previous/next workspace
Control Mod1 Left :PrevWorkspace
Control Mod1 Right :NextWorkspace
# send the current window to previous/next workspace
Mod4 Left :SendToPrevWorkspace
Mod4 Right :SendToNextWorkspace
# send the current window and follow it to previous/next workspace
Control Mod4 Left :TakeToPrevWorkspace
Control Mod4 Right :TakeToNextWorkspace
# change to a specific workspace
Control F1 :Workspace 1
Control F2 :Workspace 2
Control F3 :Workspace 3
Control F4 :Workspace 4
Control F5 :Workspace 5
Control F6 :Workspace 6
Control F7 :Workspace 7
Control F8 :Workspace 8
Control F9 :Workspace 9
Control F10 :Workspace 10
Control F11 :Workspace 11
Control F12 :Workspace 12
# send the current window to a specific workspace
Mod4 F1 :SendToWorkspace 1
Mod4 F2 :SendToWorkspace 2
Mod4 F3 :SendToWorkspace 3
Mod4 F4 :SendToWorkspace 4
Mod4 F5 :SendToWorkspace 5
Mod4 F6 :SendToWorkspace 6
Mod4 F7 :SendToWorkspace 7
Mod4 F8 :SendToWorkspace 8
Mod4 F9 :SendToWorkspace 9
Mod4 F10 :SendToWorkspace 10
Mod4 F11 :SendToWorkspace 11
Mod4 F12 :SendToWorkspace 12
# send the current window and change to a specific workspace
Control Mod4 F1 :TakeToWorkspace 1
Control Mod4 F2 :TakeToWorkspace 2
Control Mod4 F3 :TakeToWorkspace 3
Control Mod4 F4 :TakeToWorkspace 4
Control Mod4 F5 :TakeToWorkspace 5
Control Mod4 F6 :TakeToWorkspace 6
Control Mod4 F7 :TakeToWorkspace 7
Control Mod4 F8 :TakeToWorkspace 8
Control Mod4 F9 :TakeToWorkspace 9
Control Mod4 F10 :TakeToWorkspace 10
Control Mod4 F11 :TakeToWorkspace 11
Control Mod4 F12 :TakeToWorkspace 12
$full $full|/usr/share/images/fluxbox/ubuntu-light.png|style|:0.0
[begin] (fluxbox)
[include] (/etc/X11/fluxbox/fluxbox-menu)
[end]
! The following line will prevent styles from setting the background.
! background: none
background: aspect
background.pixmap: /usr/share/images/fluxbox/background.jpg
[begin]
[shade]
[stick]
[maximize]
[iconify]
[raise]
[lower]
[settitledialog]
[sendto]
[layer]
[alpha]
[extramenus]
[separator]
[close]
[end]
# XScreenSaver Preferences File
# Written by xscreensaver-demo 5.36 for ubuntu on Fri Jul 13 21:09:30 2018.
# https://www.jwz.org/xscreensaver/
timeout: 0:10:00
cycle: 0:10:00
lock: False
lockTimeout: 0:00:00
passwdTimeout: 0:00:30
visualID: default
installColormap: True
verbose: False
timestamp: True
splash: True
splashDuration: 0:00:05
demoCommand: xscreensaver-demo
prefsCommand: xscreensaver-demo -prefs
nice: 10
memoryLimit: 0
fade: True
unfade: False
fadeSeconds: 0:00:03
fadeTicks: 20
captureStderr: True
ignoreUninstalledPrograms:False
font: *-medium-r-*-140-*-m-*
dpmsEnabled: False
dpmsQuickOff: False
dpmsStandby: 2:00:00
dpmsSuspend: 2:00:00
dpmsOff: 4:00:00
grabDesktopImages: False
grabVideoFrames: False
chooseRandomImages: False
imageDirectory:
mode: off
selected: -1
textMode: url
textLiteral: XScreenSaver
textFile:
textProgram: fortune
textURL: http://feeds.feedburner.com/ubuntu-news
programs: \
maze -root \n\
- GL: superquadrics -root \n\
attraction -root \n\
blitspin -root \n\
greynetic -root \n\
helix -root \n\
hopalong -root \n\
imsmap -root \n\
- noseguy -root \n\
- pyro -root \n\
qix -root \n\
- rocks -root \n\
rorschach -root \n\
decayscreen -root \n\
flame -root \n\
halo -root \n\
slidescreen -root \n\
pedal -root \n\
bouboule -root \n\
- braid -root \n\
coral -root \n\
deco -root \n\
drift -root \n\
- fadeplot -root \n\
galaxy -root \n\
goop -root \n\
grav -root \n\
ifs -root \n\
unicode -root \n\
- GL: jigsaw -root \n\
julia -root \n\
- kaleidescope -root \n\
- GL: moebius -root \n\
moire -root \n\
- GL: morph3d -root \n\
mountain -root \n\
munch -root \n\
penrose -root \n\
- GL: pipes -root \n\
rd-bomb -root \n\
- GL: rubik -root \n\
- sierpinski -root \n\
slip -root \n\
- GL: sproingies -root \n\
starfish -root \n\
strange -root \n\
swirl -root \n\
triangle -root \n\
xjack -root \n\
xlyap -root \n\
- GL: atlantis -root \n\
bsod -root \n\
- GL: bubble3d -root \n\
- GL: cage -root \n\
- crystal -root \n\
cynosure -root \n\
discrete -root \n\
distort -root \n\
epicycle -root \n\
flow -root \n\
- GL: glplanet -root \n\
interference -root \n\
kumppa -root \n\
- GL: lament -root \n\
moire2 -root \n\
- GL: sonar -root \n\
- GL: stairs -root \n\
truchet -root \n\
- vidwhacker -root \n\
blaster -root \n\
bumps -root \n\
ccurve -root \n\
compass -root \n\
deluxe -root \n\
- demon -root \n\
- GL: extrusion -root \n\
- loop -root \n\
penetrate -root \n\
petri -root \n\
phosphor -root \n\
- GL: pulsar -root \n\
ripples -root \n\
shadebobs -root \n\
- GL: sierpinski3d -root \n\
spotlight -root \n\
squiral -root \n\
wander -root \n\
- webcollage -root \n\
xflame -root \n\
xmatrix -root \n\
- GL: gflux -root \n\
- nerverot -root \n\
xrayswarm -root \n\
xspirograph -root \n\
- GL: circuit -root \n\
- GL: dangerball -root \n\
- GL: engine -root \n\
- GL: flipscreen3d -root \n\
- GL: gltext -root \n\
- GL: menger -root \n\
- GL: molecule -root \n\
rotzoomer -root \n\
speedmine -root \n\
- GL: starwars -root \n\
- GL: stonerview -root \n\
vermiculate -root \n\
whirlwindwarp -root \n\
zoom -root \n\
anemone -root \n\
apollonian -root \n\
- GL: boxed -root \n\
- GL: cubenetic -root \n\
- GL: endgame -root \n\
euler2d -root \n\
fluidballs -root \n\
- GL: flurry -root \n\
- GL: glblur -root \n\
- GL: glsnake -root \n\
halftone -root \n\
- GL: juggler3d -root \n\
- GL: lavalite -root \n\
- polyominoes -root \n\
- GL: queens -root \n\
- GL: sballs -root \n\
- GL: spheremonics -root \n\
- thornbird -root \n\
twang -root \n\
- GL: antspotlight -root \n\
apple2 -root \n\
- GL: atunnel -root \n\
barcode -root \n\
- GL: blinkbox -root \n\
- GL: blocktube -root \n\
- GL: bouncingcow -root \n\
cloudlife -root \n\
- GL: cubestorm -root \n\
eruption -root \n\
- GL: flipflop -root \n\
- GL: flyingtoasters -root \n\
fontglide -root \n\
- GL: gleidescope -root \n\
- GL: glknots -root \n\
- GL: glmatrix -root \n\
- GL: glslideshow -root \n\
- GL: hypertorus -root \n\
- GL: jigglypuff -root \n\
metaballs -root \n\
- GL: mirrorblob -root \n\
piecewise -root \n\
- GL: polytopes -root \n\
pong -root \n\
popsquares -root \n\
- GL: surfaces -root \n\
xanalogtv -root \n\
abstractile -root \n\
anemotaxis -root \n\
- GL: antinspect -root \n\
fireworkx -root \n\
fuzzyflakes -root \n\
interaggregate -root \n\
intermomentary -root \n\
memscroller -root \n\
- GL: noof -root \n\
pacman -root \n\
- GL: pinion -root \n\
- GL: polyhedra -root \n\
- GL: providence -root \n\
substrate -root \n\
wormhole -root \n\
- GL: antmaze -root \n\
- GL: boing -root \n\
boxfit -root \n\
- GL: carousel -root \n\
celtic -root \n\
- GL: crackberg -root \n\
- GL: cube21 -root \n\
fiberlamp -root \n\
- GL: fliptext -root \n\
- GL: glhanoi -root \n\
- GL: tangram -root \n\
- GL: timetunnel -root \n\
- GL: glschool -root \n\
- GL: topblock -root \n\
- GL: cubicgrid -root \n\
cwaves -root \n\
- GL: gears -root \n\
- GL: glcells -root \n\
- GL: lockward -root \n\
m6502 -root \n\
- GL: moebiusgears -root \n\
- GL: voronoi -root \n\
- GL: hypnowheel -root \n\
- GL: klein -root \n\
- lcdscrub -root \n\
- GL: photopile -root \n\
- GL: skytentacles -root \n\
- GL: rubikblocks -root \n\
- GL: companioncube -root \n\
- GL: hilbert -root \n\
- GL: tronbit -root \n\
- GL: geodesic -root \n\
hexadrop -root \n\
- GL: kaleidocycle -root \n\
- GL: quasicrystal -root \n\
- GL: unknownpleasures -root \n\
binaryring -root \n\
- GL: cityflow -root \n\
- GL: geodesicgears -root \n\
- GL: projectiveplane -root \n\
- GL: romanboy -root \n\
tessellimage -root \n\
- GL: winduprobot -root \n\
- GL: splitflap -root \n\
- GL: cubestack -root \n\
- GL: cubetwist -root \n\
- GL: discoball -root \n\
- GL: dymaxionmap -root \n\
- GL: energystream -root \n\
- GL: hexstrut -root \n\
- GL: hydrostat -root \n\
- GL: raverhoop -root \n\
- GL: splodesic -root \n\
- GL: unicrud -root \n\
pointerPollTime: 0:00:05
pointerHysteresis: 10
windowCreationTimeout:0:00:30
initialDelay: 0:00:00
GetViewPortIsFullOfLies:False
procInterrupts: True
xinputExtensionDev: False
overlayStderr: True
authWarningSlack: 20
XUbuntuDesktop/files/eclipse128.png

18.2 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment