A micro desktop environment
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
src
Makefile
README

README

microDE is a micro desktop environment.

## Goals
* adherence to the kiss principle, unix philosophy and xdg basedir spec (simple code, very flexible, simple txt configs
 - actually shell scripts that get sourced -, integration with other tools, choose your own WM/shell, etc)
* compatibility with multi-user scenarios in a secure way
* setup without root access (best practice for this? how to handle login?) (it shouldn't be a global configuration affecting all users)
* support console/shell and Xorg sessions equally.
* start ssh-agent and other programs (daemons, [non-]graphical tools, ..) at the
  appropriate time for maximum availability.
* have callback hooks to for example load ssh keys when the agent is started, start ssh tunnels/proxies, load apps when X is up, etc.
  This should work independently of the type of session (X vs shell).
* scriptability so you can do different things based on hostname, type of kernel being loaded, and so on.

## Potential pitfalls/design notes
* when doing startx from console, and lock screen in X -> ctl-alt-F1 -> ctrl-c gives you shell for that user
* when logging in to the system you need to be able to pick your session (X,
  shell, ..), autostarting apps etc as appropriate. but you should be able
  to switch from shell to X or vice versa without needing to re-login or
  restart non-graphical apps. and honoring the above problem (not just
  'startx' on console)
* xdg autostart desktop files for example are bloated and very inflexible
* the initial need for this arose when i started keeping my $HOME in VCS, and wanted to
  use the same home on many different systems, hence the scripts that setup
  a different environment based on hostname and such.

== settings ==
set $WM to your window manager(s) that you want.
$WM will be executed directly

the code and examples = the documentation

TODO's:
- make it "ssesion manager" as well, but:
- no root required to use/install (i.e. each user who wants it, can do it)
- no need to change any settings for login, keep your favorite shell
- shellscripting kicks ass of any system with config files.
- for security, log out of terminal after microde is launched (at least in
- default/sample config), but keep process running in terminal. even after
- spawning X or a terminal in separate process, you can still change your
- environment by writing to a fifo.
- a nice way to switch from one profile to another. eg to go into "presentation mode", screensaver must be killed and maybe more
- no ssh-add for those keys that are being forwarded already over ssh
- integration with autossh or similar tool. (but autossh does not support fallback to other hosts)