Commit Graph

592 Commits

Author SHA1 Message Date
Carsten Haitzler 51e09f2a77 e config - use new eet_sync_sync to ensure data is synced to disk
sync data before the rename - ensure it is on disk first with new eet
func.

@feat
2022-05-16 14:00:22 +01:00
Carsten Haitzler 027a810e84 e config - fix config fallback handling - it was broken
loaded the wrong filename pattern due to a change i made ages to it
from file.N.cfg to file.cfg.N.

@fix
2022-05-16 13:59:29 +01:00
Carsten Haitzler 582cbf8af8 e config - remove upgrade blocks for luncher + sysinfo
these are not even around so... dont enable them if going from a very
old cfg

@fix
2022-04-15 11:03:15 +01:00
Carsten Haitzler 264b59c42f gesture - add an option to turn it all on or off
so - some people have issues if we open devices. why... i don't know,
but add an option to toggle this and be conservative and have it off
by default

@fix
2022-01-18 21:17:54 +00:00
Carsten Haitzler 29e1a12da3 backlight - add option for ddc to work or not
just because libddcutil is installed doesnt mean someone always wants
backlight on monitors controlled, so allow an option.
2022-01-17 22:23:07 +00:00
Carsten Haitzler 15e395b88e blanking - fiddling with it to try find a vbox bug... fix some things
make dpms delay longer - 10 sec.
force pointers to not render if comp not rendering
nuke open menus on blank
remove unused vars
2021-05-12 23:13:16 +01:00
Carsten Haitzler 0187eb5fe6 winlist - add list window miniatures option you can turn off 2021-04-04 12:50:24 +01:00
Carsten Haitzler 7ca3f8f612 efm - option for display of dates explicitly and not in nice-human form 2021-03-10 10:06:53 +00:00
Carsten Haitzler 42a9389dac config - fix limit range for winlist mode to 0->1 2020-12-10 16:58:00 +00:00
Carsten Haitzler 4b87781bae scaling - remove custon x application dpi and move to central scaling
now have a base dpi (75) which is multiplied by the scale factor and
then set in both xft.dpi and xsettings. also a checkbox to turn
setting of this on or off so e can be told to not touch these at all.
2020-11-29 18:52:17 +00:00
Carsten Haitzler 3793619dae x - input - separate touchpad and mouse settings
you can have different accel for mouse vs touchpad and different
natrual scrolling settings etc. this splits that up.
2020-11-15 23:54:21 +00:00
Carsten Haitzler 0bf06c5e1e x input dev config - go direct to drivers not button mappings
unless. its an old evdev only etc. system - synaptics and libnput can
do thison their own. it's a bit of a mess, but it works.
2020-11-15 16:19:08 +00:00
Carsten Haitzler 05b0ff59a8 x - add xinput device watching and beginnings of configuring them 2020-11-14 20:48:09 +00:00
Carsten Haitzler 7f2ea7af8b e winlist - add large mode and deprecate some old condig like geom
this adds a live exposé style set of windows in large mode and 2d
navigation, allows it to stay up so you can bind to a single key or
mouse button to bring up and keep thre unbtil dismissed etc. ... this
requires theme changes and for now these changes have only been added
to the flat theme branch in efl - they will become default in the
future, so dont use this and expect it to work unless you also try the
flat theme default from the flat branch in efl. see
https://phab.enlightenment.org/T6726 for details on that.

this is not complete. it has some TODO items at the top with XXX: but
.. it's good enough now to share.

@feat
2020-11-03 11:20:06 +00:00
Carsten Haitzler afb6ea1b22 desklock - remove custom desklock command. solves comment in bug report
fixes T5978
@fix

now you can't make things weird by having an external lock command -
solves that unsolvable race... :) the other iseu i think is not relaed
to e and smellslike old garbage fb content either
xorg/kms/driver/kernel or something - i have seen junk onresume
sometimes but its a fb from like hours ago even so i smell it might be
that. this solves the other issue brought up by not making it possible
2020-10-09 12:25:26 +01:00
Carsten Haitzler 048a40414f remove offline+presentation mode - this has confused people
i've seen various people get confused as to why their screen won't
blank and never heard of anyone using offline mode. i think this can
retire and just disabkling blanking manually or as presentation/media
tools do these days... they ask to suspend screensaver anyway. yes it
also affects notifications - but that is a good question - if you want
these or not? may as well simplify.
2020-10-05 09:20:05 +01:00
Alastair Poole 2c70e9648d xsettings: unbreak config and use standard naming.
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D12150
2020-09-18 10:59:55 -04:00
Alastair Poole 9f33fbf62e xsettings: Allow for custom DPI setting.
Until a wayland/X11 solution allow setting a custom DPI in
Settings -> Application Theme -> X Application Settings
2020-09-17 16:50:24 +01:00
Carsten Haitzler da1f9bc5f6 e config - move config saving to threads to avoid stutters/io blocks
so our writes sometimes would get stuck because kernel io buffers are
full and writes are slow. on specific machines with super slow write
media and small amounts of ram this was bad.

