MyTM or My Theme Manager is a MyCTL plugin for desktop theme management.
Supports gtk, qt, kde, rofi & others through templates
Warning
MyTM is under development, nothing is finalized yet.
The MyCTL plugin system is not yet ready, so this is just individual script now.
myctl plugin add mytmThis will automatically add official repo. it's hosted here.
mytm list
mytm set <theme-name> # this will install and apply the themeEach theme follows this standardized structure:
theme-name/
├── theme.yml # Theme metadata and configuration
├── hooks.sh # Installation and setup scripts
└── src/ # Theme assets
├── cursors/ # Cursor themes
├── fonts/ # Font files
├── gtk/ # GTK theme package
├── qt/ # Qt theme configurations (kcolorscheme)
│ └── qt5/ # Qt5-specific configurations (qt5ct color)
└── rofi/ # Rofi theme styling (rasi)
where:
theme.ymlcontains theme metadata & dependencies (required)hooks.shcontains setup scripts (optional)src/dir contains theme files (optional)
# 0. clone the repo
git clone https://github.com/mydehq/MyTM
# 1. Create theme directory
mkdir themes/your-theme-name
# 2. Add theme configuration
cat > themes/your-theme-name/theme.yml << EOF
version: "1.0"
desc: "Your theme description"
author: "Your Name"
url: "https://github.com/your-repo"
config:
icon-theme: icon-theme-name
EOF
# 3. Add theme assets in src/ directory
# 4. Submit pull requestThemes are automatically processed when pushed to main:
- Archives created as
theme-name-version.tar.gz - Published to
repobranch - Index updated with new theme metadata
MyTM theme repo can be hosted on any static hosting.
The only key is to make sure the theme archives are accessible via https/http
If you use GitHub or GitLab, you can use CI/CD to automate the process.
Open your terminal & run:
mytm repo init <repo_name> # replace <dir_name> with . to use current dirThis will make the <repo_name> dir & create necessary files, dirs.
Also repo.name will be added in config.yml.
Edit the config.yml
Available options, Note that all are under packaging key:
-
input-dir: absolute/relative path of input themes dir. -
output-dir: absolute/relative path of output dist dir. -
max-versions: maximum number of versions to keep per theme. -
repo.name: name/id of the repo, any string except 'official'. -
repo.branch: Git branch where themes will be published (if using CI/CD). -
repo.mirrors:- Array of direct download URLs.
- Use
${{theme}}&${{file}}variables. - Will be tried in order if 1st mirror is not reachable.
-
templates.readme: true/false, enable or disable generation of README.md (default: true) -
templates.index-html: same as former for index.html
- Go to 'themes' dir:
cd themes - Add themes, Follow this guide.
- Go back to repo's root dir:
cd .. - Run
mytm repo package
Themes will be made in 'output-dir' set in config (default: 'dist').
- MyCTL Repository: mydehq/MyCTL
- Documentation: mydehq/MyDE Wiki
- KireiSakura kit: soymadip/KireiSakura-Kit
- MyDE Repository: mydehq/MyDE
Made with ❤️ by the MyDE Team