From 4689c86918d1f962c5fb7871078a2b2c68cedb7e Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 27 Oct 2022 15:47:28 +0100 Subject: [PATCH] Top-level scripts and config direcrtories --- .github/README.md | 30 +- .github/sync.yml | 2 +- {bash => config}/.bashrc | 0 config/.curlrc | 8 + config/.gemrc | 11 + config/.gitconfig | 284 ++++++++++++++++++ config/.gitignore_global | 37 +++ config/.wgetrc | 35 +++ config/README.txt | 6 + .../desktop-apps/ thunderbird.user.js | 0 config/desktop-apps/firefox.user.js | 0 config/dnscrypt-proxy.toml | 71 +++++ config/gpg.conf | 86 ++++++ .../app-configs => config/macos}/.finicky.js | 0 .../macos}/launchpad.yml | 50 ++- config/macos/skhdrc | 0 .../app-configs => config/macos}/yabairc | 0 {installs => scripts/installs}/Brewfile | 32 +- {installs => scripts/installs}/arch-pacman.sh | 0 {installs => scripts/installs}/flatpak.sh | 0 {installs => scripts/installs}/windows.sh | 0 .../macos => scripts/macos-setup}/.macos | 2 +- .../macos-setup}/macos-apps.sh | 0 .../macos-setup}/macos-preferences.sh | 0 .../macos-setup}/macos-security.sh | 0 symlinks.yaml | 37 ++- 26 files changed, 617 insertions(+), 74 deletions(-) rename {bash => config}/.bashrc (100%) create mode 100644 config/.curlrc create mode 100644 config/.gemrc create mode 100644 config/.gitconfig create mode 100644 config/.gitignore_global create mode 100644 config/.wgetrc create mode 100644 config/README.txt rename system-specific/macos/app-configs/skhdrc => config/desktop-apps/ thunderbird.user.js (100%) create mode 100644 config/desktop-apps/firefox.user.js create mode 100644 config/dnscrypt-proxy.toml create mode 100644 config/gpg.conf rename {system-specific/macos/app-configs => config/macos}/.finicky.js (100%) rename {system-specific/macos/app-configs => config/macos}/launchpad.yml (83%) create mode 100644 config/macos/skhdrc rename {system-specific/macos/app-configs => config/macos}/yabairc (100%) rename {installs => scripts/installs}/Brewfile (91%) rename {installs => scripts/installs}/arch-pacman.sh (100%) rename {installs => scripts/installs}/flatpak.sh (100%) rename {installs => scripts/installs}/windows.sh (100%) rename {system-specific/macos => scripts/macos-setup}/.macos (94%) rename {system-specific/macos/system-settings => scripts/macos-setup}/macos-apps.sh (100%) rename {system-specific/macos/system-settings => scripts/macos-setup}/macos-preferences.sh (100%) rename {system-specific/macos/system-settings => scripts/macos-setup}/macos-security.sh (100%) diff --git a/.github/README.md b/.github/README.md index 85c1ad8..75e7b84 100644 --- a/.github/README.md +++ b/.github/README.md @@ -140,7 +140,7 @@ Zach Holman wrote a great article titled [Dotfiles Are Meant to Be Forked](https By all means feel free to take what you want from mine. I've taken care to ensure that each file is standalone, and well documented so that certain files can just be dropped into any system. But I cannot stress enough the importance of reading through files to ensure it's actually what you want. -If you're looking for some more example dotfile repos to get you started, I can highly recommend taking a look at: [@holman/dotfiles](https://github.com/holman/dotfiles), [@nickjj/dotfiles](https://github.com/nickjj/dotfiles), [@caarlos0/dotfiles](https://github.com/caarlos0/dotfiles), [@cowboy/dotfiles](https://github.com/cowboy/dotfiles). +If you're looking for some more example dotfile repos to get you started, I can highly recommend taking a look at: [@holman/dotfiles](https://github.com/holman/dotfiles), [@nickjj/dotfiles](https://github.com/nickjj/dotfiles), [@caarlos0/dotfiles](https://github.com/caarlos0/dotfiles), [@cowboy/dotfiles](https://github.com/cowboy/dotfiles), [@drduh/config](https://github.com/drduh/config). There's even more to check out at [webpro/awesome-dotfiles](https://github.com/webpro/awesome-dotfiles), [dotfiles.github.io](https://dotfiles.github.io/) and [r/unixporn](https://www.reddit.com/r/unixporn/). @@ -193,10 +193,10 @@ Once the repo is cloned, you can modify whatever files you like before running t ├── tmux/ # Tmux (multiplexer) config ├── vim/ # Vim (text editor) config ├── zsh/ # ZSH (shell) config - └── installs/ # Scripts for software installation - ├── Brewfile # Package installs for MacOS via Homebrew - ├── arch-pacman.sh # Package installs for Arch via Pacman - └── flatpak.sh # Package installs for Linux desktops via Flatpak + └── scripts/installs/ # Scripts for software installation + ├── Brewfile # Package installs for MacOS via Homebrew + ├── arch-pacman.sh # Package installs for Arch via Pacman + └── flatpak.sh # Package installs for Linux desktops via Flatpak ├── .github/ # Meta files for GitHub repo ├── lets-go.sh # One-line remote installation entry point ├── install.sh # All-in-one install and setup script @@ -582,15 +582,15 @@ Alias | Description The dotfile installation script can also, detect which system and environemnt you're running, and optionally prompt to install packages and applications. -Package lists are stored in [`installs/`](https://github.com/Lissy93/dotfiles/tree/master/installs) directory, with separate files for different OSs. The install script will [pick the appropriate file](https://github.com/Lissy93/dotfiles/blob/22c6a04fdb22c140448b7d15ef8187c3a424ab47/install.sh#L243-L260) based on your distro. +Package lists are stored in [`scripts/installs/`](https://github.com/Lissy93/dotfiles/tree/master/installs) directory, with separate files for different OSs. The install script will [pick the appropriate file](https://github.com/Lissy93/dotfiles/blob/22c6a04fdb22c140448b7d15ef8187c3a424ab47/install.sh#L243-L260) based on your distro. You will be prompted before anything is installed. Be sure to remove / comment out anything you do not need before proceeding. -- Linux (desktop): [`flatpak.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/flatpak.sh) - Desktop apps can be installed on Linux systems via [Flatpack](https://flatpak.org/) -- Mac OS: [`.Brewfile`](https://github.com/Lissy93/dotfiles/blob/master/installs/Brewfile) - Mac apps installed via [Homebrew](https://brew.sh/) -- Arch (and Arch-based systems, like Manjaro): [`arch-pacman.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/arch-pacman.sh) - Arch CLI apps installed via [pacman](https://wiki.archlinux.org/title/Pacman) -- Debian (and Debian-based systems, like Ubuntu): [`apt.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/apt.sh) - Debian CLI apps installed via [apt](https://wiki.debian.org/Apt) -- Alpine: [`apk.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/apk.sh) - Alpine CLI apps installed via [apk](https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.html) +- Linux (desktop): [`flatpak.sh`](https://github.com/Lissy93/dotfiles/blob/master/scripts/installs/flatpak.sh) - Desktop apps can be installed on Linux systems via [Flatpack](https://flatpak.org/) +- Mac OS: [`.Brewfile`](https://github.com/Lissy93/dotfiles/blob/master/scripts/installs/Brewfile) - Mac apps installed via [Homebrew](https://brew.sh/) +- Arch (and Arch-based systems, like Manjaro): [`arch-pacman.sh`](https://github.com/Lissy93/dotfiles/blob/master/scripts/installs/arch-pacman.sh) - Arch CLI apps installed via [pacman](https://wiki.archlinux.org/title/Pacman) +- Debian (and Debian-based systems, like Ubuntu): [`apt.sh`](https://github.com/Lissy93/dotfiles/blob/master/scripts/installs/apt.sh) - Debian CLI apps installed via [apt](https://wiki.debian.org/Apt) +- Alpine: [`apk.sh`](https://github.com/Lissy93/dotfiles/blob/master/scripts/installs/apk.sh) - Alpine CLI apps installed via [apk](https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.html) The following section lists different apps that may be installed for each category: @@ -855,10 +855,10 @@ All settings are then updated in the `.plist` files stored in `~/Library/Prefere In my dotfiles, the MacOS preferences will configure everything from system security to launchpad layout. -The Mac settings are located in [`system-specific/macos/system-settings/`](https://github.com/Lissy93/dotfiles/tree/master/system-specific/macos/system-settings), and are split into three files: -- [`macos-security.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-security.sh) - Sets essential security settings, disables telementry, disconnects unused ports, enforces signing, sets logout timeouts, and much more -- [`macos-preferences.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-preferences.sh) - Configures all user preferences, including computer name, highlight color, finder options, spotlight settings, hardware preferences and more -- [`macos-apps.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-apps.sh) - Applies preferences to any installed desktop apps, such as Terminal, Time Machine, Photos, Spotify, and many others +The Mac settings are located in [`scripts/macos-setup/`](https://github.com/Lissy93/dotfiles/tree/master/scripts/macos-setup), and are split into three files: +- [`macos-security.sh`](https://github.com/Lissy93/dotfiles/blob/master/scripts/macos-setup/macos-security.sh) - Sets essential security settings, disables telementry, disconnects unused ports, enforces signing, sets logout timeouts, and much more +- [`macos-preferences.sh`](https://github.com/Lissy93/dotfiles/blob/master/scripts/macos-setup/macos-preferences.sh) - Configures all user preferences, including computer name, highlight color, finder options, spotlight settings, hardware preferences and more +- [`macos-apps.sh`](https://github.com/Lissy93/dotfiles/blob/master/scripts/macos-setup/macos-apps.sh) - Applies preferences to any installed desktop apps, such as Terminal, Time Machine, Photos, Spotify, and many others Upon running each script, a summary of what will be changed will be shown, and you'll be prompted as to weather you'd like to continue. Each script also handles permissions, compatibility checking, and graceful fallbacks. Backup of original settings will be made, and a summary of all changes made will be logged as output when the script is complete. diff --git a/.github/sync.yml b/.github/sync.yml index af39a11..00257e5 100644 --- a/.github/sync.yml +++ b/.github/sync.yml @@ -1,4 +1,4 @@ lissy93/Brewfile: - - source: installs/Brewfile + - source: scripts/installs/Brewfile dest: Brewfile diff --git a/bash/.bashrc b/config/.bashrc similarity index 100% rename from bash/.bashrc rename to config/.bashrc diff --git a/config/.curlrc b/config/.curlrc new file mode 100644 index 0000000..ec19c00 --- /dev/null +++ b/config/.curlrc @@ -0,0 +1,8 @@ +# Configuration for curl +# For more info, see: https://everything.curl.dev/ + +# When following a redirect, automatically set the previous URL as referrer +referer = ";auto" + +# Wait 60 seconds before timing out +connect-timeout = 60 diff --git a/config/.gemrc b/config/.gemrc new file mode 100644 index 0000000..9b3a78e --- /dev/null +++ b/config/.gemrc @@ -0,0 +1,11 @@ + +--- +:benchmark: false +:update_sources: true +:backtrace: false +:bulk_threshold: 1000 +:verbose: true +:sources: +- http://gemcutter.org +- http://gems.rubyforge.org/ +- http://gems.github.com/ diff --git a/config/.gitconfig b/config/.gitconfig new file mode 100644 index 0000000..da7558d --- /dev/null +++ b/config/.gitconfig @@ -0,0 +1,284 @@ +# Global Git Configuration + +[user] + name = Alicia Sykes + email = alicia@omg.lol + username = lissy93 +[init] + defaultBranch = master +[pull] + rebase = false +[core] + editor = nvim + whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol + pager = delta + excludesfile = /Users/alicia/.config/.gitignore_global + autocrlf = false + symlinks = true +[web] + browser = firefox +[instaweb] + httpd = apache2 -f +[rerere] + enabled = 1 + autoupdate = 1 +[color] + ui = auto +[color "branch"] + current = yellow bold + local = purple bold + remote = cyan bold +[color "diff"] + meta = yellow bold + frag = magenta bold + old = red bold + new = green bold + whitespace = red reverse +[color "status"] + added = green bold + changed = yellow bold + untracked = red bold +[diff] + tool = vimdiff +[difftool] + prompt = false +[delta] + features = line-numbers decorations + line-numbers = true +[delta "decorations"] + minus-style = red bold normal + plus-style = green bold normal + minus-emph-style = white bold red + minus-non-emph-style = red bold normal + plus-emph-style = white bold green + plus-non-emph-style = green bold normal + file-style = yellow bold none + file-decoration-style = yellow box + hunk-header-style = magenta bold + hunk-header-decoration-style = magenta box + minus-empty-line-marker-style = normal normal + plus-empty-line-marker-style = normal normal + line-numbers-right-format = "{np:^4}│ " +# [github] + # user = lissy93 + # token = token +[gitflow "prefix"] + versiontag = v +[sequence] + editor = interactive-rebase-tool +[alias] + a = add --all + ai = add -i + ############# + ap = apply + as = apply --stat + ac = apply --check + ############# + ama = am --abort + amr = am --resolved + ams = am --skip + ############# + b = branch + ba = branch -a + bd = branch -d + bdd = branch -D + br = branch -r + bc = rev-parse --abbrev-ref HEAD + bu = !git rev-parse --abbrev-ref --symbolic-full-name "@{u}" + bs = !git-branch-status + ############# + c = commit + ca = commit -a + cm = commit -m + cam = commit -am + cem = commit --allow-empty -m + cd = commit --amend + cad = commit -a --amend + ced = commit --allow-empty --amend + ############# + cl = clone + cld = clone --depth 1 + clg = !sh -c 'git clone git://github.com/$1 $(basename $1)' - + clgp = !sh -c 'git clone git@github.com:$1 $(basename $1)' - + clgu = !sh -c 'git clone git@github.com:$(git config --get user.username)/$1 $1' - + ############# + cp = cherry-pick + cpa = cherry-pick --abort + cpc = cherry-pick --continue + ############# + d = diff + dp = diff --patience + dc = diff --cached + dk = diff --check + dck = diff --cached --check + dt = difftool + dct = difftool --cached + ############# + f = fetch + fo = fetch origin + fu = fetch upstream + ############# + fp = format-patch + ############# + fk = fsck + ############# + g = grep -p + ############# + l = log --oneline + lg = log --oneline --graph --decorate + ############# + ls = ls-files + lsf = !git ls-files | grep -i + ############# + m = merge + ma = merge --abort + mc = merge --continue + ms = merge --skip + ############# + o = checkout + om = checkout master + ob = checkout -b + opr = !sh -c 'git fo pull/$1/head:pr-$1 && git o pr-$1' + ############# + pr = prune -v + ############# + ps = push + psf = push -f + psu = push -u + pst = push --tags + ############# + pso = push origin + psao = push --all origin + psfo = push -f origin + psuo = push -u origin + ############# + psom = push origin master + psaom = push --all origin master + psfom = push -f origin master + psuom = push -u origin master + psoc = !git push origin $(git bc) + psaoc = !git push --all origin $(git bc) + psfoc = !git push -f origin $(git bc) + psuoc = !git push -u origin $(git bc) + psdc = !git push origin :$(git bc) + ############# + pl = pull + pb = pull --rebase + ############# + plo = pull origin + pbo = pull --rebase origin + plom = pull origin master + ploc = !git pull origin $(git bc) + pbom = pull --rebase origin master + pboc = !git pull --rebase origin $(git bc) + ############# + plu = pull upstream + plum = pull upstream master + pluc = !git pull upstream $(git bc) + pbum = pull --rebase upstream master + pbuc = !git pull --rebase upstream $(git bc) + ############# + rb = rebase + rba = rebase --abort + rbc = rebase --continue + rbi = rebase --interactive + rbs = rebase --skip + ############# + re = reset + rh = reset HEAD + reh = reset --hard + rem = reset --mixed + res = reset --soft + rehh = reset --hard HEAD + remh = reset --mixed HEAD + resh = reset --soft HEAD + rehom = reset --hard origin/master + ############# + r = remote + ra = remote add + rr = remote rm + rv = remote -v + rn = remote rename + rp = remote prune + rs = remote show + rao = remote add origin + rau = remote add upstream + rro = remote remove origin + rru = remote remove upstream + rso = remote show origin + rsu = remote show upstream + rpo = remote prune origin + rpu = remote prune upstream + ############# + rmf = rm -f + rmrf = rm -r -f + ############# + s = status + sb = status -s -b + ############# + sa = stash apply + sc = stash clear + sd = stash drop + sl = stash list + sp = stash pop + ss = stash save + ssk = stash save -k + sw = stash show + st = !git stash list | wc -l 2>/dev/null | grep -oEi '[0-9][0-9]*' + ############# + t = tag + td = tag -d + ############# + w = show + wp = show -p + wr = show -p --no-color + ############# + svnr = svn rebase + svnd = svn dcommit + svnl = svn log --oneline --show-commit + ############# + subadd = !sh -c 'git submodule add git://github.com/$1 $2/$(basename $1)' - + subrm = !sh -c 'git submodule deinit -f -- $1 && rm -rf .git/modules/$1 && git rm -f $1' - + subup = submodule update --init --recursive + subpull = !git submodule foreach git pull --tags -f origin master + ############# + assume = update-index --assume-unchanged + unassume = update-index --no-assume-unchanged + assumed = !git ls -v | grep ^h | cut -c 3- + unassumeall = !git assumed | xargs git unassume + assumeall = !git status -s | awk {'print $2'} | xargs git assume + ############# + bump = !sh -c 'git commit -am \"Version bump v$1\" && git psuoc && git release $1' - + release = !sh -c 'git tag v$1 && git pst' - + unrelease = !sh -c 'git tag -d v$1 && git pso :v$1' - + merged = !sh -c 'git o master && git plom && git bd $1 && git rpo' - + aliases = !git config -l | grep alias | cut -c 7- + snap = !git stash save 'snapshot: $(date)' && git stash apply 'stash@{0}' + bare = !sh -c 'git symbolic-ref HEAD refs/heads/$1 && git rm --cached -r . && git clean -xfd' - + whois = !sh -c 'git log -i -1 --author=\"$1\" --pretty=\"format:%an <%ae>\"' - + serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git + ############# + behind = !git rev-list --left-only --count $(git bu)...HEAD + ahead = !git rev-list --right-only --count $(git bu)...HEAD + ############# + ours = "!f() { git checkout --ours $@ && git add $@; }; f" + theirs = "!f() { git checkout --theirs $@ && git add $@; }; f" + subrepo = !sh -c 'git filter-branch --prune-empty --subdirectory-filter $1 master' - + human = name-rev --name-only --refs=refs/heads/* +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true +[difftool "sourcetree"] + cmd = opendiff \"$LOCAL\" \"$REMOTE\" + path = +[mergetool "sourcetree"] + cmd = /Users/alicia/Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\" + trustExitCode = true +[remote "origin"] + url = https://github.com/Homebrew/brew + fetch = +refs/heads/*:refs/remotes/origin/* +[homebrew] + analyticsmessage = true + caskanalyticsmessage = true diff --git a/config/.gitignore_global b/config/.gitignore_global new file mode 100644 index 0000000..560df01 --- /dev/null +++ b/config/.gitignore_global @@ -0,0 +1,37 @@ + +# Linux +*~ +.fuse_hidden* +.directory +.Trash-* +.nfs* + +# MacOS +.DS_Store +.AppleDouble +.LSOverride +Icon +._* +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk +*.icloud + +# Windows +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db +*.stackdump +[Dd]esktop.ini +$RECYCLE.BIN/ +*.lnk diff --git a/config/.wgetrc b/config/.wgetrc new file mode 100644 index 0000000..98a8c54 --- /dev/null +++ b/config/.wgetrc @@ -0,0 +1,35 @@ +# Use the server-provided last modification date, if available +timestamping = on + +# Do not go up in the directory structure when downloading recursively +no_parent = on + +# Wait 60 seconds before timing out (DNS, connect and read) +timeout = 60 + +# Retry a few times when a download fails, but don’t overdo it +tries = 3 + +# Retry even when the connection was refused +retry_connrefused = on + +# Use the last component of a redirection URL for the local file name +trust_server_names = on + +# Follow FTP links from HTML documents by default +follow_ftp = on + +# Add extensions when missing, based on header type (e.g. text/html --> .html) +adjust_extension = on + +# Use UTF-8 as the default system encoding +#local_encoding = UTF-8 + +# Ignore `robots.txt` and `` +robots = off + +# Print the HTTP and FTP server responses +server_response = on + +# Disguise as IE 9 on Windows 7 +user_agent = Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) diff --git a/config/README.txt b/config/README.txt new file mode 100644 index 0000000..53ec785 --- /dev/null +++ b/config/README.txt @@ -0,0 +1,6 @@ +The config directory stores configuration files for various apps, utils and systems. + +Generic configs which are used across all systems (e.g. .gitconfig, .bashrc, .wgetrc) +are stored in the root of the config directory, whereas files which are only used on +certain systems (like MacOS) or by certain applications (like Firefox's user.js) are +kept in category-specific directories (e.g. macos, desktop-apps, etc). diff --git a/system-specific/macos/app-configs/skhdrc b/config/desktop-apps/ thunderbird.user.js similarity index 100% rename from system-specific/macos/app-configs/skhdrc rename to config/desktop-apps/ thunderbird.user.js diff --git a/config/desktop-apps/firefox.user.js b/config/desktop-apps/firefox.user.js new file mode 100644 index 0000000..e69de29 diff --git a/config/dnscrypt-proxy.toml b/config/dnscrypt-proxy.toml new file mode 100644 index 0000000..8c5c2a3 --- /dev/null +++ b/config/dnscrypt-proxy.toml @@ -0,0 +1,71 @@ +# https://github.com/drduh/config/blob/master/dnscrypt-proxy.toml +# https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml +#user_name = '_dnscrypt-proxy' +#server_names = ['quad9'] +#server_names = ['abc'] +listen_addresses = ['127.0.0.1:4200'] +max_clients = 250 +ipv4_servers = true +ipv6_servers = false +block_ipv6 = true +block_unqualified = true +block_undelegated = true +reject_ttl = 3600 +force_tcp = false +timeout = 4000 +keepalive = 60 +cert_refresh_delay = 240 +dnscrypt_ephemeral_keys = true +tls_disable_session_tickets = true +tls_cipher_suite = [52393] # TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 +fallback_resolvers = ['9.9.9.9:53', '8.8.8.8:53'] +ignore_system_dns = false +netprobe_timeout = 30 +cache = true +cache_size = 4096 +cache_min_ttl = 600 +cache_max_ttl = 86400 +cache_neg_min_ttl = 60 +cache_neg_max_ttl = 600 +forwarding_rules = 'forwarding-rules.txt' +log_level = 2 +log_file = 'dnscrypt.log' +log_files_max_size = 10 +log_files_max_age = 7 +log_files_max_backups = 1 +[query_log] + file = 'query.log' +[nx_log] + file = 'nx.log' +[blocked_names] + blocked_names_file = 'blocklist.txt' + log_file = 'blocked.log' +[blocked_ips] + blocked_ips_file = 'ip-blocklist.txt' + log_file = 'ip-blocked.log' +#[allowed_names] +# allowed_names_file = 'allowed.txt' +# log_file = 'allowed-names.log' +#[sources] +# [sources.'public-resolvers'] +# urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md'] +# cache_file = 'public-resolvers.md' +# minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' +# prefix = '' +# [sources.'relays'] +# urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/relays.md', +# 'https://download.dnscrypt.info/resolvers-list/v2/relays.md'] +# cache_file = 'relays.md' +# minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' +# refresh_delay = 72 +# prefix = '' + # [sources.quad9-resolvers] + # urls = ['https://www.quad9.net/quad9-resolvers.md'] + # minisign_key = 'RWQBphd2+f6eiAqBsvDZEBXBGHQBJfeG6G+wJPPKxCZMoEQYpmoysKUN' + # cache_file = 'quad9-resolvers.md' + # prefix = 'quad9-' +#[static] +# [static.'quad9'] +# stamp = 'sdns://AQMAAAAAAAAAEjE0OS4xMTIuMTEyLjk6ODQ0MyBnyEe4yHWM0SAkVUO-dWdG3zTfHYTAC4xHA2jfgh2GPhkyLmRuc2NyeXB0LWNlcnQucXVhZDkubmV0' +# [static.'abc'] +# stamp = 'sdns://AAAAA...' diff --git a/config/gpg.conf b/config/gpg.conf new file mode 100644 index 0000000..cc38b75 --- /dev/null +++ b/config/gpg.conf @@ -0,0 +1,86 @@ + + +# https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html +# https://www.gnupg.org/documentation/manuals/gnupg/GPG-Esoteric-Options.html + +# Use AES256, 192, or 128 as cipher +personal-cipher-preferences AES256 AES192 AES + +# Use SHA512, 384, or 256 as digest +personal-digest-preferences SHA512 SHA384 SHA256 + +# Use ZLIB, BZIP2, ZIP, or no compression +personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed + +# Default preferences for new keys +default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed + +# SHA512 as digest to sign keys +cert-digest-algo SHA512 + +# SHA512 as digest for symmetric ops +s2k-digest-algo SHA512 + +# AES256 as cipher for symmetric ops +s2k-cipher-algo AES256 + +# UTF-8 support for compatibility +charset utf-8 + +# Show Unix timestamps +fixed-list-mode + +# No comments in signature +no-comments + +# No version in output +no-emit-version + +# Disable banner +no-greeting + +# Long hexidecimal key format +keyid-format 0xlong + +# Display UID validity +list-options show-uid-validity +verify-options show-uid-validity + +# Display all keys and their fingerprints +with-fingerprint + +# Display key origins and updates +#with-key-origin +# Cross-certify subkeys are present and valid +require-cross-certification + +# Disable caching of passphrase for symmetrical ops +no-symkey-cache + +# Enable smartcard +use-agent + +# Disable recipient key ID in messages +throw-keyids + +# Default/trusted key ID to use (helpful with throw-keyids) +#default-key 0xFF3E7D88647EBCDB +#trusted-key 0xFF3E7D88647EBCDB + +# Group recipient keys (preferred ID last) +#group keygroup = 0xFF00000000000001 0xFF00000000000002 0xFF3E7D88647EBCDB + +# Keyserver URL +#keyserver hkps://keys.openpgp.org +#keyserver hkps://keyserver.ubuntu.com:443 +#keyserver hkps://hkps.pool.sks-keyservers.net +#keyserver hkps://pgp.ocf.berkeley.edu + +# Proxy to use for keyservers +#keyserver-options http-proxy=http://127.0.0.1:8118 +#keyserver-options http-proxy=socks5-hostname://127.0.0.1:9050 + +# Verbose output +#verbose +# Show expired subkeys +#list-options show-unusable-subkeys diff --git a/system-specific/macos/app-configs/.finicky.js b/config/macos/.finicky.js similarity index 100% rename from system-specific/macos/app-configs/.finicky.js rename to config/macos/.finicky.js diff --git a/system-specific/macos/app-configs/launchpad.yml b/config/macos/launchpad.yml similarity index 83% rename from system-specific/macos/app-configs/launchpad.yml rename to config/macos/launchpad.yml index d6afc29..26471e4 100644 --- a/system-specific/macos/app-configs/launchpad.yml +++ b/config/macos/launchpad.yml @@ -1,14 +1,3 @@ -###################################################################### -# MacOS App Launchpad Layout # -###################################################################### -# Specifies the folder layout and app order within OSX Launchpad # -# Useful for setting up fresh systems quickly after installing apps # -# Intended for use with lporg, run: brew install blacktop/tap/lporg # -# To restore launchpad layout with lporg, run: lporg load [file] # -# # -# Licensed under MIT (C) Alicia Sykes 2022 # -###################################################################### - apps: pages: - number: 1 @@ -93,41 +82,42 @@ apps: - LinearMouse - Übersicht - MacForge + - QLMarkdown - folder: Other pages: - number: 1 items: + - Shortcuts + - QuickTime Player + - TextEdit + - Grapher + - Time Machine + - Font Book + - Chess + - Stickies + - Image Capture + - VoiceOver Utility + - AirPort Utility + - Migration Assistant - Terminal - Activity Monitor - - Automator - - TextEdit - - System Information + - Console - Keychain Access + - System Information + - Automator - Script Editor - Disk Utility - - Console + - Digital Color Meter + - ColorSync Utility - Screenshot + - Bluetooth File Exchange + - Audio MIDI Setup - Calculator - System Preferences - Simulator - TestFlight - Developer - - Time Machine - Dictionary - - Stickies - - Shortcuts - - Grapher - - Digital Color Meter - - ColorSync Utility - - Font Book - - Chess - - Audio MIDI Setup - - Image Capture - - VoiceOver Utility - - Bluetooth File Exchange - - AirPort Utility - - Migration Assistant - - QuickTime Player - VMware Fusion Tech Preview - Jabra Direct - CotEditor diff --git a/config/macos/skhdrc b/config/macos/skhdrc new file mode 100644 index 0000000..e69de29 diff --git a/system-specific/macos/app-configs/yabairc b/config/macos/yabairc similarity index 100% rename from system-specific/macos/app-configs/yabairc rename to config/macos/yabairc diff --git a/installs/Brewfile b/scripts/installs/Brewfile similarity index 91% rename from installs/Brewfile rename to scripts/installs/Brewfile index 3ea5b57..fae6f94 100644 --- a/installs/Brewfile +++ b/scripts/installs/Brewfile @@ -42,13 +42,16 @@ brew 'diff-so-fancy'# Readable file compares (better diff) brew 'duf' # Get info on mounted disks (better df) brew 'entr' # Run command whenever file changes brew 'exa' # Listing files with info (better ls) +brew 'exiftool' # Read, write and modify exif data brew 'fzf' # Fuzzy file finder and filtering brew 'hyperfine' # Benchmarking for arbitrary commands +brew 'jdupes' # Duplicate file finder brew 'just' # Powerful command runner (better make) brew 'jq' # JSON parser, output and query files brew 'most' # Multi-window scroll pager (better less) brew 'procs' # Advanced process viewer (better ps) brew 'ripgrep' # Searching within files (better grep) +brew 'rsync' # Fast incremental file transfer brew 'scc' # Count lines of code (better cloc) brew 'sd' # RegEx find and replace (better sed) brew 'thefuck' # Auto-correct miss-typed commands @@ -111,11 +114,9 @@ brew 'gradle' # Build automation for Java cask 'iterm2' # Better terminal emulator cask 'postman' # HTTP API testing app cask 'sourcetree' # Git visual client -cask 'utm' # VM management console cask 'visual-studio-code' # Code editor # Development Langs, Compilers, Package Managers and SDKs -brew 'docker' # Containers brew 'gcc' # GNU C++ compilers brew 'go' # Compiler for Go Lang brew 'lua' # Lua interpreter @@ -127,6 +128,10 @@ brew 'python' # Python interpriter brew 'rust' # Rust language cask 'android-sdk' # Android software dev kit +# DevOps +brew 'ansible' # Automation +brew 'docker' # Containers + # Development Utils brew 'gh' # Interact with GitHub PRs, issues, repos brew 'git-extras' # Extra git commands for common tasks @@ -148,6 +153,7 @@ cask 'wireshark' # Network analyzer + packet capture # Security Utilities brew 'bcrypt' # Encryption utility, using blowfish brew 'clamav' # Open source virus scanning suite +brew 'dnscrypt-proxy' # Proxy for using encrypted DNS cask 'gpg-suite' # PGP encryption for emails and files brew 'git-crypt' # Transparent encryption for git repos brew 'lynis' # Scan system for common security issues @@ -202,17 +208,16 @@ cask 'font-inconsolata' cask 'font-meslo-lg-nerd-font' # Mac OS Quick-Look Plugins -cask 'qlcolorcode' # QL for code with highlighting -cask 'qlimagesize' # QL for size info for images -cask 'qlmarkdown' # QL for markdown files -cask 'qlprettypatch' # QL for patch / diff files -cask 'qlstephen' # QL for dev text files -cask 'qlvideo' # QL for video formats -cask 'quicklook-csv' # QL for tables in CSV format -cask 'quicklook-json', args: { require_sha: false } # QL for JSON, with trees -cask 'quicklookapk', args: { require_sha: false } # QL for Android APKs -cask 'suspicious-package', args: { require_sha: false } # QL for OSX app installers -cask 'webpquicklook', args: { require_sha: false } # QL for WebP image files +cask 'qlcolorcode' # QL for code with highlighting +cask 'qlimagesize' # QL for size info for images +cask 'qlmarkdown' # QL for markdown files +cask 'qlprettypatch' # QL for patch / diff files +cask 'qlstephen' # QL for dev text files +cask 'qlvideo' # QL for video formats +cask 'quicklook-csv' # QL for tables in CSV format +cask 'quicklook-json', args: { require_sha: false } # QL for JSON, with trees +cask 'quicklookapk', args: { require_sha: false } # QL for Android APKs +cask 'webpquicklook', args: { require_sha: false } # QL for WebP image files # Mac OS Mods and Imrovments cask 'alt-tab' # Much better alt-tab window switcher @@ -228,6 +233,7 @@ cask 'mjolnir' # Util for loading Lua automations cask 'openinterminal' # Finder button, opens directory in terminal cask 'popclip' # Popup options for text on highlight cask 'raycast', args: { require_sha: false } # Spotlight alternative +cask 'santa' # Binary authorization for security cask 'shottr' # Better screenshot utility brew 'skhd' # Hotkey daemon for macOS cask 'stats' # System resource usage in menubar diff --git a/installs/arch-pacman.sh b/scripts/installs/arch-pacman.sh similarity index 100% rename from installs/arch-pacman.sh rename to scripts/installs/arch-pacman.sh diff --git a/installs/flatpak.sh b/scripts/installs/flatpak.sh similarity index 100% rename from installs/flatpak.sh rename to scripts/installs/flatpak.sh diff --git a/installs/windows.sh b/scripts/installs/windows.sh similarity index 100% rename from installs/windows.sh rename to scripts/installs/windows.sh diff --git a/system-specific/macos/.macos b/scripts/macos-setup/.macos similarity index 94% rename from system-specific/macos/.macos rename to scripts/macos-setup/.macos index 92bf1c3..7e06c01 100755 --- a/system-specific/macos/.macos +++ b/scripts/macos-setup/.macos @@ -21,7 +21,7 @@ if [ ! -z $0 ]; then # Use local files done else # Run from remote origin REMOTE_DIR="https://raw.githubusercontent.com/Lissy93/dotfiles" - REMOTE_DIR+="/master/system-specific/macos/system-settings" + REMOTE_DIR+="/master/scripts/macos-setup" for mac_script in ${macos_scripts[@]}; do bash <(curl -s "${REMOTE_DIR}/${mac_script}") done diff --git a/system-specific/macos/system-settings/macos-apps.sh b/scripts/macos-setup/macos-apps.sh similarity index 100% rename from system-specific/macos/system-settings/macos-apps.sh rename to scripts/macos-setup/macos-apps.sh diff --git a/system-specific/macos/system-settings/macos-preferences.sh b/scripts/macos-setup/macos-preferences.sh similarity index 100% rename from system-specific/macos/system-settings/macos-preferences.sh rename to scripts/macos-setup/macos-preferences.sh diff --git a/system-specific/macos/system-settings/macos-security.sh b/scripts/macos-setup/macos-security.sh similarity index 100% rename from system-specific/macos/system-settings/macos-security.sh rename to scripts/macos-setup/macos-security.sh diff --git a/symlinks.yaml b/symlinks.yaml index 5dca57a..3232a1e 100644 --- a/symlinks.yaml +++ b/symlinks.yaml @@ -9,32 +9,41 @@ # Before symlinking, source .zshenv in order to set XDG variables - description: Set XDG environmental variables command: source ./zsh/.zshenv + +# Symlink locations for files / directories - link: - ~/.zshenv: - path: zsh/.zshenv - force: true + # Essential configs (ZSH, Vim, Tmux) + ~/.zshenv: { path: zsh/.zshenv, force: true } ${XDG_CONFIG_HOME}/zsh: zsh ${XDG_CONFIG_HOME}/vim: vim ${XDG_CONFIG_HOME}/nvim: vim - ${XDG_CONFIG_HOME}/bash: bash - ${XDG_DATA_HOME}/tmux/plugins/tpm: tpm - ${XDG_CONFIG_HOME}/tmux/tmux.conf: tmux/tmux.conf + ${XDG_CONFIG_HOME}/tmux: tmux + ${XDG_DATA_HOME}/tmux/plugins/tpm: lib/tpm + + # Utility config files + ${XDG_CONFIG_HOME}/bash/.bashrc: config/.bashrc + ${XDG_CONFIG_HOME}/git/.gitconfig: config/.gitconfig + ${XDG_CONFIG_HOME}/.gitignore_global: config/.gitignore_global + ${XDG_CONFIG_HOME}/.wgetrc: config/.wgetrc + + # Bash utils ${XDG_CONFIG_HOME}/utils: utils - ${XDG_CONFIG_HOME}/git/.gitconfig: configs/.gitconfig - ${XDG_CONFIG_HOME}/.gitignore_global: configs/.gitignore_global - $XDG_CONFIG_HOME/yabai/yabairc: + + # MacOS-Only + ${XDG_CONFIG_HOME}/yabai/yabairc: if: '[ `uname` = Darwin ]' - path: system-specific/macos/app-configs/yabairc - $XDG_CONFIG_HOME/skhd/skhdrc: + path: config/macos/yabairc + ${XDG_CONFIG_HOME}/skhd/skhdrc: if: '[ `uname` = Darwin ]' - path: system-specific/macos/app-configs/skhdrc + path: config/macos/skhdrc ~/.Brewfile: if: '[ `uname` = Darwin ]' - path: installs/Brewfile + path: scripts/installs/Brewfile ~/.finicky.js: if: '[ `uname` = Darwin ]' - path: system-specific/macos/app-configs/.finicky.js + path: config/macos/.finicky.js +# If not already present, create home directories - create: - ~/Downloads - ~/Documents