{"id":18289772,"url":"https://github.com/tiredofit/home","last_synced_at":"2025-04-05T09:31:46.529Z","repository":{"id":189044333,"uuid":"679926144","full_name":"tiredofit/home","owner":"tiredofit","description":"Home-Manager configuration ala Nix flakes","archived":false,"fork":false,"pushed_at":"2025-04-02T14:13:03.000Z","size":6736,"stargazers_count":43,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T15:25:10.473Z","etag":null,"topics":["flakes","home-manager","nix"],"latest_commit_sha":null,"homepage":"https://tiredofit.ca","language":"Nix","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/tiredofit.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":"2023-08-18T00:08:19.000Z","updated_at":"2025-04-02T14:13:07.000Z","dependencies_parsed_at":"2023-10-13T12:22:22.857Z","dependency_job_id":"92ccc623-3522-4210-99fa-d698f7392c6d","html_url":"https://github.com/tiredofit/home","commit_stats":null,"previous_names":["tiredofit/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiredofit%2Fhome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiredofit%2Fhome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiredofit%2Fhome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiredofit%2Fhome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiredofit","download_url":"https://codeload.github.com/tiredofit/home/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318253,"owners_count":20919456,"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":["flakes","home-manager","nix"],"created_at":"2024-11-05T14:08:05.142Z","updated_at":"2025-04-05T09:31:41.503Z","avatar_url":"https://github.com/tiredofit.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"#  🏠 $HOME 🏠\n\nHere are my standalone [home-manager](https://nix-community.github.io/home-manager/) configuration files that are used on my NixOS systems and also other linux distribution systems.\n\nThis allows for home directory portability from machine to machine to configure once and enjoy a many times forward. If you are looking for NixOS _system_ configuration have a peek at my [NixOS Configurations](https://github.com/tiredofit/nixos-config).\n\nIf you would like to base your own configuration from this repository, you will need to be able to use [Nix flakes](https://nixos.wiki/wiki/Flakes).\n\n**Highlights**:\n\n- Flexible **roles** such as **workstation**, **server**, **kiosk**\n- Deployment of secrets using **sops-nix**\n- Highly configured desktop environments for **i3** **sway** and **hyprland**\n- Some interesting **bash scripts** for automating common tasks.\n- **Declarative** **themes** and **wallpapers** with **nix-colors**\n\n- I ~sort of~ totally spent the summer of 2023 moving into this configuration after waving a fond farewell to near 2 decades of running Arch Linux. This, as with life, is still WIP. I documented the process on the [Tired of IT! NixOS](https://notes.tiredofit.ca/books/linux/chapter/nixos) chapter on my website.\n\n## Tree Structure\n\n- `flake.nix`: Entrypoint for home configurations.\n- `dotfiles`: Configuration files that are outside of the Home-Manager configuration (not migrated to nix)\n- `home`: Home Manager Configurations, accessible via `home-manager switch --flake `.\n  - Split in between 'orgs' and common configuration this creates isolation. Based on 'roles' defaults are loaded\n    and then each subfolder creates a different level of configuration specific to that host or role.\n    - `common`: Shared configurations consumed by all users.\n      - `role`: Files related to what \"role\" is being selected as a template\n      - `secrets`: Secrets that are available to all users\n    - `generic`: The 'generic' org to allow for isolation of configurations, secrets and config from various clients\n    - `toi`: The 'toi' org to allow for isolation of configurations, secrets and config from various clients\n      - `secrets`: Secrets that are specific to the 'toi' org\n      - `\u003chostname\u003e`: Optional subfolder to load more configuration files based on the home-manager profiles name\n      - `\u003crole\u003e`: Optional subfolder to load more configuration files based on the roles name\n      - `\u003cusers\u003e`: Load some specific user profile information\n    - `sd`: Similar to the above org, just another org for isolation\n    - `sr`: Similar to the above org, just another org for isolation\n    - `...`\n- `modules`: Modules that are specific to this installation\n  - `applications`: Applications and configurations\n    - `cli`: Command line tools\n    - `gui`: Programs with a graphical interface\n  - `desktop`: Desktop environments\n    - `displayServer`: `x` or `wayland` configuration\n    - `utils`: Programs specific to desktop and window environments\n      - `agnostic` - runs great on whatever window manager\n      - `wayland` - wayland specific utilities to complement window managers\n      - `x` - x specific utilties to complement window managers\n    - `windowManager`: A variety of configurations depending on the type of window manager, or Desktop environment\n  - `feature` - Switchable features\n  - `service` - Daemons and services\n\n## Usage\n\nI used nix flakes in a system that had a multi user installation of Nix. I documented it on my website here: [Tired of I.T! Home Manager Setup](https://notes.tiredofit.ca/books/linux/page/home-manager-setup). The quick steps were:\n\n- Initialize Home Manager\n\n```\nnix --extra-experimental-features \"nix-command flakes\" run home-manager/master --init\n```\n\n- Activate the Configuration\n\n```\nhome-manager switch --flake .#${HOSTNAME}.${USERNAME} --extra-experimental-features 'nix-command flakes'\n```\n\n### Keep it up to date\n\n```\nnix flake update .\n```\n\n### Managing Secrets\n\nI took some notes and documented the process of getting encrypted secrets created and keeping up to date on my website. [Tired of IT! Secrets Management](https://notes.tiredofit.ca/books/linux/page/secrets-management).\n\n# License\n\nDo you what you'd like and I hope that this inspires you for your own configurations as many others have myself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiredofit%2Fhome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiredofit%2Fhome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiredofit%2Fhome/lists"}