{"id":21945845,"url":"https://github.com/mattduck/dotfiles","last_synced_at":"2025-09-07T07:06:29.419Z","repository":{"id":11702899,"uuid":"14218195","full_name":"mattduck/dotfiles","owner":"mattduck","description":"Personal config and utils for emacs, vim, tmux, i3, git, etc.","archived":false,"fork":false,"pushed_at":"2025-07-09T08:39:37.000Z","size":2193,"stargazers_count":38,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-09T09:44:58.233Z","etag":null,"topics":["dotfiles","emacs","emacs-configuration","linux","org-mode"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","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/mattduck.png","metadata":{"files":{"readme":"README.org","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-11-07T22:46:29.000Z","updated_at":"2025-07-09T08:39:41.000Z","dependencies_parsed_at":"2022-09-15T21:52:33.322Z","dependency_job_id":"7c0b2697-dcea-4c7a-8a29-c22da12befde","html_url":"https://github.com/mattduck/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mattduck/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattduck%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattduck%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattduck%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattduck%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattduck","download_url":"https://codeload.github.com/mattduck/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattduck%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274005436,"owners_count":25205963,"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","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["dotfiles","emacs","emacs-configuration","linux","org-mode"],"created_at":"2024-11-29T04:19:42.394Z","updated_at":"2025-09-07T07:06:29.395Z","avatar_url":"https://github.com/mattduck.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"* Dotfiles\n\nMy personal config files and utils.\n\nI've been using (and changing) these since about 2012-13. It's unlikely that\nanyone can fork this and find it useful, but there might be odd things here that\nyou can copy out into your setup.\n\nThe most interesting thing is probably [[./emacs.d.symlink/init.org][init.org]], which contains my emacs config.\n\nIf you're interested in emacs / linux / dotfiles etc. I occasionally share stuff\nat https://www.mattduck.com.\n\n* How to install\n\n1. Clone and update the submodules:\n\n   #+BEGIN_SRC sh\n   $ git clone https://github.com/mattduck/dotfiles.git ~/dotfiles\n   $ cd ~/dotfiles\n   $ git submodule update --init --recursive\n   #+END_SRC\n\n2. Do a one-off run of ~bin/,dotfiles-install~. This creates symlinks from\n   ~~/.FILENAME~ to ~$DOTFILES/FILENAME.symlink~. Any existing files or\n   directories are backed up to ~~/dotfiles_backup/$(date)~.\n\n3. Source ~activate.sh~ in your bashrc. This script will:\n\n   - Add ~$DOTFILES~ to your env: this is a path to the dotfiles directory.\n\n   - Add ~$DOTFILES/**/bin~ to your ~$PATH~.\n\n   - Source ~$DOTFILES/**.dot.xx.sh~ in numeric order - eg. ~foo.dot.10.sh~ would be\n     sourced before ~bar.dot.20.sh~. Anything without a number\n     (eg. ~baz.dot.sh~) will be sourced last.\n\n4. I don't have a graceful/up-to-date way to install all the packages I use\n   right now, so certain scripts/functions/aliases could fail. These will have\n   to be installed manually.\n\n5. In emacs you just have to ~M-x install-package~ on anything that's missing\n   and not automatically installed by ~use-package~.\n\n6. In vim, do ~:BundleInstall~ to install packages.\n\n** MacOS - $PATH issues\n\nTmux always runs as a login shell, which means /etc/profile gets read. On some\nOS X releases, this will run a utility called ~path_helper~, which will always\nprepend a set of directories to your $PATH /after/ ~.bashrc~ has run.\n\nTo disable this, you can reset your $PATH as part of ~.bashrc~, and run the\ndotfiles setup afterwards:\n\n#+BEGIN_SRC sh\n# .bashrc\nif [ -f /etc/profile ]; then\n    PATH=\"\"\n    source /etc/profile\nfi\nsource ~/dotfiles/activate.sh\n#+END_SRC\n\nSee https://superuser.com/questions/544989/does-tmux-sort-the-path-variable/583502#583502\nfor more info.\n\n* Thanks\n\nThis takes inspiration from (and outright copies) ideas and configuration that\nI've seen from friends and colleagues, [[https://emacs.london][emacs.london]], and\nvarious blogs/websites/videos/conferences etc.\n\nSpecial mention to [[https://github.com/holman/dotfiles][Zach Holman]] (where I copied the symlink and sourcing\nstructure), [[https://github.com/brandon-rhodes/homedir][Brandon Rhodes]] (for the idea of prefixing your scripts and commands\nwith a comma), and [[https://github.com/sachac/.emacs.d/][Sacha Chua]] (for the idea of compiling ~init.el~ with org-mode,\nand aggregating a ton of useful emacs content).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattduck%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattduck%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattduck%2Fdotfiles/lists"}