Commit Graph

167 Commits

Author SHA1 Message Date
Adriaan de Groot
8ca6a7caef [displaymanager] Fix tests (don't overwrite developer host configuration) 2021-11-16 17:30:28 +01:00
Adriaan de Groot
bcd8ebd614 [displaymanager] SPDX tags for tests 2021-11-19 12:53:42 +01:00
Adriaan de Groot
5f7b221e11 [displaymanager] Fix greetd commands
- since default_desktop_environment isn't a string, need
  to pick the string -- the command -- out of the object first.
2021-11-15 13:38:46 +01:00
Adriaan de Groot
16a029abd2 [displaymanager] Adjust tests to match real runtime
- the default_desktop_environment isn't a string, but an
  object; it is unusual for it to be used in set_autologin
2021-11-15 13:37:23 +01:00
Adriaan de Groot
f3e85efd41 [displaymanager] Add tests that run parts of the DM code
- load and set autologin for greetd (this was used to shake out
  code bugs in load/save)
- load and set autologin for sddm
2021-11-15 13:00:40 +01:00
Adriaan de Groot
ce6aec158a [displaymanager] Fix config loading-and-saving
- toml.dump() takes a file-like object
 - toml.loads() takes a whole string to parse, (e.g. the TOML data),
   not a pathname, so change to toml.load() which takes a file-like
   object.
2021-11-15 12:23:17 +01:00
Adriaan de Groot
54fd81a87e [displaymanager] Handle case where config file doesn't exist or has no key
- If the config file doesn't exist, the dictionary is empty
 - If it **does** exist, it might not have key 'default_session' in it

Either case should avoid a KeyError by using get() (or setdefault,
in this context). Subsequent use of os.path.exists() is strange,
since the value is a **group** (e.g. a dictionary) in the config
file. Just check if it exists, and then fill something in.
2021-11-15 12:21:27 +01:00
Adriaan de Groot
11424195ef [displaymanager] Missing method call
- Add `()` to call the config_path() method, because we need a path
  to pass to os.path.exists().
2021-11-15 12:20:54 +01:00
Adriaan de Groot
fad2f6ea88 [displaymanager] Add simple test 2021-11-15 11:52:24 +01:00
Adriaan de Groot
58cf9ffeeb [displaymanager] Import toml only for the DMs that actually need it 2021-11-15 11:43:47 +01:00
Adriaan de Groot
85f36c77b1 [displaymanager] Import configparser only for the DMs that actually need it 2021-11-15 11:42:25 +01:00
Jonas Strassel
5701937883
fix(greetd): deal with no existing config 2021-10-29 00:02:16 +02:00
Jonas Strassel
fbdb9e6779
feat(greetd): add more greeter fallbacks 2021-10-28 08:14:04 +02:00
Jonas Strassel
e5f5ef0d17
feat(greetd): add greetd to displaymanagers 2021-10-28 08:12:45 +02:00
Adriaan de Groot
96c89fc080 [displaymanager] Fix Python errors
Apparently nobody ever hit the else-branch here (because
each DM has exactly one implementation -- that's what the
check is there for!) because the logging of the error
itself would raise IndexError or ValueError.
2021-09-27 21:04:26 +02:00
Philip Müller
2c99a8c6f8
[displaymanager] add cutefish
- more info at https://cutefishos.com/
2021-05-26 09:36:02 +02:00
Philip Müller
4543feccca
[displaymanager] add ukui 2021-05-07 15:44:25 +02:00
Adriaan de Groot
af12583122
Merge branch 'calamares' into calamares 2021-04-14 13:17:34 +02:00
Erik Dubois
9651cc0cd7
Update main.py 2021-04-13 17:47:02 +02:00
Johannes Kamprad
44ec9d14a6
Update main.py
adding sway to desktop_environments
2021-04-13 17:27:23 +02:00
Adriaan de Groot
42d00ffe38 [displaymanager] Fix mismatch in spelling of "autologinUser"
In 4ffa79d4cf, the spelling
was changed to consistently be "autoLoginUser" in the *users*
module, but that changed the Global Storage key as well,
and the *displaymanager* module wasn't changed to follow.
2021-03-29 10:30:56 +02:00
Erik Dubois
51d414d6ef
Update main.py
Typo
2021-03-28 17:07:09 +02:00
Erik Dubois
0379fa9b7d displaymanager from arcolinux 2021-03-17 14:58:50 +01:00
Adriaan de Groot
1d696253c3 [displaymanager] Missing space in user-visible string due to line-breaks 2020-10-14 15:18:51 +02:00
Adriaan de Groot
1cd9b93a22 REUSE: Giant boilerplate cleanup
- point to main Calamares site in the 'part of' headers instead
  of to github (this is the "this file is part of Calamares"
  opening line for most files).
- remove boilerplate from all source files, CMake modules and completions,
  this is the 3-paragraph summary of the GPL-3.0-or-later, which has
  a meaning entirely covered by the SPDX tag.
2020-08-26 02:28:38 +02:00
Adriaan de Groot
863a4cc2a4 REUSE: (GPL-3.0-or-later) Python modules 2020-08-26 02:22:49 +02:00
Adriaan de Groot
1b23520f20 REUSE: (CC0-1.0) module descriptors and configuration files
In spite of there being considerable documentation sometimes in the
config file, we go with CC0 because we don't want the notion of
'derived work' of a config file.

The example `settings.conf` is also CC0. Add some docs to
it while we're at it.
2020-08-26 02:22:49 +02:00
Adriaan de Groot
86f66e8f16 REUSE: (GPL-3.0-or-later) all the schema files
- these are vaguely derived from the schema's written by
  artoo@manjaro.org, but totally re-done for JSON-Schema
2020-08-26 02:01:58 +02:00
Adriaan de Groot
f73f94da27 Repait module.desc
- a handful of modules had an unused *requires* key in module.desc;
  this is probably from previous intentions around
  prerequisites-testing. Since the settings were empty anyway,
  they have been removed.
- [unpackfs] Compacted the way *requiredModules* list is written
2020-08-12 09:36:30 +02:00
Adriaan de Groot
463ea3c73f [displaymanager] Fix config schema 2020-08-07 10:50:33 +02:00
Adriaan de Groot
4a07bd4ae3 CI: import all the rest of the YAML schema
- These have **not** been fixed for validation, so the schema's themselves
  will fail to load. This is a consequence of variations in JSON-Schema
  representations through various drafts. Fixing the schemata is
  fairly straightforward.

This gives us 19 new tests, all of which fail.
2020-06-16 16:06:56 +02:00
Philip Müller
e4bdeaa943 [displaymanager] don't write AutomaticLogin lines
- sometimes if you use external OEM modules you might have those lines already present
- by skipping them you won't have double lines when rerun the module in a later step
2020-05-01 09:11:50 +02:00
Adriaan de Groot
b00335f5b3 [displaymanager] Treat openSUSE sysconfig like anything else 2019-10-07 17:04:10 +02:00
Adriaan de Groot
d592a5bb94 [displaymanager] Fix sysconfig-only
- Improve documentation of the settings
 - If sysconfigSetup is true, **only** setup sysconfig and ignore
   the rest. This seems to be consistent with existing openSUSE-
   derivative distro's, which set displaymanagers to something
   nonsensical.
2019-10-07 15:54:55 +02:00
Adriaan de Groot
7ffe25fca0 [displaymanager] Document that TryExec can supplant executable 2019-09-30 15:40:44 +02:00
Adriaan de Groot
1beadee2a7 [displaymanager] Believe the .desktop file
- if a default DE is configured but the executable doesn't exist,
   believe the .desktop file. Then use that, and warn if the
   whole thing can not be found.
2019-09-30 15:38:25 +02:00
Adriaan de Groot
290a0698d8 [displaymanager] Add DE.find() which believes .desktop files
- for a DE entry which has a bad executable setting,
   update the entry from the .desktop file using TryExec.
   This assumes that the TryExec command is actually something
   you might want to run.
2019-09-30 15:38:25 +02:00
Adriaan de Groot
fe33952733 [displaymanager] Document the internal functions for DE finding
- rename find_* to _search_* to make clear they're internal.
2019-09-30 15:38:25 +02:00
Adriaan de Groot
a3666cabe0 [displaymanager] Fix naming
- Having a global and a class-local function with the same name
   that do very different things is confusing.
2019-09-30 12:41:05 +02:00
Adriaan de Groot
fb07757aab [displaymanager] Document *defaultDesktopEnvironment*
- while the keys are mandatory, their meaning is entirely optional.
2019-09-30 12:33:42 +02:00
Adriaan de Groot
0510820594 [displaymanager] Document what the list of DE's is for 2019-09-30 12:22:14 +02:00
Adriaan de Groot
92ab0c1add [displaymanager] Unify looking for executables
- use executable, and the result of looking up TryExec
 - reduce chattiness again
2019-09-25 13:05:35 +02:00
Adriaan de Groot
0b81d2562b [displaymanager] Be more chatty 2019-09-25 12:52:07 +02:00
Adriaan de Groot
f9e36b9c73 [displaymanager] Missing self 2019-09-25 12:41:58 +02:00
Adriaan de Groot
01cd95512f [displaymanager] Check the TryExec key from the .desktop file 2019-09-25 12:41:37 +02:00
Adriaan de Groot
38369634df [displaymanager] Find the .desktop file explicitly 2019-09-25 12:26:26 +02:00
Adriaan de Groot
57bb9c16f4 [displaymanager] Also look for Wayland sessions
- Sessions can be X11-sessions (living in xsessions) or Wayland-
   (living in wayland-sessions). Look in both places.
 - Refactor code a little to make it nicer to read.
2019-09-23 10:55:59 +02:00
Harald Sitter
0e054f1246 [displaymanager] map plasma 5.17+ desktop environment
exec changed compared to earlier 5.x
2019-09-18 12:38:08 +02:00
Adriaan de Groot
383bd97a9c [displaymanager] Handle variations in config file
- GDM3 uses a different config file than previous GDM
2019-08-23 03:40:10 -04:00
Adriaan de Groot
1c61181624 [displaymanager] Handle variations in GDM executable name
- Debian https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934504
 - Instead of hard-coding one or the other, search for gdm and gdm3
2019-08-23 03:25:41 -04:00