{"id":25422514,"url":"https://github.com/hankertrix/dotfiles","last_synced_at":"2025-10-18T02:01:52.738Z","repository":{"id":184808189,"uuid":"672509995","full_name":"hankertrix/Dotfiles","owner":"hankertrix","description":"My configuration files for various things on Linux.","archived":false,"fork":false,"pushed_at":"2025-02-12T20:52:58.000Z","size":849,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T21:34:34.392Z","etag":null,"topics":["dotfiles","dotfiles-linux","linux-config"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/hankertrix.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-07-30T10:33:22.000Z","updated_at":"2025-02-12T20:53:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"bf3eeab5-1c18-4f17-bb7b-6c2b7e67404b","html_url":"https://github.com/hankertrix/Dotfiles","commit_stats":null,"previous_names":["hankertrix/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hankertrix%2FDotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hankertrix%2FDotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hankertrix%2FDotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hankertrix%2FDotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hankertrix","download_url":"https://codeload.github.com/hankertrix/Dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239201649,"owners_count":19599076,"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","dotfiles-linux","linux-config"],"created_at":"2025-02-16T21:34:12.741Z","updated_at":"2025-10-18T02:01:52.720Z","avatar_url":"https://github.com/hankertrix.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linux Config Files\n\nThe laptop that I currently use is an\n[ASUS TUF Gaming A16 AMD Advantage Edition](https://www.asus.com/laptops/for-gaming/tuf-gaming/asus-tuf-gaming-a16-advantage-edition-2023/),\nwith a Ryzen 9-7940HS processor, an AMD Radeon RX7600S GPU\nand a screen resolution of 2560x1600, model number FA617X-S.\nIt has 16GB of RAM and a 1TB SSD.\nI am currently using [Arch Linux](https://archlinux.org/)\nand running [Niri](https://github.com/YaLTeR/niri/)\nas my window manager and Wayland compositor.\n\nI installed [Arch Linux](https://archlinux.org/)\nby manually following the\n[tutorial](https://www.youtube.com/watch?v=YC7NMbl4goo)\nfrom [Dreams of Autonomy](https://www.youtube.com/@dreamsofautonomy).\nThere is also a\n[written guide](https://github.com/dreamsofautonomy/arch-from-scratch)\nif you prefer to read instead of watching a video.\n\nIf you are using [btrfs](https://btrfs.readthedocs.io/en/latest/index.html),\nwhich you would be if you are following the guide above,\nyou should also install [btrfs-progs](https://github.com/kdave/btrfs-progs)\nso that the `mkinitcpio` hook to create the `initramfs` for the kernel\ndoesn't throw an error due to `fsck` not being available.\nThe system will still work fine even without installing\n[btrfs-progs](https://github.com/kdave/btrfs-progs),\nbut the error gets annoying as it appears every time you update the kernel,\nand it might trick you into thinking there is actually an error in the\n`mkinitcpio` build hook for the kernel when there actually isn't.\n\n## Configuration files\n\nI am making use of [Chezmoi (pronounced shay-mwa)](https://www.chezmoi.io/)\nto manage my configuration files. To use my configuration files,\ninstall [Chezmoi](https://www.chezmoi.io/install/),\nand [Git](https://git-scm.com/),\nthen run the command below to deploy the configuration files:\n\n```sh\nROOTMOI=t chezmoi init hankertrix/dotfiles --source ~/.dotfiles --apply\n```\n\nIf you don't want to deploy the system level configuration files,\nremove the `ROOTMOI=t` at the front of the command to\nonly deploy the user level configuration files, like this:\n\n```sh\nchezmoi init hankertrix/dotfiles --source ~/.dotfiles --apply\n```\n\nYou can also choose another directory to store the source directory,\nbut take note that references to the `~/.dotfiles` directory in the\n[Emacs configuration](./tilde/dot_config/emacs/config.org)\nneed to be changed to point to the correct source directory\ninstead of `~/.dotfiles`. The reason for not templating\nthe reference to `~/.dotfiles` in the Emacs configuration\nis due to Emacs not having an easy way to set the file type,\nor to ignore the `.tmpl` file extension.\n\nThe configuration files are all stored in either [`tilde`](./tilde/),\nwhich refers to user-specific configuration found under `~/`,\nor [`slash`](./slash/), which are the global configuration options\nthat apply to all users, which can be found under the `/` folder.\n\n### [Browser extensions](./browser-extensions/) folder\n\nThere is a [`README.md`](./browser-extensions/README.md) file\ninside the [`browser-extensions`](./browser-extensions/)\nfolder that explains the configuration.\n\n### [Custom packages](./custom-packages/) folder\n\nThis folder stores all the packages that are custom-built for me.\nIt currently only contains the PKGBUILD for building all 3\nNerd Font variants for [Maple Mono](https://github.com/subframe7536/Maple-font),\nwith the font features I want frozen so that they work in\n[Emacs](https://www.gnu.org/software/emacs/).\nMaple Mono only provides the default Nerd Font variant, but\nI need all 3 variants as I use the Propo variant in GUI applications\nlike [Waybar](https://github.com/Alexays/Waybar) and\n[Rofi](https://github.com/davatorium/rofi) to ensure the icons\ndon't have funky spacing.\nThe Mono variant is used in the browser by\n[Firenvim](https://github.com/glacambre/firenvim) so that the icons\nare not cut off.\nThe default variant is used in the terminals I use.\n\n### [Package lists](./package-lists/) folder\n\nThis folder stores the package lists for my system.\nThe [main package list](./package-lists/pkglist.txt) contains all the packages\ninstalled through a repository using Pacman, while the\n[AUR package list](./package-lists/aur-pkglist.txt) contains all the packages\ninstalled through the [AUR](https://aur.archlinux.org),\nas well as custom packages.\n\n### [`slash`](./slash/)\n\nThe [`slash`](./slash/) folder contains all the system level configuration,\nsuch as configuration files for the package manager, the display manager\nand the bootloader.\n\n#### [`boot`](./slash/boot/) folder\n\nThe [`boot`](./slash/boot/) folder contains the configuration for\nthe bootloader I use, [rEFInd](https://www.rodsbooks.com/refind/).\nThe [rEFInd configuration](./slash/boot/refind_linux.conf)\nis just the standard boot options that are provided by default\nwhen running `refind-install`. However, the `amdgpu.dcdebugmask` option\nis added so that the AMD driver doesn't crash or lock up.\nThere is a really helpful\n[tutorial here](https://discuss.cachyos.org/t/tutorial-mitigate-gfx-crash-lockup-apparent-freeze-with-amdgpu/10842).\n\nThe theme I use is a modified version of the Gruvbox theme from\n[rEFInd minimal themes](https://github.com/quantrancse/rEFInd-minimal-themes).\nThe selection icons were taken from [dm](https://github.com/mustaqimM/dm),\nwhich itself is a modified version of the\n[Dream Machine theme](https://github.com/Lindstream/dm-refind-theme).\n\nThe background image was taken from\n[Pexels](https://www.pexels.com/photo/planet-earth-in-black-background-12990385/).\n\n#### [`etc`](./slash/etc/) folder\n\nThe [`etc`](./slash/etc/) folder contains the configuration for\nsystem level configuration files.\n\n##### [`ly`](./slash/etc/ly/)\n\nThe [`ly` configuration](./slash/etc/ly/config.ini) is just\nthe default configuration file but with the animation changed\nto use the matrix animation.\n\n##### [Network Manager](./slash/etc/NetworkManager/)\n\nThe Network manager configuration\n\n#### [`.chezmoiignore`](./slash/.chezmoiignore)\n\nThe `.chezmoiignore` file ignores the files that do not need to be\ndeployed to the system, like READMEs and licences,\nbut also ignores the [`boot/efi`](slash/boot/efi) directory\nso that `rootmoi` can apply the changes to the `/boot/efi` directory\nseparately from the `/` directory.\n\n### [`tilde`](./tilde/) folder\n\n#### [`.chezmoiscripts`](./tilde/.chezmoiscripts/)\n\nThe [`.chezmoiscripts`](./tilde/.chezmoiscripts/) folder is just to store\nthe scripts that run with Chezmoi. It currently only contains\na script to run `rootmoi` after the Chezmoi configuration is applied.\n\n#### [`.config`](./tilde/dot_config/) folder\n\nThe [`.config`](./tilde/dot_config/) folder is where the configuration\nfor the applications I use on Linux are located.\nThere is a [`README.md` file](./tilde/dot_config/) inside that\nbriefly explains the configuration for the various applications inside.\n\n#### [`.librewolf`](./tilde/dot_librewolf/) folder\n\nThe [`.librewolf`](./tilde/dot_librewolf/) folder is just to store my\noverrides for the Librewolf browser.\nAll the overrides are exactly the same as my overrides for the\n[Arkenfox user.js](https://github.com/arkenfox/user.js).\n\n#### [`.mozilla`](./tilde/dot_mozilla/) folder\n\nThe [`.mozilla`](./tilde/dot_mozilla/) folder is just to store my overrides\nfor the [Arkenfox user.js](https://github.com/arkenfox/user.js).\n\n#### [`.local`](./tilde/dot_local/) folder\n\nThe [`bin`](./tilde/dot_local/bin/) folder in the\n[`.local`](./tilde/dot_local/) folder is just to store some useful scripts\nI made that can also be run as a standalone script,\nlike a script to easily select the wallpapers based on\nthe current system theme, a screen recording script,\nand rootmoi, which runs Chezmoi as root to manage\nsystem configuration.\n\nThe [`share`](./tilde/dot_local/share/) folder inside is to store\nthe scripts to run when [darkman](https://gitlab.com/WhyNotHugo/darkman)\nchanges from light to dark mode, which handles switching the wallpapers\nand dynamically theming everything.\n\n#### [`.zen`](./tilde/dot_zen/) folder\n\nThe [`.zen`](./tilde/dot_zen/) folder is just to store my overrides for the\n[Arkenfox user.js](https://github.com/arkenfox/user.js), as well as\nsome configuration options specific to the Zen browser.\nIt also contains the keyboard shortcuts and the Zen mods that\nI have installed and configured for the Zen browser.\n\n#### [`.chezmoi.toml`](./tilde/.chezmoi.toml.tmpl)\n\nThe [`.chezmoi.toml`](./tilde/.chezmoi.toml.tmpl) is just to configure\nthe source directory for [Chezmoi](https://www.chezmoi.io/)\nand use [Neovim](https://neovim.io/) as the merge tool.\n\n#### [`.chezmoidata.toml`](./tilde/.chezmoidata.toml)\n\nThe [`.chezmoidata.toml`](./tilde/.chezmoidata.toml) file is just to store\nadditional variables that are used in the Chezmoi templates.\nThey are mostly just fonts, icon theme, cursor theme and cursor size.\n\n#### [`.chezmoiexternal.toml`](./tilde/.chezmoiexternal.toml)\n\nThe [`.chezmoiexternal.toml`](./tilde/.chezmoiexternal.toml) file is just to\nautomatically download all the different variations of the cursor theme\nI use and put them in the right place.\n\n#### [`.chezmoiignore`](./tilde/.chezmoiignore)\n\nThe `.chezmoiignore` file is just to ignore the files that do not need to be\ndeployed to the system, like READMEs, licences,\nand formatter configuration files.\n\n#### [`.bash_profile`](./tilde/dot_bash_profile)\n\nThe [`.bash_profile`](./tilde/dot_bash_profile) configuration is just to\nload the [`.profile`](./tilde/executable_dot_profile) file\nwhen starting bash.\nThis is needed thanks to the Arch Linux LightDM package\n[changing the script to source the files](https://gitlab.archlinux.org/archlinux/packaging/packages/lightdm/-/commit/75c048cabfe9693749f5f363ab6257400d954ffa).\n\nThis change may or may not be relevant since I am now using\n[ly](https://codeberg.org/fairyglade/ly), instead of LightDM,\nbut things are working fine, so I'm not going to change it.\n\n#### [`.inputrc`](./tilde/dot_inputrc)\n\nThe [`.inputrc`](./tilde/dot_inputrc) file is just to set the key binds\nfor arrow up and arrow down to search the history for completions\ninstead of just giving the last used command.\n\n#### [`.xinitrc`](./tilde/dot_xinitrc)\n\nThe [`.xinitrc`](./tilde/dot_xinitrc) file is just to merge the\nconfiguration inside [`.Xresources`](./tilde/executable_dot_Xresources)\ninto `xrdb` so that the changes will apply.\n\nThis file is no longer relevant since I am no longer on X11,\nbut I am keeping it here just in case.\n\n#### [`.Xresources`](./tilde/executable_dot_Xresources)\n\nThe [`.Xresources`](./tilde/executable_dot_Xresources)\nconfiguration is just to make sure\nthe display works properly with my high DPI screen.\nI also turned on antialiasing.\n\nThis file is no longer relevant since I am no longer on X11,\nbut I am keeping it here just in case.\n\n#### [`.bashrc`](./tilde/executable_dot_bashrc)\n\nThe [`.bashrc`](./tilde/executable_dot_bashrc) file is quite minimal,\njust setting some useful settings like `vi` mode and the prompt.\n\nIt also has some useful aliases that are provided by\n[Arch Linux](https://archlinux.org/) by default, mostly just colouring\nthe output of `grep` and `ls` and useful aliases for `ls`.\n\nIt also adds the [local binaries](./tilde/dot_local/bin/) to the shell path and\nhas a few if statement added in so that I can change the shell's directory\nwhen using [`lf`](https://github.com/gokcehan/lf) and\n[`yazi`](https://yazi-rs.github.io/).\n\n#### [`.profile`](./tilde/executable_dot_profile)\n\nThis file is just to set the default applications for various tasks.\nThe default terminal is set to\n[Kitty](https://sw.kovidgoyal.net/kitty/),\nthe default editor is set to\n[Neovim](https://neovim.io/),\nthe default browser is set to\n[Librewolf](https://librewolf.net/),\nthe default pager is set to\n[`less`](https://www.greenwoodsoftware.com/less/),\nand the default man pager is\n[Neovim](https://neovim.io/),\n\n### [Wallpapers folder](./tilde/wallpapers/)\n\nThis folder just contains all the wallpapers I use,\nsourced from various places, separated into two subfolders,\n[one](./tilde/wallpapers/light/) containing wallpapers to use for the\nlight system theme,\nand [another](./tilde/wallpapers/dark/) for the dark system theme.\n\n## [Licence](LICENCE.txt)\n\nThis repository is licensed under the [MIT Licence](LICENCE.txt).\nYou can view the full text in the [`LICENCE.txt`](LICENCE.txt) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhankertrix%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhankertrix%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhankertrix%2Fdotfiles/lists"}