{"id":13563441,"url":"https://github.com/dopsi/console-tdm","last_synced_at":"2026-03-12T17:02:05.052Z","repository":{"id":36371985,"uuid":"40676830","full_name":"dopsi/console-tdm","owner":"dopsi","description":"Console display manager based on CDM","archived":false,"fork":false,"pushed_at":"2020-03-18T05:41:22.000Z","size":236,"stargazers_count":134,"open_issues_count":3,"forks_count":5,"subscribers_count":8,"default_branch":"develop","last_synced_at":"2024-08-01T13:29:15.571Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dopsi.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-13T19:06:01.000Z","updated_at":"2024-07-31T05:18:03.000Z","dependencies_parsed_at":"2022-08-24T13:21:28.015Z","dependency_job_id":null,"html_url":"https://github.com/dopsi/console-tdm","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dopsi%2Fconsole-tdm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dopsi%2Fconsole-tdm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dopsi%2Fconsole-tdm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dopsi%2Fconsole-tdm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dopsi","download_url":"https://codeload.github.com/dopsi/console-tdm/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223030557,"owners_count":17076452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:01:19.264Z","updated_at":"2025-12-15T04:38:55.087Z","avatar_url":"https://github.com/dopsi.png","language":"Shell","readme":"# tdm\n\n[![AUR](https://img.shields.io/aur/version/console-tdm.svg)](https://aur.archlinux.org/packages/console-tdm)\n[![GitHub release](https://img.shields.io/github/tag/dopsi/console-tdm.svg)](https://github.com/dopsi/console-tdm/releases/latest)\n\nThe TDM display manager is a wrapper script for `startx`. The main development branch is\n[`develop`](https://cgit.dopsi.ch/console-tdm/log/?h=develop). The\n[`master`](https://cgit.dopsi.ch/console-tdm/log/?h=master) branch is used for releases.\n\nIt has a helper script, called `tdmctl` to manage tdm sessions. Each tdm session\nis a symlink to an executable script that will be called in place of the final\n`exec` in `.xinitrc`.\n\nThere are two types of tdm sessions :\n\n* `X`: this session is started within the `.xinitrc` file as part\nof the `startx` call (use this for X window manager/desktop\nenvironments)\n* `extra`: this session is started in the shell (use this for wayland\nsessions, tmux wrappers, etc...)\n\nA tdm session can also be either active or inactive. An active tdm session\nis present in the tdm session selection screen, while an inactive tdm session\nis not shown. If the path is not an executable file, the tdm session is\nalways counted as inactive.\n\nAs shown below, TDM has both a text and dialog mode:\n\n[![Text mode](https://static.dopsi.ch/console-tdm/console-tdm_screenshot_text.png)](https://static.dopsi.ch/console-tdm/console-tdm_screenshot_text.png)\n\n[![Dialog mode](https://static.dopsi.ch/console-tdm/console-tdm_screenshot_dialog.png)](https://static.dopsi.ch/console-tdm/console-tdm_screenshot_dialog.png)\n\n## Installation\n\nRun `make install` from the source directory (you can optionally set\n`DESTDIR` or `PREFIX`).\n\nThe dependencies are :\n\n* *xinit*\n* *dialog* (optional, for the curses interface)\n\n## Usage\n\n1. To install `tdm` for your local user, run\n\n```shell\ntdmctl init\ntdmctl add \u003csession name\u003e \u003cexecutable path\u003e [X(default)/extra]\n```\n\nThis will copy the tdm configuration directory to your home directory.\n\n2. You must then edit your `.profile` (or `.bash_profile`, `.zprofile`, etc...)\nfile to call `tdm` as last command (this will launch tdm once you log into a\ntty). If you want to allow multiple X sessions, you must use the \n`--disable-xrunning-check` option.\n\n3. In your `.xinitrc` file, you must then replace the exec line with\n`exec tdm --xstart`, which will start your X session (if you do not have a\n`.xinitrc` file, create a new one with this line in it).\n\nSee also the [ArchWiki page](https://wiki.archlinux.org/index.php/Console_TDM).\n\n### Return value\n\nIf no session was executed, returns 1. Otherwise 0.\n\n### Scripts\n\nThere are two scripts in the TDM configuration directory (`$HOME/.tdm`)\nthat are run at the begin and end of `tdm`.\n\n* `tdminit` is run prior to the selection screen (when `tdm` is called\nwithout `--xstart`)\n* `tdmexit` executed right before the `startx` command is called (in the\n`tdm --xstart` run)\n\n### `tdmctl` commands\n\nInitialize the config directory\n\n    tdmctl init\n\nList available (active) sessions\n\n    tdmctl list: list available sessions  (X and extra)\n\nList cached (inactive) sessions\n\n    tdmctl cache\n\nSee which command is called by the session\n\n    tdmctl check \u003csession\u003e\n    tdmctl check extra/\u003csession\u003e\n\nShow or set default session\n\n    tdmctl default [session]\n\nAdd a session (it is immediately active)\n\n    tdmctl add \u003cname\u003e \u003cpath\u003e [X(default)/extra]\n\nRemove session\n\n    tdmctl remove \u003csession\u003e\n\nEnable or disable session\n\n    tdmctl enable/disable \u003csession\u003e\n\nMigrate configuration to XDG compliant directory\n\n    tdmctl migrate\n\n## Troubleshooting\n\n### The `dialog` interface is not shown\n\nMake sure the `dialog` program is installed (the bash `type` builtin, when\ninvoked with `type dialog`, should return something along the lines of\n`/usr/bin/dialog`).\n\n## Versioning\n\nThis project follows the semantic versioning guidelines provided at\n[semver.org](http://semver.org/) with versions numbered as `MAJOR.MINOR.\nREVISION` :\n\n* `MAJOR` is increased after a backwards incompatible API change.\n* `MINOR` is increased after a backwards compatible API change.\n* `REVISION` is increased after a change with no effect on the API.\n\nAny version with `MAJOR` being 0 *should* not be considered stable nor\nshould its API.\n\nVersions history can be found in the file ChangeLog.md\n\n## Repository structure\n\nThis repository uses [git flow](https://github.com/nvie/gitflow).\n\n## License\n\n\u003e This file is part of tdm.\n\u003e\n\u003e tdm is free software: you can redistribute it and/or modify\n\u003e it under the terms of the GNU General Public License as published by\n\u003e the Free Software Foundation, either version 3 of the License, or\n\u003e (at your option) any later version.\n\u003e\n\u003e tdm is distributed in the hope that it will be useful,\n\u003e but WITHOUT ANY WARRANTY; without even the implied warranty of\n\u003e MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\u003e GNU General Public License for more details.\n\u003e\n\u003e You should have received a copy of the GNU General Public License\n\u003e along with tdm.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n## Authors\n\nCurrently maintained by dopsi.\n\nThis is a fork of the TDM display manager program by *mytbk*.\nThe original source can be found at\n[here](https://github.com/mytbk/console-tdm).\n\nContributors:\n* Helvethor\n* hartwork\n* DuncanvR\n* amakovec\n* fellowseb\n* fofoni\n","funding_links":[],"categories":["Display manager","Shell"],"sub_categories":["Console"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdopsi%2Fconsole-tdm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdopsi%2Fconsole-tdm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdopsi%2Fconsole-tdm/lists"}