***
SAVING SPACE IN NICKELMENU WITH "SUBMENUS" USING NICKELDBUS
Your NickelMenu might be getting crowded if you have added all the following entries:
Code:
menu_item :main :stop agetty+fbpad+fbkeyboard :cmd_spawn :quiet:/usr/bin/pkill agetty
chain_success :cmd_spawn :quiet :/usr/bin/pkill fbpad
chain_failure :cmd_spawn :quiet :/usr/bin/pkill fbpad
chain_success :cmd_spawn :quiet :/usr/bin/pkill fbkeyboard
chain_failure :cmd_spawn :quiet :/usr/bin/pkill fbkeyboard
menu_item :main :fbpadkb+fbkeyboard :cmd_spawn :quiet :/mnt/onboard/.adds/koreader/scripts/fbpadkb /bin/sh 0</dev/tty1
chain_success :cmd_spawn :quiet :/mnt/onboard/.adds/koreader/scripts/fbkeyboard
chain_success :dbg_toast :Started fbpadkb and fbkeyboard
chain_failure :dbg_toast :Error starting fbpadkb or fbkeyboard
menu_item :main :fbpadkbS+fbkeyboard :cmd_spawn :quiet :/mnt/onboard/.adds/koreader/scripts/fbpadkbS /bin/sh 0</dev/tty1
chain_success :cmd_spawn :quiet :/mnt/onboard/.adds/koreader/scripts/fbkeyboard
chain_success :dbg_toast :Started fbpadkbS and fbkeyboard
chain_failure :dbg_toast :Error starting fbpadkbS or fbkeyboard
menu_item :main :fbpad (toggle):cmd_output :500:quiet :/usr/bin/pkill -f "fbpad"
chain_success:skip:4
chain_failure :cmd_spawn :quiet :/mnt/onboard/.adds/koreader/scripts/fbpad /bin/sh 0</dev/tty1
chain_success :dbg_toast :Started fbpad
chain_failure :dbg_toast :Error starting fbpad
chain_always:skip:-1
chain_success :dbg_toast :Stopped fbpad
menu_item :main :fbpadS (toggle):cmd_output :500:quiet :/usr/bin/pkill -f "fbpadS"
chain_success:skip:4
chain_failure :cmd_spawn :quiet :/mnt/onboard/.adds/koreader/scripts/fbpadS /bin/sh 0</dev/tty1
chain_success :dbg_toast :Started fbpadS
chain_failure :dbg_toast :Error starting fbpadS
chain_always:skip:-1
chain_success :dbg_toast :Stopped fbpadS
menu_item :main :fbkeyboard (toggle):cmd_output :500:quiet :/usr/bin/pkill fbkeyboard
chain_success:skip:4
chain_failure :cmd_spawn :quiet :/mnt/onboard/.adds/koreader/scripts/fbkeyboard
chain_success :dbg_toast :Started fbkeyboard
chain_failure :dbg_toast :Error starting fbkeyboard
chain_always:skip:-1
chain_success :dbg_toast :Stopped fbkeyboard
***
But
NickelDBus allows us to condense everything to a single NickelMenu entry (i.e. also need NickelDBus installed):
Code:
menu_item :main :fbmenu :cmd_spawn :quiet:exec /mnt/onboard/.adds/koreader/scripts/fbmenu.sh
chain_success :dbg_toast :Started fbmenu
chain_failure :dbg_toast :Error
Also create script /mnt/onboard/.adds/koreader/scripts/fbmenu.sh:
Code:
#!/bin/sh
# fbmenu - fbpad and fbkeyboard selection menu
num=0
qndb -m dlgConfirmCreate true
qndb -m dlgConfirmSetTitle "1-Stop agetty+fb(all); 2-fbpadkb; 3-fbpadkbS; 4-fbpad; 5-fbpadS; 6-fbkeyboard; Select option (1-6):"
qndb -m dlgConfirmSetLEPlaceholder "1"
qndb -m dlgConfirmShow
result=$(qndb -s dlgConfirmTextInput)
textIn=$(echo $result | sed 's/dlgConfirmTextInput //')
num=$(echo $textIn | sed 's/[^0-9]//g')
num=${num:-1}
if [ "$num" != "$textIn" ]
then
num=1
fi
if [ "$num" == "1" ]; then
qndb -m mwcToast 1000 "You selected 1-Stop agetty+fbpad"
fbcmd="/usr/bin/pkill agetty"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1)
fbcmd="/usr/bin/pkill fbpad"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1)
fbcmd="/usr/bin/pkill fbkeyboard"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1)
elif [ "$num" == "2" ]; then
qndb -m mwcToast 1000 "You selected 2-fbpadkb"
fbcmd="/mnt/onboard/.adds/koreader/scripts/fbkeyboard"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1) &
fbcmd="eval /mnt/onboard/.adds/koreader/scripts/fbpadkb /bin/sh 0</dev/tty1"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1)
elif [ "$num" == "3" ]; then
qndb -m mwcToast 1000 "You selected 3-fbpadkbS"
fbcmd="/mnt/onboard/.adds/koreader/scripts/fbkeyboard"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1) &
fbcmd="eval /mnt/onboard/.adds/koreader/scripts/fbpadkbS /bin/sh 0</dev/tty1"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1)
elif [ "$num" == "4" ]; then
qndb -m mwcToast 1000 "You selected 4-fbpad"
fbcmd="eval /mnt/onboard/.adds/koreader/scripts/fbpad /bin/sh 0</dev/tty1"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1)
elif [ "$num" == "5" ]; then
qndb -m mwcToast 1000 "You selected 5-fbpadS"
fbcmd="eval /mnt/onboard/.adds/koreader/scripts/fbpadS /bin/sh 0</dev/tty1"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1)
elif [ "$num" == "6" ]; then
qndb -m mwcToast 1000 "You selected 6-fbkeyboard"
fbcmd="/mnt/onboard/.adds/koreader/scripts/fbkeyboard"
qndb -m mwcToast 1000 "$fbcmd"
fberr=$($fbcmd 2>&1)
else
qndb -m mwcToast 1000 "You selected an invalid option"
fi
qndb -m mwcToast 1000 "${fberr:-"Bye!"}"
***
A NEW HACK TO AVOID MESSING WITH SYSTEM FILES LIKE A PRO:
* While messing around with an rmkit install, I saw how they avoided messing with system files like we did in POST #5 above:
Return your /etc/inittab to to the way it was (i.e. remove the "agetty" line you added).
Instead create the following file:
/etc/udev/rules.d/90-fbpad.rules
Code:
# : 90-fbpad.rules 2015-01-10 23:58:00Z NiLuJe $
# Runs early at boot... (onboard *might* be mounted at that point)
KERNEL=="loop0", RUN+="/sbin/agetty -s 38400 tty1 vt100"
It would be nice if we could also kill agetty automatically with the following file, but I tried it and that one doesn't work:
/etc/udev/rules.d/91-fbpad.rules
Code:
# : 91-fbpad.rules 2015-01-10 23:58:00Z NiLuJe $
# Runs early at boot... (onboard *might* be mounted at that point)
KERNEL=="loop0", RUN+="/usr/bin/pkill agetty"
***
IMPORTANT NOTE: ON MY KOBO, EITHER USB OR WIFI NETWORKING (WHETHER CONNECTED TO HOTSPOT OR NOT) HAD TO BE ENABLED OR DEVICE FREEZES. WHO KNOWS WHY?
SORRY FOR ANY FRUSTRATION - I HAD DONE MANY SUCCESSFUL TESTS NOT REALIZING THAT ENABLING WIFI WAS RELEVANT!
****
* NOTE : you have to kill agetty again upon returning to Nickel after exiting KOReader.