{"id":15207033,"url":"https://github.com/sysadmin4j/dotfiles","last_synced_at":"2026-03-09T02:30:51.407Z","repository":{"id":234781809,"uuid":"779795031","full_name":"sysadmin4j/dotfiles","owner":"sysadmin4j","description":"Neovim/LazyVim integrated development environment in a docker container (fedora).","archived":false,"fork":false,"pushed_at":"2025-05-29T23:29:04.000Z","size":137,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-05-29T23:29:08.377Z","etag":null,"topics":["docker","dotfiles","fedora","kitty","lazyvim","macos","neovim","osc52","powerlevel10k","x11","xquartz","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sysadmin4j.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-30T20:10:32.000Z","updated_at":"2025-05-29T23:24:29.000Z","dependencies_parsed_at":"2024-04-20T19:31:09.681Z","dependency_job_id":"be88a389-6b3c-486f-b219-603f02daad64","html_url":"https://github.com/sysadmin4j/dotfiles","commit_stats":{"total_commits":71,"total_committers":1,"mean_commits":71.0,"dds":0.0,"last_synced_commit":"7635dd20f104a6a96e86eb612d7b1633637b00cb"},"previous_names":["sysadmin4j/dotfiles"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sysadmin4j/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysadmin4j%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysadmin4j%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysadmin4j%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysadmin4j%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sysadmin4j","download_url":"https://codeload.github.com/sysadmin4j/dotfiles/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sysadmin4j%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30280808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:23:26.802Z","status":"ssl_error","status_checked_at":"2026-03-09T02:22:46.175Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","dotfiles","fedora","kitty","lazyvim","macos","neovim","osc52","powerlevel10k","x11","xquartz","zsh"],"created_at":"2024-09-28T06:06:50.833Z","updated_at":"2026-03-09T02:30:51.401Z","avatar_url":"https://github.com/sysadmin4j.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles\n\nMy configuration files and scripts for a Neovim/LazyVim integrated development environment in a docker container (fedora).\n\n- Clipboard solution relying on OSC52\n  - [neovim clipboard-osc52 documentation](https://neovim.io/doc/user/provider.html#clipboard-osc52)\n- UI solution based on X11, mainly used for browser preview using xdg-open under the hood\n- Install and configure everything as a non-root user\n- Docker in Docker (dnd)\n- Tested on macOS Sonoma and Sequoia\n\n## Requirements\n\n- Docker\n- Kitty or Ghostty (or any OSC52 compliant terminal)\n  - [OSC52 supported terminal list](https://github.com/ojroques/vim-oscyank)\n- xQuartz (or any X11 server)\n\n## SSH\n\nCreate your ssh keys\n\n```zsh\nfelix@macos ~ % ssh-keygen -t ed25519 -C \"your_email@example.com\"\nfelix@macos ~ % ssh-add --apple-use-keychain ~/.ssh/id_ed25519\n```\n\nTest your github access\n\n```zsh\nfelix@macos ~ % ssh -T git@github.com\nHi sysadmin4j! You've successfully authenticated, but GitHub does not provide shell access.\n```\n\nMake sure the ssh-agent is used\n\n```zsh\nfelix@macos ~ % ssh-add -l\n256 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX your_email@example.com (ED25519)\n```\n\nRef:\n\n- [Github documentation - Generating a new SSH key and adding it to the ssh-agent](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)\n\n## Git\n\nSetting up the git config `~/.gitconfig`, creating the `IDE_WORKSPACE` folder, and cloning the dotfiles repository\n\n```zsh\nfelix@macos ~ % git config --global user.name \"Mona Lisa\"\nfelix@macos ~ % git config --global user.email USERNAME@users.noreply.github.com\nfelix@macos ~ % mkdir Repos\nfelix@macos ~ % cd Repos\nfelix@macos Repos % git clone git@github.com:sysadmin4j/dotfiles.git\nfelix@macos Repos % cd dotfiles\nfelix@macos dotfiles % git status\n```\n\nRef:\n\n- [Github documentation - Setting your username in Git](https://docs.github.com/en/get-started/getting-started-with-git/setting-your-username-in-git)\n- [Github documentation - Setting your commit email address](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address)\n\n### GPG\n\n```zsh\nTODO\n```\n\nRef:\n\n- [Github documentation - Generating a new GPG key](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)\n- [Github documentation - Telling Git about your signing key](https://docs.github.com/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)\n\n## Nerd Fonts\n\nInstall the fonts *MesloLGL Nerd Font Mono* in the macOS user Library folder\n\n```zsh\nfelix@macos dotfiles % ./scripts/install-nerd-fonts.sh\n```\n\nThe script [test-fonts.sh](https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/bin/scripts/test-fonts.sh) can be usefull to test your fonts installation in the ide container we will use later on\n\n## Kitty\n\nApply the Kitty configuration `~/.config/kitty/kitty.conf` as well as the startup session configuration `~/.config/kitty/startup.session` on the masOS host\n\n```zsh\nfelix@macos dotfiles % ./scripts/apply-kitty-config.sh\n```\n\nMake sure the Nerd font is available for kitty\n\n```zsh\nfelix@macos ~ % kitty +list-fonts | grep \"MesloLGL Nerd Font Mono\"\n```\n\n## Zsh\n\nThe following script will create the folder `~/.local/state/zsh` used to share the `.zsh_history` file and copy the `.zshrc.macos` to `~/.zshrc` on the macOS host\n\n```zsh\nfelix@macos dotfiles % ./scripts/apply-zsh-config.sh\n```\n\n## Neovim/LazyVim (within docker)\n\n### Installation\n\nThe following script will simply copy the script `./scripts/docker-run-ide.sh` to `~/.local/bin/ide` on the macOS host so you can use the `ide` command\n\n```zsh\nfelix@macos dotfiles % ./scripts/install-ide.sh\n```\n\nNote: You can also use the `install-ide` alias\n\n\n### Build\n\nDon't forget to rebuild the ide docker image to apply Neovim configuration changes\n\n```zsh\nfelix@macos dotfiles % ./scripts/docker-build-ide.sh\n```\n\nNote: You can also use the `build-ide` alias\n\n| ENV | Default value *(in ./scripts/docker-build-ide.sh)* |  Description |\n| -------------- | -------------- | --------------- |\n| IDE_USERNAME | felix | username of the docker image non-root user |\n| IDE_GROUPNAME | staff | groupname of the docker image non-root user |\n| IDE_UID | 501 | uid of the docker image non-root user, **must match the uid of the user running the ide command on the docker host** |\n| IDE_GID | 20 | gid of the docker image non-root user, **must match the primary gid of the user running the ide command on the docker host** |\n| IDE_HOME_DIR | /Users/${IDE_USERNAME} | home directory of the docker image non-root user, **must match the your $HOME folder of the user runnung the ide command on the docker host** |\n\n### Configuration\n\n\nTo find the loaded LazyVim configuration within neovim\n\n```nvim\n\u003cLeader\u003efc\n```\n\nTo reload the current lua configuration within neovim\n\n```nvim\n:source %\n```\n\nSee the config files:\n\n- `~/.config/nvim/lua/config/options.lua`\n\n### Usage\n\n| ENV | Default value *(in ./scripts/docker-run-ide.sh)* | Description |\n| -------------- | -------------- | --------------- |\n| IDE_IMAGE_NAME | ide | image name to use|\n| IDE_IMAGE_VERISON | latest | image version to use |\n| IDE_X11 | false | start a x11 session, used mainly for browser preview *`\u003cLeader\u003ecp`* |\n| IDE_DEBUG | false | print debug messages at the console |\n| IDE_WORKSPACE | ${HOME}/Repos | your workspace directory, the location of your git repositories |\n\nThe following command will start a shell in the ide container.\n\n#### without X11 (default)\n\n```zsh\nide\n```\n\n#### with X11\n\n```zsh\nexport IDE_X11=true; ide\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsysadmin4j%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsysadmin4j%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsysadmin4j%2Fdotfiles/lists"}