Skip to content

Commit 8f5d9f2

Browse files
committed
bump to current, add keymap settings, support udev interposer
1 parent dfc3974 commit 8f5d9f2

4 files changed

Lines changed: 95 additions & 19 deletions

File tree

Dockerfile

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ RUN \
1515
https://github.com/selkies-project/selkies.git \
1616
/src && \
1717
cd /src && \
18-
git checkout -f e5a0fe368f1bb76711a305c083f35c00691c15c6
18+
git checkout -f 340fe44d351a3ce1a7d1c402c9aea6b0b0b2e6e3
1919

2020
RUN \
2121
echo "**** build frontend ****" && \
@@ -185,7 +185,7 @@ RUN \
185185
| awk '/tag_name/{print $4;exit}' FS='[""]') && \
186186
curl -o \
187187
/tmp/selkies.tar.gz -L \
188-
"https://github.com/selkies-project/selkies/archive/e5a0fe368f1bb76711a305c083f35c00691c15c6.tar.gz" && \
188+
"https://github.com/selkies-project/selkies/archive/340fe44d351a3ce1a7d1c402c9aea6b0b0b2e6e3.tar.gz" && \
189189
cd /tmp && \
190190
tar xf selkies.tar.gz && \
191191
cd selkies-* && \
@@ -198,12 +198,18 @@ RUN \
198198
mv \
199199
selkies_joystick_interposer.so \
200200
/usr/lib/selkies_joystick_interposer.so && \
201-
echo "**** add icon ****" && \
202-
mkdir -p \
203-
/usr/share/selkies/www && \
204-
curl -o \
205-
/usr/share/selkies/www/icon.png \
206-
https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/selkies-logo.png && \
201+
echo "**** install selkies fake udev ****" && \
202+
cd ../fake-udev && \
203+
make && \
204+
mv \
205+
libudev.so.1.0.0-fake \
206+
/usr/lib/ && \
207+
echo "**** add icon ****" && \
208+
mkdir -p \
209+
/usr/share/selkies/www && \
210+
curl -o \
211+
/usr/share/selkies/www/icon.png \
212+
https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/selkies-logo.png && \
207213
echo "**** openbox tweaks ****" && \
208214
sed -i \
209215
-e 's/NLIMC/NLMC/g' \

Dockerfile.aarch64

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ RUN \
1515
https://github.com/selkies-project/selkies.git \
1616
/src && \
1717
cd /src && \
18-
git checkout -f e5a0fe368f1bb76711a305c083f35c00691c15c6
18+
git checkout -f 340fe44d351a3ce1a7d1c402c9aea6b0b0b2e6e3
1919

2020
RUN \
2121
echo "**** build frontend ****" && \
@@ -183,7 +183,7 @@ RUN \
183183
| awk '/tag_name/{print $4;exit}' FS='[""]') && \
184184
curl -o \
185185
/tmp/selkies.tar.gz -L \
186-
"https://github.com/selkies-project/selkies/archive/e5a0fe368f1bb76711a305c083f35c00691c15c6.tar.gz" && \
186+
"https://github.com/selkies-project/selkies/archive/340fe44d351a3ce1a7d1c402c9aea6b0b0b2e6e3.tar.gz" && \
187187
cd /tmp && \
188188
tar xf selkies.tar.gz && \
189189
cd selkies-* && \
@@ -196,12 +196,18 @@ RUN \
196196
mv \
197197
selkies_joystick_interposer.so \
198198
/usr/lib/selkies_joystick_interposer.so && \
199-
echo "**** add icon ****" && \
200-
mkdir -p \
201-
/usr/share/selkies/www && \
202-
curl -o \
203-
/usr/share/selkies/www/icon.png \
204-
https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/selkies-logo.png && \
199+
echo "**** install selkies fake udev ****" && \
200+
cd ../fake-udev && \
201+
make && \
202+
mv \
203+
libudev.so.1.0.0-fake \
204+
/usr/lib/ && \
205+
echo "**** add icon ****" && \
206+
mkdir -p \
207+
/usr/share/selkies/www && \
208+
curl -o \
209+
/usr/share/selkies/www/icon.png \
210+
https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/selkies-logo.png && \
205211
echo "**** openbox tweaks ****" && \
206212
sed -i \
207213
-e 's/NLIMC/NLMC/g' \

