{"id":16550539,"url":"https://github.com/longpdo/dotfiles","last_synced_at":"2025-10-28T18:30:58.518Z","repository":{"id":47722245,"uuid":"176760345","full_name":"longpdo/dotfiles","owner":"longpdo","description":"My macOS dev setup: zsh configuration and a collection of bash scripts.","archived":false,"fork":false,"pushed_at":"2021-08-16T17:54:41.000Z","size":14590,"stargazers_count":4,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-01T17:05:46.653Z","etag":null,"topics":["antibody","bash-script","dotfiles","homebrew","macos"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/longpdo.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-03-20T15:13:01.000Z","updated_at":"2024-04-22T17:30:53.000Z","dependencies_parsed_at":"2022-08-23T08:40:39.028Z","dependency_job_id":null,"html_url":"https://github.com/longpdo/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longpdo%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longpdo%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longpdo%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longpdo%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/longpdo","download_url":"https://codeload.github.com/longpdo/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238689795,"owners_count":19514095,"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":["antibody","bash-script","dotfiles","homebrew","macos"],"created_at":"2024-10-11T19:34:48.029Z","updated_at":"2025-10-28T18:30:52.379Z","avatar_url":"https://github.com/longpdo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles \u003c!-- omit in toc --\u003e\n\n\u003e This repository contains my own macOS configuration. The scripts are not written to work for everybody, due to some absolute paths, but you can take inspiration to see how I work or reuse some of the bash functions and snippets.\n\n[![Open Issues](https://badgen.net/github/open-issues/longpdo/dotfiles)](https://github.com/longpdo/dotfiles/issues)\n[![License](https://badgen.net/github/license/longpdo/dotfiles)](LICENSE)\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n## Table of Contents \u003c!-- omit in toc --\u003e\n\n* [About The Project](#about-the-project)\n  * [Directory structure](#directory-structure)\n  * [Scripts](#scripts)\n    * [Brew Scripts](#brew-scripts)\n    * [Daily Scripts](#daily-scripts)\n    * [Git Scripts](#git-scripts)\n    * [PDF Scripts](#pdf-scripts)\n    * [Remaining Scripts](#remaining-scripts)\n* [Getting Started](#getting-started)\n* [Usage](#usage)\n* [Manual Changes](#manual-changes)\n* [Work Related Manual Changes](#work-related-manual-changes)\n* [License](#license)\n\n\u003c!-- About The Project --\u003e\n## About The Project\n\nThis repository includes greatly customized [zsh](http://zsh.sourceforge.net/) with [Antibody](https://github.com/getantibody/antibody) featuring auto-completion, [syntax highlighting](https://github.com/zdharma/fast-syntax-highlighting), [autopair](https://github.com/hlissner/zsh-autopair) and a [Pure](https://github.com/sindresorhus/pure) [Powerlevel10k](https://github.com/romkatv/powerlevel10k) theme. Also, a one-liner install leverages Brew and mackup to setup an entire macOS environment.\n\n### Directory structure\n\n* `config` contains the configurations files, e.g. for **zsh** and **git**.\n  * Other configurations files are backed up via [mackup](https://github.com/lra/mackup)\n\n\u003e Preview of iTerm2 with Pure theme running the [history-search-multi-word](https://github.com/zdharma/history-search-multi-word) zsh plugin\n\n![iTerm Preview](/img/iterm.png)\n\n* `scripts` contains my common used shell scripts.\n  * My workflow uses the self-written `fzf-script-launcher` function to quickly call every binary inside the *scripts* folder (except the scripts inside *_templates* and *setup* folders).\n  * Keybinding of the shell widget for the `fzf-script-launcher` function is Ctrl + X\n  * Scripts are all linted using [shellcheck](https://github.com/koalaman/shellcheck).\n  * Warning: **Do not just run any script blindly, check what they do first.**\n\n\u003e Demo of the `fzf-script-launcher` browsing through the available scripts and using the selected git-log.sh afterwards\n\n![fzf script launcher](/img/fzf-script-launcher.gif)\n\n### Scripts\n\n#### Brew Scripts\n\n| Script            | Description\n| ----------------- | -----------\n| brew-cask.sh      | Browse all available brew casks with options to install / uninstall / open the webpage\n| brew-install.sh   | Browse all available brew formulas with the option to install selected brews\n| brew-uninstall.sh | Browse all installed brew formulas with the option to uninstall selected brews\n\n#### Daily Scripts\n\n| Script                  | Description\n| ----------------------- | -----------\n| _cronjob.sh             | Runs all daily scripts, configured with crontab to run automatically at 23:30\n| backup.sh               | Backing up current configurations with mackup\n| cleanup.sh              | Cleaning up tmp files\n| rebuild-github-pages.sh | Trigger new builds for repositories deployed on Github Pages\n| update.sh               | Updating software packages (brews, casks, antibody plugins, App Store apps, Ruby gems)\n\n#### Git Scripts\n\n| Script                  | Description\n| ----------------------- | -----------\n| git-add.sh              | Add files interactively to git version control\n| git-checkout-branch.sh  | Checkout branch from a list of local and remote branches\n| git-cleanup-branches.sh | Remove local branches, which do not exist on remote anymore\n| git-diff.sh             | Show changes of current modified files to their version at HEAD\n| git-ignore.sh           | Create .gitignore template file pulled from gitignore.io\n| git-log.sh              | Browse through git commit log\n| git-unstage.sh          | Unstage files interactively from the next commit\n\n#### PDF Scripts\n\n| Script                      | Description\n| --------------------------- | -----------\n| _cronjob-get-pdfs.sh        | Runs every 30 min to check synced Dropbox folders for new files and move them\n| rename-broker-statements.sh | Rename broker statements and move/sort them to the right portfolio folder\n\n#### Remaining Scripts\n\n| Script                | Description\n| --------------------- | -----------\n| chmod-x-scripts.sh    | Change sh scripts with 644 permissions to 755 permissions\n| extract-archives.sh   | Extract all archives found in the working directory and remove them afterwards\n| remove-media.sh       | Remove media files when the duration of the file is shorter than _DURATION in seconds\n| setup-flutter.sh      | Setup complete Flutter development environment\n| shellcheck-scripts.sh | Analyse all shell scripts at dotfiles/scripts with ShellCheck\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\n1: Fork the repository (using the `Fork` button at the top)\n\n2: Clone the repository\n\n```sh\n# Replace {YOUR_USERNAME} with your actual username\ngit clone https://github.com/{YOUR_USERNAME}/dotfiles.git\n```\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\n\nInside the `scripts/setup` folder I have some scripts to quickly setup my entire dev environment with all necessary software and configurations from a fresh macOS installation. There are four basic setup scripts:\n\n* `init.sh` - installs macOS software updates, [Xcode](https://developer.apple.com/xcode/), [Homebrew](https://brew.sh/), [Dropbox](https://www.dropbox.com/)\n* `brew.sh` - installs [zsh](http://zsh.sourceforge.net/) and [brew](https://formulae.brew.sh/formula/), [brew cask](https://formulae.brew.sh/cask/), **npm** and **ruby** packages\n* `macos.sh` - setting configurations for macOS applications like *Preferences*, *Dock*, *Finder*, *Mail*, *SystemUIServer*, etc.\n* `config.sh` - setting configurations for remaining applications\n\nOne-liner to setup everything. This will run all four scripts.\n\n```bash\n./setup.sh all\n```\n\nTo exclude the execution of one script, exclude it from the arguments.\n\n```bash\n# e.g. to just install software - run only init and brew\n./setup.sh init brew\n```\n\n## Manual Changes\n\n* Deactivate automatic screen brightness for the retina display\n* Never deactivate monitor if plugged in\n* Requiring password immediately after sleep begins (defaults write does not work since macOS 10.13.4)\n* Finder: remove (recently used, iCloud, tags, cds, bonjour-computer) from the sidebar\n\n## Work Related Manual Changes\n\n* Add work signature to mail\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongpdo%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flongpdo%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongpdo%2Fdotfiles/lists"}