this moves writing totally to threads. the eet file is opened in a
thread and closed in the same thread. only the eet_write/eet_data_write are
done in the mainloop. this is a 'walk struct, serialise it and compress
it" which compared to blocking for possibly multiple seconds in a
write/close/rename backup cfg files doing real io to kernel 9even
though kernle should buffer these)... is a hell of a lot better.

so sure. we block lock enough to walk the structures/lists, encode the
blob and put it through a fast lz4 compress cycle and drop into memory.
the actual write happens in the thread when the file is closed and
that is a vast improvement if you hit these cases.
2020-09-04 13:58:14 +01:00
Marcel Hollerbach 4678fa60c2 Introduce gesture recognition
This is currently using libinputs gesture recognition. And offers a
config screen to setup new gestures.

1. No default gesture bindings are setup

2. When libinput is not available the module is not going to be loaded,
   and nothing is recognited.+

3. Only swipe gestures are recognized yet.

4. For now, you are required to be part of the input group, otherwise we cannot
   get the libinput events. (See Todo 1)

5. The visual representation is not really good. In terms of UI, it is
   visually showing a value coming from left to right, which is
   indicating a direction, which is not always the direction of the
   gesture, which is kind of bad. More improvements needed here.

Some things that still can be done:

1. The whole libinput things should be handled by elput, either with the
   input group hack, or logind, or simply by root. The ideal idea would
   be that e_sys is creating the elput context, which also listens for new
   devices etc.. When all this is done, and it recognizes a new device, it
   can simply sent a message from e_sys to e, that there is some new
   device, with a opened fd. (However, this all needs to be locked up in a
   way that e_sys cannot be abused)
2020-07-21 15:26:34 +02:00
Carsten Haitzler 0b1c4100ef e gadgets - as per email to e-devbel - it's easier to fix old so rm new
new gadget infra--
2020-07-07 23:34:27 +01:00
Carsten Haitzler dabda6154b desklock - remove autolock as its pointless as we can lock on blank
alsoit was inaccurate reling on polling (a poller) and thus wakeups
all the time ... so use the "lock on blanking" in timers instead... :)
less complexity to deal with in config anyway.
2020-06-30 12:14:23 +00:00
Carsten Haitzler 1aad79dbe7 init splash - make it default as it no longer needs an option
it used ot be a separate process to run to hide e starting in the bg
on a slow hdd loading modules etc. but due to compisitng and other
changes its all internal now, so keep it on always as it guarantees a
better smoother experience with less complexity to maintain.
2020-06-09 15:54:58 +01:00
Thierry 2a96a8dbaf I can not load my preferences shortcuts keyboards. To take them into account I must reload e. I came across this error, "e_config_binding_key_match" uses "mouse_bindings" instead of "key_bindings". Unfortunately it does not change anything to my...
Summary: ...problem.

Reviewers: zmike!, devilhorns, raster

Reviewed By: raster

Subscribers: raster, cedric

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D6997
2020-05-14 11:28:02 +01:00
Carsten Haitzler 8157253032 e - rememebr - fix resolution change re-shuffle for remembers
this kind of broke along the way. re-fix it to work again.

@fix
2020-04-25 00:16:45 +01:00
Carsten Haitzler 37620211e5 e restart - use new exit code 111 for restart by parent e_start 2020-01-16 10:54:20 +00:00
Carsten Haitzler b7c5fd2a0b pager_plain - remove module and migrate people to just plain pager
let's not keep 2 plager gadgets ... one only - yes. it's mini
previews. it's easier to maintain this way.
2020-01-05 20:35:39 +00:00
Carsten Haitzler 5f4697fd7d e - add polkit module to add an auth agent into e
new feature - polkit auth agent support partly in core (need to have
the pam setuid root auth tool respond via dbus) and partly a module
(the agent dbus protocol handling and setup as well as auth gui). this
took me a while even with all the docs to work out how polkit works...
it was really fussy and its data structs are an extra pain in the butt
to craft with eldbus, but i managed it. not everything is supported
but the core basics are there and this can be built on.

