Skip to content

Adding OhMyZsh-Theme Option to common-utils feature - #1564

Open
Daniel Glaser (the78mole) wants to merge 19 commits into
devcontainers:mainfrom
the78mole:main
Open

Daniel Glaser (the78mole) wants to merge 19 commits into
devcontainers:mainfrom
the78mole:main

Conversation

@the78mole

@the78mole Daniel Glaser (the78mole) commented Feb 8, 2026

Copy link
Copy Markdown

This pull request adds support for customizing the Oh My Zsh theme during installation in the common-utils feature. The main changes include introducing a new ohMyZshTheme option, updating scripts to handle this option safely, and adding tests to verify theme customization.

Feature: Oh My Zsh Theme Customization

  • Added a new ohMyZshTheme option to devcontainer-feature.json, allowing users to specify the Oh My Zsh theme (default: devcontainers).
  • Updated README.md to document the new ohMyZshTheme option and its usage.

Feature: Add groups to non-root User

  • Added a new addGroups option to devcontainer-feature.json, allowing users to specify additional groups the non-root user shall belong to.
  • Updated README.md to document the new addGroups option and its usage.

Implementation: Script Updates

  • Modified install.sh and main.sh to accept and use the OH_MY_ZSH_THEME environment variable, defaulting to devcontainers if not specified. [1] [2]
  • Modified install.sh and main.sh to accept and use the new ADD_GROUPSenvironment variable, defaulting to no value if not specified.
  • Enhanced main.sh to validate the theme name and update .zshrc accordingly, falling back to the default if the provided name is invalid.
  • Enhanced main.sh to validate the groups, creating them if not existent.

Testing: Custom Theme Scenario

  • Added a new test script custom-zsh-theme.sh to verify that the specified theme is applied and Oh My Zsh is installed.
  • Updated scenarios.json to include a scenario for testing custom theme installation with the fino theme.
  • Updated scenarios.json to include a scenario for testing adding groups plugdev and dialout (usually needed for embedded development.

Copilot AI and others added 5 commits February 8, 2026 18:10
Co-authored-by: the78mole <7723396+the78mole@users.noreply.github.com>
Co-authored-by: the78mole <7723396+the78mole@users.noreply.github.com>
Co-authored-by: the78mole <7723396+the78mole@users.noreply.github.com>
Add ohMyZshTheme configuration option to common-utils
@the78mole
Daniel Glaser (the78mole) requested a review from a team as a code owner February 8, 2026 18:28
@the78mole

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

@v-Kaniska244 Kaniska (v-Kaniska244) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Daniel Glaser (@the78mole)

Thank you for the contribution. Would you kindly do a minor common-utils feature version bump for this.

@the78mole

Copy link
Copy Markdown
Author

Totally forgot that... For sure I can bump the version...

Comment thread src/common-utils/main.sh
@the78mole

Copy link
Copy Markdown
Author

Sorry, some commits on my main have not been intended... I'll removing it again... (in a few minutes)

Resolves three conflicts in common-utils, all of the same shape: upstream
added the `sudoers` option (devcontainers#1723) right where this fork adds `addGroups`.
Both sides kept — the options are independent and each is fully wired up
(declaration plus use in main.sh).
The FUNDING.yml was added to this fork by accident and never belonged in
PR devcontainers#1564. It was malformed anyway — the first line
held two U+FFFD replacement characters left over from an unexpanded shell
variable. Upstream carries no FUNDING.yml, so the file is simply removed.

Bump common-utils 2.6.0 -> 2.7.0: upstream released `sudoers` as 2.6.0,
while this fork's 2.6.0 already carried `ohMyZshTheme` and `addGroups`.
After the merge the same version number would describe two different
option sets, so the merged feature needs its own version.

@v-Kaniska244 Kaniska (v-Kaniska244) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Daniel Glaser (@the78mole)

LGTM except one small change required in test. Kindly correct the same.

Comment thread test/common-utils/scenarios.json Outdated
The add-groups scenario pinned debian:bullseye. Debian 11 is end-of-life
and its security pool is no longer served, so the scenario now fails while
installing sudo/git/gnupg2:

  E: Failed to fetch http://deb.debian.org/debian-security/pool/updates/
     main/s/sudo/sudo_1.9.5p2-3+deb11u4_amd64.deb

Upstream removed debian:11 from the CI matrices for this reason (devcontainers#1736);
this was the last reference left in the repository. Switched to
debian:trixie, already the most used Debian image in this scenario file.
Nothing in add-groups.sh is release-specific.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Follow-up to the previous commit, which moved the scenario off EOL
debian:bullseye to debian:trixie. A maintainer asked for bookworm (12)
in review, so use that instead:

  devcontainers#1564 (review comment on scenarios.json:139)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants