Provide a janky script for running Window Maker in a captive Xephyr X server.
If this becomes a permanent fixture, hard-coded values should be fixed.
This commit is contained in:
Executable
+86
@@ -0,0 +1,86 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
project_base="$(dirname $0)"
|
||||
|
||||
export WMAKER_USER_ROOT="$HOME/tmp/GNUstep"
|
||||
gs_base="$WMAKER_USER_ROOT"
|
||||
gs_defaults="$gs_base/Defaults"
|
||||
gs_system_defaults="$project_base"/WindowMaker/Defaults
|
||||
wm_base="$gs_base/Library/WindowMaker"
|
||||
wm_backgrounds="$wm_base/Backgrounds"
|
||||
wm_iconsets="$wm_base/IconSets"
|
||||
wm_pixmaps="$wm_base/Pixmaps"
|
||||
gs_icons="$gs_base/Library/Icons"
|
||||
wm_style="$wm_base/Style"
|
||||
wm_styles="$wm_base/Styles"
|
||||
wm_themes="$wm_base/Themes"
|
||||
WindowMaker="$project_base/src/.libs/wmaker"
|
||||
convertfonts="$project_base/util/convertfonts"
|
||||
|
||||
make_dir_if_needed ()
|
||||
{
|
||||
if [ ! -d "$1" ] ; then
|
||||
install -m 0755 -d "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
rename_dir_if_possible ()
|
||||
{
|
||||
if [ ! -d "$2" ] ; then
|
||||
if [ -d "$1" ] ; then
|
||||
mv "$1" "$2"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
copy_defaults_if_needed ()
|
||||
{
|
||||
file="$gs_defaults/$1"
|
||||
system_file="$gs_system_defaults/$1"
|
||||
if [ ! -f "$file" ] ; then
|
||||
install -m 0644 "$system_file" "$file"
|
||||
fi
|
||||
}
|
||||
|
||||
make_dir_if_needed "$gs_defaults"
|
||||
make_dir_if_needed "$wm_base"
|
||||
make_dir_if_needed "$wm_backgrounds"
|
||||
make_dir_if_needed "$wm_iconsets"
|
||||
make_dir_if_needed "$wm_pixmaps"
|
||||
make_dir_if_needed "$gs_icons"
|
||||
rename_dir_if_possible "$wm_style" "$wm_styles"
|
||||
make_dir_if_needed "$wm_styles"
|
||||
make_dir_if_needed "$wm_themes"
|
||||
|
||||
export LD_LIBRARY_PATH="$project_base/wrlib/.libs:$project_base/WINGs/.libs:$LD_LIBRARY_PATH"
|
||||
|
||||
copy_defaults_if_needed WindowMaker
|
||||
copy_defaults_if_needed WMRootMenu
|
||||
copy_defaults_if_needed WMState
|
||||
#copy_defaults_if_needed WMWindowAttributes
|
||||
|
||||
if [ -x $convertfonts -a ! -e "$wm_base/.fonts_converted" ] ; then
|
||||
# --keep-xlfd is used in order to preserve the original information
|
||||
$convertfonts --keep-xlfd "$gs_defaults/WindowMaker"
|
||||
if [ -f "$gs_defaults/WMGLOBAL" ] ; then
|
||||
$convertfonts --keep-xlfd "$gs_defaults/WMGLOBAL"
|
||||
fi
|
||||
find "$wm_styles" -mindepth 1 -maxdepth 1 -type f -print0 |
|
||||
xargs -0 -r -n 1 $convertfonts --keep-xlfd
|
||||
touch "$wm_base/.fonts_converted"
|
||||
fi
|
||||
|
||||
if [ -n "$1" -a -x "$WindowMaker$1" ] ; then
|
||||
WindowMaker="$WindowMaker$1"
|
||||
shift
|
||||
fi
|
||||
|
||||
Xephyr -screen 1080x760 :1 &
|
||||
xephyr_pid=$!
|
||||
DISPLAY=:1 gdb \
|
||||
--directory "$project_base" \
|
||||
--quiet \
|
||||
--args "$WindowMaker" -display :1 --for-real "$@"
|
||||
kill $xephyr_pid
|
||||
Reference in New Issue
Block a user