root/etc/s6-overlay/s6-rc.d/init-selkies-config/run

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,26 @@ fi
6161
# set env based on vars
6262
#printf "${SELKIES_INTERPOSER}${LD_PRELOAD:+:${LD_PRELOAD}}" > /run/s6/container_environment/LD_PRELOAD
6363
printf "${GST_DEBUG:-*:1}" > /run/s6/container_environment/GST_DEBUG
64-
printf "${SELKIES_VIDEO_BITRATE:-16000}" > /run/s6/container_environment/SELKIES_VIDEO_BITRATE
6564
printf "${SELKIES_ENCODER:-x264enc-striped}" > /run/s6/container_environment/SELKIES_ENCODER
65+
printf "${SELKIES_FRAMERATE:-60}" > /run/s6/container_environment/SELKIES_FRAMERATE
6666
printf "${SELKIES_ENABLE_RESIZE:-true}" > /run/s6/container_environment/SELKIES_ENABLE_RESIZE
6767
printf "${DISPLAY_SIZEW:-1024}" > /run/s6/container_environment/DISPLAY_SIZEW
6868
printf "${DISPLAY_SIZEH:-768}" > /run/s6/container_environment/DISPLAY_SIZEH
6969
printf "${DISPLAY_REFRESH:60}" > /run/s6/container_environment/DISPLAY_REFRESH
7070
printf "${DISPLAY_DPI:-96}" > /run/s6/container_environment/DISPLAY_DPI
7171
printf "${DISPLAY_CDEPTH:-24}" > /run/s6/container_environment/DISPLAY_CDEPTH
72-
printf "/usr/lib/selkies_joystick_interposer.so" > /run/s6/container_environment/LD_PRELOAD
72+
printf "/usr/lib/selkies_joystick_interposer.so:/usr/lib/libudev.so.1.0.0-fake" > /run/s6/container_environment/LD_PRELOAD
7373
# JS folder setup
7474
mkdir -pm1777 /dev/input
75-
touch /dev/input/{js0,js1,js2,js3,event1000,event1001,event1002,event1003} /tmp/selkies_js.log
75+
touch /tmp/selkies_js.log
76+
mknod /dev/input/js0 c 13 0
77+
mknod /dev/input/js1 c 13 1
78+
mknod /dev/input/js2 c 13 2
79+
mknod /dev/input/js3 c 13 3
80+
mknod /dev/input/event1000 c 13 1064
81+
mknod /dev/input/event1001 c 13 1065
82+
mknod /dev/input/event1002 c 13 1066
83+
mknod /dev/input/event1003 c 13 1067
7684
chmod 777 /dev/input/js* /dev/input/event* /tmp/selkies*
7785

7886
# Manifest creation
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,61 @@
11
#!/usr/bin/with-contenv bash
22

