|
|
|
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?
|
|
|
|
* fix lock screen to force dpms on once it has blanked if special
|
|
|
|
timeout exists
|
|
|
|
* keyboard backlight controls, not just screen
|
|
|
|
* backlight module/controls should control the screen the gadget is on
|
|
|
|
* allow multiple screens to have different backlight controls
|
|
|
|
* 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
|
|
|
|
* allow separate LC_MESSAGES, LC_TIME, LC_NUMERIC, LC_NAME, etc.
|
|
|
|
* 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
|
|
|
|
* randr: when losing a zone/screen, move windows to same set of vd's on
|
|
|
|
current one not on current vd
|
|
|
|
* randr: when losing a zone/screen, intelligently resize/move windows if
|
|
|
|
screen migrated to has diffrent res
|
|
|
|
* randr: when losing a zone/screen, put windows in purgatory and then have
|
|
|
|
purgatory screens available via pager to drag onto a current screen,
|
|
|
|
or the specific virtual desktops from purgator to be accessible evenm
|
|
|
|
if not on a real screen/zone
|
|
|
|
* 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.
|
|
|
|
* e comp object: we dirty far too often in wayland especially with
|
|
|
|
glmark and this leads to a stream of gen and del textures. is this
|
|
|
|
really needed and ca we cut it down?
|
|
|
|
* tiling: doesnt retain layout across restarts
|
|
|
|
* tiling: doesnt handle impossible layouts well - had to remove min size
|
|
|
|
* tiling: doesnt honor size stepping too well
|
|
|
|
* tiling: probably need to flatten out to table for saner layout
|
|
|
|
* tiling: probably could do with analysis on features vs i3 etc. to be
|
|
|
|
more "up to snuff" and competitive
|
|
|
|
* tiling could be smoother in its layout handling
|
|
|
|
* smoothly move/resize windows from old to new positions/sizes
|
|
|
|
* don't delay many responses and do it instantly with the above anim
|
|
|
|
* probably can do with more actions for bindings for moving/sizing
|
|
|
|
* packagekit: much btter support with pre-made config/profiles for the
|
|
|
|
package manager (autodetect if possible)
|
|
|
|
* not just updates but also install/uninstall of pkgs with a minimal
|
|
|
|
front-end to back-end cmdline tools (use shell wrappers?)
|
|
|
|
* cpufreq: support pstate: hwp_dynamic_boost, no_turbo, display turbo_pct,
|
|
|
|
num_pstates
|
|
|
|
* need more advanced input device controls like for touchpads for
|
|
|
|
swizzling their gesture recognition etc. - look into libratbag too
|
|
|
|
for gaming mouse stuff if its worth using it or just doing the same
|
|
|
|
stuff ourselves as we will probably have to via libinput
|
|
|
|
* per app environment launch config - allow different TZ, LOCALE etc.
|
|
|
|
per app and set up env appropriately
|
|
|
|
* back-end e system process for monitoring/polling and launching etc.
|
|
|
|
* split e up into front vs back-end with back-end doing things like
|
|
|
|
* monitoring processes/system (see above)
|
|
|
|
* launching apps (cheaper to fork a small process)
|
|
|
|
* having a root helper for root-only tasks that stays around if it
|
|
|
|
is needed as opposed to enlightenment_sys that runs then exits
|
|
|
|
|
|
|
|
|
|
|
|
DONE:
|
|
|
|
* music-control: fix aspect ratio of album cover image
|