{"id":20631016,"url":"https://github.com/gfarrell/dotfiles","last_synced_at":"2025-04-15T18:25:57.482Z","repository":{"id":142037709,"uuid":"78764786","full_name":"gfarrell/dotfiles","owner":"gfarrell","description":"Gideon's dotfiles","archived":false,"fork":false,"pushed_at":"2025-04-12T16:55:16.000Z","size":421,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"trunk","last_synced_at":"2025-04-12T17:41:54.990Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/gfarrell.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}},"created_at":"2017-01-12T16:33:17.000Z","updated_at":"2025-04-12T16:55:19.000Z","dependencies_parsed_at":"2024-06-26T22:54:21.169Z","dependency_job_id":"f95186aa-8cfd-484a-aa08-69987ac6403a","html_url":"https://github.com/gfarrell/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/gfarrell%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gfarrell%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gfarrell%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gfarrell%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gfarrell","download_url":"https://codeload.github.com/gfarrell/dotfiles/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249127595,"owners_count":21217000,"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":[],"created_at":"2024-11-16T14:10:33.559Z","updated_at":"2025-04-15T18:25:57.465Z","avatar_url":"https://github.com/gfarrell.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gideon's Dotfiles\n\n\u003e Look upon my ~works~ dotfiles, ye Mighty, and despair!\n\nThese probably won't stand the test of time, but these dotfiles are for\nsetting up my personal environment on Linux and macOS machines. Since I\nnow use Linux as my daily driver and almost never touch macOS, I can't\nguarantee everything will still work in the Apple ecosystem.\n\n## Repository Structure\n\nEach configuration group (which normally corresponds to a particular\nservice or application) is contained within a root-level folder. All the\nconfiguration files for that group are contained therein.\n\nThere is a Makefile at the root of the repository which will create all\nthe necessary symlinks. This assumes that your system will obey the XDG\nconventions for the most part. Applications I know do not will have\ntheir configurations symlinked appropriately.\n\n## Usage\n\nClone this repository into a suitable location (e.g. `~/dotfiles`):\n\n    git clone https://github.com/gfarrell/dotfiles.git ~/dotfiles\n\nMake symlinks:\n\n    cd ~/dotfiles \u0026\u0026 make symlinks\n\n## Repository Contents\n\n[Firejail](https://firejail.wordpress.com/) (Linux only): used to\ncontrol the access of certain applications to parts of the filesystem. I\nprimarily use this to constrain Firefox's access as the web browser is a\nmajor vulnerability in my system.\n\n[Git](https://git-scm.com/): contains config and shortcuts for the git\nversion-control system.\n\nhaskell: contains the config for ghci (basically just customises the Haskell\nrepl).\n\n[i3](i3wm.org/) (Linux only): I use `i3-gaps` as my window manager (for\nX) on Linux.\n\ninit: contains initialisation scripts for a new machine. This includes\npackage installation scripts which are maintained with the list of\npackages I keep installed on my system (inspired by Brewfiles, which\nI use for macOS via [homebrew](https://brew.sh/)). For example, to\ninitialise a linux system run `./init/linux/init-linux.sh`. These\nscripts have a \"dry-run\" option `-d`.\n\n[jrnl](https://jrnl.sh/): CLI journal application which I use to\noccasionally journal and record dreams.\n\n[karabiner](https://karabiner-elements.pqrs.org/): keyboard-remapping\nutility for macOS (for Linux I just set this in X11 conf).\n\n[khal](https://github.com/pimutils/khal): CLI calendar application,\nall calendar configuration is in here. Calendars are stored in\n`~/calendars`.\n\n[khard](https://github.com/scheibler/khard): CLI address book,\nall address book configuration is in here. Contacts are stored in\n`~/contacts`.\n\n[kitty](https://sw.kovidgoyal.net/kitty/): this is my terminal emulator,\ncompletely configurable using a single file.\n\nlinux-scripts: various linux scripts go in here, including things which\nare more ke systemd services which run continuously (like backups), and\nthings I run discretely.\n\n[neovim](https://neovim.io/): 💖 I love (neo)vim 💖 -- my editor of\nchoice, contains all my configuration, including the currently used\nversion of vim-plug which is a plugin-loading system, and the settings\nfor CoC which is a semantically aware autocompleter.\n\n[picom](https://github.com/yshui/picom): compositor for X11, my config\nin here just does things like handles transparency and shadows on\nwindows.\n\n[polybar](https://github.com/polybar/polybar): UI bar for X11 which is\ncompatible with i3. This has both a config file and a launch script to\nmanage the different processes, especially useful as autorandr needs to\nlaunch the right polybar instances when I add or remove monitors.\n\n[rofi](https://github.com/davatorium/rofi): launcher for X11\n(not compatible with wayland), quite extensible, e.g. with my\n[rofi-khard](https://github.com/gfarrell/rofi-khard) integration.\n\nsystemd: contains various systemd units and timers, e.g. for email /\ncalendar / contacts sync, backups, etc..\n\n[task](https://taskwarrior.org/): CLI task management application,\ncontains basic config.\n\n[tmux](https://github.com/tmux/tmux): terminal multiplexer config, I use\n`tpm` for managing plugins. Now that I have a tiling window manager this\nisn't used as much.\n\n[tridactyl](https://github.com/tridactyl/tridactyl): VIM-like command\ninterface for Firefox. Really powerful. This config file is currently\nnot used though, as it would require giving tridactly-native filesystem\naccess. I need to write a firejail profile to allow this to happen\nsafely but I have not got around to it.\n\nxorg: all my X11 config files -- these aren't really dotfiles but they\nneed to be copied to the `/etc/X11` directory. These are for input /\noutput settings like mapping caps-lock to escape. The only dotfile in\nthere is `xprofile`.\n\n[zathura](https://pwmt.org/projects/zathura/): VIM-like document viewer,\nhas a simple config file.\n\nzsh: various bits of shell and environment config. The two files in here\nwhich are sourced *by* zsh itself are zshrc and zshenv, the rest are\nsourced by my zshrc file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgfarrell%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgfarrell%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgfarrell%2Fdotfiles/lists"}