right now the gui is really basic, but does the job.
2019-10-08 01:38:54 +01:00
Carsten Haitzler 1783c32839 backlight - add battery timeout in addition to regular dim timeout
this allows for a shorter timeout when on battery vs when on ac for
backlight dimming. this is actually important so when on ac dimming
can interrupt minimally bur when on battery it can be much more
aggressive.
2019-09-18 18:59:54 +01:00
Carsten Haitzler b4cfada8e8 module and config - remove pointless config vars that have no use
we dont need to delay module loading anymore so remove allof this -
priority too shouldn't be necessary as well and was just a workaround.
this remvoes all of that removing some e module api's and module
struct members as well as some global config fields. it also ensures
all config files are up to date as well.
2019-09-10 17:58:30 +01:00
Carsten Haitzler ac6ceb0b99 reduce getenv calls by only getting once
we do egetvn's quite frequently and this is more costly than
remembering once and getting it once... fix that in some cases.
2019-08-08 23:54:09 +01:00
Michael Bouchaud (yoz) 5cded14b76 screensaver: Allow to set hibernate on blank into blanking setup
Summary:
This patch introduce an alternative to suspend on blank.
Hibernate on blank.

@fix T1886
@features

Reviewers: zmike!, devilhorns

Subscribers: cedric

Tags: #enlightenment-git

Maniphest Tasks: T1886

Differential Revision: https://phab.enlightenment.org/D7602
2019-05-16 13:50:27 +01:00
Michaël Bouchaud (yoz) 3ab092a61c conf_interaction: Support tap-to-click with pointer device
Summary:
Allow to setup tap-to-click feature with libinput pointer device.

@feature

Reviewers: devilhorns, zmike

Reviewed By: devilhorns

Subscribers: cedric, zmike

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D7845
2019-01-31 09:10:57 -05:00
Carsten Haitzler e4339f4819 bryce - improve usability from code and user by having std right menu
now right click on any gagdte in bryce and they ALL have a menu that
allows removal of the gagdte bar or the gadget as well as access to
gadget settings AND the ability for gadgets to extendthis menu like
lunhcer does per icon. now it's standard behavior everywhere which is
much easier to use and discover. it also removes code from every
gadget to do their own "button 3" handling as its handled centrally
making the code in gadgets simpler.

this is part of my effort to improve usability (mostly discoverability
and accessibility of settings/features).

also  long press left mouse gets u gadget right click menu

this has to move many modules/gadgets actions to mouse up instead of
mouse down so the bryce has a chance to trap the events first and set
hold flags. but now long press for 0.5 sec and bryce menu come sup
(with left mouse .. so touch friendly).

in addition move context menu hanbdling to e_gadget instead of in
bryce and in e_gadget. a context callback is called so different
systems can still do different things. this should probably change to
always pop up a mnenu and simple call populate callbacks for site
owner specific content.

all in all it makes the new gagdtes more consistent, easier to use
(without a right mouse button), doesn't need special action bindings
etc. etc.
2018-10-11 16:25:10 +01:00
Carsten Haitzler 986edaf484 e - fix config and don't set ELM_PROFILE as this breaks per scr profiles
elm wont switch profile on the fly if ELM_PROFILE is set this is
considered a custom override thus it stops working... so don't set it
- the elm config files should contain the right profiles to use.
2018-07-25 00:06:02 +09:00
Carsten Haitzler 839d7f4dc2 e blanking - offer option to not use dpms
so a new bug in a gpu driver. if dpms is enabled, wakeup doesn't
happen. mouse doesn't do anything, rendering doesn't happen... i can
use the keyboard and ctrl+alt+enmd restart e or killall -HUP
enlightenment and e restarts and renders ... but nothing appears.
interestingly if i let it timeout again and wake it up a second
time... things render (but e is confused it seems and mouse input
doesnt work until i restart e). it's some kind of xorg/driver bug here
with this dpms - no dpms and all is fine. all e does with regards to
dplms is enable or disbale it (and set the timeouts) so e isn't doing
antyhign special otherwise with dpms on vs off ... so somethnig deeper
down the stack here, but to get a desktop that works at least for now,
add an option to not use dpms.
2018-07-17 13:19:48 +09:00
Carsten Haitzler 2e5be79c45 bluez5 support - a new module with gadget etc.
Summary:
bluez4 support is now basically dead. nothing ships it anymore. bluez5
is a new api that is rather different so new code. also a new gui with
more complete features etc.

not everything is done as i'd like. need:

