diff --git a/data/images/meson.build b/data/images/meson.build index 5cdafec8e..1ecd95e4b 100644 --- a/data/images/meson.build +++ b/data/images/meson.build @@ -2,7 +2,8 @@ install_data([ 'enlightenment.png', 'test.png', 'test.jpg', 'test.edj', - 'test.svg' + 'test.svg', + 'wayland.png' ], install_dir: join_paths(dir_data, 'enlightenment/data/images') ) diff --git a/data/images/wayland.png b/data/images/wayland.png new file mode 100644 index 000000000..30b59d478 Binary files /dev/null and b/data/images/wayland.png differ diff --git a/data/session/meson.build b/data/session/meson.build index 8285b5bbd..1d5cf9255 100644 --- a/data/session/meson.build +++ b/data/session/meson.build @@ -1,17 +1,2 @@ -desktop_config = configuration_data() -desktop_config.set('prefix', dir_prefix) -desktop_config.set('VERSION', e_version_rev) -e_desktop = configure_file(input : 'enlightenment.desktop.in', - output : 'enlightenment.desktop', - configuration: desktop_config - ) - -if config_h.has('HAVE_WAYLAND') == true - install_data(e_desktop, - install_dir : join_paths(dir_data, 'wayland-sessions')) -endif - -if config_h.has('HAVE_WAYLAND_ONLY') == false - install_data(e_desktop, - install_dir : join_paths(dir_data, 'xsessions')) -endif +subdir('x') +subdir('wl') diff --git a/data/session/wl/enlightenment.desktop.in b/data/session/wl/enlightenment.desktop.in new file mode 100644 index 000000000..75d85cc2a --- /dev/null +++ b/data/session/wl/enlightenment.desktop.in @@ -0,0 +1,38 @@ +[Desktop Entry] +Type=Application +Name=Enlightenment (Wayland) +Name[ca]=Enlightenment (Wayland) +Name[de]=Enlightenment (Wayland) +Name[el]=Enlightenment (Wayland) +Name[eo]=Enlightenment (Wayland) +Name[fi]=Enlightenment (Wayland) +Name[fr]=Enlightenment (Wayland) +Name[gl]=Enlightenment (Wayland) +Name[ja]=Enlightenment (Wayland) +Name[ko]=Enlightenment (Wayland) +Name[ms]=Enlightenment (Wayland) +Name[pl]=Enlightenment (Wayland) +Name[ru]=Enlightenment (Wayland) +Name[sr]=Просвећење (Wayland) +Name[tr]=Enlightenment (Wayland) +Comment=Log in using Enlightenment (Version @VERSION@) +Comment[ca]=Iniciar sessió amb Enlightenment (Versió @VERSION@) +Comment[da]=Log ind med Enlightenment (Version @VERSION@) +Comment[de]=Anmelden und Enlightenment verwenden (Version @VERSION@) +Comment[el]=Είσοδος με το Enlightenment (Έκδοση @VERSION@) +Comment[eo]=Ensaluti pere de Enlightenment (Versio @VERSION@) +Comment[es]=Iniciar sesión usando Enlightenment (Versión @VERSION@) +Comment[fi]=Kirjaudu käyttäen Enlightenmentiä (versio @VERSION@) +Comment[fr]=Ouvrir une session Enlightenment (Version @VERSION@) +Comment[gl]=Iniciar sesión usando Enlightenment (Versión @VERSION@) +Comment[it]=Accedi con Enlightenment (Versione @VERSION@) +Comment[ko]=Enlightenment 로그인(버전 @VERSION@) +Comment[ms]=Daftar masuk menggunakan Enligtenment (Versi @VERSION@) +Comment[pt]=Iniciar sessão no Enlightenment (Versão @VERSION@) +Comment[ru]=Войти используя Enlightenment (Версия @VERSION@) +Comment[sr]=Пријавите се за коришћење Просвећења (издања @VERSION@) +Comment[tr]=Enlightenment kullanarak giriş yaın (Version @VERSION@) +Icon=@prefix@/share/enlightenment/data/images/enlightenment.png +TryExec=@prefix@/bin/enlightenment_start +Exec=@prefix@/bin/enlightenment_start +DesktopNames=Enlightenment diff --git a/data/session/wl/meson.build b/data/session/wl/meson.build new file mode 100644 index 000000000..b52ff38a9 --- /dev/null +++ b/data/session/wl/meson.build @@ -0,0 +1,12 @@ +desktop_config = configuration_data() +desktop_config.set('prefix', dir_prefix) +desktop_config.set('VERSION', e_version_rev) +e_desktop = configure_file( + input : 'enlightenment.desktop.in', + output : 'enlightenment.desktop', + configuration : desktop_config) + +if config_h.has('HAVE_WAYLAND') == true + install_data(e_desktop, + install_dir : join_paths(dir_data, 'wayland-sessions')) +endif diff --git a/data/session/enlightenment.desktop.in b/data/session/x/enlightenment.desktop.in similarity index 100% rename from data/session/enlightenment.desktop.in rename to data/session/x/enlightenment.desktop.in diff --git a/data/session/x/meson.build b/data/session/x/meson.build new file mode 100644 index 000000000..a73278605 --- /dev/null +++ b/data/session/x/meson.build @@ -0,0 +1,12 @@ +desktop_config = configuration_data() +desktop_config.set('prefix', dir_prefix) +desktop_config.set('VERSION', e_version_rev) +e_desktop = configure_file( + input : 'enlightenment.desktop.in', + output : 'enlightenment.desktop', + configuration : desktop_config) + +if config_h.has('HAVE_WAYLAND_ONLY') == false + install_data(e_desktop, + install_dir : join_paths(dir_data, 'xsessions')) +endif diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c index 722063339..d0edb9ef4 100644 --- a/src/bin/e_start_main.c +++ b/src/bin/e_start_main.c @@ -566,6 +566,27 @@ main(int argc, char **argv) env_set("E_START", argv[0]); putenv("E_START_MANAGER=1"); + if ((!getenv("DISPLAY")) && (!getenv("E_WL_FORCE"))) + { + printf("***************************************************************\n"); + printf("* You are probably starting Enlightenment in wayland DRM/KMS *\n"); + printf("***************************************************************\n"); + printf(" \n"); + printf(" Wayland support is experimental. It may work for you. \n"); + printf(" It may not. If you wish you help out then please do, but \n"); + printf(" for a proper experience use Enlightenment in X11. \n"); + printf(" \n"); + printf(" If you do not want this pause and message, please set \n"); + printf(" the following environment variable: \n"); + printf(" \n"); + printf(" E_WL_FORCE=drm \n"); + printf(" \n"); + printf(" Example: \n"); + printf(" \n"); + printf(" E_WL_FORCE=drm enlightenment_start \n"); + printf(" \n"); + sleep(10); + } for (i = 1; i < argc; i++) { if ((!strcmp(argv[i], "-h")) || (!strcmp(argv[i], "-help")) || diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c index 61807a698..f9302fd09 100644 --- a/src/modules/wl_drm/e_mod_main.c +++ b/src/modules/wl_drm/e_mod_main.c @@ -738,6 +738,12 @@ _drm2_randr_apply(void) if (nh > maxh) nh = maxh; if (nw < minw) nw = minw; if (nh < minh) nh = minh; + + { + Evas *e = ecore_evas_get(e_comp->ee); + Evas_Object *o = evas_object_name_find(e, "__e_wl_watermark"); + if (o) evas_object_move(o, nw - 40 - 16, 16); + } printf("RRR: set vsize: %ix%i, rot=%i\n", nw, nh, ecore_evas_rotation_get(e_comp->ee)); ecore_drm2_device_calibrate(dev, nw, nh); rot = ecore_evas_rotation_get(e_comp->ee); @@ -986,6 +992,20 @@ e_modapi_init(E_Module *m) efl_event_callback_array_priority_add(e_comp->evas, arr, EFL_CALLBACK_PRIORITY_BEFORE, NULL); + { + Evas_Object *o; + char buf[PATH_MAX]; + + o = evas_object_image_filled_add(ecore_evas_get(e_comp->ee)); + evas_object_name_set(o, "__e_wl_watermark"); + e_prefix_data_concat_static(buf, "data/images/wayland.png"); + evas_object_image_file_set(o, buf, NULL); + evas_object_move(o, w - 40 - 16, 16); + evas_object_resize(o, 40, 40); + evas_object_pass_events_set(o, EINA_TRUE); + evas_object_layer_set(o, EVAS_LAYER_MAX); + evas_object_show(o); + } return m; }