{"id":28893996,"url":"https://github.com/sreedevk/dot","last_synced_at":"2025-07-03T08:33:15.179Z","repository":{"id":46131014,"uuid":"229570208","full_name":"sreedevk/dot","owner":"sreedevk","description":"The Dot Project. My Dotfiles for Everything Under the Sun","archived":false,"fork":false,"pushed_at":"2025-01-15T14:43:34.000Z","size":48505,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-21T03:50:36.674Z","etag":null,"topics":["arch-linux","archlinux","dotfiles","dotfiles-linux","dotfiles-manager","linux","linux-scripts"],"latest_commit_sha":null,"homepage":"","language":"Nix","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/sreedevk.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":"2019-12-22T13:14:01.000Z","updated_at":"2025-01-15T14:43:36.000Z","dependencies_parsed_at":"2023-10-19T16:45:22.225Z","dependency_job_id":"2ec15ef5-8c35-49ea-ae7d-d08f30e8d751","html_url":"https://github.com/sreedevk/dot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sreedevk/dot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sreedevk%2Fdot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sreedevk%2Fdot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sreedevk%2Fdot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sreedevk%2Fdot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sreedevk","download_url":"https://codeload.github.com/sreedevk/dot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sreedevk%2Fdot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263290727,"owners_count":23443651,"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":["arch-linux","archlinux","dotfiles","dotfiles-linux","dotfiles-manager","linux","linux-scripts"],"created_at":"2025-06-21T03:42:04.305Z","updated_at":"2025-07-03T08:33:15.172Z","avatar_url":"https://github.com/sreedevk.png","language":"Nix","readme":"# Dotfiles \u0026 Nix(OS) Configurations\n\nThis repository contains configurations for various programs \u0026 Nix(OS).\n\nThis Nix(OS) section of this repository is located in the `nixos` directory. The structure \u0026 layout of this directory is as follows.\n\n## Pre Requisites\n\n### Install Home Manager CLI\n```bash\nnix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager\nnix-channel --update\nnix-shell '\u003chome-manager\u003e' -A install\n```\n\n## Using Docker Compose to Check Configs\n\n```bash\ndocker compose run --remove-orphans check\n```\n\n## File Structure\n\n### nixos/hosts\n\n- The `nixos/hosts` contains the `configuration.nix` files for each of my computers that runs NixOS. \n- Each host is assigned a separate folder. \n- The configuration that `flake.nix` uses is decided by the hostname of the system.\n- The creation of users is managed by the `configuration.nix` but all the user related configuration is handled by `home-manager`. The common link between the created user and configured user is just the username. This means that users with the same name on all systems will be configured the same way if `home-manager` is used configure the user.\n\n### nixos/users\n- The `nixos/users` directory is the `home-manager` section of the configuration.\n- Each username has a `username.nix` file that contains user level `home-manager` managed configurations.\n- The `nixos/users/shared` directory contains modules that are shared across multiple users.\n\n### nixos/secrets\n\n- This directory contains a `secrets.json` file (encrypted using git crypt). which should contain a JSON object.\n- This JSON object is made available to both the home-manager user configurations in `nixos/users` \u0026 system configurations in `nixos/hosts` via the `secrets` function parameter.\n\n### nixos/flake.nix\n\nThis is the entrypoint for both the `home-manager` \u0026 `NixOS`. \n\n#### NixOS\n\n##### Modifications\n\nAfter making any changes in the `nixos/hosts` directory, you can install the changes to the current host configuration into NixOS using the following command on the host.\n\n```bash\n# TO BE RUN FROM THE ROOT OF THIS CLONED REPSITORY\nsudo nixos-rebuild switch --flake \"./nixos\"\n\n# OR \n\nsudo nixos-rebuild switch --flake \"./nixos#\u003cNAME OF THE HOST HERE\u003e\"\n```\n\n##### Upgrading \n\nSince we are using a `nixos/flake.lock` file, we need to update the flake using the command below and rebuild the system as normal.\n\n```bash\n# TO BE RUN FROM THE ROOT OF THIS CLONED REPSITORY\nnix flake update './nixos'\n```\n\n#### Home-Manager\n\n##### Modifications\n\nAny modifications to the `nixos/users` directory can be installed using this `home-manager` command\n\n```bash\nhome-manager switch --flake './nixos' -j 4 --impure\n\n# OR \nhome-manager switch --flake './nixos#\u003cNAME OF THE USER HERE\u003e' -j 4 --impure\n```\n\n* `--impure` flag is required because nixGL uses `builtins.currentTime` as an impure parameter to force the rebuild on each access.\n\n##### Upgrading\n\nSince we are using a `nixos/flake.lock` file, we need to update the flake using the command below and rebuild using `home-manager`.\n\n```bash\n# TO BE RUN FROM THE ROOT OF THIS CLONED REPSITORY\nnix flake update './nixos'\n```\n\n## Programs\ncategory | programs\n:-------:|:--------:\neditors | (Neo)vim / (Doom)emacs\nshells  | zsh / bash / starship\nwms     | i3wm / polybar / rofi / picom\nterminals | alacritty / tmux\nnotifications | dunst\nother | fastfetch / git\n\n### Editors\n\n#### Neovim\n\u003cdetails\u003e\n    \u003csummary\u003eclick to expand\u003c/summary\u003e\n    Since, neovim is handled by `home-manager` entirely, no additional steps are required to setup neovim\n\u003c/details\u003e\n\n#### Doom Emacs\n\u003cdetails\u003e\n    \u003csummary\u003eclick to expand\u003c/summary\u003e\n    doom emacs configuration files are installed by `home-manager` but installed doom emacs itself needs to be handled manually according to the instructions in \u003ca href=\"https://github.com/doomemacs/doomemacs?tab=readme-ov-file#install\"\u003edoomemacs repository\u003c/a\u003e\n\u003c/details\u003e\n\n### Shells\n-- TODO: \n\n### Window Managers\n-- TODO: \n\n### Terminals\n-- TODO: \n\n### Notifications\n-- TODO: \n\n### Other\n-- TODO: \n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsreedevk%2Fdot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsreedevk%2Fdot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsreedevk%2Fdot/lists"}