1
0

Implemented nickel_orientation action (closes #67) (#70)

This commit is contained in:
Patrick Gaskin
2020-08-05 19:31:39 -04:00
committed by GitHub
parent 6ee67452a2
commit 300f11ddad
3 changed files with 306 additions and 120 deletions

220
res/doc
View File

@@ -21,89 +21,100 @@
# library - the menu in the filter bar for the "My Books" and "My Articles" library views
# <label> the label to show on the menu item (must not contain :)
# <action> the type of action to run, one of:
# cmd_spawn - starts a command in the background
# cmd_output - runs a command, waits for it to exit, and optionally displays the output
# dbg_syslog - writes a message to syslog (for testing)
# dbg_error - always returns an error (for testing)
# dbg_msg - shows a message (for testing)
# dbg_toast - shows a toast (for testing)
# kfmon - triggers a kfmon action
# nickel_setting - changes a setting
# nickel_extras - opens one of the beta features
# nickel_browser - opens the browser
# nickel_misc - other stuff which isn't significant enough for its own category
# nickel_open - opens a view
# nickel_wifi - controls wifi (note: it doesn't wait for it to connect or disconnect, neither does it check for success)
# power - gracefully controls the power state
# skip - skips a number of actions after the current one (mainly useful for more complex conditional chains) (this action will not update the success/failure flag)
# cmd_spawn - starts a command in the background
# cmd_output - runs a command, waits for it to exit, and optionally displays the output
# dbg_syslog - writes a message to syslog (for testing)
# dbg_error - always returns an error (for testing)
# dbg_msg - shows a message (for testing)
# dbg_toast - shows a toast (for testing)
# kfmon - triggers a kfmon action
# nickel_setting - changes a setting
# nickel_extras - opens one of the beta features
# nickel_browser - opens the browser
# nickel_misc - other stuff which isn't significant enough for its own category
# nickel_open - opens a view
# nickel_wifi - controls wifi (note: it doesn't wait for it to connect or disconnect, neither does it check for success)
# nickel_orientation - controls screen orientation
# (devices without an orientation sensor need to use the kobopatch patch "Allow rotation on all devices" or set [DeveloperSettings] ForceAllowLandscape=true)
# (devices with an orientation sensor don't need to do anything, but can set the config setting to make this work on all views)
# (this will override the rotation icon/popup until it is set to something different or the device is rebooted)
# power - gracefully controls the power state
# skip - skips a number of actions after the current one (mainly useful for more complex conditional chains) (this action will not update the success/failure flag)
# <arg> the argument passed to the action:
# cmd_spawn - the command line to pass to /bin/sh -c (started in /)
# It can be prefixed with "quiet:" to prevent the toast with the process PID from being displayed.
# cmd_output - the timeout in milliseconds (0 < t < 10000), a colon, then the command line to pass to /bin/sh -c (started in /)
# It can be prefixed with "quiet:" to prevent the message box with the output from being displayed (i.e. you'd use this where you'd normally use >/dev/null 2>&1).
# dbg_syslog - the text to write
# dbg_error - the error message
# dbg_msg - the message
# dbg_toast - the message
# kfmon - the filename of the KFMon watched item to launch.
# This is actually the basename of the watch's filename as specified in its KFMon config (i.e., the png).
# You can also check the output of the 'list' command via the kfmon-ipc tool.
# nickel_setting - <action>:<setting>
# action is one of:
# toggle - toggles between true/false
# enable - sets to true
# disable - sets to false
# setting is one of:
# invert - FeatureSettings.InvertScreen
# lockscreen - PowerSettings.UnlockEnabled (4.12.12111+)
# screenshots - FeatureSettings.Screenshots
# force_wifi - DeveloperSettings.ForceWifiOn (note: the setting doesn't apply until you toggle WiFi)
# nickel_extras - the mimetype of the plugin, or one of:
# unblock_it
# sketch_pad
# solitaire
# sudoku
# word_scramble
# nickel_browser - one of:
# - opens the web browser to the default homepage (note that the line should end with a colon even though the argument is blank)
# <url> - opens the web browser to the specified URL
# <url> <css> - opens the web browser to the specified URL and injects the specified CSS (which can contain spaces and colons) into all pages
# modal - opens the web browser to the default homepage as a pop-up window
# modal:<url> - see above
# modal:<url> <css> - see above
# nickel_misc - one of:
# home - goes to the home screen
# force_usb_connection - forces a usb connection dialog to be shown
# rescan_books - forces nickel to rescan books (4.13.12638+)
# rescan_books_full - forces a full usb connect/disconnect cycle (4.13.12638+)
# nickel_open - one of:
# discover:storefront - Kobo Store
# discover:wishlist - Wishlist
# library:library - My Books (with last filter)
# library:library2 - My Books (with last tab and filter)
# library:all - Books
# library:authors - Authors
# library:series - Series (4.20.14601+)
# library:shelves - Collections
# library:pocket - Articles
# library:dropbox - Dropbox (4.18.13737+)
# reading_life:reading_life - Activity (with last tab)
# reading_life:stats - Activity
# reading_life:awards - Awards
# reading_life:words - My Words
# store:overdrive - OverDrive (4.10.11655+) (note: if you don't have an active OverDrive account, it will give you a "Network Error")
# store:search - Search
# nickel_wifi - one of:
# autoconnect - attempts to enable and connect to wifi (similar to what happens when you open a link)
# autoconnect_silent - attempts to connect to wifi in the background (does nothing if wifi is disabled, the battery is low, is already connected, or there aren't any known networks in range) (no errors are shown) (similar to what happens when you turn on the Kobo)
# enable - enables WiFi (but doesn't necessarily connect to it)
# disable - disables WiFi
# toggle - toggles WiFi (but doesn't necessarily connect to it)
# power - one of:
# shutdown (4.13.12638+)
# reboot (4.13.12638+)
# sleep (4.13.12638+)
# skip - the number of actions to skip, or -1 to skip all remaining ones (i.e. end the chain)
# cmd_spawn - the command line to pass to /bin/sh -c (started in /)
# It can be prefixed with "quiet:" to prevent the toast with the process PID from being displayed.
# cmd_output - the timeout in milliseconds (0 < t < 10000), a colon, then the command line to pass to /bin/sh -c (started in /)
# It can be prefixed with "quiet:" to prevent the message box with the output from being displayed (i.e. you'd use this where you'd normally use >/dev/null 2>&1).
# dbg_syslog - the text to write
# dbg_error - the error message
# dbg_msg - the message
# dbg_toast - the message
# kfmon - the filename of the KFMon watched item to launch.
# This is actually the basename of the watch's filename as specified in its KFMon config (i.e., the png).
# You can also check the output of the 'list' command via the kfmon-ipc tool.
# nickel_setting - <action>:<setting>
# action is one of:
# toggle - toggles between true/false
# enable - sets to true
# disable - sets to false
# setting is one of:
# invert - FeatureSettings.InvertScreen
# lockscreen - PowerSettings.UnlockEnabled (4.12.12111+)
# screenshots - FeatureSettings.Screenshots
# force_wifi - DeveloperSettings.ForceWifiOn (note: the setting doesn't apply until you toggle WiFi)
# nickel_extras - the mimetype of the plugin, or one of:
# unblock_it
# sketch_pad
# solitaire
# sudoku
# word_scramble
# nickel_browser - one of:
# - opens the web browser to the default homepage (note that the line should end with a colon even though the argument is blank)
# <url> - opens the web browser to the specified URL
# <url> <css> - opens the web browser to the specified URL and injects the specified CSS (which can contain spaces and colons) into all pages
# modal - opens the web browser to the default homepage as a pop-up window
# modal:<url> - see above
# modal:<url> <css> - see above
# nickel_misc - one of:
# home - goes to the home screen
# force_usb_connection - forces a usb connection dialog to be shown
# rescan_books - forces nickel to rescan books (4.13.12638+)
# rescan_books_full - forces a full usb connect/disconnect cycle (4.13.12638+)
# nickel_open - one of:
# discover:storefront - Kobo Store
# discover:wishlist - Wishlist
# library:library - My Books (with last filter)
# library:library2 - My Books (with last tab and filter)
# library:all - Books
# library:authors - Authors
# library:series - Series (4.20.14601+)
# library:shelves - Collections
# library:pocket - Articles
# library:dropbox - Dropbox (4.18.13737+)
# reading_life:reading_life - Activity (with last tab)
# reading_life:stats - Activity
# reading_life:awards - Awards
# reading_life:words - My Words
# store:overdrive - OverDrive (4.10.11655+) (note: if you don't have an active OverDrive account, it will give you a "Network Error")
# store:search - Search
# nickel_wifi - one of:
# autoconnect - attempts to enable and connect to wifi (similar to what happens when you open a link)
# autoconnect_silent - attempts to connect to wifi in the background (does nothing if wifi is disabled, the battery is low, is already connected, or there aren't any known networks in range) (no errors are shown) (similar to what happens when you turn on the Kobo)
# enable - enables WiFi (but doesn't necessarily connect to it)
# disable - disables WiFi
# toggle - toggles WiFi (but doesn't necessarily connect to it)
# nickel_orientation - one of:
# portrait (4.13.12638+)
# landscape (4.13.12638+)
# inverted_portrait (4.13.12638+)
# inverted_landscape (4.13.12638+)
# invert (4.13.12638+) - Toggles between inverted/non-inverted (preserves side) (this will not work if used in a chain with swap)
# swap (4.13.12638+) - Toggles between portrait/landscape (preserves inversion) (this will not work if used in a chain with invert)
# power - one of:
# shutdown (4.13.12638+)
# reboot (4.13.12638+)
# sleep (4.13.12638+)
# skip - the number of actions to skip, or -1 to skip all remaining ones (i.e. end the chain)
#
# chain_success:<action>:<arg>
# chain_failure:<action>:<arg>
@@ -135,31 +146,32 @@
#
# For example, you might have a configuration file named "mystuff" like:
#
# menu_item :main :Show an Error :dbg_error :This is an error message!
# menu_item :main :Do Nothing :cmd_spawn :sleep 60
# menu_item :main :Dump Syslog :cmd_spawn :logread > /mnt/onboard/.adds/syslog.log
# menu_item :main :Kernel Version :cmd_output :500:uname -a
# menu_item :main :Sketch Pad :nickel_extras :sketch_pad
# menu_item :main :Plato :kfmon :plato.png
# menu_item :main :Show an Error :dbg_error :This is an error message!
# menu_item :main :Do Nothing :cmd_spawn :sleep 60
# menu_item :main :Dump Syslog :cmd_spawn :logread > /mnt/onboard/.adds/syslog.log
# menu_item :main :Kernel Version :cmd_output :500:uname -a
# menu_item :main :Sketch Pad :nickel_extras :sketch_pad
# menu_item :main :Plato :kfmon :plato.png
# generator :main :kfmon
# menu_item :reader :Invert Screen :nickel_setting :toggle :invert
# menu_item :main :IP Address :cmd_output :500:/sbin/ifconfig | /usr/bin/awk '/inet addr/{print substr($2,6)}'
# menu_item :main :Telnet :cmd_spawn :quiet:/bin/mount -t devpts | /bin/grep -q /dev/pts || { /bin/mkdir -p /dev/pts && /bin/mount -t devpts devpts /dev/pts; }
# chain_success :cmd_spawn :quiet:/usr/bin/pkill -f "^/usr/bin/tcpsvd -E 0.0.0.0 1023" || true && exec /usr/bin/tcpsvd -E 0.0.0.0 1023 /usr/sbin/telnetd -i -l /bin/login
# chain_success :dbg_toast :Started Telnet server on port 1023.
# menu_item :main :FTP :cmd_spawn :quiet:/usr/bin/pkill -f "^/usr/bin/tcpsvd -E 0.0.0.0 1021" || true && exec /usr/bin/tcpsvd -E 0.0.0.0 1021 /usr/sbin/ftpd -w -t 30 /mnt/onboard
# chain_success :dbg_toast :Started FTP server for KOBOeReader partition on port 1021.
# menu_item :main :Telnet (toggle) :cmd_output :500:quiet :/usr/bin/pkill -f "^/usr/bin/tcpsvd -E 0.0.0.0 2023"
# menu_item :reader :Invert Screen :nickel_setting :toggle :invert
# menu_item :reader :Invert Orientation :nickel_orientation :invert
# menu_item :main :IP Address :cmd_output :500:/sbin/ifconfig | /usr/bin/awk '/inet addr/{print substr($2,6)}'
# menu_item :main :Telnet :cmd_spawn :quiet:/bin/mount -t devpts | /bin/grep -q /dev/pts || { /bin/mkdir -p /dev/pts && /bin/mount -t devpts devpts /dev/pts; }
# chain_success :cmd_spawn :quiet:/usr/bin/pkill -f "^/usr/bin/tcpsvd -E 0.0.0.0 1023" || true && exec /usr/bin/tcpsvd -E 0.0.0.0 1023 /usr/sbin/telnetd -i -l /bin/login
# chain_success :dbg_toast :Started Telnet server on port 1023.
# menu_item :main :FTP :cmd_spawn :quiet:/usr/bin/pkill -f "^/usr/bin/tcpsvd -E 0.0.0.0 1021" || true && exec /usr/bin/tcpsvd -E 0.0.0.0 1021 /usr/sbin/ftpd -w -t 30 /mnt/onboard
# chain_success :dbg_toast :Started FTP server for KOBOeReader partition on port 1021.
# menu_item :main :Telnet (toggle) :cmd_output :500:quiet :/usr/bin/pkill -f "^/usr/bin/tcpsvd -E 0.0.0.0 2023"
# chain_success:skip:5
# chain_failure :cmd_spawn :quiet :/bin/mount -t devpts | /bin/grep -q /dev/pts || { /bin/mkdir -p /dev/pts && /bin/mount -t devpts devpts /dev/pts; }
# chain_success :cmd_spawn :quiet :exec /usr/bin/tcpsvd -E 0.0.0.0 2023 /usr/sbin/telnetd -i -l /bin/login
# chain_success :dbg_toast :Started Telnet server on port 2023
# chain_failure :dbg_toast :Error starting Telnet server on port 2023
# chain_failure :cmd_spawn :quiet :/bin/mount -t devpts | /bin/grep -q /dev/pts || { /bin/mkdir -p /dev/pts && /bin/mount -t devpts devpts /dev/pts; }
# chain_success :cmd_spawn :quiet :exec /usr/bin/tcpsvd -E 0.0.0.0 2023 /usr/sbin/telnetd -i -l /bin/login
# chain_success :dbg_toast :Started Telnet server on port 2023
# chain_failure :dbg_toast :Error starting Telnet server on port 2023
# chain_always:skip:-1
# chain_success :dbg_toast :Stopped Telnet server on port 2023
# menu_item :library :Import books :nickel_misc :rescan_books_full
# menu_item :browser :Invert Screen :nickel_setting :toggle :invert
# menu_item :browser :Open Pop-Up :nickel_browser :modal
# chain_success :dbg_toast :Stopped Telnet server on port 2023
# menu_item :library :Import books :nickel_misc :rescan_books_full
# menu_item :browser :Invert Screen :nickel_setting :toggle :invert
# menu_item :browser :Open Pop-Up :nickel_browser :modal
#
# You will need to reboot to see any changes.
#