{"id":19876411,"url":"https://github.com/foo-dogsquared/dotfiles","last_synced_at":"2025-05-02T11:32:31.830Z","repository":{"id":45652078,"uuid":"201225784","full_name":"foo-dogsquared/dotfiles","owner":"foo-dogsquared","description":"My dotfiles for my Linux-based system setup.","archived":false,"fork":false,"pushed_at":"2024-01-22T11:24:26.000Z","size":12014,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-13T15:40:02.353Z","etag":null,"topics":["arch-linux","dotfiles","linux"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/foo-dogsquared.png","metadata":{"files":{"readme":"README.adoc","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}},"created_at":"2019-08-08T09:31:27.000Z","updated_at":"2023-05-08T12:54:54.000Z","dependencies_parsed_at":"2023-01-21T19:30:15.822Z","dependency_job_id":"d152d076-7d0b-4f22-8e87-6bce4ba1cd1c","html_url":"https://github.com/foo-dogsquared/dotfiles","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foo-dogsquared","download_url":"https://codeload.github.com/foo-dogsquared/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224308985,"owners_count":17290104,"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","dotfiles","linux"],"created_at":"2024-11-12T16:32:58.392Z","updated_at":"2024-11-12T16:32:58.507Z","avatar_url":"https://github.com/foo-dogsquared.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"= dotfiles\n:toc:\n\nMy dotfiles for my Linux-based system setup.\nThe structure of this repo is designed to be managed with https://www.gnu.org/software/stow/[GNU Stow], a symlinks farm manager.\n\nI don't know what I'm doing most of the time in creating this setup so if you're brave (or suicidal) enough to take a look at my stuff, go ahead.\n\nCAUTION: As they always say: \"Don't blindly apply these dotfiles unless you know what you're doing.\"\nReview the code first, change the setting accordingly, and apply it on your own if you want.\n\n\n\n\n== Tour of my setup\n\nHere's what the setup should look like (aside from the Stow packages which will be discussed later):\n\n[source]\n----\ndotfiles\n├── .vtsm/\n├── docs/\n├── LICENSE\n├── makefile\n├── README.adoc\n└── vtsm\n----\n\nThe big picture for my dotfiles setup have big goals and those are (according to priority):\n\n* Easy to transfer and/or reproduce.\n* Modularity, https://github.com/holman/dotfiles[@holman]-style.\n* Looking cool (but not too cool or else my potato will weep).\n\n\n=== How I maintain my dotfiles\n\nThe dotfiles are mostly intended to be used with GNU Stow.\nIf you're not familiar with it, you can read http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html[this sweet short article] to get you started.\n\nHowever, with Python 3 (specifically 3.8) installed, you have another option.\nBehold, the link:./vtsm[\"Very Tiny Stow Manager\"] (VTSM for short)!\nThe best way to describe VTSM is basically GNU Stow with a generic shell runner.\nVTSM takes inspiration from GNU Stow (obviously) and https://github.com/holman/dotfiles[how Zach Holman's dotfiles are set].\nWhen managing your dotfiles, VTSM is going to be your friend/workmate.\n\nAll VTSM needs is a directory containing a package list stored in a JSON file with the name of the packages and their target path.\nBy default, it searches for a file named `locations.json` but you can specify what JSON file to use with the `-m`/`--manifest` option.\n\n.An example of what a manifest could contain\n[source, json]\n----\n{\n    \"alacritty\": \"$HOME/.config/alacritty/\",\n    \"bin\": \"$HOME/bin/\",\n    \"bspwm\": \"$HOME/.config/bspwm/\",\n    \"dunst\": \"$HOME/.config/dunst/\",\n    \"emacs\": \"$HOME/.config/doom\",\n    \"lf\": \"$HOME/.config/lf\",\n    \"nvim\": \"$HOME/.config/nvim/\",\n    \"picom\": \"$HOME/.config/picom\",\n    \"polybar\": \"$HOME/.config/polybar\",\n    \"rofi\": \"$HOME/.config/rofi/\",\n    \"sxiv\": \"$HOME/.config/sxiv\",\n    \"sxhkd\": \"$HOME/.config/sxhkd/\",\n    \"wal\": \"$HOME/.config/wal\",\n    \"xorg\": \"$HOME\",\n    \"zsh\": \"$HOME\"\n}\n----\n\nWith the tiny manager and the package list, we can then execute commands with all of the packages and its target path with one go.\nHere are some examples of running commands with VTSM.\n\n[source, shell]\n----\n# Take the setup as the filesystem structure.\n# See the JSON files at .vtsm to see what packages to be installed and where to install them.\n\n# Running the program without any arguments for a test run.\n# There should be a bunch of `echo` commands being ran for all of the listed packages.\n./vtsm\n\n# Create the directories of the target path and install them with GNU Stow.\n# Bada-bing, bada-boom, you have installed your setup or something.\n./vtsm --manifest .vtsm/arch.json --commands \"mkdir -p {location} \u0026\u0026 stow {package} --target {location}\"\n\n# Run commands only to Rofi and Emacs config files.\n./vtsm --manifest .vtsm/arch.json --only \"rofi\" \"emacs\" --commands \"stow --restow {package} --target {location}\"\n----\n\nFor the command string, it is a https://docs.python.org/3/library/string.html#string.Template[Python template] with `package` and `location` as the available objects.\n\n\n=== Custom scripts\n\nNext are more custom scripts!\nThey're located in link:bin/[`bin/`] and ideally should be linked in `$HOME/.local/bin`.\nfootnote:[This is a part of the package list but I think it's appropriate to create a dedicated subsection for this.]\n\nHere's a list of the top most useful scripts (at least for me):\n\n* link:./bin/rofi-screenshot-menu[A Rofi menu for all of my screenshoting and screencasting needs].\nThe script is also a fork of https://github.com/ceuk/rofi-screenshot[`ceuk's` rofi-screenshot].\nBig thanks to them for the idea!\n\n* link:./bin/ocr[An image selection-to-text script using OCR].\nCapture a region, process it through an OCR engine, and the content are then copied into the clipboard.\nUseful for capturing links in images or videos usually found in lecture videos.\n\n* link:./bin/user-prompt[Quick command prompts].\nThe script is based from https://github.com/LukeSmithxyz/voidrice/blob/master/.local/bin/prompt[Luke Smith's prompt script].\n\n* link:./bin/toggle-process[Switching on/off programs].\nUseful for situations where only one instance of the program is desirable.\n\n* link:./bin/choose-emoji-menu[A universal emoji list] for easy copy-pasting and clear communication with those who speak Emojian.\n\n\n\n\n== Inspirations\n\n* https://github.com/addy-dclxvi/almighty-dotfiles/\n* https://github.com/LukeSmithxyz/voidrice\n* https://github.com/adi1090x\n* https://github.com/jethrokuan/dots/ for his Emacs and Org Mode writing setup.\nHe also has a dedicated series on his https://blog.jethro.dev/[blog site] if you want the juicy details.\n* https://www.reddit.com/r/unixporn/ obviously.\n* Specifically for https://www.reddit.com/r/unixporn/comments/8ezsq7/bspwm_terminal_tabs_in_polybar_dark_and_dull_exam/[the tabbed terminals idea] and the https://github.com/Nikzt/dotfiles[linked dotfiles repo]) (not yet implemented, still cleaning up my stuff)\n* https://www.reddit.com/r/unixporn/comments/edmb8b/awesome_gnawesome/[Just] https://github.com/ilovecookieee/Glorious-Dotfiles[saving] https://github.com/PapyElGringo/material-awesome[these] for an **awesome** future, hehehe.\n\n\n\n\n== Wallpapers\n\nHere's a list of some of the best wallpapers I've used throughout my ricing journey.\nI've also tried to get the creators to show appreciation for their work.\n\n* https://www.deviantart.com/rmradev/art/Alien-Moon-743912901[`alien-moon.jpg`]\n** Creator: https://www.deviantart.com/rmradev[rmRadev]\n\n* https://dribbble.com/shots/3713646-Small-Memory[`forest-bright.jpg`]\n** Creator: https://dribbble.com/MikaelGustafsson[Mikael Gustafsson]\n\n* https://dropr.com/mbdsgns/254740/hotline_miami_iv/+?p=1388845[`hotline-miami-alt-cover.png`]\n** Creator: https://dropr.com/mbdsgns[Mbdsgns]\n\n* https://www.artstation.com/artwork/wn8ng[`long-walk-home.jpg`]\n** Creator: https://www.artstation.com/beaulamb[Beau Lamb]\n\n* https://www.reddit.com/r/wallpapers/comments/g6tgst/night_landscape_mountain_and_milky_way_galaxy[`mountain-with-galaxy.jpg`]\n** I was not able to track down the photographer of this one.\n\n* https://www.reddit.com/r/wallpapers/comments/cckpj0/i_made_this_simple_and_clean_drawing_over_the/[`nebula.jpg`]\n** Creator: https://www.reddit.com/user/datGryphon/[datGryphon]\n\n* https://www.artstation.com/artwork/XOQdR[`the-core.jpg`]\n** Creator: https://www.artstation.com/beaulamb[Beau Lamb]\n\n* https://www.reddit.com/r/wallpapers/comments/ebvk0q/rocket_launch_1920x1080/[`rocket-launch.jpg`]\n\n* https://www.artstation.com/artwork/XBlZbY[`scarecrow-field.jpg`]\n** Creator: https://www.artstation.com/joejazz[Josef Bartoň]\n\n\n=== Sources\n\nMy personal recommendations for looking out for more cool-looking photos.\n\n* https://images.nasa.gov/[Images from NASA].\nThey also have a small collection of them in their https://unsplash.com/@nasa[Unsplash account].\n* https://imgur.com/gallery/4BKvq[Firewatch] (or any style similar to Firewatch) wallpapers are top-notch ricing material.\n* https://mantissa.artstation.com/[Midge \"Mantissa\" Sinnaeve]\n* https://www.artstation.com/beaulamb[Beau Lamb]\n* http://louie.co.nz/[Louis Coyle] and https://dribbble.com/louiscoyle[his illustrations].\n* https://www.deviantart.com/rmradev[rmRadev]\n* https://www.reddit.com/r/wallpapers/[/r/wallpapers]\n* https://unsplash.com/s/photos/galaxy-landscape[Any image that features a landscape with stars, lel.]\n* https://www.pexels.com/[Pexels]\n* https://www.pixabay.com/[Pixabay]\n* https://unsplash.com/[Unsplash]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoo-dogsquared%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoo-dogsquared%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoo-dogsquared%2Fdotfiles/lists"}