Personal dotfiles for Linux, mostly for Nixpkgs/NixOS-based and Termux setups. Mirrored using GitLab's push mirroring feature.
gitlab.com/andreijiroh-dev/dotfiles
linux
dotfiles
1# ~ajhalili2006's dotfiles
2
3This is the redesigned dotfiles repo for ~ajhalili2006, because my first repo became a mess so hard
4to fix it in, built from scratch and based on <https://drewdevault.com/2019/12/30/dotfiles.html>.
5
6## Quick deploy
7
8```bash
9# Working on it soon.
10curl -fsSL https://scripts.andreijiroh.dev/dotfiles/setup.sh | bash -
11```
12
13## Available Git mirrors
14
15This project is hosted on [~tulir]'s Manimum GitLab instance ([mau.dev]) at
16<https://mau.dev/andreijiroh-dev/dotfiles>, although I manitain the following
17git mirrors for conveience:
18
19* mau.dev: <https://mau.dev/andreijiroh-dev/dotfiles> (technically canonical due
20to how mirroring work and usualy pushed there first)
21* GitHub: <https://github.com/andreijiroh-dev/dotfiles>
22* Launchpad.net: <https://git.launchpad.net/ajhalili2006-dotfiles>
23* ~vern git: <https://git.vern.cc/ajhalili2006/dotfiles-modern>
24* tildegit: <https://tildegit.org/ajhalili2006/dotfiles-modern>
25* Hack Club Nest: <https://git.hackclub.app/andreijiroh-dev/dotfiles>
26
27[~tulir]: https://mau.fi
28[mau.dev]: https://mau.dev
29
30## Setup
31
32### With yadm
33
34```shell
35# on a Alpine Linux sandbox VM (or chroot)
36apk add yadm git gnupg
37
38yadm clone https://mau.dev/andreijiroh-dev/dotfiles
39yadm restore --staged $HOME
40yadm checkout -- $HOME
41
42# run the bootstrap script
43yadm bootstrap
44```
45
46### Without yadm
47
48It's easy, although this will be different because `git clone <clone-url-above>` will
49scream some errors when attempt to do so after creating a user with their own home directory.
50
51```bash
52# go back to your $HOME
53cd ~
54
55# init repo, add origin to git.sr.ht repo (have you got your SSH keys?)
56git init
57git remote add origin git@git.sr.ht:~ajhalili2006/dotfiles-modern
58
59# another route here is cloning the repo before the user creation take place
60# so you can skip the "fetch and force checkout hellscape"
61git clone git@git.sr.ht:~ajhalili2006/dotfiles-modern /home/ajhalili2006
62# ...create user "ajhalili2006" here
63chown ajhalili2006:ajhalili2006 -Rv /home/ajhalili2006
64
65# fetch and force checkout, RIP any unstashed hellscapes
66git fetch
67git checkout -f main
68
69# logout and login again to refresh your shell env
70```
71
72## Codespaces + Gitpod specifics
73
74Because this cause confusion to most cloud dev environment services, although they'll symlink
75stuff when there's no install script, but that is a design flaw to be work around in the future.
76
77## License
78
79TL;DR before we dive in to legalese:
80
81* Everything is licensed under both MIT + MPL 2.0, unless otherwise noted. Most third-party
82 code and submodules used here aren't covered by this policy.
83* Open source !== open contribution. Since this is just a personal project, expect your contributions to be
84 either rewritten or declined.
85* For contributors who wish to send patches, either an agreement to the DCO (via `--signoff` flag on commits and
86 when sending email patches via `~ajhalili2006/public-inbox@lists.sr.ht`) or through signing the project-specific
87 [Individual CLA][sign-link] alongside this specific [copyright transfer agreement on this project][cta-ajhalili2006-dotfiles]
88 (requires separate signature, uses FSFe's FLA 2.0) is mostly enough. Doing both is recommended to avoid further legal headaches down the line, atlhough ~sircmpwn recommends
89 against signing the CLA, especially due to legalities around copyright assignments in OSS.
90
91[cta-ajhalili2006-dotfiles]: https://cla.recaptime.eu.org/sign/copyright-assignment?project=ajhalili2006-dotfiles&requireClaSignature=true&claType=FLA-FSFE
92[sign-link]: https://cla.recaptime.eu.org/sign/per-project-basis?type=individual&project=ajhalili2006-dotfiles&claType=FLA-FSFE