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 <