{"id":17725423,"url":"https://github.com/jjba23/dotfiles","last_synced_at":"2025-04-01T10:32:30.883Z","repository":{"id":255518350,"uuid":"850705918","full_name":"jjba23/dotfiles","owner":"jjba23","description":"https://codeberg.org/jjba23/legacy-nix-dotfiles","archived":true,"fork":false,"pushed_at":"2024-11-28T19:59:29.000Z","size":23596,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-03-10T12:57:28.215Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"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/jjba23.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":"CONTRIBUTING.org","funding":null,"license":"COPYING","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":"2024-09-01T14:52:38.000Z","updated_at":"2024-12-21T05:37:03.000Z","dependencies_parsed_at":"2024-10-19T10:35:22.681Z","dependency_job_id":null,"html_url":"https://github.com/jjba23/dotfiles","commit_stats":null,"previous_names":["jjba23/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjba23%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjba23%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjba23%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjba23%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjba23","download_url":"https://codeload.github.com/jjba23/dotfiles/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246625359,"owners_count":20807729,"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","emacs","gnu","linux","lisp","nix","nixos","rice","zsh"],"created_at":"2024-10-25T16:04:27.666Z","updated_at":"2025-04-01T10:32:30.661Z","avatar_url":"https://github.com/jjba23.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"#+title: Joe's dotfiles\n#+author: Josep Bigorra\n#+email: jjbigorra@gmail.com\n#+options: num:nil\n\n\nThese are my configuration files, which also explain a lot about the tooling I use and enjoy, and can teach you a thing or two.\n\nIf you like my work, please support me by [[https://bmc.link/jjbigorra][buying me a cup of coffee ☕]] so I can continue with a lot of motivation.\n\nThis is the set of files that powers my day-to-day computing experience, so do not track my dotfiles (rolling, unstable, and untested), but feel free to use them and take inspiration from them.\n\n#+begin_html\n\u003cdiv\u003e\n\u003cimg src=\"https://img.shields.io/badge/NixOS-5277C3?logo=nixos\u0026logoColor=fff\u0026style=plastic\" alt=\"NixOS\"/\u003e\n\u003cimg src=\"https://img.shields.io/badge/GNU%20Emacs-7F5AB6?logo=gnuemacs\u0026logoColor=fff\u0026style=plastic\" alt=\"GNU Emacs\"/\u003e\n\u003cimg src=\"https://img.shields.io/badge/Haskell-5D4F85?logo=haskell\u0026logoColor=fff\u0026style=plastic\" alt=\"Haskell\"/\u003e\n\u003cimg src=\"https://img.shields.io/badge/GTK-7FE719?logo=gtk\u0026logoColor=000\u0026style=plastic\" alt=\"GTK\"/\u003e\n\u003c/div\u003e\n#+end_html\n\nIn some ways this is a laboratory of experimentation for my computing environment. What I do with any other program that forms part of my dotfiles is only meant to work for me. As such, I may introduce breaking changes without prior notice.\n\nThis is all to say that you understand the risks associated with tracking an ever-changing project that does not enjoy widespread testing and whose target audience is only me. If you are fine with that and are willing to assume responsibility for any possible breakage, then please feel welcome to follow along. You can always open an issue here or contribute any fixes, if you will.\n\nNote: Screenshot below might be outdated and no longer representative of the current, everchanging state of these dotfiles.\n\n#+begin_html\n\u003cimg src=\"./resources/screenshots/28-09-2024.png\"/\u003e\n#+end_html\n\n* Using\n\nIf you are a Nix connaisseur, you will likely immediately know what to do and have no questions here.\n\nOtherwise, for convenience, I have written some Haskell code that automates my usage of these dotfiles. See [[file:Main.hs][Main.hs]] for more.\nThis should be highly readable to everyone, even if you are not familiar with Haskell.\n\nAn example of how to deploy this config in a fully automated fashion:\n#+begin_src bash\n  # optionally run `cabal update` first\n  cabal run dotfiles -- rebuild-system\n  # or using cabal and GHC from the flake\n  nix develop -c cabal run dotfiles -- rebuild-system\n#+end_src\n\n** Available tasks\n- rebuild-system :: rebuild the entire NixOS + HomeManager flake config, deployed to ~/etc/nixos~\n- update-system :: update the NixOS flake inputs\n\nSee my Haskell glue code (for example at [[file:Main.hs][./Main.hs]] or at [[file:buildscript][./buildscript]])  for more information about how I deploy, build and use my NixOS configuration.  \n\n* Showcase\n\n#+begin_html\n\u003cdiv\u003e\n\u003cimg src=\"https://gitlab.com/jjba-projects/dotfiles/-/raw/master/resources/screenshots/08-07-2024.png?ref_type=heads\u0026inline=false\" alt=\"Screenshot of Joe's setup\"/\u003e\n\u003c/div\u003e\n#+end_html\n\n\nThis is an ever changing setup, so only by using it can you see its latest evolutionary stage. In any case, see the folder at [[file:resources/screenshots/]] for screenshots.\n\nSee some Reddit posts where the setup is shown:\n\n- [[https://www.reddit.com/r/unixporn/comments/1cwrpeb/hyprland_comfy_warm_computing_nixos_homemanager/?utm_source=share\u0026utm_medium=web3x\u0026utm_name=web3xcss\u0026utm_term=1\u0026utm_content=share_button][Comfy warm computing with NixOS, HomeManager, Emacs and Ef themes]]\n\n- [[https://www.reddit.com/r/unixporn/comments/1dy6hrb/hyprland_nixos_catppuccin_ags_emacs_setup_zzz/?utm_source=share\u0026utm_medium=web3x\u0026utm_name=web3xcss\u0026utm_term=1\u0026utm_content=share_button][Hyprland NixOS - Catppuccin + Ags + Emacs setup - ZZZ inspiration (Zenless Zone Zero) - optional light mode - my main beast: Ryzen 9 7900X3D + Radeon RX 6800 XT]]\n\n\n* My way of installing NixOS\n\nI like to carry around a USB drive with me that contains a NixOS Live ISO.\nI boot from it, rather using EFI than legacy bios, and then usually just choose GNOME desktop and manual partitioning, with:\n\n- a GUID/GPT partition table\n- a 1024MB FAT32 partition as ESP/EFI, with the mountpoint ~/boot~ and the ~boot~ flag\n- a BTRFS root filesystem, encrypted with LUKS, and with mountpoint ~/~.\n- install bootloader to ~/boot~\n  \nNote you might get a warning about this type of partitioning, but you can pretty much safely ignore it as this is quite a safe way to partition.\nEven safer would be to also encrypt the ~/boot~ but that brings a whole lot more challenges.\nIf running on virtual machines, you might need to turn off 3D acceleration for the installation process.\n\n\n* Per host\n\nThere are some \"host-specific\" configurations to be turned on or off depending on the system.\nDefine a file at ~./per-host.nix~ with some Nix expression like:\n\n#+begin_src nix\n{ }\n#+end_src\n\nYou may specify per host settings in the following fashion:\n#+begin_src nix\n  {\n    masterOptions.proprietaryNvidia.enable = true;\n    masterOptions.joe.lightMode.enable = true;\n    masterOptions.defaultSession = \"gnome\";\n  }\n#+end_src\n\nSee [[file:options.nix][options.nix file]] for more details on all possibilities.\n\n\n* Why would I want *my dotfiles* in version control?\n\nHaving your dotfiles and configurations in version control allows you to backup, restore, and sync the preferences and settings for your toolbox.\nYour dotfiles might be the most important files on your machine.\n\nYou can then also learn from the community and spread the knowledge. Discover new tools for your toolbox and new tricks for the ona you already use.\n\nFor maximum profit and reproducibility you should use NixOS and/or the nix package manager.\n\n\n* Copyright and licensing\n\nCopyright © 2024  Josep Jesus Bigorra Algaba (jjbigorra@gmail.com)\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\nSee the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n* Project management - backlog\n** TODO Improve cheatsheet and export to org/markdown automatically\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjba23%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjba23%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjba23%2Fdotfiles/lists"}