diff --git a/.github/README.md b/.github/README.md index 84e3144..00ad972 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,8 +1,11 @@

~/.Dotfiles

-

$HOME, sweet $HOME

My dotfiles for configuring literally everything (automatically!)

-

- +

+ + + +

+

$HOME, sweet $HOME

## Contents - [Introduction to Dotfiles](#intro) @@ -17,6 +20,7 @@ - [Directory Structure](#directory-structure) - [Install Script](#install-script) - [Configuring](#configuring) + - [Colors](#color-theme) - [Aliases](#aliases) - [Packages](#packages) - [System Preferences](#system-preferences) @@ -148,6 +152,8 @@ There's even more to check out at [webpro/awesome-dotfiles](https://github.com/w ## My Dotfiles +

+ ### Setup > **Warning** @@ -267,6 +273,10 @@ The locations for all symlinks are defined in [`symlinks.yaml`](https://github.c --- +## Color Theme + +--- + ### Aliases #### Into to Aliases diff --git a/.github/logo.png b/.github/logo.png new file mode 100644 index 0000000..725f23d Binary files /dev/null and b/.github/logo.png differ diff --git a/Dockerfile b/Dockerfile index e76a060..10d367d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,18 +50,18 @@ RUN \ COPY ./ /home/${user}/.userspace/ +ENV DOTFILES_DIR="/home/${user}/.dotfiles" + RUN \ - git clone --recursive https://${vcsprovider}/${vcsowner}/${dotfiles} /home/${user}/.dotfiles && \ + git clone --recursive https://${vcsprovider}/${vcsowner}/${dotfiles} ${DOTFILES_DIR} && \ chown -R ${user}:${group} /home/${user}/.dotfiles && \ chown -R ${user}:${group} /home/${user}/.userspace -ENV DOTFILES_DIR="$HOME/.dotfiles" - -RUN chmod u+x /home/${user}/.dotfiles/install.sh +RUN chmod u+x "${DOTFILES_DIR}/install.sh" USER ${user} -RUN cd $HOME/.dotfiles && ./install.sh --auto-yes +RUN cd $DOTFILES_DIR && $DOTFILES_DIR/install.sh --auto-yes ENV HISTFILE=/home/${user}/.cache/.zsh_history diff --git a/config/README.txt b/config/README.txt index 06a2a99..e2f0854 100644 --- a/config/README.txt +++ b/config/README.txt @@ -24,7 +24,9 @@ config 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 +are stored in the root of the config directory, whereas groups of config files, for like +ZSH, Vim, Tmux etc are organized into directories. +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, gnome, etc). @@ -33,5 +35,5 @@ Run the install.sh script to apply settings based on system type and user prefer Important: Take care to read through files thoroughly before applying any changes. -For full documentation, see: https://github.com/Lissy93/dotfiles +Full source and documentation: https://github.com/Lissy93/dotfiles Licensed under MIT (C) Alicia Sykes 2022 diff --git a/config/macos/alicia-term.terminal b/config/macos/alicia-term.terminal new file mode 100644 index 0000000..9cf464e --- /dev/null +++ b/config/macos/alicia-term.terminal @@ -0,0 +1,201 @@ + + columnCount + 90 + name + Alicia-Term + rowCount + 50 + type + Window Settings + ANSIBlackColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDsw + LjEyOTQxMTc3MTg5MzUwMTI4IDAuMTMzMzMzMzQwMjg3MjA4NTYgMC4xNzI1NDkwMjQy + MjQyODEzABACgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNP + YmplY3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYqCipKm0 + vcXI0ePm6wAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADt + + ANSIBlueColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECow + LjUwOTgwMzk1MDc4NjU5MDYgMC42NjY2NjY2ODY1MzQ4ODE2IDEuMAAQAoAC0hAREhNa + JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy + Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA + AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A== + + ANSIBrightBlackColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw + LjMyOTQxMTc3NDg3MzczMzUgMC4zMjk0MTE3NzQ4NzM3MzM1IDAuMzI5NDExNzc0ODcz + NzMzNQAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq + ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD + xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w== + + ANSIBrightBlueColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECow + LjgzOTIxNTY5NTg1ODAwMTcgMC42NzQ1MDk4MjMzMjIyOTYxIDEuMAAQAoAC0hAREhNa + JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy + Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA + AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A== + + ANSIBrightCyanColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEBsw + LjY0MzEzNzI3NjE3MjYzNzkgMS4wIDEuMAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xh + c3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SA + AQgRGiMtMjc7QUhOW2KAgoSJlJ2lqLHDxssAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAA + AAAAAAAAzQ== + + ANSIBrightGreenColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECow + LjQxMTc2NDcxMTE0MTU4NjMgMS4wIDAuNTgwMzkyMTgxODczMzIxNQAQAoAC0hAREhNa + JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy + Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA + AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A== + + ANSIBrightMagentaColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECkx + LjAgMC41NzI1NDkwNDUwODU5MDcgMC44NzQ1MDk4MTE0MDEzNjcyABACgALSEBESE1ok + Y2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJj + aGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYo6Qkpeiq7O2v9HU2QAAAAAAAAEBAAAA + AAAAABkAAAAAAAAAAAAAAAAAAADb + + ANSIBrightRedColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECox + LjAgMC40MzEzNzI1NTMxMTAxMjI3IDAuNDMxMzcyNTUzMTEwMTIyNwAQAoAC0hAREhNa + JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy + Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA + AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A== + + ANSIBrightWhiteColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw + Ljk3MjU0OTAyMTI0NDA0OTEgMC45NzI1NDkwMjEyNDQwNDkxIDAuOTQ5MDE5NjEwODgx + ODA1NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq + ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD + xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w== + + ANSIBrightYellowColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECsx + LjAgMC43OTYwNzg0NDM1MjcyMjE3IDAuNDE5NjA3ODQ3OTI5MDAwODUAEAKAAtIQERIT + WiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRB + cmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltikJKUmaSttbjB09bbAAAAAAAAAQEA + AAAAAAAAGQAAAAAAAAAAAAAAAAAAAN0= + + ANSICyanColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDgw + LjU0NTA5ODA2NjMyOTk1NiAwLjkxMzcyNTQ5NTMzODQzOTkgMC45OTIxNTY4NjMyMTI1 + ODU0ABACgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmpl + Y3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYp2foaaxusLF + zuDj6AAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADq + + ANSIGreenColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDow + LjMxMzcyNTUwMTI5ODkwNDQgMC45ODAzOTIxNTgwMzE0NjM2IDAuNDgyMzUyOTQyMjI4 + MzE3MjYAEAKAAtIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09i + amVjdF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltin6GjqLO8 + xMfQ4uXqAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAOw= + + ANSIMagentaColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDgw + Ljc4MDM5MjE2OTk1MjM5MjYgMC41NzI1NDkwNDUwODU5MDcgMC45MTc2NDcwNjM3MzIx + NDcyABACgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmpl + Y3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYp2foaaxusLF + zuDj6AAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADq + + ANSIRedColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECox + LjAgMC4zMzMzMzMzNDMyNjc0NDA4IDAuMzMzMzMzMzQzMjY3NDQwOAAQAoAC0hAREhNa + JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy + Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA + AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A== + + ANSIWhiteColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw + Ljk3MjU0OTAyMTI0NDA0OTEgMC45NzI1NDkwMjEyNDQwNDkxIDAuOTQ5MDE5NjEwODgx + ODA1NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq + ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD + xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w== + + ANSIYellowColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECsx + LjAgMC43OTYwNzg0NDM1MjcyMjE3IDAuNDE5NjA3ODQ3OTI5MDAwODUAEAKAAtIQERIT + WiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRB + cmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltikJKUmaSttbjB09bbAAAAAAAAAQEA + AAAAAAAAGQAAAAAAAAAAAAAAAAAAAN0= + + BackgroundColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDww + LjEyOTQxMTc3MTg5MzUwMTI4IDAuMTI5NDExNzcxODkzNTAxMjggMC4xMjk0MTE3NzE4 + OTM1MDEyOAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5T + T2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2Kho6Wq + tb7GydLk5+wAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA7g== + + CursorColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDcw + LjkyNTQ5MDIwMDUxOTU2MTggMC45MzcyNTQ5MDU3MDA2ODM2IDAuOTU2ODYyNzQ3NjY5 + MjIAEAKAAtIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVj + dF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltinJ6gpbC5wcTN + 3+LnAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAOk= + + ProfileCurrentVersion + 2.04 + SelectionColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw + Ljk3MjU0OTAyMTI0NDA0OTEgMC45NzI1NDkwMjEyNDQwNDkxIDAuOTQ5MDE5NjEwODgx + ODA1NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq + ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD + xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w== + + TextBoldColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEBgw + Ljk5OTk5NjAwNjQ4ODggMS4wIDEuMAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nl + c1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgR + GiMtMjc7QUhOW2J9f4GGkZqipa7Aw8gAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAA + AAAAyg== + + TextColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw + Ljk3MjU0OTAyMTI0NDA0OTEgMC45NzI1NDkwMjEyNDQwNDkxIDAuOTQ5MDE5NjEwODgx + ODA1NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq + ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD + xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w== + + diff --git a/config/macos/iterm-profile.json b/config/macos/iterm-profile.json new file mode 100644 index 0000000..a27ef35 --- /dev/null +++ b/config/macos/iterm-profile.json @@ -0,0 +1,404 @@ +{ + "Use Non-ASCII Font" : false, + "Tags" : [ + + ], + "Ansi 12 Color" : { + "Red Component" : 0.68235294117647061, + "Color Space" : "sRGB", + "Blue Component" : 0.99215686274509807, + "Alpha Component" : 1, + "Green Component" : 0.9137254901960784 + }, + "Ansi 6 Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Draw Powerline Glyphs" : true, + "Bold Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Normal Font" : "MesloLGS-NF-Regular 13", + "Ansi 0 Color" : { + "Red Component" : 0.27196189528331161, + "Color Space" : "sRGB", + "Blue Component" : 0.612884521484375, + "Alpha Component" : 1, + "Green Component" : 0.35063636161167977 + }, + "Guid" : "264074D8-9D6F-4EDA-9077-4694920535DB", + "Rows" : 25, + "Default Bookmark" : "No", + "Ansi 2 Color" : { + "Red Component" : 0.011764705882352941, + "Color Space" : "sRGB", + "Blue Component" : 0.59607843137254901, + "Alpha Component" : 1, + "Green Component" : 0.97254901960784312 + }, + "Cursor Guide Color" : { + "Red Component" : 0.70213186740875244, + "Color Space" : "sRGB", + "Alpha Component" : 0.25, + "Blue Component" : 1, + "Green Component" : 0.9268307089805603 + }, + "Non-ASCII Anti Aliased" : true, + "Use Bright Bold" : true, + "Ansi 10 Color" : { + "Red Component" : 0.59999999999999998, + "Color Space" : "sRGB", + "Blue Component" : 0.83921568627450982, + "Alpha Component" : 1, + "Green Component" : 0.99607843137254903 + }, + "Ambiguous Double Width" : false, + "Jobs to Ignore" : [ + "rlogin", + "ssh", + "slogin", + "telnet" + ], + "Ansi 15 Color" : { + "Red Component" : 1, + "Color Space" : "sRGB", + "Blue Component" : 1, + "Alpha Component" : 1, + "Green Component" : 1 + }, + "Foreground Color" : { + "Red Component" : 0.79607844352722168, + "Color Space" : "sRGB", + "Alpha Component" : 1, + "Blue Component" : 0.90588235855102539, + "Green Component" : 0.88100153207778931 + }, + "Working Directory" : "\/Users\/alicia", + "Blinking Cursor" : false, + "Disable Window Resizing" : true, + "Sync Title" : false, + "Prompt Before Closing 2" : false, + "BM Growl" : true, + "Command" : "", + "Description" : "Default", + "Mouse Reporting" : true, + "Screen" : -1, + "Selection Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Only The Default BG Color Uses Transparency" : true, + "Columns" : 80, + "Idle Code" : 0, + "Ansi 13 Color" : { + "Red Component" : 0.82745098039215681, + "Color Space" : "sRGB", + "Blue Component" : 1, + "Alpha Component" : 1, + "Green Component" : 0.7686274509803922 + }, + "Custom Command" : "No", + "ASCII Anti Aliased" : true, + "Non Ascii Font" : "Monaco 12", + "Vertical Spacing" : 1, + "Use Bold Font" : true, + "Option Key Sends" : 0, + "Selected Text Color" : { + "Red Component" : 0.078431372549019607, + "Color Space" : "sRGB", + "Blue Component" : 0.20000000000000001, + "Alpha Component" : 1, + "Green Component" : 0.10588235294117647 + }, + "Background Color" : { + "Red Component" : 0.043137254901960784, + "Color Space" : "sRGB", + "Blue Component" : 0.12941176470588237, + "Alpha Component" : 1, + "Green Component" : 0.062745098039215685 + }, + "Character Encoding" : 4, + "Ansi 11 Color" : { + "Red Component" : 0.96862745098039216, + "Color Space" : "sRGB", + "Blue Component" : 0.63137254901960782, + "Alpha Component" : 1, + "Green Component" : 0.96078431372549022 + }, + "Use Italic Font" : true, + "Unlimited Scrollback" : false, + "Keyboard Map" : { + "0xf700-0x260000" : { + "Action" : 10, + "Text" : "[1;6A" + }, + "0x37-0x40000" : { + "Action" : 11, + "Text" : "0x1f" + }, + "0x32-0x40000" : { + "Action" : 11, + "Text" : "0x00" + }, + "0xf709-0x20000" : { + "Action" : 10, + "Text" : "[17;2~" + }, + "0xf70c-0x20000" : { + "Action" : 10, + "Text" : "[20;2~" + }, + "0xf729-0x20000" : { + "Action" : 10, + "Text" : "[1;2H" + }, + "0xf72b-0x40000" : { + "Action" : 10, + "Text" : "[1;5F" + }, + "0xf705-0x20000" : { + "Action" : 10, + "Text" : "[1;2Q" + }, + "0xf703-0x260000" : { + "Action" : 10, + "Text" : "[1;6C" + }, + "0xf700-0x220000" : { + "Action" : 10, + "Text" : "[1;2A" + }, + "0xf701-0x280000" : { + "Action" : 11, + "Text" : "0x1b 0x1b 0x5b 0x42" + }, + "0x38-0x40000" : { + "Action" : 11, + "Text" : "0x7f" + }, + "0x33-0x40000" : { + "Action" : 11, + "Text" : "0x1b" + }, + "0xf703-0x220000" : { + "Action" : 10, + "Text" : "[1;2C" + }, + "0xf701-0x240000" : { + "Action" : 10, + "Text" : "[1;5B" + }, + "0xf70d-0x20000" : { + "Action" : 10, + "Text" : "[21;2~" + }, + "0xf702-0x260000" : { + "Action" : 10, + "Text" : "[1;6D" + }, + "0xf729-0x40000" : { + "Action" : 10, + "Text" : "[1;5H" + }, + "0xf706-0x20000" : { + "Action" : 10, + "Text" : "[1;2R" + }, + "0x34-0x40000" : { + "Action" : 11, + "Text" : "0x1c" + }, + "0xf700-0x280000" : { + "Action" : 11, + "Text" : "0x1b 0x1b 0x5b 0x41" + }, + "0x2d-0x40000" : { + "Action" : 11, + "Text" : "0x1f" + }, + "0xf70e-0x20000" : { + "Action" : 10, + "Text" : "[23;2~" + }, + "0xf702-0x220000" : { + "Action" : 10, + "Text" : "[1;2D" + }, + "0xf703-0x280000" : { + "Action" : 11, + "Text" : "0x1b 0x1b 0x5b 0x43" + }, + "0xf700-0x240000" : { + "Action" : 10, + "Text" : "[1;5A" + }, + "0xf707-0x20000" : { + "Action" : 10, + "Text" : "[1;2S" + }, + "0xf70a-0x20000" : { + "Action" : 10, + "Text" : "[18;2~" + }, + "0x35-0x40000" : { + "Action" : 11, + "Text" : "0x1d" + }, + "0xf70f-0x20000" : { + "Action" : 10, + "Text" : "[24;2~" + }, + "0xf703-0x240000" : { + "Action" : 10, + "Text" : "[1;5C" + }, + "0xf701-0x260000" : { + "Action" : 10, + "Text" : "[1;6B" + }, + "0xf702-0x280000" : { + "Action" : 11, + "Text" : "0x1b 0x1b 0x5b 0x44" + }, + "0xf72b-0x20000" : { + "Action" : 10, + "Text" : "[1;2F" + }, + "0x36-0x40000" : { + "Action" : 11, + "Text" : "0x1e" + }, + "0xf708-0x20000" : { + "Action" : 10, + "Text" : "[15;2~" + }, + "0xf701-0x220000" : { + "Action" : 10, + "Text" : "[1;2B" + }, + "0xf70b-0x20000" : { + "Action" : 10, + "Text" : "[19;2~" + }, + "0xf702-0x240000" : { + "Action" : 10, + "Text" : "[1;5D" + }, + "0xf704-0x20000" : { + "Action" : 10, + "Text" : "[1;2P" + } + }, + "Window Type" : 0, + "Blur Radius" : 14.887632978723405, + "Background Image Location" : "", + "Blur" : true, + "Badge Color" : { + "Red Component" : 1, + "Color Space" : "sRGB", + "Alpha Component" : 0.5, + "Blue Component" : 0, + "Green Component" : 0.1491314172744751 + }, + "Scrollback Lines" : 20000, + "Send Code When Idle" : false, + "Close Sessions On End" : true, + "Terminal Type" : "xterm-256color", + "Visual Bell" : true, + "Flashing Bell" : false, + "Silence Bell" : false, + "Ansi 14 Color" : { + "Red Component" : 0.52156862745098043, + "Color Space" : "sRGB", + "Blue Component" : 0.94509803921568625, + "Alpha Component" : 1, + "Green Component" : 1 + }, + "Name" : "Alicia", + "Cursor Text Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Minimum Contrast" : 0, + "Shortcut" : "A", + "Cursor Color" : { + "Red Component" : 0.9843137264251709, + "Color Space" : "sRGB", + "Alpha Component" : 1, + "Blue Component" : 0.98823529481887817, + "Green Component" : 0.98823529481887817 + }, + "Transparency" : 0.055427194148936168, + "Ansi 1 Color" : { + "Red Component" : 0.97254901960784312, + "Color Space" : "sRGB", + "Blue Component" : 0.38823529411764707, + "Alpha Component" : 1, + "Green Component" : 0.011764705882352941 + }, + "Custom Directory" : "No", + "Link Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Horizontal Spacing" : 1, + "Right Option Key Sends" : 0, + "Ansi 3 Color" : { + "Red Component" : 0.92549019607843142, + "Color Space" : "sRGB", + "Blue Component" : 0.082352941176470587, + "Alpha Component" : 1, + "Green Component" : 0.90588235294117647 + }, + "Ansi 7 Color" : { + "Red Component" : 0.873565673828125, + "Color Space" : "sRGB", + "Blue Component" : 0.873565673828125, + "Alpha Component" : 1, + "Green Component" : 0.873565673828125 + }, + "Ansi 8 Color" : { + "Red Component" : 0.59607843137254901, + "Color Space" : "sRGB", + "Blue Component" : 0.59607843137254901, + "Alpha Component" : 1, + "Green Component" : 0.59607843137254901 + }, + "Ansi 9 Color" : { + "Red Component" : 0.99215686274509807, + "Color Space" : "sRGB", + "Blue Component" : 0.59999999999999998, + "Alpha Component" : 1, + "Green Component" : 0.34901960784313724 + }, + "Ansi 4 Color" : { + "Red Component" : 0.20784313725490197, + "Color Space" : "sRGB", + "Blue Component" : 0.98039215686274506, + "Alpha Component" : 1, + "Green Component" : 0.78823529411764703 + }, + "Ansi 5 Color" : { + "Red Component" : 0.56470590829849243, + "Color Space" : "sRGB", + "Alpha Component" : 1, + "Blue Component" : 1, + "Green Component" : 0.42352941632270813 + } +} \ No newline at end of file diff --git a/config/macos/iterm-shell-integration.zsh b/config/macos/iterm-shell-integration.zsh new file mode 100755 index 0000000..898e9ea --- /dev/null +++ b/config/macos/iterm-shell-integration.zsh @@ -0,0 +1,181 @@ +# Downloaded from: +# https://raw.githubusercontent.com/gnachman/iTerm2/v3.4.17/Resources/shell_integration/iterm2_shell_integration.zsh + +# This 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 2 +# of the License, or (at your option) any later version. +# +# This 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. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +if [[ -o interactive ]]; then + if [ "${ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX-}""$TERM" != "tmux-256color" -a "${ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX-}""$TERM" != "screen" -a "${ITERM_SHELL_INTEGRATION_INSTALLED-}" = "" -a "$TERM" != linux -a "$TERM" != dumb ]; then + ITERM_SHELL_INTEGRATION_INSTALLED=Yes + ITERM2_SHOULD_DECORATE_PROMPT="1" + # Indicates start of command output. Runs just before command executes. + iterm2_before_cmd_executes() { + if [ "$TERM_PROGRAM" = "iTerm.app" ]; then + printf "\033]133;C;\r\007" + else + printf "\033]133;C;\007" + fi + } + + iterm2_set_user_var() { + printf "\033]1337;SetUserVar=%s=%s\007" "$1" $(printf "%s" "$2" | base64 | tr -d '\n') + } + + # Users can write their own version of this method. It should call + # iterm2_set_user_var but not produce any other output. + # e.g., iterm2_set_user_var currentDirectory $PWD + # Accessible in iTerm2 (in a badge now, elsewhere in the future) as + # \(user.currentDirectory). + whence -v iterm2_print_user_vars > /dev/null 2>&1 + if [ $? -ne 0 ]; then + iterm2_print_user_vars() { + true + } + fi + + iterm2_print_state_data() { + local _iterm2_hostname="${iterm2_hostname-}" + if [ -z "${iterm2_hostname:-}" ]; then + _iterm2_hostname=$(hostname -f 2>/dev/null) + fi + printf "\033]1337;RemoteHost=%s@%s\007" "$USER" "${_iterm2_hostname-}" + printf "\033]1337;CurrentDir=%s\007" "$PWD" + iterm2_print_user_vars + } + + # Report return code of command; runs after command finishes but before prompt + iterm2_after_cmd_executes() { + printf "\033]133;D;%s\007" "$STATUS" + iterm2_print_state_data + } + + # Mark start of prompt + iterm2_prompt_mark() { + printf "\033]133;A\007" + } + + # Mark end of prompt + iterm2_prompt_end() { + printf "\033]133;B\007" + } + + # There are three possible paths in life. + # + # 1) A command is entered at the prompt and you press return. + # The following steps happen: + # * iterm2_preexec is invoked + # * PS1 is set to ITERM2_PRECMD_PS1 + # * ITERM2_SHOULD_DECORATE_PROMPT is set to 1 + # * The command executes (possibly reading or modifying PS1) + # * iterm2_precmd is invoked + # * ITERM2_PRECMD_PS1 is set to PS1 (as modified by command execution) + # * PS1 gets our escape sequences added to it + # * zsh displays your prompt + # * You start entering a command + # + # 2) You press ^C while entering a command at the prompt. + # The following steps happen: + # * (iterm2_preexec is NOT invoked) + # * iterm2_precmd is invoked + # * iterm2_before_cmd_executes is called since we detected that iterm2_preexec was not run + # * (ITERM2_PRECMD_PS1 and PS1 are not messed with, since PS1 already has our escape + # sequences and ITERM2_PRECMD_PS1 already has PS1's original value) + # * zsh displays your prompt + # * You start entering a command + # + # 3) A new shell is born. + # * PS1 has some initial value, either zsh's default or a value set before this script is sourced. + # * iterm2_precmd is invoked + # * ITERM2_SHOULD_DECORATE_PROMPT is initialized to 1 + # * ITERM2_PRECMD_PS1 is set to the initial value of PS1 + # * PS1 gets our escape sequences added to it + # * Your prompt is shown and you may begin entering a command. + # + # Invariants: + # * ITERM2_SHOULD_DECORATE_PROMPT is 1 during and just after command execution, and "" while the prompt is + # shown and until you enter a command and press return. + # * PS1 does not have our escape sequences during command execution + # * After the command executes but before a new one begins, PS1 has escape sequences and + # ITERM2_PRECMD_PS1 has PS1's original value. + iterm2_decorate_prompt() { + # This should be a raw PS1 without iTerm2's stuff. It could be changed during command + # execution. + ITERM2_PRECMD_PS1="$PS1" + ITERM2_SHOULD_DECORATE_PROMPT="" + + # Add our escape sequences just before the prompt is shown. + # Use ITERM2_SQUELCH_MARK for people who can't mdoify PS1 directly, like powerlevel9k users. + # This is gross but I had a heck of a time writing a correct if statetment for zsh 5.0.2. + local PREFIX="" + if [[ $PS1 == *"$(iterm2_prompt_mark)"* ]]; then + PREFIX="" + elif [[ "${ITERM2_SQUELCH_MARK-}" != "" ]]; then + PREFIX="" + else + PREFIX="%{$(iterm2_prompt_mark)%}" + fi + PS1="$PREFIX$PS1%{$(iterm2_prompt_end)%}" + ITERM2_DECORATED_PS1="$PS1" + } + + iterm2_precmd() { + local STATUS="$?" + if [ -z "${ITERM2_SHOULD_DECORATE_PROMPT-}" ]; then + # You pressed ^C while entering a command (iterm2_preexec did not run) + iterm2_before_cmd_executes + if [ "$PS1" != "${ITERM2_DECORATED_PS1-}" ]; then + # PS1 changed, perhaps in another precmd. See issue 9938. + ITERM2_SHOULD_DECORATE_PROMPT="1" + fi + fi + + iterm2_after_cmd_executes "$STATUS" + + if [ -n "$ITERM2_SHOULD_DECORATE_PROMPT" ]; then + iterm2_decorate_prompt + fi + } + + # This is not run if you press ^C while entering a command. + iterm2_preexec() { + # Set PS1 back to its raw value prior to executing the command. + PS1="$ITERM2_PRECMD_PS1" + ITERM2_SHOULD_DECORATE_PROMPT="1" + iterm2_before_cmd_executes + } + + # If hostname -f is slow on your system set iterm2_hostname prior to + # sourcing this script. We know it is fast on macOS so we don't cache + # it. That lets us handle the hostname changing like when you attach + # to a VPN. + if [ -z "${iterm2_hostname-}" ]; then + if [ "$(uname)" != "Darwin" ]; then + iterm2_hostname=`hostname -f 2>/dev/null` + # Some flavors of BSD (i.e. NetBSD and OpenBSD) don't have the -f option. + if [ $? -ne 0 ]; then + iterm2_hostname=`hostname` + fi + fi + fi + + [[ -z ${precmd_functions-} ]] && precmd_functions=() + precmd_functions=($precmd_functions iterm2_precmd) + + [[ -z ${preexec_functions-} ]] && preexec_functions=() + preexec_functions=($preexec_functions iterm2_preexec) + + iterm2_print_state_data + printf "\033]1337;ShellIntegrationVersion=14;shell=zsh\007" + fi +fi diff --git a/config/macos/iterm.json b/config/macos/iterm.json new file mode 100644 index 0000000..8bc7646 --- /dev/null +++ b/config/macos/iterm.json @@ -0,0 +1,404 @@ +{ + "Link Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Tags" : [ + + ], + "Ansi 12 Color" : { + "Red Component" : 0.68235294117647061, + "Color Space" : "sRGB", + "Blue Component" : 0.99215686274509807, + "Alpha Component" : 1, + "Green Component" : 0.9137254901960784 + }, + "Ansi 7 Color" : { + "Red Component" : 0.873565673828125, + "Color Space" : "sRGB", + "Blue Component" : 0.873565673828125, + "Alpha Component" : 1, + "Green Component" : 0.873565673828125 + }, + "Draw Powerline Glyphs" : true, + "Bold Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Ansi 8 Color" : { + "Red Component" : 0.59607843137254901, + "Color Space" : "sRGB", + "Blue Component" : 0.59607843137254901, + "Alpha Component" : 1, + "Green Component" : 0.59607843137254901 + }, + "Ansi 9 Color" : { + "Red Component" : 0.99215686274509807, + "Color Space" : "sRGB", + "Blue Component" : 0.59999999999999998, + "Alpha Component" : 1, + "Green Component" : 0.34901960784313724 + }, + "Custom Directory" : "No", + "Rows" : 25, + "Default Bookmark" : "No", + "Right Option Key Sends" : 0, + "Cursor Guide Color" : { + "Red Component" : 0.70213186740875244, + "Color Space" : "sRGB", + "Alpha Component" : 0.25, + "Blue Component" : 1, + "Green Component" : 0.9268307089805603 + }, + "Non-ASCII Anti Aliased" : true, + "Use Bright Bold" : true, + "Ansi 10 Color" : { + "Red Component" : 0.59999999999999998, + "Color Space" : "sRGB", + "Blue Component" : 0.83921568627450982, + "Alpha Component" : 1, + "Green Component" : 0.99607843137254903 + }, + "Ambiguous Double Width" : false, + "Jobs to Ignore" : [ + "rlogin", + "ssh", + "slogin", + "telnet" + ], + "Ansi 15 Color" : { + "Red Component" : 1, + "Color Space" : "sRGB", + "Blue Component" : 1, + "Alpha Component" : 1, + "Green Component" : 1 + }, + "Foreground Color" : { + "Red Component" : 0.79607844352722168, + "Color Space" : "sRGB", + "Alpha Component" : 1, + "Blue Component" : 0.90588235855102539, + "Green Component" : 0.88100153207778931 + }, + "Working Directory" : "\/Users\/alicia", + "Blinking Cursor" : false, + "Disable Window Resizing" : true, + "Sync Title" : false, + "Prompt Before Closing 2" : false, + "BM Growl" : true, + "Mouse Reporting" : true, + "Command" : "", + "Description" : "Default", + "Screen" : -1, + "Selection Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Only The Default BG Color Uses Transparency" : true, + "Columns" : 80, + "Idle Code" : 0, + "Ansi 13 Color" : { + "Red Component" : 0.82745098039215681, + "Color Space" : "sRGB", + "Blue Component" : 1, + "Alpha Component" : 1, + "Green Component" : 0.7686274509803922 + }, + "Custom Command" : "No", + "ASCII Anti Aliased" : true, + "Non Ascii Font" : "Monaco 12", + "Vertical Spacing" : 1, + "Use Bold Font" : true, + "Option Key Sends" : 0, + "Selected Text Color" : { + "Red Component" : 0.078431372549019607, + "Color Space" : "sRGB", + "Blue Component" : 0.20000000000000001, + "Alpha Component" : 1, + "Green Component" : 0.10588235294117647 + }, + "Background Color" : { + "Red Component" : 0.043137254901960784, + "Color Space" : "sRGB", + "Blue Component" : 0.12941176470588237, + "Alpha Component" : 1, + "Green Component" : 0.062745098039215685 + }, + "Character Encoding" : 4, + "Ansi 11 Color" : { + "Red Component" : 0.96862745098039216, + "Color Space" : "sRGB", + "Blue Component" : 0.63137254901960782, + "Alpha Component" : 1, + "Green Component" : 0.96078431372549022 + }, + "Use Italic Font" : true, + "Unlimited Scrollback" : false, + "Keyboard Map" : { + "0xf700-0x260000" : { + "Text" : "[1;6A", + "Action" : 10 + }, + "0x37-0x40000" : { + "Text" : "0x1f", + "Action" : 11 + }, + "0x32-0x40000" : { + "Text" : "0x00", + "Action" : 11 + }, + "0xf709-0x20000" : { + "Text" : "[17;2~", + "Action" : 10 + }, + "0xf70c-0x20000" : { + "Text" : "[20;2~", + "Action" : 10 + }, + "0xf729-0x20000" : { + "Text" : "[1;2H", + "Action" : 10 + }, + "0xf72b-0x40000" : { + "Text" : "[1;5F", + "Action" : 10 + }, + "0xf705-0x20000" : { + "Text" : "[1;2Q", + "Action" : 10 + }, + "0xf703-0x260000" : { + "Text" : "[1;6C", + "Action" : 10 + }, + "0xf700-0x220000" : { + "Text" : "[1;2A", + "Action" : 10 + }, + "0xf701-0x280000" : { + "Text" : "0x1b 0x1b 0x5b 0x42", + "Action" : 11 + }, + "0x38-0x40000" : { + "Text" : "0x7f", + "Action" : 11 + }, + "0x33-0x40000" : { + "Text" : "0x1b", + "Action" : 11 + }, + "0xf703-0x220000" : { + "Text" : "[1;2C", + "Action" : 10 + }, + "0xf701-0x240000" : { + "Text" : "[1;5B", + "Action" : 10 + }, + "0xf70d-0x20000" : { + "Text" : "[21;2~", + "Action" : 10 + }, + "0xf702-0x260000" : { + "Text" : "[1;6D", + "Action" : 10 + }, + "0xf729-0x40000" : { + "Text" : "[1;5H", + "Action" : 10 + }, + "0xf706-0x20000" : { + "Text" : "[1;2R", + "Action" : 10 + }, + "0x34-0x40000" : { + "Text" : "0x1c", + "Action" : 11 + }, + "0xf700-0x280000" : { + "Text" : "0x1b 0x1b 0x5b 0x41", + "Action" : 11 + }, + "0x2d-0x40000" : { + "Text" : "0x1f", + "Action" : 11 + }, + "0xf70e-0x20000" : { + "Text" : "[23;2~", + "Action" : 10 + }, + "0xf702-0x220000" : { + "Text" : "[1;2D", + "Action" : 10 + }, + "0xf703-0x280000" : { + "Text" : "0x1b 0x1b 0x5b 0x43", + "Action" : 11 + }, + "0xf700-0x240000" : { + "Text" : "[1;5A", + "Action" : 10 + }, + "0xf707-0x20000" : { + "Text" : "[1;2S", + "Action" : 10 + }, + "0xf70a-0x20000" : { + "Text" : "[18;2~", + "Action" : 10 + }, + "0x35-0x40000" : { + "Text" : "0x1d", + "Action" : 11 + }, + "0xf70f-0x20000" : { + "Text" : "[24;2~", + "Action" : 10 + }, + "0xf703-0x240000" : { + "Text" : "[1;5C", + "Action" : 10 + }, + "0xf701-0x260000" : { + "Text" : "[1;6B", + "Action" : 10 + }, + "0xf702-0x280000" : { + "Text" : "0x1b 0x1b 0x5b 0x44", + "Action" : 11 + }, + "0xf72b-0x20000" : { + "Text" : "[1;2F", + "Action" : 10 + }, + "0x36-0x40000" : { + "Text" : "0x1e", + "Action" : 11 + }, + "0xf708-0x20000" : { + "Text" : "[15;2~", + "Action" : 10 + }, + "0xf701-0x220000" : { + "Text" : "[1;2B", + "Action" : 10 + }, + "0xf70b-0x20000" : { + "Text" : "[19;2~", + "Action" : 10 + }, + "0xf702-0x240000" : { + "Text" : "[1;5D", + "Action" : 10 + }, + "0xf704-0x20000" : { + "Text" : "[1;2P", + "Action" : 10 + } + }, + "Window Type" : 0, + "Blur Radius" : 14.887632978723405, + "Background Image Location" : "", + "Blur" : true, + "Badge Color" : { + "Red Component" : 1, + "Color Space" : "sRGB", + "Alpha Component" : 0.5, + "Blue Component" : 0, + "Green Component" : 0.1491314172744751 + }, + "Scrollback Lines" : 20000, + "Send Code When Idle" : false, + "Close Sessions On End" : true, + "Terminal Type" : "xterm-256color", + "Visual Bell" : true, + "Flashing Bell" : false, + "Silence Bell" : false, + "Ansi 14 Color" : { + "Red Component" : 0.52156862745098043, + "Color Space" : "sRGB", + "Blue Component" : 0.94509803921568625, + "Alpha Component" : 1, + "Green Component" : 1 + }, + "Name" : "Alicia", + "Cursor Text Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Minimum Contrast" : 0, + "Shortcut" : "A", + "Cursor Color" : { + "Red Component" : 0.9843137264251709, + "Color Space" : "sRGB", + "Alpha Component" : 1, + "Blue Component" : 0.98823529481887817, + "Green Component" : 0.98823529481887817 + }, + "Transparency" : 0.055427194148936168, + "Ansi 1 Color" : { + "Red Component" : 0.97254901960784312, + "Color Space" : "sRGB", + "Blue Component" : 0.38823529411764707, + "Alpha Component" : 1, + "Green Component" : 0.011764705882352941 + }, + "Horizontal Spacing" : 1, + "Ansi 3 Color" : { + "Red Component" : 0.92549019607843142, + "Color Space" : "sRGB", + "Blue Component" : 0.082352941176470587, + "Alpha Component" : 1, + "Green Component" : 0.90588235294117647 + }, + "Ansi 4 Color" : { + "Red Component" : 0.20784313725490197, + "Color Space" : "sRGB", + "Blue Component" : 0.98039215686274506, + "Alpha Component" : 1, + "Green Component" : 0.78823529411764703 + }, + "Ansi 5 Color" : { + "Red Component" : 0.56470590829849243, + "Color Space" : "sRGB", + "Alpha Component" : 1, + "Blue Component" : 1, + "Green Component" : 0.42352941632270813 + }, + "Use Non-ASCII Font" : false, + "Ansi 6 Color" : { + "Red Component" : 0, + "Color Space" : "sRGB", + "Blue Component" : 0.70588235294117652, + "Alpha Component" : 1, + "Green Component" : 0.80000000000000004 + }, + "Normal Font" : "MesloLGS-NF-Regular 13", + "Ansi 0 Color" : { + "Red Component" : 0.27196189528331161, + "Color Space" : "sRGB", + "Blue Component" : 0.612884521484375, + "Alpha Component" : 1, + "Green Component" : 0.35063636161167977 + }, + "Guid" : "264074D8-9D6F-4EDA-9077-4694920535DB", + "Ansi 2 Color" : { + "Red Component" : 0.011764705882352941, + "Color Space" : "sRGB", + "Blue Component" : 0.59607843137254901, + "Alpha Component" : 1, + "Green Component" : 0.97254901960784312 + } +} diff --git a/install.sh b/install.sh index a9277ff..cd9821e 100755 --- a/install.sh +++ b/install.sh @@ -74,7 +74,7 @@ make_intro () { "${C2}(1) Pre-Setup Tasls\n"\ " ${C3}- Check that all requirements are met, and system is compatible\n"\ " ${C3}- Sets environmental variables from params, or uses sensible defaults\n"\ - " ${C3}- Output welcome message\n"\ + " ${C3}- Output welcome message and summary of changes\n"\ "${C2}(2) Setup Dotfiles\n"\ " ${C3}- Clone or update dotfiles from git\n"\ " ${C3}- Symlinks dotfiles to correct locations\n"\ @@ -86,10 +86,11 @@ make_intro () { " ${C3}- On Linux desktop systems, prompt to install desktop apps via Flatpak\n"\ " ${C3}- Checks that OS is up-to-date and criticial patches are installed\n"\ "${C2}(4) Configure sytstem\n"\ - " ${C3}- Setup Vim, and install Vim plugins via Plug\n"\ - " ${C3}- Setup Tmux, and install Tmux plugins via TPM\n"\ - " ${C3}- Setup ZSH, and install ZSH plugins via Antigen\n"\ - " ${C3}- Prompt to configure OS user preferences\n"\ + " ${C3}- Setup Vim, and install / update Vim plugins via Plug\n"\ + " ${C3}- Setup Tmux, and install / update Tmux plugins via TPM\n"\ + " ${C3}- Setup ZSH, and install / update ZSH plugins via Antigen\n"\ + " ${C3}- Apply system settings (via NSDefaults on Mac, dconf on Linux)\n"\ + " ${C3}- Apply assets, wallpaper, fonts, screensaver, etc\n"\ "${C2}(5) Finishing Up\n"\ " ${C3}- Refresh current terminal session\n"\ " ${C3}- Print summary of applied changes and time taken\n"\ @@ -102,7 +103,7 @@ make_intro () { cleanup () { # Reset tab color and title (iTerm2 only) echo -e "\033];\007\033]6;1;bg;*;default\a" -Arch + # Unset re-used variables unset PROMPT_TIMEOUT unset AUTO_YES @@ -172,6 +173,11 @@ function pre_setup_tasks () { fi echo + # If pre-requsite packages not found, prompt to install + if ! command_exists git; then + bash <(curl -s -L 'https://alicia.url.lol/prerequisite-installs') $PARAMS + fi + # Verify required packages are installed system_verify "git" true system_verify "zsh" false @@ -188,30 +194,40 @@ function pre_setup_tasks () { echo -e "${YELLOW_B}XDG_DATA_HOME is not yet set. Will use ~/.local/share${RESET}" export XDG_DATA_HOME="${HOME}/.local/share" fi + + # Ensure dotfiles source directory is set and valid + if [[ ! -d "$SRC_DIR" ]] && [[ ! -d "$DOTFILES_DIR" ]]; then + echo -e "${YELLOW_B}Destination direcory not set,"\ + "defaulting to $HOME/.dotfiles\n"\ + "${CYAN_B}To specify where you'd like dotfiles to be downloaded to,"\ + "set the DOTFILES_DIR environmental variable, and re-run.${RESET}" + DOTFILES_DIR="${HOME}/.dotfiles" + fi } # Downloads / updates dotfiles and symlinks them function setup_dot_files () { - # Download / update dotfiles repo with git - if [[ ! -d "$DOTFILES_DIR" ]] - then - echo -e "${PURPLE}Dotfiles not yet present. \ - Will download ${REPO_NAME} into ${DOTFILES_DIR}${RESET}" - mkdir -p "${DOTFILES_DIR}" - git clone --recursive ${DOTFILES_REPO} ${DOTFILES_DIR} - else + # If dotfiles not yet present, clone the repo + if [[ ! -d "$DOTFILES_DIR" ]]; then + echo -e "${PURPLE}Dotfiles not yet present."\ + "Downloading ${REPO_NAME} into ${DOTFILES_DIR}${RESET}" + echo -e "${YELLOW_B}You can change where dotfiles will be saved to,"\ + "by setting the DOTFILES_DIR env var${RESET}" + mkdir -p "${DOTFILES_DIR}" && \ + git clone --recursive ${DOTFILES_REPO} ${DOTFILES_DIR} && \ + cd "${DOTFILES_DIR}" + else # Dotfiles already downloaded, just fetch latest changes echo -e "${PURPLE}Pulling changes from ${REPO_NAME} into ${DOTFILES_DIR}${RESET}" cd "${DOTFILES_DIR}" && \ git pull origin master && \ + echo -e "${PURPLE}Updating submodules${RESET}" && \ git submodule update --recursive --remote --init fi # If git clone / pull failed, then exit with error - ret=$? - if ! test "$ret" -eq 0 - then - echo -e >&2 "${RED_B}Failed to fetch dotfiels $ret${RESET}" + if ! test "$?" -eq 0; then + echo -e >&2 "${RED_B}Failed to fetch dotfiels from git${RESET}" terminate fi @@ -268,6 +284,10 @@ function apply_preferences () { chmod +x $macos_settings_dir/$macScript && \ $macos_settings_dir/$macScript --quick-exit --yes-to-all done + else + echo -e "\n${PURPLE}Applying preferences to GNOME apps, ensure you've understood before proceeding${RESET}\n" + dconf_script="$DOTFILES_DIR/scripts/linux/dconf-prefs.sh" + chmod +x $dconf_script && $dconf_script fi fi } @@ -374,7 +394,12 @@ function finishing_up () { SKIP_WELCOME=true || exec zsh # Show popup - show_notification "All Tasks Complete" "Your dotfiles are now configured and ready to use 🥳" + if command_exists terminal-notifier; then + terminal-notifier -group 'dotfiles' -title $TITLE -subtitle 'All Tasks Complete' \ + -message "Your dotfiles are now configured and ready to use 🥳" \ + -appIcon ./.github/logo.png -contentImage ./.github/logo.png \ + -remove 'ALL' -sound 'Sosumi' &> /dev/null + fi # Show press any key to exit echo -e "${CYAN_B}Press any key to exit.${RESET}\n" diff --git a/lets-go.sh b/lets-go.sh index 32b4ad0..995876d 100755 --- a/lets-go.sh +++ b/lets-go.sh @@ -25,6 +25,11 @@ echo -e "\033[1;35m""Lissy93/Dotfiles Installation Script 🧰 - Into \033[4;35m${DOTFILES_DIR}\033[0;35m Be sure you've read and understood the what will be applied.\033[0m\n" +# If dependencies not met, install them +if ! hash git 2> /dev/null; then + bash <(curl -s -L 'https://alicia.url.lol/prerequisite-installs') +fi + # If dotfiles not yet present then clone if [[ ! -d "$DOTFILES_DIR" ]]; then mkdir -p "${DOTFILES_DIR}" && \ diff --git a/scripts/installs/Brewfile b/scripts/installs/Brewfile index e1b4b57..390528a 100644 --- a/scripts/installs/Brewfile +++ b/scripts/installs/Brewfile @@ -147,7 +147,6 @@ brew 'bettercap' # Network, scanning and moniroting brew 'nmap' # Port scanning brew 'wrk' # HTTP benchmarking cask 'burp-suite' # Web security testing -cask 'metasploit' # Pen testing framework cask 'owasp-zap' # Web app security scanner cask 'wireshark' # Network analyzer + packet capture diff --git a/scripts/linux/dconf-prefs.sh b/scripts/linux/dconf-prefs.sh index ff4a81a..1871c62 100644 --- a/scripts/linux/dconf-prefs.sh +++ b/scripts/linux/dconf-prefs.sh @@ -26,11 +26,12 @@ BOLD='\e[1m' PARAMS=$* show_help () { - echo -e "${PRIMARY_COLOR}🐧 Linux Desktop Preferences${RESET}\n"\ - "${ACCENT_COLOR}This script will apply preferences to the GNOME shell and related applications using dconf\n"\ - "Config files are read from ./config/gnome and applied to the dconf database in ~/.config/dconf/[user]\n"\ + echo -e "${PRIMARY_COLOR}🐧 Linux Desktop Preferences${RESET_COLOR}\n"\ + "${ACCENT_COLOR}This script will apply preferences to the GNOME shell and"\ + "related applications using dconf\n Config files are read from"\ + "./config/gnome and applied to the dconf database in ~/.config/dconf/[user]\n"\ "Before any changes are made, existing settings are backed up to ~/.cache/dconf-backups/\n"\ - "\nThe following applications will be configured:\n"\ + "\n The following applications will be configured:\n"\ " - Calculator\n"\ " - Evolution\n"\ " - Geddit\n"\ @@ -82,8 +83,7 @@ DCONF_SOURCE_DIR="$(cd "$(dirname "$0")" && pwd)/../../config/gnome" DCONF_BACKUP_PATH="${DCONF_BACKUP_DIR}/${DCONF_BACKUP_FILE}" mkdir -p $DCONF_BACKUP_PATH -# For a given dconf key ($1), and specified file ($2) -# check input info, backup existing config, then apply new settings +# For a given dconf key ($1), and specified file ($2), check info, make backup, apply settings apply_dconf () { dconf_key=$1 dconf_name=$2 @@ -107,8 +107,8 @@ apply_dconf () { # Check source file exists if [ ! -f "$DCONF_SOURCE_DIR/$dconf_name.toml" ]; then - echo -e "${ERROR_COLOR}⚠ Error, the specified config file for ${dconf_name}"\ - "doesn't exist in ${DCONF_SOURCE_DIR}${RESET}" + echo -e "${ERROR_COLOR}⚠ Error, the specified config file for"\ + "'${dconf_name}' doesn't exist in ${DCONF_SOURCE_DIR}${RESET}" return fi diff --git a/scripts/macos-setup/macos-apps.sh b/scripts/macos-setup/macos-apps.sh index 3964aa1..6dd3c90 100755 --- a/scripts/macos-setup/macos-apps.sh +++ b/scripts/macos-setup/macos-apps.sh @@ -341,6 +341,12 @@ defaults write com.apple.terminal StringEncodings -array 4 log_msg "Enable secure entry for Terminal" defaults write com.apple.terminal SecureKeyboardEntry -bool true +log_msg "Apply custom Terminal theme" +theme=$( /dev/null +done + ##################################### # Print finishing message, and exit # ##################################### diff --git a/scripts/macos-setup/macos-preferences.sh b/scripts/macos-setup/macos-preferences.sh index 48b5b46..f5911fc 100755 --- a/scripts/macos-setup/macos-preferences.sh +++ b/scripts/macos-setup/macos-preferences.sh @@ -37,7 +37,7 @@ RESET_COLOR='\033[0m' # Current and total taslks, used for progress updates current_event=0 -total_events=68 +total_events=70 # Check system is compatible if [ ! "$(uname -s)" = "Darwin" ]; then @@ -121,6 +121,9 @@ HIGHLIGHT_COLOR="0 0.8 0.7" # Quit System Preferences before starting osascript -e 'tell application "System Preferences" to quit' +# Keep script alive +while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null & + ################### # Set Device Info # ################### @@ -373,11 +376,14 @@ sudo mdutil -E / > /dev/null ############################### log_section "Dock and Launchpad" +log_msg "Set dock position to left-hand side" +defaults write com.apple.dock orientation left + log_msg "Add highlight effect to dock stacks" defaults write com.apple.dock mouse-over-hilite-stack -bool true log_msg "Set item size within dock stacks" -defaults write com.apple.dock tilesize -int 24 +defaults write com.apple.dock tilesize -int 48 log_msg "Set dock to use genie animation" defaults write com.apple.dock mineffect -string "genie" @@ -446,6 +452,8 @@ sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator.a log_msg "Add Apple Watch simulator to Launchpad" sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator (Watch).app" "/Applications/Simulator (Watch).app" +log_msg "Restarting dock" +killall Dock ##################################### # Print finishing message, and exit # diff --git a/symlinks.yaml b/symlinks.yaml index f1bcc7b..23f5684 100644 --- a/symlinks.yaml +++ b/symlinks.yaml @@ -44,6 +44,12 @@ ~/.finicky.js: if: '[ `uname` = Darwin ]' path: config/macos/.finicky.js + ~/Library/Application\ Support/iTerm2/DynamicProfiles: + if: '[ `uname` = Darwin ]' + path: config/macos/iterm.json + ${XDG_CONFIG_HOME}/zsh/.iterm2_shell_integration.zsh: + if: '[ `uname` = Darwin ]' + path: config/macos/iterm-shell-integration.zsh # If not already present, create home directories - create: diff --git a/utils/am-i-online.sh b/utils/am-i-online.sh index 2892049..50e8b3b 100755 --- a/utils/am-i-online.sh +++ b/utils/am-i-online.sh @@ -10,6 +10,10 @@ pre_success=' \033[1;92m✔' pre_failure=' \033[1;91m✗' post_string='\x1b[0m' +function aio_http_host () { + wget -qO- github.com > /dev/null 2>&1 || { echo "Error: no active internet connection" >&2; return 1; } +} + # Checks if DNS gateway is online function aio_check-dns() { : >/dev/tcp/1.1.1.1/53 > /dev/null && \ @@ -19,7 +23,7 @@ function aio_check-dns() { # Checks if can ping default getway function aio_ping-gateway() { - ping -q -c 1 `ip r | grep default | cut -d ' ' -f 3` > /dev/null && \ + ping -q -c 1 `ip r | grep default | cut -d ' ' -f 3 | head -1` > /dev/null && \ echo -e "${pre_success} Gateway Availible${post_string}" || \ echo -e "${pre_failure} Gateway Unavailible${post_string}" } diff --git a/utils/test.sh b/utils/test.sh index e69de29..1329677 100755 --- a/utils/test.sh +++ b/utils/test.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + + diff --git a/utils/weather.sh b/utils/weather.sh old mode 100644 new mode 100755 index 4482fdc..05eb2a4 --- a/utils/weather.sh +++ b/utils/weather.sh @@ -1,15 +1,22 @@ #!/usr/bin/env bash -# Author: Alexander Epstein https://github.com/alexanderepstein -currentVersion="1.23.0" #This version variable should not have a v but should contain all other characters ex Github release tag is v1.2.4 currentVersion is 1.2.4 -LANG="${LANG:-en}" -locale=$(echo "$LANG" | cut -c1-2) -unset configuredClient +###################################################################### +# Weather - Prints current and forcasted weather in current location # +###################################################################### +# Data fetched from wttr.in provided by @chubin # +# This script is inspired by @alexanderepstein # +# # +# Licensed under MIT (C) Alicia Sykes 2022 # +###################################################################### + +scriptVersion="0.9.1" +locale=$(echo "${LANG:-en}" | cut -c1-2) # Language to use if [[ $(echo "$locale" | grep -Eo "[a-z A-Z]*" | wc -c) != 3 ]]; then locale="en"; fi +wttrHost="wttr.in" -## This function determines which http get tool the system has installed and returns an error if there isnt one -getConfiguredClient() -{ +# Determines which HTTP get tool to use, based on what's installed +getConfiguredClient() { + unset configuredClient if command -v curl &>/dev/null; then configuredClient="curl" elif command -v wget &>/dev/null; then @@ -24,9 +31,8 @@ getConfiguredClient() fi } -## Allows to call the users configured client without if statements everywhere -httpGet() -{ +# Make HTTP request, using installed HTTP client +httpGet() { case "$configuredClient" in curl) curl -A curl -s "$@" ;; wget) wget -qO- "$@" ;; @@ -35,8 +41,7 @@ httpGet() esac } -getIPWeather() -{ +getIPWeather() { country=$(httpGet ipinfo.io/country) > /dev/null ## grab the country if [[ $country == "US" ]]; then ## if were in the us id rather not use longitude and latitude so the output is nicer city=$(httpGet ipinfo.io/city) > /dev/null @@ -44,26 +49,24 @@ getIPWeather() if [[ $(echo "$region" | wc -w) == 2 ]];then region=$(echo "$region" | grep -Eo "[A-Z]*" | tr -d "[:space:]") fi - httpGet $locale.wttr.in/"$city","$region""$1" + httpGet $locale.$wttrHost/"$city","$region""$1" else ## otherwise we are going to use longitude and latitude location=$(httpGet ipinfo.io/loc) > /dev/null - httpGet $locale.wttr.in/"$location""$1" + httpGet $locale.$wttrHost/"$location""$1" fi } -getLocationWeather() -{ +getLocationWeather() { args=$(echo "$@" | tr " " + ) - httpGet $locale.wttr.in/"${args}" + httpGet $locale.$wttrHost/"${args}" } -checkInternet() -{ - httpGet github.com > /dev/null 2>&1 || { echo "Error: no active internet connection" >&2; return 1; } # query github with a get request +# Check connected to internet +checkInternet() { + httpGet github.com > /dev/null 2>&1 || { echo "Error: no active internet connection" >&2; return 1; } } -usage() -{ +usage() { cat <