enlightenment/TODO

199 lines
9.8 KiB
Plaintext

TODO:
* 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() )
* crash 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
* problem: we have to kill e to get kms control which breaks gdb
* grab data then kill e then display results?
* key combination to kill e and move on?
* watchdog: add watchdog handling to e_start to detect a hung e
* also detect if frames stop rendering but loop ok?
* settings: config dialog redo and simplification
* simplify the config and remove useless options
* focus on new simpler config dialog(s) first
* cover all the major e config uses now
* drop some weird/niche/unused stuff
* once new config is done, remove old config dialogs
* integrate more config of elm into e
* add more system setup stuff like:
* system locale config
* system locales supported (locale.gen)
* system timezone as well as user timezone
* user timezone (set TZ env var)
* set system clock
* set up ntp
* set user password
* user cron front-end config/editor
* wallpaper: gen wp files with multiple common resolutions in image set
* edje needs logic to handle max texture size and to downsize to work
* rpi max texture size is 2048...
* dnd: 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 gadgets:
* be able to move, resize etc. without alt move/resize mode like old)
* initial gadget bar setup dnd needs to be normal dnd
* setup needs an obvious "add" button as dnd not obvious
* wizard setup could be nicer? maybe just a default bar with no wizard?
* changing settigns should not re-run the wizard!
* 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" summary 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)
* efm: partitioning front end
* efm: filesystem formatting front-end
* efm: tune2fs/fsck front-end
* pager: add "Set desktop name" on right click on desktop in pager
* turn on desktop names when setting one here
* pager: add "Set wallpaper" on right clikc on desktop in pager
* pager: only show desktop names set and not 0,0 0,1 etc.
* start: start menu could do with more featured content
* like you see on windows for example (search and multiple columns etc.)
* a touch screen android-style scrolling fullscreen app icon style
* music-control: offer launching from the control if mpris app not there
* music-control: auto search for known mpris services
* music-control: allow manual addition of new named mpris services
* wireless: fix on connman to work properly
* probably redesign to have a single icon and on click pop up like bz5
* divide the popup list with group headers like bz5 into tech
* provide fuller status per line (reception and other info?)
* massively flesh out connman vpn support in the gui
* vpnmanager + create method support
* 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
* 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...
* randr: get auto layout to handle screens laid out like:
[dp2-2][dp2-1] <- 2 external monitors
[edp-1] <- laptop main display
* 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.
* edge bindings - selecting edge dialog needs a redo (no edje for all content)
* e menu - add obj cache for menu and menu item objects to reduce costs
by far the biggest cost in showing/hiding menus is realize/unrealize
and this is almost all object creation/setup/deletion costs. menus
can be more responsive (on low end systems) if... we avoid this. to
avoid... have a cache of spare objecta to re-use.
DONE:
* music-control: fix aspect ratio of album cover image