150 lines
7.3 KiB

* scriptlets: stdin/out module that provides gui services to some
back-end script or process where e just talks via stdin/out.
things to provide:
* only run scriptlet every N seconds to poll then send back data
* only run scriptlet at specific times of day (cron-like)
* only run scriptlet when some event happens
* dbus signals (some way to define what to listen for)
* acpi bindings
* key bindings
* mouse bindings
* startup, shutdown, suspend, resume, lock/unlock, ...
* ... screen add/del, backlight dim/undim, ...
* ... blank/unblank, ac plug/unplug, battery full, ...
* ... battery charge begin, battery charge end, ...
* ... network connect/disconnect (connman), ...
* ... bt device find/lose, ...
* ... volume/mute/audio dev change, virtual desktop change, ...
* ... app window appear/disappear/exit, ...
* ... something goes fullscreen/unfluscreen, ...
* other events on the system or in e?
* run script all the time and talk to it and "keep state"
* provide menu content in menu specific tree...
* provide popups like pager mid-screen one with content like below...
* provide gadgets with display content like below...
* provide gadget popups (like mixer/clock) with content like below...
* provide full windows with content like below...
* possible content in a tree:
* probably have to provide markdown of below in some way...
* thinkimg of mustache style {{{ }}} ?
* shell friendly so it doesnt have special meanings in sh
* image (png/jpg/gif/video ... whatever)
* edje theme element/file fallback
* send/get signals
* set text parts
* send/get messages
* create, delete, swallow other edje/image objects
* box
* table
* grid
* scroller (content holder)
* lists to select from (icon, text, icon at end, groups - genlist)
* button
* radio
* check
* label/text
* entry (editable single/multi line, passwd)
* separator
* frame (content holder)
* slider
* progress/busy spinner
* dropdown/hoversel
* graph (multiple overlayed with N points horiz or vert, line/solid)
* dials (like cpufreq)
* mixers like ... mixer
* temperature guages like temperature
* scrollable logs with per line/item content objects
* list trees (genlist)
* grid lists (gengrid)
* efm show dir
* efm open specific file with default mime handler
* efm open specific file with mime handler chooser
* tell scriptlet where it is stored (env var)
* tmpdir setup/deletion for scriptlet (env var)
* more permanent config dir setup/storage for scriptlet (env var)
* pop up specified menu content
* display screen popup with content
* display gadget popup with content
* get events from content (clicked, selected, etc.)
* get state of content
* create timers and get called on timeout
* built in wget via e/ecore_con_url
* built in tcp/tcp+ssl netcat provided by ecore_con
* direct notification display (via notification module) e/stdin/out
* provide built-in editor to edit scripts and auto-re-run as you edit
* entry or elm code based?
* massive lowering of barrier ro create/change scriptlets
* offer a share mechanism like shots?
* security issue - they run. verification needed?
* login manager mode - be able to function as a login manager/gui since
most everything you want in a login manager is already present in e
like suspend/resume on lid open/close, multi screen config and even
auto-extension, backlight and other such controls.
* console logger much like quake console like dropdown for logging etc
(api to append logs. always stores to disk to specific file.
add button to explicitly share like screenshots. add higher level
logging like tables, icons, timelines and graphs that can be output
in text emulation and to screen - change eina log to go into here
with eina_log_print_cb_set() )
* alert - use full fat efl stack and remove xcb/ecore_drm2 stuff
(supply custom theme to guarantee theme is not an issue. create text
mode fallback with detection for crashes in crash handler. turtles
all the way down - a crash handler for our crash handler)
* start - add watchdog handling to e_start to detect a hung e
* config dialog redo and simplification
* remove e_dnd and use elm's dnd instead
* defer signal emits for init splash and stuff like that until after
mainloop and pre-caching theme file, wallpaper file, own binary,
shared libs and module .so files etc. to minimize any stalls and
have a smooth init (maybe on linux just open /proc/sefl/fd after we
finally hit mainloop and go to sleep and just find every fd that is
a path to a file and load the whole file into ram? simple and effective)
* new gad usability: be able to move, resize etc. without alt
(needs old gadget move/resize mode enable/disable in the menu)
* new gad usability: initial gadget bar setup dnd needs to be normal dnd
* new gad usability: setup needs an obvious "add" button as dnd not obvious
* efm: use elm for window
* efm: use elm scroller for fm view
* efm: use elm for file popup
* efm: add disk space used bar for disk volume icons
* efm: add space used "du -sh" summery for all folders
* efm: add filesystem cache (all dirs cached in files and updated in bg)
* should be a full filesystem shadow stored to cache db files
* async update/scan of dir and present updates when done and have changes
* store file, stat info, other metadata, mimetype, icon, space used...
* efm: thumbs for music getting album art like rage
* efm: thumbs for videos with movie posters like rage
* efm: show symlink info in icon
* efm: fuse support (mtp, sshfs, cifs/smb etc.)
* efm: rsync integration for fsync to/from targets
* may need ssh setup too (add to authorized keys on other end)
* shot: add manual cropping ability
* shot: add simple free draw, box, line and text on top of shot before save
* bz5: add icon set for actions/states per bt device (pair.unpair, etc.)
* bz5: add obex agent support integrated with efm for sharing via bt
and downloads when received via obex bt (~/Downloads/...)
* battery: redesign popup to list other battery details like the
charge if you have multiple batteries for real or separately the
battery levels of e.g. bt mice, kbd's and other such devices
* randr: get auto layout to handle screens laid out like:
[dp2-2][dp2-1] <- 2 external monitors
[edp-1] <- laptop main display
* battery: on click display popup like wireless/bluez5
in popup show detailed list of battery devices and data per device
like bluez5 use genlist with groups for core batteris vs other misc devices
filter out hid devices with batteries from core battery state
display other devices in above list separately
handle string capacity values like Full, High, Normal, Low, Critical...
* device manager: new tool to browser /sys etc. and display nicely present
hardware and device drivers and state
* sys top: new tool displays cpu/mem "top" - evisum. we want it to be shipped
with e though so it's always there guaranteed have back-end system status
logging to files all day long that always starts with e. gui is a front-end
view to this back-end data log and follows it as it updates.
can go back in time then to previous logs
should have the ability to draw nice graphs etc.
* music-control: fix aspect ratio of album cover image