{"id":13572115,"url":"https://github.com/ahmedelgabri/dotfiles","last_synced_at":"2025-04-12T22:34:38.109Z","repository":{"id":6731756,"uuid":"7977759","full_name":"ahmedelgabri/dotfiles","owner":"ahmedelgabri","description":"~ 🍭 ~","archived":false,"fork":false,"pushed_at":"2025-04-12T20:00:36.000Z","size":46342,"stargazers_count":274,"open_issues_count":0,"forks_count":17,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-12T20:31:43.867Z","etag":null,"topics":["dotfiles","hammerspoon","kitty","macos","neomutt","neovim","nix","nix-darwin","nix-flake","nixpkgs","shell","weechat","zsh"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahmedelgabri.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-02-02T15:47:53.000Z","updated_at":"2025-04-12T20:00:39.000Z","dependencies_parsed_at":"2023-02-18T23:45:35.835Z","dependency_job_id":"70fff827-5f8d-4d3e-824b-e3236f67aeae","html_url":"https://github.com/ahmedelgabri/dotfiles","commit_stats":{"total_commits":4483,"total_committers":2,"mean_commits":2241.5,"dds":"0.00022306491188939237","last_synced_commit":"c5dca0a4a0d6c0f2e1c4a857202607ca94c1c294"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedelgabri%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedelgabri%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedelgabri%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedelgabri%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahmedelgabri","download_url":"https://codeload.github.com/ahmedelgabri/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248642308,"owners_count":21138350,"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":["dotfiles","hammerspoon","kitty","macos","neomutt","neovim","nix","nix-darwin","nix-flake","nixpkgs","shell","weechat","zsh"],"created_at":"2024-08-01T14:01:13.775Z","updated_at":"2025-04-12T22:34:38.075Z","avatar_url":"https://github.com/ahmedelgabri.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"# ~ 🍭 ~\n\n[![built with nix](https://builtwithnix.org/badge.svg)](https://builtwithnix.org)\n\nFor setting up development environment on any Unix machine (Darwin/Linux). The\nconfig officially supports macOS \u0026 NixOS \u0026 managed by [nix][nix]\n\n![screenshot](./screenshot.png)\n\n\u003e _Font is [Pragmata Pro](https://fsd.it/shop/fonts/pragmatapro/), theme is a\n\u003e [my own](./config/nvim/colors/plain.lua) fork of\n\u003e [vim-colors-plain](https://github.com/andreypopp/vim-colors-plain), Terminal\n\u003e is [kitty](https://sw.kovidgoyal.net/kitty/)_\n\n## What's in it?\n\nThese are the main configs:\n\n- [nix][nix] to manage installing most of the dependencies, for GUI apps on\n  macsOS I'm still using\n  [Homebrew cask](https://github.com/caskroom/homebrew-cask) through the\n  homebrew module in\n  [`nix-darwin`](https://github.com/LnL7/nix-darwin/blob/5c3146b75d5d478f0693d0ea6c83f1da8382ff56/modules/homebrew.nix)\n- [neomutt][neomutt] for reading emails\n- [tmux][tmux] 2.3 or later\n- [Neovim][neovim]\n- [Zsh][zsh]\n- [Git][git]\n- [Kitty][kitty] as my terminal\n- [weechat][weechat] IRC client\n- [hammerspoon][hammerspoon] macOS automation, using it for window management \u0026\n  other stuff\n\n## Officially supported OSs\n\n- ARM macOS Sonoma\n- [Experimental] NixOS (tested on 22.11)\n\n## Installation\n\n1. Install Command line tools.\n\n```bash\nxcode-select --install\n```\n\n2. Install `nix` (I tested mostly with\n   \u003chttps://github.com/DeterminateSystems/nix-installer\u003e, but I think everything\n   should work fine with the default nix installer)\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install\n```\n\n3. Build\n\n\u003e [!NOTE]\n\u003e\n\u003e The flake attribute in my case is usually the host machine name\n\nonline:\n\n```bash\nnix --experimental-features 'nix-command flakes' run nix-darwin -- switch --flake \"github:ahmedelgabri/dotfiles#\u003cflake attribute\u003e\"\n```\n\nlocal:\n\n```bash\nnix --experimental-features 'nix-command flakes' run nix-darwin -- switch --flake \"~/path/to/dotfiles#\u003cflake attribute\u003e\"\n```\n\n### Homebrew\n\nI still use it mostly for GUI apps, since Nix and/or Home-manager support for\nGUI applications have problems with symlinking to the `Applications/` folder.\nHomebrew is fully managed by `nix` it gets installed and run through nix using\n[`nix-homebrew`](https://github.com/zhaofengli/nix-homebrew)\n\n### Notes\n\n- zsh: add these to `${XDG_DATA_HOME}/$(hostname)/zshrc`\n\n```zsh\nexport HOMEBREW_GITHUB_API_TOKEN =\nexport GITHUB_TOKEN =\nexport WEECHAT_PASSPHRASE =\n```\n\n- For git add your GPG key info in `${XDG_DATA_HOME}/$(hostname)/gitconfig`\n\n```\n[user]\n  signingkey =\n```\n\nDon't forget to upload your public key to\n[GitHub](https://github.com/blog/2144-gpg-signature-verification)!\n\n\u003e Note: There needs to be a three-way match on your email for GitHub to show the\n\u003e commit as 'verified': The commit email, github email, \u0026 the email associated\n\u003e with the public key\n\nLearn about creating a GPG key and signing your commits\n[here](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work)\n\n#### Email\n\nMy email messages are synchronised between the remote server and my computer\nwith [isync][isync], I read them with [neomutt][neomutt] and search index is\nbuilt by [notmuch][notmuch].\n\nAfter linking the dotfiles, there are only a few more things that need to be\ndone.\n\n##### Authentication\n\nEach account must authenticate with an IMAP server and an SMTP server. The\npasswords, need be stored in the [OS X keychain][keychain].\n\nFor Fastmail (or Gmail accounts with two-factor authentication enabled), use an\napplication-specific password.\n\nIn order for all this to work, a few items have to be stored in the macOS\nkeychain:\n\nCreate a \"generic\"(A.K.A. \"application\") keychain item (that is, without\nprotocols, only hostnames):\n\nFor sending mail:\n\n- An item with:\n  - \"Keychain Item Name\": fastmail.com\n  - \"Account Name\": username+mutt@fastmail.com\n\n**Repeat this for each account you want to add.**\n\n## Synchronizing periodically\n\nIncoming messages are fetched from the remote server when `mbsync` runs (the\nexecutable name for isync).\n\nOn macs I use [`launchd`][launchd], on NixOS using `systemd`. You can check\n[`mail.nix`](nix/modules/shared/mail.nix).\n\n### Authors\n\n[Ahmed El Gabri](https://twitter.com/AhmedElGabri)\n\n[isync]: http://isync.sourceforge.net\n[notmuch]: https://notmuchmail.org\n[keychain]: https://en.wikipedia.org/wiki/Keychain_(software)\n[launchd]: http://launchd.info\n[neomutt]: https://neomutt.org/\n[nix]: https://nixos.org/\n[tmux]: http://tmux.sourceforge.net/\n[neovim]: https://neovim.io\n[zsh]: http://www.zsh.org/\n[git]: http://git-scm.com/\n[kitty]: https://github.com/kovidgoyal/kitty\n[weechat]: https://weechat.org/\n[hammerspoon]: http://www.hammerspoon.org/\n[node]: https://nodejs.org\n[python]: https://www.python.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedelgabri%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmedelgabri%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedelgabri%2Fdotfiles/lists"}