1. many more icons for device types (60-70 maybe?)
2. a few specific custom icons for some action buttons (like
pair/unpair)
3. icons for group headers
4. gadget status - the gagdte itself displays zero status. it's a
button to display a popup. that's all.

Reviewers: zmike!

Subscribers: devilhorns, cedric

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D6148
2018-05-18 21:45:20 +09:00
Carsten Haitzler ab88e01afa edge flip while dragging with alt - fix to work again
this fixes when you drag a wqindow to screen edge and it flips if you
use alt+drag as opposed to just dragging titlebar around without alt.
it fixes it by updating your config to allow "any modifier" for edge
flips which is actually correct.

@fix
2018-04-01 14:29:38 +09:00
Mike Blumenkrantz fef7941083 set elm profile to match e profile during startup
this is actually broken, as is entire the concept of using mixed e+elm configs.
if a user manually changes the profile, e.g., for a single app, then this will
overwrite the global profile name. similarly, setting the profile in this manner
overwrites the global profile, causing all existing apps to switch to that profile
2017-08-25 14:47:10 -04:00
Mike Blumenkrantz c31cb51499 replace <br> with <ps/> for all text 2017-08-21 10:16:35 -04:00
Jean-Philippe Andre bc55beb638 config: Add env var to skip profile save
This only skips writing the profile name to
  ~/.e/e/config/profile.cfg

This allows easier testing of E with custom profiles.
Note that this goes together with another patch in elementary, but the
env var is different (note: we could use a single one). This is only
meant for debugging.

export E_CONF_PROFILE_NOSAVE=1
2017-08-21 19:04:02 +09:00
Mike Blumenkrantz 16378acfd2 remove unused defines 2017-07-14 18:40:50 -04:00
Derek Foreman 98f4336fcd Fix clamping on screen blanker timeout
commit f43d2b881c
added the ability to set screen blanker timeouts as low as 6 seconds,
but E still clamped to 30 seconds when loading config.
2017-07-14 11:10:06 -05:00
Carsten Haitzler f43d2b881c e blanking - add new special "locked timeout" that can be shorter
this allows you to have a different timeout when locked thats much
shorter to save screen/power more unless you log in.

@feature
2017-07-14 09:43:29 +09:00
Carsten Haitzler d0c5fb465b support connected standby (non-s3 sleep/freeze) that new lpatops sport
this requires we have to force dpms on to reduce power. to avoid
glitches with the pointer staying around in x we need to support
suspending it too so it hides cleanly like the screen dims or undims.
also use the new powersave freeze mode to do this.

note that i've tested this on s3 supporting laptops and non-s3 and it
"works for me". it may require more testing and work. there is more to
power saving than just this as well but for now that's out of scope as
you have to mess with linux device autosuspend timeouts and a bunch
more (wowlan ... blahblah).

i need to find the source of the intermittent wakeups too in e. there
is a long lived timeout (8-ish seconds?) but more specifically e keeps
waking up from fd's and then reading /sys stuff about battery - some
event is causing us to do this... maybe to suspend this or make
battery checking very rare when in freeze mode (or screen off) etc.

so this fixes some glitches as well as supports a new way of sleeping
"alive" when hardware literally doesnt support normal s3 sleep... so
kind of a fix with a feature.
2017-07-10 10:18:50 +09:00
Mike Blumenkrantz cfc538ca55 remove all unnecessary efl version checks
the version of efl required by configure is already higher than these checks
2017-02-24 14:15:38 -05:00
Mike Blumenkrantz 9934ccfbf0 free E_Remember->uuid on shutdown 2017-02-24 14:15:38 -05:00
Mike Blumenkrantz 57edf1bbd8 remove E_Config->desktop_default_name
this is an easy format string attack vector which serves no purpose
that I can fathom. the commit log where it was added it also made
no mention of this, as it was done in a seemingly-unrelated feature
addition
2017-02-10 17:24:13 -05:00
Derek Foreman 73aecd73ab Replace all timer_add with timer_loop_add
So yeah, I've literally used sed to replace every occurrence of
ecore_time_add() with ecore_timer_loop_add() because I'm reasonably
confident that no part of E has a legitimate need for timer based on the
exact current time.

It would be really nice if I'm not wrong. :)

The reason for this is the incredible spew of clock_gettime() calls I'm
seeing on an ARM system (that should have a vdso for gettime, but...)
This can amount to thousands of system calls per second.

 #YOLO
2017-02-03 15:52:28 -06:00
Stephen 'Okra' Houston 35e9501637 Enlightenment: Whitelist and autoload the sysinfo gadgets. 2017-01-25 16:24:53 -06:00