summaryrefslogtreecommitdiff
path: root/src/firestartx
diff options
context:
space:
mode:
Diffstat (limited to 'src/firestartx')
-rwxr-xr-xsrc/firestartx58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/firestartx b/src/firestartx
new file mode 100755
index 0000000..636fc84
--- /dev/null
+++ b/src/firestartx
@@ -0,0 +1,58 @@
1#!/bin/bash
2
3get_new_display()
4{
5 for ((n=1; n<99; ++n))
6 do
7 if [ ! -e /tmp/.X$n-lock ]
8 then
9 NEW_DISPLAY=:$n
10 return
11 fi
12 done
13 false
14}
15
16get_new_display || exit
17
18if [ $# = 0 ]
19then
20 set -- firestart
21fi
22
23# TITLE=$* # lol, startx doesn't support arguments with spaces
24TITLE=$1
25TITLE= # blank title documents the screen grab keys in the title
26
27if [ "$1" != firestart ]
28then
29 USE_XINIT=y
30fi
31
32if [ "$USE_XINIT" ]
33then
34 set -x
35 case "$1" in
36 /*) ;;
37 *) f1=$(which "$1") || exit
38 shift
39 set -- "$f1" "$@"
40 ;;
41 esac
42 xinit "$@" -- $(which Xephyr) "$NEW_DISPLAY" -resizeable -p 0 -terminate ${TITLE:+ -title "$TITLE"}
43else
44 set -x
45 dpi=$(xrdb -query | sed -n -e 's/^Xft.dpi:[ \t]*//p')
46 startx -- "$(which Xephyr)" "$NEW_DISPLAY" \
47 -resizeable \
48 -p 0 \
49 -terminate \
50 ${TITLE:+ -title "$TITLE"} \
51 ${dpi:+ -dpi "$dpi"} \
52 &
53 if [ $# -gt 0 ]
54 then
55 DISPLAY=$NEW_DISPLAY "$@" &
56 fi
57 wait
58fi