Resolves conflicts in dconf script

This commit is contained in:
Alicia Sykes 2022-11-18 20:14:49 +00:00
commit c6025d0304
51 changed files with 1942 additions and 234 deletions

58
.github/README.md vendored
View File

@ -1,8 +1,11 @@
<h1 align="center"><code>~/.Dotfiles</code></h1>
<h2 align="center"><code>$HOME, sweet $HOME</code></h2>
<p align="center"><i>My dotfiles for configuring Vim, ZSH, Tmux, Git, etc</i></p>
<p align="center"><img width="400" src="https://i.ibb.co/rH30RbM/Dotfiles.png" /></p>
<p align="center"><i>My dotfiles for configuring literally everything (automatically!)</i></p>
<p align="center">
<a href="https://github.com/lissy93/dotfiles" title="Automate all the things!">
<img width="140" src="https://github.com/Lissy93/dotfiles/raw/master/.github/logo.png" />
</a>
</p>
<h3 align="center"><code>$HOME, sweet $HOME</code></h3>
## 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)
@ -45,7 +49,7 @@ It's not hard to create your own dotfile repo, it's great fun and you'll learn a
### XDG Directories
The location of most config files can be defined using the [XDG base directory specification](https://specifications.freedesktop.org/basedir-spec), which is honored by most apps. This lets you specify where config, log, cache and data files are stored, keeping your top-level home directory free from clutter. You can do this by setting environmental variables, usually within the [`.zshenv`](https://github.com/Lissy93/dotfiles/blob/master/zsh/.zshenv) file.
The location of most config files can be defined using the [XDG base directory specification](https://specifications.freedesktop.org/basedir-spec), which is honored by most apps. This lets you specify where config, log, cache and data files are stored, keeping your top-level home directory free from clutter. You can do this by setting environmental variables, usually within the [`.zshenv`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh.zshenv) file.
Variable | Location
--- | ---
@ -148,6 +152,8 @@ There's even more to check out at [webpro/awesome-dotfiles](https://github.com/w
## My Dotfiles
<p align="center"><img width="380" src="https://i.ibb.co/rH30RbM/Dotfiles.png" /></p>
### Setup
> **Warning**
@ -189,16 +195,20 @@ Once the repo is cloned, you can modify whatever files you like before running t
<pre>
~
└──.
├── <a href="https://github.com/Lissy93/dotfiles/tree/master/bash">bash/</a> # Bash (shell) config
├── <a href="https://github.com/Lissy93/dotfiles/tree/master/tmux">tmux/</a> # Tmux (multiplexer) config
├── <a href="https://github.com/Lissy93/dotfiles/tree/master/vim">vim/</a> # Vim (text editor) config
├── <a href="https://github.com/Lissy93/dotfiles/tree/master/zsh">zsh/</a> # ZSH (shell) config
├── <a href="https://github.com/Lissy93/dotfiles/tree/master/config">config/</a> # All other config files
├── <a href="https://github.com/Lissy93/dotfiles/tree/master/config">config/</a> # All configuration files
│ ├── <a href="https://github.com/Lissy93/dotfiles/tree/master/bash">bash/</a> # Bash (shell) config
│ ├── <a href="https://github.com/Lissy93/dotfiles/tree/master/tmux">tmux/</a> # Tmux (multiplexer) config
│ ├── <a href="https://github.com/Lissy93/dotfiles/tree/master/vim">vim/</a> # Vim (text editor) config
│ ├── <a href="https://github.com/Lissy93/dotfiles/tree/master/zsh">zsh/</a> # ZSH (shell) config
│ ├── <a href="https://github.com/Lissy93/dotfiles/tree/master/macos">macos/</a> # Config files for Mac-specific apps
│ └── <a href="https://github.com/Lissy93/dotfiles/tree/master/desktop-apps">desktop-apps/</a> # Config files for GUI apps
├── <a href="https://github.com/Lissy93/dotfiles/tree/master/scripts">scripts/</a> # Bash scripts for automating tasks
│ ├── <a href="https://github.com/Lissy93/dotfiles/tree/master/scripts/installs">installs/</a> # Scripts for software installation
│ │ ├── <a href="https://github.com/Lissy93/dotfiles/blob/master/scripts/installs/Brewfile">Brewfile</a> # Package installs for MacOS via Homebrew
│ │ ├── <a href="https://github.com/Lissy93/dotfiles/blob/master/scripts/installs/arch-pacman.sh">arch-pacman.sh</a> # Package installs for Arch via Pacman
│ │ └── <a href="https://github.com/Lissy93/dotfiles/blob/master/scripts/installs/flatpak.sh">flatpak.sh</a> # Package installs for Linux desktops via Flatpak
│ ├── <a href="https://github.com/Lissy93/dotfiles/tree/master/scripts/linux">linux/</a> # Automated configuration for Linux
│ │ └── <a href="https://github.com/Lissy93/dotfiles/blob/master/scripts/linux/dconf-prefs.sh">dconf-prefs.sh</a> # Setting GNOME settings via dconf util
│ └── <a href="https://github.com/Lissy93/dotfiles/tree/master/scripts/macos-setup">macos-setup/</a> # Scripts for setting up Mac OS machines
│ ├── <a href="https://github.com/Lissy93/dotfiles/blob/master/scripts/macos-setup/macos-apps.sh">macos-apps.sh</a> # Sets app preferences
│ ├── <a href="https://github.com/Lissy93/dotfiles/blob/master/scripts/macos-setup/macos-preferences.sh">macos-prefs.sh</a> # Sets MacOS system preferences
@ -221,7 +231,7 @@ The setup script ([`install.sh`](https://github.com/Lissy93/dotfiles/blob/master
- **Setup**
- Print welcome message, and a summary of proposed changes, and prompt user to continue
- Ensure that core dependencies are met (git, zsh, vim)
- Set variables by reading any passed parameters, or fallback to sensible defaults (see [`.zshenv`](https://github.com/Lissy93/dotfiles/blob/master/zsh/.zshenv))
- Set variables by reading any passed parameters, or fallback to sensible defaults (see [`.zshenv`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/.zshenv))
- **Dotfiles**
- If dotfiles not yet present, will clone from git, otherwise pulls latest changes
- Setup / update symlinks each file to it's correct location on disk
@ -259,7 +269,11 @@ The install script can accept several flags and environmental variables to confi
### Configuring
The locations for all symlinks are defined in [`symlinks.yaml`](https://github.com/Lissy93/dotfiles/blob/master/symlinks.yaml). These are managed using [Dotbot](https://github.com/anishathalye/dotbot), and will be applied whenever you run the [`install.sh`](https://github.com/Lissy93/dotfiles/blob/master/install.sh) script. The symlinks set locations based on XDG paths, all of which are defined in [`.zshenv`](https://github.com/Lissy93/dotfiles/blob/master/zsh/.zshenv).
The locations for all symlinks are defined in [`symlinks.yaml`](https://github.com/Lissy93/dotfiles/blob/master/symlinks.yaml). These are managed using [Dotbot](https://github.com/anishathalye/dotbot), and will be applied whenever you run the [`install.sh`](https://github.com/Lissy93/dotfiles/blob/master/install.sh) script. The symlinks set locations based on XDG paths, all of which are defined in [`.zshenv`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/.zshenv).
---
## Color Theme
---
@ -282,7 +296,7 @@ You can view a list of defined aliases by running `alias`, or search for a speci
#### My Aliases
All aliases in my dotfiles are categorised into files located in [`zsh/aliases/`](https://github.com/Lissy93/dotfiles/blob/master/zsh/aliases/) which are imported in [`zsh/.zshrc`](https://github.com/Lissy93/dotfiles/blob/master/zsh/.zshrc#L9-L14).
All aliases in my dotfiles are categorised into files located in [`zsh/aliases/`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/aliases/) which are imported in [`zsh/.zshrc`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/.zshrc#L9-L14).
The following section lists all (or most) the aliases by category:
@ -290,7 +304,7 @@ The following section lists all (or most) the aliases by category:
<summary><b>Git Aliases</b></summary>
> [`zsh/aliases/git.zsh`](https://github.com/Lissy93/dotfiles/blob/master/zsh/aliases/git.zsh)
> [`zsh/aliases/git.zsh`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/aliases/git.zsh)
Alias | Description
---|---
@ -351,7 +365,7 @@ Alias | Description
<summary><b>Flutter Aliases</b></summary>
> [`zsh/aliases/flutter.zsh`](https://github.com/Lissy93/dotfiles/blob/master/zsh/aliases/flutter.zsh)
> [`zsh/aliases/flutter.zsh`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/aliases/flutter.zsh)
Alias | Description
---|---
@ -377,7 +391,7 @@ Alias | Description
<summary><b>Node.js Aliases</b></summary>
> [`zsh/aliases/node-js.zsh`](https://github.com/Lissy93/dotfiles/blob/master/zsh/aliases/node-js.zsh)
> [`zsh/aliases/node-js.zsh`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/aliases/node-js.zsh)
##### Yarn
@ -441,7 +455,7 @@ Alias | Description
<summary><b>General Aliases</b></summary>
> [`zsh/aliases/general.zsh`](https://github.com/Lissy93/dotfiles/blob/master/zsh/aliases/general.zsh)
> [`zsh/aliases/general.zsh`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/aliases/general.zsh)
##### Single-Letter Frequently-Used Commands (only set if not already in use)
@ -881,11 +895,11 @@ If you choose to run any of these scripts, take care to read it through first, t
### Vim
The entry point for the Vim config is the [`vimrc`](https://github.com/Lissy93/dotfiles/blob/master/vim/vimrc), but the main editor settings are defined in [`vim/editor.vim`](https://github.com/Lissy93/dotfiles/blob/master/vim/editor.vim)
The entry point for the Vim config is the [`vimrc`](https://github.com/Lissy93/dotfiles/blob/master/config/vim/vimrc), but the main editor settings are defined in [`vim/editor.vim`](https://github.com/Lissy93/dotfiles/blob/master/config/vim/editor.vim)
#### Vim Plugins
Vim plugins are managed using [Plug](https://github.com/junegunn/vim-plug) defined in [`vim/plugins.vim`](https://github.com/Lissy93/dotfiles/blob/master/vim/setup-vim-plug.vim).
Vim plugins are managed using [Plug](https://github.com/junegunn/vim-plug) defined in [`vim/plugins.vim`](https://github.com/Lissy93/dotfiles/blob/master/config/vim/setup-vim-plug.vim).
To install them from GitHub, run `:PlugInstall` (see [options](https://github.com/junegunn/vim-plug#commands)) from within Vim. They will also be installed or updated when you run the main dotfiles setup script ([`install.sh`](https://github.com/Lissy93/dotfiles/blob/d4b8426629e7fbbd6d17d0b87f0bb863d6618bfd/install.sh#L132-L134)).
The following plugins are being used:
@ -971,9 +985,9 @@ The following plugins are being used:
### Tmux
Fairly standard Tmux configuration, strongly based off Tmux-sensible. Configuration is defined in [`.tmux.conf`](https://github.com/Lissy93/dotfiles/blob/master/tmux/tmux.conf)
Fairly standard Tmux configuration, strongly based off Tmux-sensible. Configuration is defined in [`.tmux.conf`](https://github.com/Lissy93/dotfiles/blob/master/config/tmux/tmux.conf)
Tmux plugins are managed using [TMP](https://github.com/tmux-plugins/tpm) and defined in [`.tmux.conf`](https://github.com/Lissy93/dotfiles/blob/master/tmux/tmux.conf). To install them from GitHub, run `prefix` + <kbd>I</kbd> from within Tmux, and they will be cloned int `~/.tmux/plugins/`.
Tmux plugins are managed using [TMP](https://github.com/tmux-plugins/tpm) and defined in [`.tmux.conf`](https://github.com/Lissy93/dotfiles/blob/master/config/tmux/tmux.conf). To install them from GitHub, run `prefix` + <kbd>I</kbd> from within Tmux, and they will be cloned int `~/.tmux/plugins/`.
##### Plugins
@ -992,7 +1006,7 @@ Tmux plugins are managed using [TMP](https://github.com/tmux-plugins/tpm) and de
// TODO
Git aliases for ZSH are located in [`/zsh/aliases/git.zsh`](https://github.com/Lissy93/dotfiles/blob/master/zsh/aliases/git.zsh), and are documented under the [Aliases](https://github.com/lissy93/dotfiles#my-aliases) section, above.
Git aliases for ZSH are located in [`/zsh/aliases/git.zsh`](https://github.com/Lissy93/dotfiles/blob/master/config/zsh/aliases/git.zsh), and are documented under the [Aliases](https://github.com/lissy93/dotfiles#my-aliases) section, above.
---

BIN
.github/logo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

6
.gitignore vendored
View File

@ -4,9 +4,9 @@ tmp/*
dotbot/*
# Auto-generated files
zsh/.zcompcache/*
zsh/*/*.zwc
zsh/.zsh_sessions/*
config/zsh/.zcompcache/*
config/zsh/*/*.zwc
config/zsh/.zsh_sessions/*
installs/.Brewfile.lock.json
# Linux

View File

@ -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

View File

@ -3,15 +3,25 @@ Lissy93/Dotfiles - Config ⚙️
List of configuration files for various apps, utils and systems.
└── config/
├── tmux/ # Tmux (multiplexer) config
├── vim/ # Vim (text editor) config
├── zsh/ # ZSH (shell) config
├── macos/ # Config files for Mac-specific apps
└── desktop-apps/ # Config files for GUI apps
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).
The location on disk that files should be symlinked to is specified in symlinks.yml
Run the install.sh script to apply settings based on system type and user preferences
Important: Take care to read through files thouroughly before applying any changes.
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 <https://aliciasykes.com>

9
config/config.fish Normal file
View File

@ -0,0 +1,9 @@
if status is-interactive
# Commands to run in interactive sessions can go here
end
# If starship is installed, initialize it
if type -q starship
starship init fish | source
end

View File

@ -0,0 +1,201 @@
<dict>
<key>columnCount</key>
<integer>90</integer>
<key>name</key>
<string>Alicia-Term</string>
<key>rowCount</key>
<integer>50</integer>
<key>type</key>
<string>Window Settings</string>
<key>ANSIBlackColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDsw
LjEyOTQxMTc3MTg5MzUwMTI4IDAuMTMzMzMzMzQwMjg3MjA4NTYgMC4xNzI1NDkwMjQy
MjQyODEzABACgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNP
YmplY3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYqCipKm0
vcXI0ePm6wAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADt
</data>
<key>ANSIBlueColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECow
LjUwOTgwMzk1MDc4NjU5MDYgMC42NjY2NjY2ODY1MzQ4ODE2IDEuMAAQAoAC0hAREhNa
JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA
AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A==
</data>
<key>ANSIBrightBlackColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw
LjMyOTQxMTc3NDg3MzczMzUgMC4zMjk0MTE3NzQ4NzM3MzM1IDAuMzI5NDExNzc0ODcz
NzMzNQAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq
ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD
xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w==
</data>
<key>ANSIBrightBlueColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECow
LjgzOTIxNTY5NTg1ODAwMTcgMC42NzQ1MDk4MjMzMjIyOTYxIDEuMAAQAoAC0hAREhNa
JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA
AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A==
</data>
<key>ANSIBrightCyanColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEBsw
LjY0MzEzNzI3NjE3MjYzNzkgMS4wIDEuMAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xh
c3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SA
AQgRGiMtMjc7QUhOW2KAgoSJlJ2lqLHDxssAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAA
AAAAAAAAzQ==
</data>
<key>ANSIBrightGreenColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECow
LjQxMTc2NDcxMTE0MTU4NjMgMS4wIDAuNTgwMzkyMTgxODczMzIxNQAQAoAC0hAREhNa
JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA
AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A==
</data>
<key>ANSIBrightMagentaColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECkx
LjAgMC41NzI1NDkwNDUwODU5MDcgMC44NzQ1MDk4MTE0MDEzNjcyABACgALSEBESE1ok
Y2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJj
aGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYo6Qkpeiq7O2v9HU2QAAAAAAAAEBAAAA
AAAAABkAAAAAAAAAAAAAAAAAAADb
</data>
<key>ANSIBrightRedColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECox
LjAgMC40MzEzNzI1NTMxMTAxMjI3IDAuNDMxMzcyNTUzMTEwMTIyNwAQAoAC0hAREhNa
JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA
AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A==
</data>
<key>ANSIBrightWhiteColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw
Ljk3MjU0OTAyMTI0NDA0OTEgMC45NzI1NDkwMjEyNDQwNDkxIDAuOTQ5MDE5NjEwODgx
ODA1NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq
ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD
xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w==
</data>
<key>ANSIBrightYellowColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECsx
LjAgMC43OTYwNzg0NDM1MjcyMjE3IDAuNDE5NjA3ODQ3OTI5MDAwODUAEAKAAtIQERIT
WiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRB
cmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltikJKUmaSttbjB09bbAAAAAAAAAQEA
AAAAAAAAGQAAAAAAAAAAAAAAAAAAAN0=
</data>
<key>ANSICyanColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDgw
LjU0NTA5ODA2NjMyOTk1NiAwLjkxMzcyNTQ5NTMzODQzOTkgMC45OTIxNTY4NjMyMTI1
ODU0ABACgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmpl
Y3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYp2foaaxusLF
zuDj6AAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADq
</data>
<key>ANSIGreenColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDow
LjMxMzcyNTUwMTI5ODkwNDQgMC45ODAzOTIxNTgwMzE0NjM2IDAuNDgyMzUyOTQyMjI4
MzE3MjYAEAKAAtIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09i
amVjdF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltin6GjqLO8
xMfQ4uXqAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAOw=
</data>
<key>ANSIMagentaColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDgw
Ljc4MDM5MjE2OTk1MjM5MjYgMC41NzI1NDkwNDUwODU5MDcgMC45MTc2NDcwNjM3MzIx
NDcyABACgALSEBESE1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmpl
Y3RfEA9OU0tleWVkQXJjaGl2ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYp2foaaxusLF
zuDj6AAAAAAAAAEBAAAAAAAAABkAAAAAAAAAAAAAAAAAAADq
</data>
<key>ANSIRedColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECox
LjAgMC4zMzMzMzMzNDMyNjc0NDA4IDAuMzMzMzMzMzQzMjY3NDQwOAAQAoAC0hAREhNa
JGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFy
Y2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KPkZOYo6y0t8DS1doAAAAAAAABAQAA
AAAAAAAZAAAAAAAAAAAAAAAAAAAA3A==
</data>
<key>ANSIWhiteColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw
Ljk3MjU0OTAyMTI0NDA0OTEgMC45NzI1NDkwMjEyNDQwNDkxIDAuOTQ5MDE5NjEwODgx
ODA1NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq
ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD
xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w==
</data>
<key>ANSIYellowColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECsx
LjAgMC43OTYwNzg0NDM1MjcyMjE3IDAuNDE5NjA3ODQ3OTI5MDAwODUAEAKAAtIQERIT
WiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRB
cmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltikJKUmaSttbjB09bbAAAAAAAAAQEA
AAAAAAAAGQAAAAAAAAAAAAAAAAAAAN0=
</data>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDww
LjEyOTQxMTc3MTg5MzUwMTI4IDAuMTI5NDExNzcxODkzNTAxMjggMC4xMjk0MTE3NzE4
OTM1MDEyOAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5T
T2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2Kho6Wq
tb7GydLk5+wAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA7g==
</data>
<key>CursorColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDcw
LjkyNTQ5MDIwMDUxOTU2MTggMC45MzcyNTQ5MDU3MDA2ODM2IDAuOTU2ODYyNzQ3NjY5
MjIAEAKAAtIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVj
dF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FITltinJ6gpbC5wcTN
3+LnAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAOk=
</data>
<key>ProfileCurrentVersion</key>
<real>2.04</real>
<key>SelectionColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw
Ljk3MjU0OTAyMTI0NDA0OTEgMC45NzI1NDkwMjEyNDQwNDkxIDAuOTQ5MDE5NjEwODgx
ODA1NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq
ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD
xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w==
</data>
<key>TextBoldColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEBgw
Ljk5OTk5NjAwNjQ4ODggMS4wIDEuMAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nl
c1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgR
GiMtMjc7QUhOW2J9f4GGkZqipa7Aw8gAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAA
AAAAyg==
</data>
<key>TextColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPEDkw
Ljk3MjU0OTAyMTI0NDA0OTEgMC45NzI1NDkwMjEyNDQwNDkxIDAuOTQ5MDE5NjEwODgx
ODA1NAAQAoAC0hAREhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2Jq
ZWN0XxAPTlNLZXllZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KeoKKnsrvD
xs/h5OkAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA6w==
</data>
</dict>

View File

@ -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
}
}

View File

@ -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

404
config/macos/iterm.json Normal file
View File

@ -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
}
}

View File

@ -1,3 +1,14 @@
######################################################################
# MacOS Launchpad Layout (Lissy93/Dotfiles) #
######################################################################
# Folder structure and layout for organising the MacOS launchpad #
# Managed with lporg (brew install lporg) #
# To regenerate this file from current layout, run `lporg save` #
# To apply changes, run `lporg load ~/.config/launchpad.yml` #
# #
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
######################################################################
apps:
pages:
- number: 1
@ -14,6 +25,7 @@ apps:
- Sourcetree
- UTM
- Visual Studio
- React Native Debugger
- MacDown
- folder: Work Coms
pages:
@ -69,20 +81,22 @@ apps:
- AltTab
- OpenInTerminal
- Scroll Reverser
- amm
- Espanso
- Little Snitch
- AnyBar
- Shottr
- Little Snitch
- Finicky
- Espanso
- OnyX
- CopyQ
- amm
- PopClip
- Mjolnir
- LinearMouse
- Übersicht
- MacForge
- QLMarkdown
- Santa
- Suspicious Package
- folder: Other
pages:
- number: 1
@ -182,3 +196,7 @@ apps:
- Chromium
- Visual Studio Code
- iTerm
widgets:
pages: []
dock_items:
desktop: {}

164
config/starship.toml Normal file
View File

@ -0,0 +1,164 @@
[aws]
format = '\[[$symbol($profile)(\($region\))(\[$duration\])]($style)\]'
[bun]
format = '\[[$symbol($version)]($style)\]'
[c]
format = '\[[$symbol($version(-$name))]($style)\]'
[cmake]
format = '\[[$symbol($version)]($style)\]'
[cmd_duration]
format = '\[[⏱ $duration]($style)\]'
[cobol]
format = '\[[$symbol($version)]($style)\]'
[conda]
format = '\[[$symbol$environment]($style)\]'
[crystal]
format = '\[[$symbol($version)]($style)\]'
[daml]
format = '\[[$symbol($version)]($style)\]'
[dart]
format = '\[[$symbol($version)]($style)\]'
[deno]
format = '\[[$symbol($version)]($style)\]'
[docker_context]
format = '\[[$symbol$context]($style)\]'
[dotnet]
format = '\[[$symbol($version)(🎯 $tfm)]($style)\]'
[elixir]
format = '\[[$symbol($version \(OTP $otp_version\))]($style)\]'
[elm]
format = '\[[$symbol($version)]($style)\]'
[erlang]
format = '\[[$symbol($version)]($style)\]'
[gcloud]
format = '\[[$symbol$account(@$domain)(\($region\))]($style)\]'
[git_branch]
format = '\[[$symbol$branch]($style)\]'
[git_status]
format = '([\[$all_status$ahead_behind\]]($style))'
[golang]
format = '\[[$symbol($version)]($style)\]'
[haskell]
format = '\[[$symbol($version)]($style)\]'
[helm]
format = '\[[$symbol($version)]($style)\]'
[hg_branch]
format = '\[[$symbol$branch]($style)\]'
[java]
format = '\[[$symbol($version)]($style)\]'
[julia]
format = '\[[$symbol($version)]($style)\]'
[kotlin]
format = '\[[$symbol($version)]($style)\]'
[kubernetes]
format = '\[[$symbol$context( \($namespace\))]($style)\]'
[lua]
format = '\[[$symbol($version)]($style)\]'
[memory_usage]
format = '\[$symbol[$ram( | $swap)]($style)\]'
[meson]
format = '\[[$symbol$project]($style)\]'
[nim]
format = '\[[$symbol($version)]($style)\]'
[nix_shell]
format = '\[[$symbol$state( \($name\))]($style)\]'
[nodejs]
format = '\[[$symbol($version)]($style)\]'
[ocaml]
format = '\[[$symbol($version)(\($switch_indicator$switch_name\))]($style)\]'
[openstack]
format = '\[[$symbol$cloud(\($project\))]($style)\]'
[package]
format = '\[[$symbol$version]($style)\]'
[perl]
format = '\[[$symbol($version)]($style)\]'
[php]
format = '\[[$symbol($version)]($style)\]'
[pulumi]
format = '\[[$symbol$stack]($style)\]'
[purescript]
format = '\[[$symbol($version)]($style)\]'
[python]
format = '\[[${symbol}${pyenv_prefix}(${version})(\($virtualenv\))]($style)\]'
[raku]
format = '\[[$symbol($version-$vm_version)]($style)\]'
[red]
format = '\[[$symbol($version)]($style)\]'
[ruby]
format = '\[[$symbol($version)]($style)\]'
[rust]
format = '\[[$symbol($version)]($style)\]'
[scala]
format = '\[[$symbol($version)]($style)\]'
[spack]
format = '\[[$symbol$environment]($style)\]'
[sudo]
format = '\[[as $symbol]\]'
[swift]
format = '\[[$symbol($version)]($style)\]'
[terraform]
format = '\[[$symbol$workspace]($style)\]'
[time]
format = '\[[$time]($style)\]'
[username]
format = '\[[$user]($style)\]'
[vagrant]
format = '\[[$symbol($version)]($style)\]'
[vlang]
format = '\[[$symbol($version)]($style)\]'
[zig]
format = '\[[$symbol($version)]($style)\]'

View File

@ -41,17 +41,3 @@ export ZLIB="${ZDOTDIR}/lib"
export LANG='en_GB.UTF-8';
export LC_ALL='en_GB.UTF-8';
export PYTHONIOENCODING='UTF-8';
# Add Brew to path, if installed and on MacOS
if [ "$(uname -s)" = "Darwin" ] && [[ -d /opt/homebrew/bin ]]; then
export PATH=/opt/homebrew/bin:$PATH
fi
# And Android SDK to path, if within Library direcroty
if [ "$(uname -s)" = "Darwin" ] && [[ -d "${HOME}/Library/Android/" ]]; then
export PATH="${HOME}/Library/Android/sdk/emulator:${PATH}"
export ANDROID_HOME="${HOME}/Library/Android/sdk"
export ANDROID_SDK_ROOT="${HOME}/Library/Android/sdk"
export ANDROID_AVD_HOME="${ANDROID_SDK_ROOT}/tools/emulator"
export NODE_BINARY="/usr/local/bin/node"
fi

View File

@ -16,6 +16,7 @@ source ${zsh_dir}/aliases/alias-tips.zsh
# Setup Antigen, and import plugins
source ${zsh_dir}/helpers/setup-antigen.zsh
source ${zsh_dir}/helpers/import-plugins.zsh
source ${zsh_dir}/helpers/misc-stuff.zsh
# Configure ZSH stuff
source ${zsh_dir}/lib/colors.zsh
@ -37,12 +38,28 @@ source ${utils_dir}/am-i-online.sh
source ${utils_dir}/welcome-banner.sh
source ${utils_dir}/color-map.sh
# Left over tasks
source ${zsh_dir}/helpers/misc-stuff.zsh
# Import P10k config for command prompt, run `p10k configure` or edit
[[ ! -f ${zsh_dir}/.p10k.zsh ]] || source ${zsh_dir}/.p10k.zsh
# Add Brew to path, if installed and on MacOS
if [ "$(uname -s)" = "Darwin" ] && [[ -d /opt/homebrew/bin ]]; then
export PATH=/opt/homebrew/bin:$PATH
fi
# If using iTerm on MacOS, import the shell integration
if [ "$(uname -s)" = "Darwin" ] && [[ -f "${XDG_CONFIG_HOME}/zsh/.iterm2_shell_integration.zsh" ]]; then
source ${XDG_CONFIG_HOME}/iterm/shell-integration.zsh
fi
# And Android SDK to path, if within Library direcroty
if [ "$(uname -s)" = "Darwin" ] && [[ -d "${HOME}/Library/Android/" ]]; then
export PATH="${HOME}/Library/Android/sdk/emulator:${PATH}"
export ANDROID_HOME="${HOME}/Library/Android/sdk"
export ANDROID_SDK_ROOT="${HOME}/Library/Android/sdk"
export ANDROID_AVD_HOME="${ANDROID_SDK_ROOT}/tools/emulator"
export NODE_BINARY="/usr/local/bin/node"
fi
# If not running in nested shell, then show welcome message :)
if [[ "${SHLVL}" -lt 2 ]] && [[ -z "$SKIP_WELCOME" ]]; then
welcome

View File

@ -75,7 +75,7 @@ alias lz='ls-archive'
# Make directory, and cd into it
mkcd() {
local dir="$*";
local mkdir -p "$dir" && cd "$dir";
mkdir -p "$dir" && cd "$dir";
}
# Make dir and copy
@ -117,6 +117,7 @@ alias ff='find . -type f -name' # Find a file by name within current directory
alias h='history' # Shows full history
alias h-search='fc -El 0 | grep' # Searchses for a word in terminal history
alias top-history='history 0 | awk '{print $2}' | sort | uniq -c | sort -n -r | head'
alias histrg='history -500 | rg' # Rip grep search recent history
# Clearing terminal
if command_exists hr ; then
@ -153,21 +154,26 @@ alias memhog='ps -eo pid,ppid,cmd,%mem --sort=-%mem | head' # Processes consumin
alias cpuhog='ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head' # Processes consuming most cpu
alias cpuinfo='lscpu' # Show CPU Info
alias distro='cat /etc/*-release' # Show OS info
alias ports='netstat -tulanp' # Show open ports
# Copy / pasting
alias cpwd='pwd | pbcopy' # Copy current path
alias pa='pbpaste' # Paste clipboard contents
# App Specific
if command_exists code ; then
alias vsc='code .' # Open VS Code in current dir
fi
if command_exists code ; then; alias vsc='code .'; fi # Launch VS Code in current dir
if command_exists cointop ; then; alias crypto='cointop'; fi
if command_exists gotop ; then; alias gto='gotop'; fi
# Utilities
# External Services
alias myip='curl icanhazip.com'
alias weather='curl wttr.in'
alias weather-short='curl "wttr.in?format=3"'
alias cheat='curl cheat.sh/'
alias tinyurl='curl -s "http://tinyurl.com/api-create.php?url='
alias ports='netstat -tulanp'
if command_exists cointop ; then; alias crypto='cointop'; fi
if command_exists gotop ; then; alias gto='gotop'; fi
alias joke='curl https://icanhazdadjoke.com'
alias hackernews='curl hkkr.in'
alias worldinternet='curl https://status.plaintext.sh/t'
# Random lolz
alias cls='clear;ls' # Clear and ls

View File

@ -1,10 +1,11 @@
#!/bin/bash
#!/usr/bin/env bash
######################################################################
# 🧰 Lissy93/Dotfiles - All-in-One Install and Setup Script for Unix #
######################################################################
# Fetches latest changes, symlinks files, and installs dependencies #
# Then sets up ZSH, TMUX, Vim as well as OS-specific tools and apps #
# Checks all dependencies are met, and prompts to install if missing #
# For docs and more info, see: https://github.com/lissy93/dotfiles #
# #
# IMPORTANT: Before running, read through everything very carefully! #
@ -69,32 +70,46 @@ make_banner () {
make_intro () {
C2="\033[0;35m"
C3="\x1b[2m"
echo -e "${CYAN_B}The seup script will do the following:${RESET}"
echo -e "${C2}(1) Pre-Setup Tasls"
echo -e " ${C3}- Check that all requirements are met, and system is compatible"
echo -e " ${C3}- Sets environmental variables from params, or uses sensible defaults"
echo -e " ${C3}- Output welcome message"
echo -e "${C2}(2) Setup Dotfiles"
echo -e " ${C3}- Clone or update dotfiles from git"
echo -e " ${C3}- Symlinks dotfiles to correct locations"
echo -e "${C2}(3) Install packages"
echo -e " ${C3}- On MacOS, prompt to install Homebrew if not present"
echo -e " ${C3}- On MacOS, updates and installs apps liseted in Brewfile"
echo -e " ${C3}- On Arch Linux, updates and installs packages via Pacman"
echo -e " ${C3}- On Debian Linux, updates and installs packages via apt get"
echo -e " ${C3}- On Linux desktop systems, prompt to install desktop apps via Flatpak"
echo -e " ${C3}- Checks that OS is up-to-date and criticial patches are installed"
echo -e "${C2}(4) Configure sytstem"
echo -e " ${C3}- Setup Vim, and install Vim plugins via Plug"
echo -e " ${C3}- Setup Tmux, and install Tmux plugins via TPM"
echo -e " ${C3}- Setup ZSH, and install ZSH plugins via Antigen"
echo -e " ${C3}- Prompt to configure OS user preferences"
echo -e "${C2}(5) Finishing Up"
echo -e " ${C3}- Refresh current terminal session"
echo -e " ${C3}- Print summary of applied changes and time taken"
echo -e " ${C3}- Exit with appropriate status code"
echo -e "\n${PURPLE}You will be prompted at each stage, before any changes are made.${RESET}"
echo -e "${PURPLE}For more info, see GitHub: \033[4;35mhttps://github.com/lissy93/dotfiles${RESET}"
echo -e "${CYAN_B}The seup script will do the following:${RESET}\n"\
"${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 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"\
"${C2}(3) Install packages\n"\
" ${C3}- On MacOS, prompt to install Homebrew if not present\n"\
" ${C3}- On MacOS, updates and installs apps liseted in Brewfile\n"\
" ${C3}- On Arch Linux, updates and installs packages via Pacman\n"\
" ${C3}- On Debian Linux, updates and installs packages via apt get\n"\
" ${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 / 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"\
" ${C3}- Exit with appropriate status code\n\n"\
"${PURPLE}You will be prompted at each stage, before any changes are made.${RESET}\n"\
"${PURPLE}For more info, see GitHub: \033[4;35mhttps://github.com/${REPO_NAME}${RESET}"
}
# Cleanup tasks, run when the script exits
cleanup () {
# Reset tab color and title (iTerm2 only)
echo -e "\033];\007\033]6;1;bg;*;default\a"
# Unset re-used variables
unset PROMPT_TIMEOUT
unset AUTO_YES
# dinosaurs are awesome
echo "🦖"
}
# Checks if a given package is installed
@ -121,11 +136,29 @@ system_verify () {
fi
}
# Shows a desktop notification, on compatible systems ($1 = message)
show_notification () {
if [[ $PARAMS == *"--no-notifications"* ]]; then return; fi
notif_title=$TITLE
notif_logo="${DOTFILES_DIR}/.github/logo.png"
if command_exists terminal-notifier; then
terminal-notifier -group 'dotfiles' -title $notif_title -subtitle $1 \
-message $2 -appIcon $notif_logo -contentImage $notif_logo \
-remove 'ALL' -sound 'Sosumi' &> /dev/null
elif command_exists notify-send; then
notify-send -u normal -t 15000 -i "${notif_logo}" "${notif_title}" "${1}"
fi
}
# Prints welcome banner, verifies that requirements are met
function pre_setup_tasks () {
# Show pretty starting banner
make_banner "${TITLE}" "${CYAN_B}" 1
# Set term title
echo -e "\033];${TITLE}\007\033]6;1;bg;red;brightness;30\a" \
"\033]6;1;bg;green;brightness;235\a\033]6;1;bg;blue;brightness;215\a"
# Print intro, listing what changes will be applied
make_intro
@ -133,12 +166,18 @@ function pre_setup_tasks () {
echo -e "\n${CYAN_B}Are you happy to continue? (y/N)${RESET}"
read -t $PROMPT_TIMEOUT -n 1 -r ans_start
if [[ ! $ans_start =~ ^[Yy]$ ]] && [[ $AUTO_YES != true ]] ; then
echo -e "\n${PURPLE}No worries, feel free to come back another time.\nTerminating...${RESET}"
echo -e "\n${PURPLE}No worries, feel free to come back another time."\
"\nTerminating...${RESET}"
make_banner "🚧 Installation Aborted" ${YELLOW_B} 1
exit 0
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
@ -149,35 +188,46 @@ function pre_setup_tasks () {
# If XDG variables arn't yet set, then configure defaults
if [ -z ${XDG_CONFIG_HOME+x} ]; then
echo -e "${YELLOW_B}XDG_CONFIG_HOME is not yet set. Will use ~/.config${RESET}"
XDG_CONFIG_HOME="${HOME}/.config"
export XDG_CONFIG_HOME="${HOME}/.config"
fi
if [ -z ${XDG_DATA_HOME+x} ]; then
echo -e "${YELLOW_B}XDG_DATA_HOME is not yet set. Will use ~/.local/share${RESET}"
XDG_DATA_HOME="${HOME}/.local/share"
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 >&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
@ -186,7 +236,7 @@ function setup_dot_files () {
cd "${DOTFILES_DIR}"
git -C "${DOTBOT_DIR}" submodule sync --quiet --recursive
git submodule update --init --recursive "${DOTBOT_DIR}"
chmod +x dotbot/bin/dotbot
chmod +x lib/dotbot/bin/dotbot
"${DOTFILES_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${DOTFILES_DIR}" -c "${SYMLINK_FILE}" "${@}"
}
@ -195,7 +245,7 @@ function apply_preferences () {
# If ZSH not the default shell, ask user if they'd like to set it
if [[ $SHELL != *"zsh"* ]] && command_exists zsh; then
echo "\n${CYAN_B}Would you like to set ZSH as your default shell? (y/N)${RESET}"
echo -e "\n${CYAN_B}Would you like to set ZSH as your default shell? (y/N)${RESET}"
read -t $PROMPT_TIMEOUT -n 1 -r ans_zsh
if [[ $ans_zsh =~ ^[Yy]$ ]] || [[ $AUTO_YES = true ]] ; then
echo -e "${PURPLE}Setting ZSH as default shell${RESET}"
@ -203,29 +253,36 @@ function apply_preferences () {
fi
fi
# Install / update vim plugins with Plug
echo -e "\n${PURPLE}Installing Vim Plugins${RESET}"
vim +PlugInstall +qall
# Prompt user to update ZSH, Tmux and Vim plugins, then reload each
echo -e "\n${CYAN_B}Would you like to install / update ZSH, Tmux and Vim plugins? (y/N)${RESET}"
read -t $PROMPT_TIMEOUT -n 1 -r ans_cliplugins
if [[ $ans_cliplugins =~ ^[Yy]$ ]] || [[ $AUTO_YES = true ]] ; then
# Install / update vim plugins with Plug
echo -e "\n${PURPLE}Installing Vim Plugins${RESET}"
vim +PlugInstall +qall
# Install / update Tmux plugins with TPM
echo -e "${PURPLE}Installing TMUX Plugins${RESET}"
chmod ug+x "${XDG_DATA_HOME}/tmux/tpm"
sh "${TMUX_PLUGIN_MANAGER_PATH}/tpm/bin/install_plugins"
sh "${XDG_DATA_HOME}/tmux/plugins/tpm/bin/install_plugins"
# Install / update ZSH plugins with Antigen
echo -e "${PURPLE}Installing ZSH Plugins${RESET}"
/bin/zsh -i -c "antigen update && antigen-apply"
# Install / update Tmux plugins with TPM
echo -e "${PURPLE}Installing TMUX Plugins${RESET}"
chmod ug+x "${XDG_DATA_HOME}/tmux/tpm"
sh "${TMUX_PLUGIN_MANAGER_PATH}/tpm/bin/install_plugins"
sh "${XDG_DATA_HOME}/tmux/plugins/tpm/bin/install_plugins"
# Install / update ZSH plugins with Antigen
echo -e "${PURPLE}Installing ZSH Plugins${RESET}"
/bin/zsh -i -c "antigen update && antigen-apply"
fi
# Apply general system, app and OS security preferences (prompt user first)
echo -e "${CYAN_B}Would you like to apply system preferences? (y/N)${RESET}"
echo -e "\n${CYAN_B}Would you like to apply system preferences? (y/N)${RESET}"
read -t $PROMPT_TIMEOUT -n 1 -r ans_syspref
if [[ $ans_syspref =~ ^[Yy]$ ]] || [[ $AUTO_YES = true ]]; then
if [ "$SYSTEM_TYPE" = "Darwin" ]; then
echo -e "\n${PURPLE}Applying MacOS system preferences, ensure you've understood before proceeding${RESET}\n"
echo -e "\n${PURPLE}Applying MacOS system preferences,\
ensure you've understood before proceeding${RESET}\n"
macos_settings_dir="$DOTFILES_DIR/scripts/macos-setup"
for macScript in "macos-security.sh" "macos-preferences.sh" "macos-apps.sh"; do
chmod +x $macos_settings_dir/$macScript && $macos_settings_dir/$macScript --quick-exit
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"
@ -243,7 +300,8 @@ function intall_macos_packages () {
read -t $PROMPT_TIMEOUT -n 1 -r ans_homebrewins
if [[ $ans_homebrewins =~ ^[Yy]$ ]] || [[ $AUTO_YES = true ]] ; then
echo -en "🍺 ${PURPLE}Installing Homebrew...${RESET}\n"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew_url='https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh'
/bin/bash -c "$(curl -fsSL $brew_url)"
export PATH=/opt/homebrew/bin:$PATH
fi
fi
@ -294,7 +352,7 @@ function install_packages () {
echo -e "\n${CYAN_B}Would you like to install / update system packages? (y/N)${RESET}"
read -t $PROMPT_TIMEOUT -n 1 -r ans_syspackages
if [[ ! $ans_syspackages =~ ^[Yy]$ ]] && [[ $AUTO_YES != true ]] ; then
echo -e "${PURPLE}Skipping package installs${RESET}"
echo -e "\n${PURPLE}Skipping package installs${RESET}"
return
fi
if [ "$SYSTEM_TYPE" = "Darwin" ]; then
@ -304,13 +362,13 @@ function install_packages () {
# Arch Linux
arch_pkg_install_script="${DOTFILES_DIR}/scripts/installs/arch-pacman.sh"
chmod +x $arch_pkg_install_script
$arch_pkg_install_script $params
$arch_pkg_install_script $PARAMS
fi
# If running in Linux desktop mode, prompt to install desktop apps via Flatpak
flatpak_script="${DOTFILES_DIR}/scripts/installs/flatpak.sh"
if [[ $(uname -s) == "Linux" ]] && [ ! -z $XDG_CURRENT_DESKTOP ] && [ -f $flatpak_script ]; then
if [[ $SYSTEM_TYPE == "Linux" ]] && [ ! -z $XDG_CURRENT_DESKTOP ] && [ -f $flatpak_script ]; then
chmod +x $flatpak_script
$flatpak_script
$flatpak_script $PARAMS
fi
}
@ -335,18 +393,25 @@ function finishing_up () {
# Refresh ZSH sesssion
SKIP_WELCOME=true || exec zsh
# Show popup
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"
read -t $PROMPT_TIMEOUT -n 1 -s
# Unset re-used variables
unset PROMPT_TIMEOUT
unset AUTO_YES
# Bye
exit 0
}
# Trigger cleanup on exit
trap cleanup EXIT
# If --help flag passed in, just show the help menu
if [[ $PARAMS == *"--help"* ]]; then
make_intro

View File

@ -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}" && \

View File

@ -4,15 +4,20 @@ Lissy93/Dotfiles - Scripts 📜
A set of Bash scripts for automating the setup and management of various systems.
* scripts/installs/ OS / distro specific package installation / update scripts
* Brewfile Packages to be installed via Homebrew on MacOS
* flatpak.sh Desktop apps to be installed on Linux GUI systems via Flatpak
* arch-pacman.sh Package installations using Pacman for Arch-based systems
* debian-apt.sh Package installations using apt for Debian-based systems
* alpine-pkg.sh Package installations using pkg for Alpine-based systems
* scripts/macos-setup/ Scripts to automate the configuration of MacOS systems
* macos-security.sh Apply essential MacOS security settings
* macos-preferences.sh Apply user MacOS preferences (spotlight, colors, behaviour, etc)
* macos-apps.sh Apply preferences to user applications (Finder, Mail, Terminal, etc)
dotfiles/scripts/
├── installs/
│ ├── arch-pacman.sh Package installations using via for Arch-based systems
│ ├── Brewfile Packages to be installed via Homebrew on MacOS
│ ├── flatpak.sh Desktop apps to be installed on Linux GUI systems via Flatpak
│ ├── alpine-pkg.sh Package installations using pkg for Alpine-based systems
│ └── prerequisites.sh Cross-distro installation of prerequisite core packages
├── linux/
│ └── dconf-prefs.sh Apply preferences to (mostly GNOME apps) via dconf utility
└── macos-setup/
├── macos-apps.sh Apply preferences to user applications (Finder, Mail, Terminal, etc)
├── macos-prefs.sh Apply user MacOS preferences (spotlight, colors, behaviour, etc)
└── macos-security.sh Apply essential MacOS security settings
Source: https://github.com/Lissy93/dotfiles/tree/master/scripts
Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com>

View File

@ -5,6 +5,7 @@
# Apps are sorted by category, and arranged alphabetically #
# Be sure to delete / comment out anything you do not need #
# Usage, run: $ brew bundle --global --file $HOME/.Brewfile #
# Source GH repository: https://github.com/lissy93/Brewfile #
# See brew docs for more info: https://docs.brew.sh/Manpage #
# #
# License: MIT © Alicia Sykes 2022 <https://aliciasykes.com>#
@ -146,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

View File

@ -9,15 +9,22 @@
# - Check app not already installed via system package manager #
# - Then install any not-yet-installed that are apps listed #
# #
# IMPORTANT: Be sure to remove / comment any apps you do not want! #
# The following flag parameters are accepted: #
# --prompt-before-each - Ask for user confirmation for each app #
# --dry-run - Run script, but without making changes to disk #
# --auto-yes - Don't prompt for any user input, use with care #
# --help - Print usage instructions / help menu, then exit #
# #
# IMPORTANT: Be sure to remove / comment any apps you do not want! #
# For docs and more info, see: https://github.com/lissy93/dotfiles #
######################################################################
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
######################################################################
# Remote origin to use for installations
flatpak_origin='flathub'
# List of desktop apps to be installed via Flatpak
# List of desktop apps to be installed (specified by app ID)
flatpak_apps=(
# Communication
@ -33,6 +40,7 @@ flatpak_apps=(
# Media
'com.spotify.Client' # Music streaming
'com.valvesoftware.Steam' # Gaming
'com.gitlab.newsflash' # RSS reader
'org.gnome.Cheese' # Webcam client
'org.libretro.RetroArch' # Retro game emulation
'org.videolan.VLC' # Media player
@ -40,8 +48,9 @@ flatpak_apps=(
# Creativity
'com.ultimaker.cura' # 3D slicing
'com.obsproject.Studio' # Video streaming
'com.transmissionbt.Transmission' # Torrent downloader
'com.uploadedlobster.peek' # Screen recorder
'fr.handbrake.ghb' # Video transcoder
'io.github.seadve.Kooha' # Screen recorder
'nl.hjdskes.gcolor3' # Color picker
'org.audacityteam.Audacity' # Sound editor
'org.blender.Blender' # 3D modeling
@ -64,20 +73,25 @@ flatpak_apps=(
'org.zaproxy.ZAP' # Auto vulnerability scanning
'org.nmap.Zenmap' # GUI for Nmap security scans
# Settings and system utils
'com.borgbase.Vorta' # Borg backup client
# Browsers
'org.mozilla.firefox'
'com.github.Eloston.UngoogledChromium'
'com.github.micahflee.torbrowser-launcher'
# Office
'org.libreoffice.LibreOffice'
'org.libreoffice.LibreOffice' # Office suite
'org.cvfosammmm.Setzer' # LaTeX editor
# Personal
'ch.protonmail.protonmail-bridge' # ProtonMail bridge
'com.belmoussaoui.Authenticator' # OTP authenticator
'org.cryptomator.Cryptomator' # Encryption for cloud
'org.standardnotes.standardnotes' # Encrypted synced notes
# Missing: Trewsorit, 1Password, EteSync, Veracrypt, Ledger
'com.onepassword.OnePassword' # Password manager
# Missing: Trewsorit, EteSync, Veracrypt, Ledger
)
# Color Variables
@ -89,9 +103,16 @@ GREEN='\033[0;32m'
PURPLE='\033[0;35m'
LIGHT='\x1b[2m'
# Options
PROMPT_TIMEOUT=15 # When user is prompted for input, skip after x seconds
PARAMS=$* # User-specified parameters
# Helper function to install Flatpak for users current distro
if [[ $PARAMS == *"--auto-yes"* ]]; then
PROMPT_TIMEOUT=1
AUTO_YES=true
fi
# Helper function to install Flatpak (if not present) for users current distro
function install_flatpak () {
# Arch, Manjaro
if hash "pacman" 2> /dev/null; then
@ -110,46 +131,29 @@ function install_flatpak () {
echo -e "${PURPLE}Installing Flatpak via Yum${RESET}"
sudo yum install flatpak
fi
echo -e "${PURPLE}Adding Flathub repo${RESET}"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
}
# Ask user if they'd like to proceed, and exit if not
echo -e "${CYAN_B}Would you like to install Flatpak desktop apps? (y/N)${RESET}\n"
read -t $PROMPT_TIMEOUT -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}Skipping Flatpak installations..."
exit 0
fi
# Checks if a given app ($1) is already installed, otherwise installs it
function install_app () {
app=$1
echo -e "${CYAN_B}Starting Flatpak App Installation Script${RESET}"
# Check that Flatpak is present, prompt to install or exit if not
if ! hash flatpak 2> /dev/null; then
echo -e "${PURPLE}Flatpak isn't yet installed on your system${RESET}"
echo -e "${CYAN_B}Would you like to install Flatpak now?${RESET}\n"
read -t $PROMPT_TIMEOUT -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
install_flatpak
else
echo -e "${YELLOW}Skipping Flatpak installations, as Flatpack not installed"
exit 0
# If --prompt-before-each is set, then ask user if they'd like to proceed
if [[ $PARAMS == *"--prompt-before-each"* ]]; then
echo -e -n "\n${CYAN_B}Would you like to install ${app}? (y/N) ${RESET}"
read -t 15 -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ $AUTO_YES != true ]] ; then
echo -e "\n${YELLOW}[Skipping] ${LIGHT}${app}, rejected by user${RESET}"
return
fi
echo
fi
fi
# Update currently installed apps
echo -e "${PURPLE}Updating installed apps${RESET}"
yes "" | flatpak update
# Itterate over each app, check if already installed, otherwise install now
echo -e "${PURPLE}Installing apps defined in manifest${RESET}"
for app in ${flatpak_apps[@]}; do
# Process app ID, and grep for it in system
app_name=$(echo $app | rev | cut -d "." -f1 | rev)
is_in_flatpak=$(echo $(flatpak list --columns=ref | grep $app))
is_in_pacman=$(echo $(pacman -Qk $(echo $app_name | tr 'A-Z' 'a-z') 2> /dev/null ))
is_in_apt=$(echo $(dpkg -s $(echo $app_name | tr 'A-Z' 'a-z') 2> /dev/null ))
# Check app not already installed via Flatpak
if [ -n "$is_in_flatpak" ]; then
echo -e "${YELLOW}[Skipping] ${LIGHT}${app_name} is already installed.${RESET}"
@ -162,9 +166,62 @@ for app in ${flatpak_apps[@]}; do
else
# Install app using Flatpak
echo -e "${GREEN}[Installing] ${LIGHT}Downloading ${app_name} (from ${flatpak_origin}).${RESET}"
if [[ $PARAMS == *"--dry-run"* ]]; then return; fi # Skip if --dry-run enabled
flatpak install -y --noninteractive $flatpak_origin $app
echo
fi
}
function print_usage () {
echo -e "${CYAN_B}Flatpak Linux Desktop App Installation and Update script${RESET}"
echo -e "${PURPLE}The following tasks will be completed:\n"\
"- Check Flatpak is installed correctly / prompt to install if not\n"\
"- Add the flathub repo, if not already present\n"\
"- Upgrade Flatpak, and update all exiting installed apps\n"\
"- Installs each app in the list (if not already present)\n"\
"${RESET}"
}
# Show help menu
print_usage
if [[ $PARAMS == *"--help"* ]]; then exit; fi
# Ask user if they'd like to proceed, and exit if not
echo -e "${CYAN_B}Would you like to install Flatpak desktop apps? (y/N)${RESET}\n"
read -t $PROMPT_TIMEOUT -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ $AUTO_YES != true ]] ; then
echo -e "${YELLOW}Skipping Flatpak installations..."
exit 0
fi
echo -e "${CYAN_B}Starting Flatpak App Installation Script${RESET}"
# Check that Flatpak is present, prompt to install or exit if not
if ! hash flatpak 2> /dev/null; then
echo -e "${PURPLE}Flatpak isn't yet installed on your system${RESET}"
echo -e "${CYAN_B}Would you like to install Flatpak now?${RESET}\n"
read -t $PROMPT_TIMEOUT -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]] || [[ $AUTO_YES = true ]] ; then
install_flatpak
else
echo -e "${YELLOW}Skipping Flatpak installations, as Flatpack not installed"
exit 0
fi
fi
# Add FlatHub as upstream repo, if not already present
echo -e "${PURPLE}Adding Flathub repo${RESET}"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Update currently installed apps
echo -e "${PURPLE}Updating installed apps${RESET}"
flatpak update --assumeyes --noninteractive
# Install each app listed above (if not already installed)
echo -e "${PURPLE}Installing apps defined in manifest${RESET}"
for app in ${flatpak_apps[@]}; do
install_app $app
done
echo -e "${PURPLE}Finished processing Flatpak apps${RESET}"

View File

@ -0,0 +1,96 @@
#!/usr/bin/env bash
######################################################################
# Core Dependency Install Script #
######################################################################
# Installs essential pre-requsite packages, when using new systems #
# Intended to be run before install.sh, if packages not yet present. #
# All other package inatslls are managed in system-specific scripts #
# For docs and more info, see: https://github.com/lissy93/dotfiles #
# IMPORTANT: Before running, read through everything very carefully! #
######################################################################
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
######################################################################
# List of apps to install
core_packages=(
'git' # Needed to fetch dotfiles
'vim' # Needed to edit files
'zsh' # Needed as bash is crap
)
# Color variables
PURPLE='\033[0;35m'
YELLOW='\033[0;93m'
LIGHT='\x1b[2m'
RESET='\033[0m'
# Shows help menu / introduction
function print_usage () {
echo -e "${PURPLE}Prerequisite Dependency Installation Script${LIGHT}\n"\
"There's a few packages that are needed in order to continue with setting up dotfiles.\n"\
"This script will detect distro, and use appropriate package manager to install apps.\n"\
"Elavated permissions may be required. Ensure you've read the script before proceeding."\
"\n${RESET}"
}
function install_debian () {
echo -e "${PURPLE}Installing ${1} via apt-get${RESET}"
sudo apt install $1
}
function install_arch () {
echo -e "${PURPLE}Installing ${1} via Pacman${RESET}"
sudo pacman -S $1
}
function install_mac () {
echo -e "${PURPLE}Installing ${1} via Homebrew${RESET}"
brew install $1
}
function get_homebrew () {
echo -e "${PURPLE}Setting up Homebrew${RESET}"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
export PATH=/opt/homebrew/bin:$PATH
}
# Detect OS type, then triggers install using appropriate package manager
function multi_system_install () {
app=$1
if [ "$(uname -s)" = "Darwin" ]; then
if ! hash brew 2> /dev/null; then get_homebrew; fi
install_mac $app # MacOS via Homebrew
elif [ -f "/etc/arch-release" ] && hash pacman 2> /dev/null; then
install_arch $app # Arch Linux via Pacman
elif ! [ -f "/etc/debian_version" ] && hash apt 2> /dev/null; then
install_debian $app # Debian via apt-get
else
echo -e "${YELLOW}Skipping ${app}, as couldn't detect system type ${RESET}"
fi
}
# Show usage instructions, help menu
print_usage
if [[ $* == *"--help"* ]]; then exit; fi
# Ask user if they'd like to proceed
if [[ ! $* == *"--auto-yes"* ]] ; then
echo -e "${PURPLE}Are you happy to continue? (y/N)${RESET}"
read -t 15 -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}Proceeding was rejected by user, exiting...${RESET}"
exit 0
fi
fi
# For each app, check if not present and install
for app in ${core_packages[@]}; do
if ! hash "${app}" 2> /dev/null; then
multi_system_install $app
else
echo -e "${YELLOW}${app} is already installed, skipping${RESET}"
fi
done
# All done
echo -e "\n${PURPLE}Jobs complete, exiting${RESET}"
exit 0

View File

@ -19,6 +19,8 @@ WARN_1='\033[1;31m'
WARN_2='\033[0;31m'
RESET='\033[0m'
ITAL='\e[3m'
UNDAL='\e[4m'
PALE='\e[2m'
BOLD='\e[1m'
PARAMS=$*
@ -48,11 +50,11 @@ fi
# Ask for user confirmation before proceeding (if skip flag isn't passed)
if [[ ! $PARAMS == *"--yes-to-all"* ]]; then
echo -e "${PRIMARY_COLOR}Would you like to proceed? (y/N)${RESET_COLOR}"
echo -e "\n${PRIMARY_COLOR}Would you like to proceed? (y/N)${RESET}"
read -t 15 -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo -e "${ACCENT_COLOR}\nNo worries, nothing will be applied - feel free to come back another time."
echo -e "${PRIMARY_COLOR}Exiting...${RESET_COLOR}"
echo -e "${PRIMARY_COLOR}Exiting...${RESET}"
exit 0
else
echo -e "\n"
@ -86,6 +88,17 @@ apply_dconf () {
dconf_key=$1
dconf_name=$2
# If --prompt-before-each flag is set, then ask users permission for each app
if [[ $PARAMS == *"--prompt-before-each"* ]]; then
echo -e -n "\n${PRIMARY_COLOR}Would you like to apply ${dconf_name} settings? (y/N) ${RESET}"
read -t 15 -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo -e "\n${ACCENT_COLOR}Skipping ${dconf_name} settings${RESET}"
return
fi
echo
fi
# Check that a valid key is specified
if [[ -z "$dconf_key" ]]; then
echo -e "${ERROR_COLOR}⚠ Error, no key specified${RESET}"

View File

@ -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=$(<config/macos/alicia-term.terminal)
plutil -replace Window\ Settings.Alicia-Term -xml "$theme" ~/Library/Preferences/com.apple.Terminal.plist
defaults write com.apple.terminal 'Default Window Settings' -string Alicia-Term
defaults write com.apple.terminal 'Startup Window Settings' -string Alicia-Term
echo 'tell application "Terminal" to set current settings of first window to settings set "Alicia-Term"' | osascript
###############################################################################
# Time Machine #
@ -483,6 +489,25 @@ defaults write org.m0k.transmission BlocklistAutoUpdate -bool true
log_msg "Randomize port on launch"
defaults write org.m0k.transmission RandomPort -bool true
#################################
# Restart affected applications #
#################################
log_section "Finishing Up"
log_msg "Restarting afffecting apps"
for app in "Activity Monitor" \
"Address Book" \
"Calendar" \
"Contacts" \
"Finder" \
"Mail" \
"Messages" \
"Photos" \
"Safari" \
"Terminal" \
"iCal"; do
killall "${app}" &> /dev/null
done
#####################################
# Print finishing message, and exit #
#####################################

View File

@ -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 #

View File

@ -7,36 +7,18 @@
- shell:
- description: Set XDG environmental variables
command: source ./zsh/.zshenv
- description: Check that $XDG_CONFIG_HOME is set
command: >
if [ -z ${XDG_CONFIG_HOME+x} ]; then; \
echo "XDG_CONFIG_HOME is not yet set. Will use ~/.config"; \
XDG_CONFIG_HOME="${HOME}/.config"; \
fi
stdin: false
stdout: true
stderr: true
quiet: true
- description: Check that $XDG_DATA_HOME is set
command: >
if [ -z ${XDG_DATA_HOME+x} ]; then; \
echo "XDG_DATA_HOME is not yet set. Will use ~/.local/share"; \
XDG_DATA_HOME="${HOME}/.local/share"; \
fi
stdin: false
stdout: true
stderr: true
quiet: true
command: source ./config/zsh/.zshenv
# Symlink locations for files / directories
- link:
# Essential configs (ZSH, Vim, Tmux)
~/.zshenv: { path: zsh/.zshenv, force: true }
${XDG_CONFIG_HOME}/zsh: zsh
${XDG_CONFIG_HOME}/vim: vim
${XDG_CONFIG_HOME}/nvim: vim
${XDG_CONFIG_HOME}/tmux: tmux
~/.zshenv: { path: config/zsh/.zshenv, force: true }
${XDG_CONFIG_HOME}/zsh: config/zsh
${XDG_CONFIG_HOME}/vim: config/vim
${XDG_CONFIG_HOME}/nvim: config/vim
${XDG_CONFIG_HOME}/tmux: config/tmux
${XDG_CONFIG_HOME}/fish/config.fish: config/config.fish
${XDG_DATA_HOME}/tmux/tpm: lib/tpm
${XDG_DATA_HOME}/tmux/plugins/tpm: lib/tpm
@ -62,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:

View File

@ -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}"
}

View File

@ -0,0 +1,22 @@
#!/bin/bash
######################################################################
# 📊 Free up disk space #
######################################################################
# Series of commands for freeing up disk space on *nix based systems #
# Will ask for user permission before executing or deleting anything #
# Info about current disk usage is printed before starting #
# #
# Includes the following tasks: #
# - Cleaning package cache for various package managers #
# - Removing orphaned and unused packages and binaries #
# - Setting logging preferences and removing old logs #
# - Removing local cache files for the current user #
# - Deleting broken symlinks and empty files + folers #
# - Finding and deleting duplicated large files #
# #
# IMPORTANT: Before running, read through everything very carefully! #
# For docs and more info, see: https://github.com/lissy93/dotfiles #
######################################################################
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
######################################################################

View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash

55
utils/weather.sh Normal file → Executable file
View File

@ -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 <https://aliciasykes.com> #
######################################################################
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 <<EOF
Weather
Description: Provides a 3 day forecast on your current location or a specified location.
@ -93,10 +96,10 @@ while getopts "uvh" opt; do
h) usage
exit 0
;;
v) echo "Version $currentVersion"
v) echo "Version $scriptVersion"
exit 0
;;
u) checkInternet || exit 1 # check if we have a valid internet connection if this isnt true the rest of the script will not work so stop here
u) checkInternet || exit 1 # Check connection, exit if fail
update || exit 1
exit 0
;;
@ -147,4 +150,4 @@ elif [[ "${@: -1}" == "i" ]];then
getLocationWeather "$args" || exit 1
else
getLocationWeather "$@" || exit 1
fi
fi