{"id":13894821,"url":"https://github.com/skx/dotfiles","last_synced_at":"2025-07-07T12:07:24.631Z","repository":{"id":5931667,"uuid":"7151712","full_name":"skx/dotfiles","owner":"skx","description":"Yet another dotfile-repository","archived":false,"fork":false,"pushed_at":"2025-05-24T17:08:19.000Z","size":2441,"stargazers_count":51,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-24T18:20:53.247Z","etag":null,"topics":["bash","bash-config","bashrc","dotfile","dotfiles","emacs","emacs-lisp","emacs-setup","shell-script"],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","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/skx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"skx","custom":"https://steve.fi/donate/"}},"created_at":"2012-12-13T16:47:53.000Z","updated_at":"2025-05-24T17:08:22.000Z","dependencies_parsed_at":"2023-01-11T17:01:50.479Z","dependency_job_id":"2ec2361c-ce41-4849-a909-9a5793959905","html_url":"https://github.com/skx/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/skx/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skx%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skx%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skx%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skx%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skx","download_url":"https://codeload.github.com/skx/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skx%2Fdotfiles/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264075629,"owners_count":23553508,"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":["bash","bash-config","bashrc","dotfile","dotfiles","emacs","emacs-lisp","emacs-setup","shell-script"],"created_at":"2024-08-06T18:01:47.301Z","updated_at":"2025-07-07T12:07:24.611Z","avatar_url":"https://github.com/skx.png","language":"Emacs Lisp","funding_links":["https://github.com/sponsors/skx","https://steve.fi/donate/"],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"# dotfiles\n\nThis is my _dotfiles_ repository.\n\n\n\n## Emacs Setup\n\nVisitors to this repository seem to be primarily interested in my GNU/Emacs setup, which is handled in a somewhat \"literate\" fashion, by virtual of being written in Markdown format:\n\n* [.emacs.d/init.el](.emacs.d/init.el)\n  * This file is read at startup-time by Emacs, and parses then evaluates the content of the corresponding markdown file.\n* [.emacs.d/init.md](.emacs.d/init.md)\n  * This is a markdown file which contains the literate configuration which I use for emacs.\n\nBeneath the [.emacs.d](.emacs.d) directory you'll find a number of sub-directories, which are used to group the packages I use in a logical fashion.\n\nSome specific files are highlighted in this summary, but it's worth taking a peak if you want to see everything:\n\n* [Language modes](.emacs.d/lang/)\n  * cfengine, docker, go, hcl, etc, etc.\n* [Org-Mode Stuff](.emacs.d/org)\n  * [org-auto-tag.el](.emacs.d/org/org-auto-tag.el) add tags to tasks, automatically based on the title of the TODO-task and the list of previously used tags.\n  * `org-diary.el` which allows maintaining a simple work-log, or diary.\n     * https://github.com/skx/org-diary\n  * [org-eval.el](.emacs.d/org/org-eval.el) Execute the contents of named blocks when `org-mode` files are loaded/saved.\n  * [org-return.el](.emacs.d/org/org-return.el) Follow links via RETURN, even inside table cells.\n    * Also allows toggling checkboxes via RETURN.\n  * [org-nested.el](.emacs.d/org/org-nested.el) Allow linking to nested headers, by regexp.\n  * `org-tag-cloud.el` which automates keeping a tag-cloud for individual `org-mode` files.\n     * https://github.com/skx/org-tag-cloud\n  * [org-utils.el](.emacs.d/org/org-utils.el) A minimal collection of utility functions.\n* [Tools](.emacs.d/tools)\n  * [tools/vertical-space-cleanup.el](.emacs.d/tools/vertical-space-cleanup.el) - Enforce consistent whitespace breaks before headers in markdown and org-mode files.\n  * [tools/resync-packages.el](.emacs.d/tools/resync-packages.el) - Update our bundled packages from their upstream locations\n* [User interface](.emacs.d/ui)\n  * [ui/mode-line-major.el](.emacs.d/ui/mode-line-major.el) - Hide all minor-modes from the mode-line.\n  * [ui/my-todo.el](.emacs.d/ui/my-todo.el) - Highlight TODO-comments.\n  * [ui/linkifier.el](.emacs.d/ui/linkifier.el) - Turn text matching regular expressions into links/buttons.\n* [Unix stuff](.emacs.d/unix)\n  * MPC (music player control)\n  * Autoformat, and lint, perl files on-save.\n* Use Package\n  * A clone of the [use-package repository](https://github.com/jwiegley/use-package), to keep this repository self-contained.\n\nAs you can see the repository contains a bunch of other packages from external sources, they are committed _here_ to make sure they continue to be available even if their upstream source disappears, and so that my repository is standalone.\n\nTo resync the remote packages from their latest versions please see the `resync-packages.el` file:\n\n* [.emacs.d/tools/resync-packages.el](.emacs.d/tools/resync-packages.el) - Update our bundled packages from their upstream locations\n\n\n### Shell Setup\n\nThe `bash` setup is pretty minimal, the startup files just source every file located beneath [~/.bash/](.bash/) (and `~/.bash.local` if it exists).  This allows me to group setup in a small number of files which is easier to organize.\n\n\n\n\n# Using The Repository\n\nThis repository was created as a \"bare\" repository, so that it can track files in my home directory.  Because of this the checkout process is a little different than usual.\n\nHere is my recipe for deployment on a new host:\n\nStep one: checkout the repository:\n\nIf you wish to get read-only access, and you're never going to push updates:\n\n     git clone --bare git://github.com/skx/dotfiles.git ~/dotfiles.git\n\nIf you have permission you can pull the repository, and gain access to push it:\n\n     git clone --bare git@github.com:skx/dotfiles.git ~/dotfiles.git\n\nStep two: setup a sane alias\n\n     alias .DOTFILES=\"git --git-dir=$HOME/dotfiles.git --work-tree=$HOME/\"\n\nStep three: See which files will be over-written in your current home directory:\n\n     .DOTFILES status -s -uno\n\nStep four:  If no files will be corrupted, or you're happy to replace them, do the necessary:\n\n     .DOTFILES checkout -b  original_files -f\n     .DOTFILES commit -a  -m 'original files'\n     .DOTFILES checkout master\n\nNow you're done.\n\nIt is perhaps more sane to merely use the github browser to cherry-pick the files and functions you want, but each to their own.\n\n\n\n\n# Removing README.md\n\nOnce you've clone the repository to your local system you'll find that you have a README.md file in your home-directory, which some might find annoying.  Ideally I'd not have this in the repository but without the instructions the repository would be hard to find/understand for github users.\n\nYou can remove the file like so:\n\n    $ .DOTFILES update-index --assume-unchanged README.md\n    $ rm README.md\n\nIf you're curious you can see other files that are being ignored:\n\n    $ .DOTFILES ls-files -v | grep ^h\n\nIf you ever want to restore the file:\n\n    $ .DOTFILES update-index --no-assume-unchanged README.md\n\n\n# Seeing Local Files\n\nBecause this repository uses `.gitignore` to ignore all files that are not explicitly added it can be hard to spot files that you _do_ want to be tracked.\n\nRemember to use `.DOTFILES status --ignored` to see those :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskx%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskx%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskx%2Fdotfiles/lists"}