3+
if [ ! -z "${LC_ALL}" ]; then
4+
normalized_locale_full=${LC_ALL%%.*}
5+
normalized_locale_lower=$(echo "$normalized_locale_full" | tr '[:upper:]' '[:lower:]')
6+
7+
declare -A LOCALE_TO_XKB_MAP=(
8+
["af_za"]="za" ["am_et"]="et -variant am" ["ar_sa"]="sa" ["ar_eg"]="eg" ["ar"]="ara"
9+
["as_in"]="in -variant asm" ["az_az"]="az -variant latin" ["be_by"]="by"
10+
["ber_dz"]="dz -variant tifinagh" ["ber_ma"]="ma -variant tifinagh"
11+
["bn_bd"]="bd -variant probhat" ["bn_in"]="in -variant ben" ["bo_cn"]="cn -variant tib"
12+
["bo_in"]="in -variant tib" ["br_fr"]="fr -variant bre" ["brx_in"]="in -variant bod"
13+
["bs_ba"]="ba" ["ca_es"]="es -variant cat" ["ca"]="es -variant cat" ["cs_cz"]="cz"
14+
["cy_gb"]="gb -variant welsh" ["da_dk"]="dk" ["de_de"]="de" ["de_ch"]="ch -variant de"
15+
["de_at"]="at" ["de_lu"]="lu" ["de_be"]="be" ["de"]="de" ["dv_mv"]="mv" ["dz_bt"]="bt"
16+
["el_gr"]="gr" ["el_cy"]="cy" ["el"]="gr" ["en_us"]="us" ["en_gb"]="gb"
17+
["en_ca"]="ca -variant eng" ["en_au"]="au" ["en_ie"]="ie" ["en_in"]="in -variant eng"
18+
["en"]="us" ["es_es"]="es" ["es_mx"]="latam" ["es_ar"]="latam"
19+
["es_us"]="us -variant intl" ["es"]="es" ["et_ee"]="ee" ["eu_es"]="eu" ["fa_ir"]="ir"
20+
["fi_fi"]="fi" ["fo_fo"]="fo" ["fr_fr"]="fr" ["fr_ca"]="ca -variant fr" ["fr_be"]="be"
21+
["fr_ch"]="ch -variant fr" ["fr_lu"]="lu" ["fr"]="fr" ["ga_ie"]="ie"
22+
["gd_gb"]="gb -variant gd" ["gl_es"]="gl" ["gu_in"]="in -variant guj" ["he_il"]="il"
23+
["hi_in"]="in -variant hin" ["hr_hr"]="hr" ["hsb_de"]="de -variant hsb" ["ht_ht"]="ht"
24+
["hu_hu"]="hu" ["hy_am"]="am -variant eastern" ["id_id"]="id" ["is_is"]="is"
25+
["it_it"]="it" ["it_ch"]="ch -variant it" ["it"]="it" ["ja_jp"]="jp" ["ka_ge"]="ge"
26+
["kk_kz"]="kz" ["kl_gl"]="kl" ["km_kh"]="kh" ["kn_in"]="in -variant kan"
27+
["kok_in"]="in -variant kok" ["ko_kr"]="kr" ["ks_in"]="in -variant kas_dev"
28+
["ku_tr"]="tr -variant ku" ["ky_kg"]="kg" ["lb_lu"]="lu" ["lo_la"]="la" ["lt_lt"]="lt"
29+
["lv_lv"]="lv" ["mai_in"]="in -variant mai" ["mg_mg"]="mg" ["mk_mk"]="mk"
30+
["ml_in"]="in -variant mal" ["mni_in"]="in -variant mni_bengali" ["mn_mn"]="mn"
31+
["mr_in"]="in -variant mar" ["ms_my"]="my" ["mt_mt"]="mt" ["my_mm"]="mm" ["nb_no"]="no"
32+
["nn_no"]="no" ["no"]="no" ["ne_np"]="np" ["nl_nl"]="nl" ["nl_be"]="be" ["nl"]="nl"
33+
["oc_fr"]="fr -variant oc" ["or_in"]="in -variant ori" ["pa_in"]="in -variant pan"
34+
["pa_pk"]="pk -variant ur" ["pl_pl"]="pl" ["ps_af"]="ps" ["pt_pt"]="pt" ["pt_br"]="br"
35+
["pt"]="pt" ["ro_ro"]="ro" ["ru_ru"]="ru" ["ru_ua"]="ua -variant ru" ["ru"]="ru"
36+
["rw_rw"]="rw" ["sa_in"]="in -variant san_devanagari" ["sat_in"]="in -variant sat_olchiki"
37+
["se_no"]="no -variant sme" ["si_lk"]="lk -variant sinhala_qwerty_us" ["sk_sk"]="sk"
38+
["sl_si"]="si" ["so_so"]="so" ["sq_al"]="al" ["sq_mk"]="mk -variant sq" ["sr_rs"]="rs"
39+
["sr_me"]="me" ["nr_za"]="za" ["nso_za"]="za" ["ss_za"]="za" ["st_za"]="za"
40+
["tn_za"]="za" ["ts_za"]="za" ["ve_za"]="za" ["xh_za"]="za" ["zu_za"]="za"
41+
["sv_se"]="se" ["sv_fi"]="fi -variant se" ["sv"]="se" ["ta_in"]="in -variant tam"
42+
["ta_lk"]="lk -variant tam_unicode" ["te_in"]="in -variant tel" ["tg_tj"]="tj"
43+
["th_th"]="th" ["ti_er"]="er" ["ti_et"]="et" ["tk_tm"]="tm -variant latn" ["tr_tr"]="tr"
44+
["tr"]="tr" ["tt_ru"]="ru -variant tat" ["ug_cn"]="ug" ["uk_ua"]="ua"
45+
["ur_in"]="in -variant urd" ["ur_pk"]="pk -variant ur" ["uz_uz"]="uz -variant latin"
46+
["vi_vn"]="vn" ["yi_us"]="il" ["zh_cn"]="cn" ["zh_hk"]="hk" ["zh_sg"]="sg"
47+
["zh_tw"]="tw" ["zh"]="cn"
48+
)
49+
50+
if [[ -v "LOCALE_TO_XKB_MAP[$normalized_locale_lower]" ]]; then
51+
XKB_LAYOUT_ARGS="${LOCALE_TO_XKB_MAP[$normalized_locale_lower]}"
52+
fi
53+
fi
54+
55+
if [ ! -z "$XKB_LAYOUT_ARGS" ]; then
56+
s6-setuidgid abc setxkbmap ${XKB_LAYOUT_ARGS}
57+
fi
58+
359
cd $HOME
460
exec s6-setuidgid abc \
561
/bin/bash /defaults/startwm.sh

0 commit comments

Comments
 (0)