mirror of
https://github.com/Lissy93/dotfiles.git
synced 2024-11-24 16:33:14 +01:00
Merge branch 'master' of github.com:Lissy93/dotfiles
# Conflicts: # installs/arch.sh
This commit is contained in:
commit
7fb8fc834e
405
.github/README.md
vendored
405
.github/README.md
vendored
@ -8,17 +8,16 @@
|
|||||||
- [Introduction to Dotfiles](#intro)
|
- [Introduction to Dotfiles](#intro)
|
||||||
- [What are dotfiles?](#what-are-dotfiles)
|
- [What are dotfiles?](#what-are-dotfiles)
|
||||||
- [Dotfile Management Systems](#dotfile-management-systems)
|
- [Dotfile Management Systems](#dotfile-management-systems)
|
||||||
- [So copy paste, right?](#so-copy-paste-right)
|
|
||||||
- [XDG Directories](#xdg-directories)
|
- [XDG Directories](#xdg-directories)
|
||||||
- [Applying Dotfiles](#applying-dotfiles)
|
|
||||||
- [Containerized Userspace](#containerized-userspace)
|
- [Containerized Userspace](#containerized-userspace)
|
||||||
- [Security](#security)
|
- [Security](#security)
|
||||||
|
- [So copy paste, right?](#so-copy-paste-right)
|
||||||
- [My Dots](#my-dots)
|
- [My Dots](#my-dots)
|
||||||
- [Setup](#setup)
|
- [Setup](#setup)
|
||||||
- [Directory Structure](#directory-structure)
|
- [Directory Structure](#directory-structure)
|
||||||
|
- [Install Script](#install-script)
|
||||||
- [Configuring](#configuring)
|
- [Configuring](#configuring)
|
||||||
- [Aliases](#aliases)
|
- [Aliases](#aliases)
|
||||||
- [Utilities](#utilities)
|
|
||||||
- [Packages](#packages)
|
- [Packages](#packages)
|
||||||
- [System Preferences](#system-preferences)
|
- [System Preferences](#system-preferences)
|
||||||
- [ZSH](#zsh)
|
- [ZSH](#zsh)
|
||||||
@ -26,6 +25,7 @@
|
|||||||
- [Tmux](#tmux)
|
- [Tmux](#tmux)
|
||||||
- [Git](#git)
|
- [Git](#git)
|
||||||
- [Dependencies](#dependencies)
|
- [Dependencies](#dependencies)
|
||||||
|
- [Utilities](#utilities)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -41,51 +41,13 @@ Once everything's setup, you'll be able to SSH into a fresh system or reinstall
|
|||||||
|
|
||||||
It's not hard to create your own dotfile repo, it's great fun and you'll learn a ton along the way!
|
It's not hard to create your own dotfile repo, it's great fun and you'll learn a ton along the way!
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Dotfile Management Systems
|
### Dotfile Management Systems
|
||||||
|
|
||||||
You can make things simple, or complex as you like.
|
In terms of managing and applying your dotfiles, you can make things simple, or complex as you like.
|
||||||
|
|
||||||
The two most common methods are either symlinking, or using a git bare repo, these are explained in more detail in the [Applying Dotfiles](#applying-dotfiles) section. You can either do things manually, write a simple script, or use a pre-build dotfile management system (like [dotbot](https://github.com/anishathalye/dotbot), [chezmoi](https://github.com/twpayne/chezmoi), [yadm](https://github.com/TheLocehiliosan/yadm) or [GNU Stow](https://www.gnu.org/software/stow/)).
|
The two most common approaches are be either symlinking, or using git bare repo, but you could also do things manually by writing a simple script.
|
||||||
|
|
||||||
In terms of managing dependencies, using either [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) or [git subtree](https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt) will let you keep dependencies in your project, while also separate from your own code and easily updatable.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### So copy paste, right?
|
|
||||||
|
|
||||||
Zach Holman wrote a great article titled [Dotfiles Are Meant to Be Forked](https://zachholman.com/2010/08/dotfiles-are-meant-to-be-forked/). I personally disagree with this, since your dotfiles are ususally highly personalized, so what's right for one developer, likely won't be what someone else is looking for. They're also usually something you build up over time, and althgouh some repos may provide a great starting point, it's really important to know what everything does, and how it works.
|
|
||||||
|
|
||||||
By all means feel free to take what you want from mine. I've taken care to ensure that each file is standalone, and well documented so that certain files can just be dropped into any system. But I cannot stress enough the importance of reading through files to ensure it's actually what you want.
|
|
||||||
|
|
||||||
If you're looking for some more example dotfile repos to get you started, I can highly recomend taking a look at: [holman](https://github.com/holman/dotfiles).
|
|
||||||
|
|
||||||
There's even more to check out at [webpro/awesome-dotfiles](https://github.com/webpro/awesome-dotfiles), [dotfiles.github.io](https://dotfiles.github.io/) and [r/unixporn](https://www.reddit.com/r/unixporn/).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### XDG Directories
|
|
||||||
|
|
||||||
One of my goals was to try and keep the top-level user home directory as clean as possible by honouring the [XDG base directory specification](https://specifications.freedesktop.org/basedir-spec), which lets you specify the locations for config, cache, data, log and other files. This is done by setting environmental variables within [`.zshenv`](https://github.com/Lissy93/dotfiles/blob/master/zsh/.zshenv).
|
|
||||||
|
|
||||||
You can modify any of these values, but by default the following paths are used:
|
|
||||||
|
|
||||||
Variable | Location
|
|
||||||
--- | ---
|
|
||||||
`XDG_CONFIG_HOME` | `~/.config`
|
|
||||||
`XDG_DATA_HOME` | `~/.local/share`
|
|
||||||
`XDG_BIN_HOME` | `~/.local/bin`
|
|
||||||
`XDG_LIB_HOME` | `~/.local/lib`
|
|
||||||
`XDG_CACHE_HOME` | `~/.local/var/cache`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
### Applying Dotfiles
|
|
||||||
|
|
||||||
There are several different approaches to managing dotfiles. The two most common would be either symlinking, or git bare repo.
|
|
||||||
|
|
||||||
#### Option 1 - Symlinking
|
#### Option 1 - Symlinking
|
||||||
|
|
||||||
@ -130,6 +92,25 @@ Both [Chezmoi](https://github.com/twpayne/chezmoi/) and [YADM](https://github.co
|
|||||||
|
|
||||||
To learn more, DistroTube made an excellent [video about bare git repos](https://www.youtube.com/watch?v=tBoLDpTWVOM), and Marcel Krčah has written [a post](https://marcel.is/managing-dotfiles-with-git-bare-repo/) outlining the benefits.
|
To learn more, DistroTube made an excellent [video about bare git repos](https://www.youtube.com/watch?v=tBoLDpTWVOM), and Marcel Krčah has written [a post](https://marcel.is/managing-dotfiles-with-git-bare-repo/) outlining the benefits.
|
||||||
|
|
||||||
|
#### Dotfile Dependencies
|
||||||
|
|
||||||
|
In terms of managing dependencies, using either [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) or [git subtree](https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt) will let you keep dependencies in your project, while also separate from your own code and easily updatable.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### XDG Directories
|
||||||
|
|
||||||
|
One of my goals was to try and keep the top-level user home directory as clean as possible by honouring the [XDG base directory specification](https://specifications.freedesktop.org/basedir-spec), which lets you specify the locations for config, cache, data, log and other files. This is done by setting environmental variables within [`.zshenv`](https://github.com/Lissy93/dotfiles/blob/master/zsh/.zshenv).
|
||||||
|
|
||||||
|
You can modify any of these values, but by default the following paths are used:
|
||||||
|
|
||||||
|
Variable | Location
|
||||||
|
--- | ---
|
||||||
|
`XDG_CONFIG_HOME` | `~/.config`
|
||||||
|
`XDG_DATA_HOME` | `~/.local/share`
|
||||||
|
`XDG_BIN_HOME` | `~/.local/bin`
|
||||||
|
`XDG_LIB_HOME` | `~/.local/lib`
|
||||||
|
`XDG_CACHE_HOME` | `~/.local/var/cache`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -151,6 +132,17 @@ Something that is important to keep in mind, is security. Often you may have som
|
|||||||
|
|
||||||
Another solution, is to encrypt sensitive info. A great tool for this is [`pass`](https://www.passwordstore.org/) as it makes GPG-encrypting passwords very easy ([this article](https://www.outcoldman.com/en/archive/2015/09/17/keep-sensitive-data-encrypted-in-dotfiles/) outlines how), or you could also just use plain old GPG (as outlined in [this article](https://www.abdullah.today/encrypted-dotfiles/)).
|
Another solution, is to encrypt sensitive info. A great tool for this is [`pass`](https://www.passwordstore.org/) as it makes GPG-encrypting passwords very easy ([this article](https://www.outcoldman.com/en/archive/2015/09/17/keep-sensitive-data-encrypted-in-dotfiles/) outlines how), or you could also just use plain old GPG (as outlined in [this article](https://www.abdullah.today/encrypted-dotfiles/)).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### So copy paste, right?
|
||||||
|
|
||||||
|
Zach Holman wrote a great article titled [Dotfiles Are Meant to Be Forked](https://zachholman.com/2010/08/dotfiles-are-meant-to-be-forked/). I personally disagree with this, since your dotfiles are usually highly personalized, so what's right for one developer, likely won't be what someone else is looking for. They're also typically something you build up over time, and although some repos may provide a great starting point, it's really important to know what everything does, and how it works.
|
||||||
|
|
||||||
|
By all means feel free to take what you want from mine. I've taken care to ensure that each file is standalone, and well documented so that certain files can just be dropped into any system. But I cannot stress enough the importance of reading through files to ensure it's actually what you want.
|
||||||
|
|
||||||
|
If you're looking for some more example dotfile repos to get you started, I can highly recommend taking a look at: [holman](https://github.com/holman/dotfiles).
|
||||||
|
|
||||||
|
There's even more to check out at [webpro/awesome-dotfiles](https://github.com/webpro/awesome-dotfiles), [dotfiles.github.io](https://dotfiles.github.io/) and [r/unixporn](https://www.reddit.com/r/unixporn/).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -213,6 +205,49 @@ Once the repo is cloned, you can modify whatever files you like before running t
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### Install Script
|
||||||
|
|
||||||
|
The install script will do the following:
|
||||||
|
|
||||||
|
- **Setup**
|
||||||
|
- Set variables by reading any passed parameters, or fallback to sensible defaults
|
||||||
|
- Print welcome message, and a summary of proposed changes, and prompt user to continue
|
||||||
|
- Ensure that core dependencies are met (git, zsh, vim)
|
||||||
|
- **Dotfiles**
|
||||||
|
- If dotfiles not yet present, will clone from git, otherwise pulls latest changes
|
||||||
|
- Symlinks each file to it's correct location on disk
|
||||||
|
- **System Config**
|
||||||
|
- Checks default shell, if not yet set, will prompt to set to zsh
|
||||||
|
- Installs Vim plugins via Plug
|
||||||
|
- Installs Tmux plugins via TPM
|
||||||
|
- Installs ZSH plugins via Antigen
|
||||||
|
- Prompts to apply system preferences (for compatible OS / DE)
|
||||||
|
- On MacOS arranges apps into folders within the Launchpad view
|
||||||
|
- On MacOS prompts to set essential privacy + security settings
|
||||||
|
- On MacOS prompts to set system preferences and app settings
|
||||||
|
- **App Installations**
|
||||||
|
- On MacOS if Homebrew is not yet installed, will prompt to install it
|
||||||
|
- On MacOS will prompt to install user apps listed in Brewfile, via Homebrew
|
||||||
|
- On Linux will prompt to install listed CLI apps via native package manager (pacman or apt)
|
||||||
|
- On Linux desktop systems, will prompt to istall desktop apps via Flatpak
|
||||||
|
- Checks OS is up-to-date, prompts to install updates if available
|
||||||
|
- **Finishing up**
|
||||||
|
- Outputs time taken and a summary of changes applied
|
||||||
|
- Re-sources ZSH and refreshes current session
|
||||||
|
- Prints a pretty Tux ASCII picture
|
||||||
|
- Exits
|
||||||
|
|
||||||
|
The install script can accept several flags and environmental variables to configure installation:
|
||||||
|
- **Flags**
|
||||||
|
- `--help` - Prints help menu / shows info, without making any changes
|
||||||
|
- `--auto-yes` - Doesn't prompt for any user input, always assumes Yes (use with care!)
|
||||||
|
- `--no-clear` - Doesn't clear the screen before starting (useful if being run by another app)
|
||||||
|
- **Env Vars**
|
||||||
|
- `REPO_NAME` - The repository name to pull, e.g. `Lissy93/Dotfiles`
|
||||||
|
- `DOTFILES_DIR` - The directory to clone source dotfiles into
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### Configuring
|
### 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/zsh/.zshenv).
|
||||||
@ -541,89 +576,6 @@ Alias | Description
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Utilities
|
|
||||||
|
|
||||||
|
|
||||||
The dotfiles also contains several handy bash scripts to carry out useful tasks with slightly more ease.
|
|
||||||
|
|
||||||
Each of these scripts is standalone, without any dependencies, and can be executed directly to use.
|
|
||||||
Alternatively, they can be sourced from within a .zshrc / .bashrc, for use anywhere via their alias.
|
|
||||||
|
|
||||||
For usage instructions about any of them, just append the `--help` flag.
|
|
||||||
|
|
||||||
- [Transfer]() - Quickly transfer files or folders to the internet
|
|
||||||
- [Web Search]() - Open a specific search engine with a given query
|
|
||||||
- [QR Code]() - Generates a QR code for a given string, to transfer data to mobile device
|
|
||||||
- [Weather]() - Shows current and forecasted weather for your location
|
|
||||||
- [Color Map]() - Just outputs your terminal emulators supported color pallete
|
|
||||||
- [Welcome]() - Used for first login, prints personalised greeting, system info, and other handy info
|
|
||||||
- [Online]() - Checks if you are connected to the internet
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### Transfer
|
|
||||||
|
|
||||||
Quickly transfer a file, group of files or directory via the transfer.sh service.<br>
|
|
||||||
To get started, run `transfer <file(s) / folder>`, for more info, run `transfer --help`
|
|
||||||
|
|
||||||
If multiple files are passed in, they will automatically be compressed into an archive.
|
|
||||||
You can change the file transfer service, or use a self-hosted instance by setting the URL in `FILE_TRANSFER_SERVICE`
|
|
||||||
The file can be either run directly, or sourced in your `.zshrc` and used via the `transfer` alias.
|
|
||||||
|
|
||||||
> For info, run `transfer --help`<br>
|
|
||||||
> Source: [`utils/transfer.sh`](https://github.com/Lissy93/dotfiles/blob/master/utils/transfer.sh)
|
|
||||||
|
|
||||||
#### Web Search
|
|
||||||
|
|
||||||
Quickly open web search results for a given query using a selected search engine. To get started, run `web-search`, or `web-search --help` for more info.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
|
|
||||||
All parameters are optional, to get started just run `web-search` or `web-search <search provider (optional)> <query (optional)>`, the `ws` alias can also be used. If a search engine isn't specified, you'll be prompted to select one from the list. Similarly, if a query hasn't been included you'll be asked for that too.
|
|
||||||
|
|
||||||
- `web-search` - Opens interactive menu, you'll be prompted to select a search engine from the list then enter your query
|
|
||||||
- `web-search <search term>` - Specify a search term, and you'll be prompted to select the search engine
|
|
||||||
- For example, `web-search Hello World!`
|
|
||||||
- `web-search <search engine>` - Specify a search engine, and you'll be prompted for your search term
|
|
||||||
- For example, `web-search duckduckgo`
|
|
||||||
- `web-search <search engine> <search engine>` - Specify both a search engine and query, and results will open immediately
|
|
||||||
- For example, `web-search wikipedia Matrix Defense`
|
|
||||||
|
|
||||||
<details>
|
|
||||||
|
|
||||||
<summary><b>Supported Search Providers</b></summary>
|
|
||||||
|
|
||||||
The following search engines are supported by default:
|
|
||||||
- DuckDuckGo: `ws duckduckgo` (or `wsddg`)
|
|
||||||
- Wikipedia: `ws wikipedia` or (`wswiki`)
|
|
||||||
- GitHub: `ws github` (or `wsgh`)
|
|
||||||
- StackOverflow: `ws stackoverflow` (or `wsso`)
|
|
||||||
- Wolframalpha: `ws wolframalpha` (or `wswa`)
|
|
||||||
- Reddit: `ws reddit` (or `wsrdt`)
|
|
||||||
- Maps: `ws maps` (or `wsmap`)
|
|
||||||
- Google: `ws google` (or `wsggl`)
|
|
||||||
- Grep App: `ws grepapp` (or `wsgra`)
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
The alias `ws` will also resolve to `web-search`, if it's not already in use. You can either run the script directly, e.g.`~/.config/utils/web-search.sh` (don't forget to `chmod +x` the file first, to make it executable), or use the `web-search` / `ws` alias anywhere, once it has been source'd from your .zshrc.
|
|
||||||
|
|
||||||
> For info, run `web-search --help`<br>
|
|
||||||
> Source: [`utils/web-search.sh`](https://github.com/Lissy93/dotfiles/blob/master/utils/web-search.sh)
|
|
||||||
|
|
||||||
<details>
|
|
||||||
|
|
||||||
<summary>Try now!</summary>
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bash <(curl -s https://raw.githubusercontent.com/Lissy93/dotfiles/master/utils/web-search.sh)
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Packages
|
### Packages
|
||||||
@ -636,7 +588,7 @@ You will be prompted before anything is installed. Be sure to remove / comment o
|
|||||||
|
|
||||||
- Linux (desktop): [`flatpak.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/flatpak.sh) - Desktop apps can be installed on Linux systems via [Flatpack](https://flatpak.org/)
|
- Linux (desktop): [`flatpak.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/flatpak.sh) - Desktop apps can be installed on Linux systems via [Flatpack](https://flatpak.org/)
|
||||||
- Mac OS: [`.Brewfile`](https://github.com/Lissy93/dotfiles/blob/master/installs/Brewfile) - Mac apps installed via [Homebrew](https://brew.sh/)
|
- Mac OS: [`.Brewfile`](https://github.com/Lissy93/dotfiles/blob/master/installs/Brewfile) - Mac apps installed via [Homebrew](https://brew.sh/)
|
||||||
- Arch (and Arch-based systems, like Manjaro): [`pacman.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/pacman.sh) - Arch CLI apps installed via [pacman](https://wiki.archlinux.org/title/Pacman)
|
- Arch (and Arch-based systems, like Manjaro): [`arch-pacman.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/arch-pacman.sh) - Arch CLI apps installed via [pacman](https://wiki.archlinux.org/title/Pacman)
|
||||||
- Debian (and Debian-based systems, like Ubuntu): [`apt.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/apt.sh) - Debian CLI apps installed via [apt](https://wiki.debian.org/Apt)
|
- Debian (and Debian-based systems, like Ubuntu): [`apt.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/apt.sh) - Debian CLI apps installed via [apt](https://wiki.debian.org/Apt)
|
||||||
- Alpine: [`apk.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/apk.sh) - Alpine CLI apps installed via [apk](https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.html)
|
- Alpine: [`apk.sh`](https://github.com/Lissy93/dotfiles/blob/master/installs/apk.sh) - Alpine CLI apps installed via [apk](https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.html)
|
||||||
|
|
||||||
@ -647,96 +599,97 @@ The following section lists different apps that may be installed for each catego
|
|||||||
<details>
|
<details>
|
||||||
<summary>CLI Essentials</summary>
|
<summary>CLI Essentials</summary>
|
||||||
|
|
||||||
- `git` - Version controll
|
- [`git`](https://git-scm.com/) - Version controll
|
||||||
- `neovim` - Text editor
|
- [`neovim`](https://neovim.io/) - Text editor
|
||||||
- `ranger` - Directory browser
|
- [`ranger`](https://ranger.github.io/) - Directory browser
|
||||||
- `tmux` - Term multiplexer
|
- [`tmux`](https://github.com/tmux/tmux/wiki) - Term multiplexer
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>CLI Basics</summary>
|
<summary>CLI Basics</summary>
|
||||||
|
|
||||||
- `aria2` - Resuming download util _(better wget)_
|
- [`aria2`](https://github.com/aria2/aria2) - Resuming download util _(better wget)_
|
||||||
- `bat` - Output highlighting _(better cat)_
|
- [`bat`](https://github.com/sharkdp/bat) - Output highlighting _(better cat)_
|
||||||
- `ctags` - Indexing of file info + headers
|
- [`ctags`](https://github.com/universal-ctags/ctags) - Indexing of file info + headers
|
||||||
- `diff-so-fancy` -# Readable file compares _(better diff)_
|
- [`diff-so-fancy`](https://github.com/so-fancy/diff-so-fancy) - Readable file compares _(better diff)_
|
||||||
- `exa` - Listing files with info _(better ls)_
|
- [`duf`](https://github.com/muesli/duf) - Get info on mounted disks _(better df)_
|
||||||
- `fzf` - Fuzzy file finder and filtering
|
- [`exa`](https://github.com/ogham/exa) - Listing files with info _(better ls)_
|
||||||
- `hyperfine` - Benchmarking for arbitrary commands
|
- [`fzf`](https://github.com/junegunn/fzf) - Fuzzy file finder and filtering
|
||||||
- `jq` - JSON parser
|
- [`hyperfine`](https://github.com/sharkdp/hyperfine) - Benchmarking for arbitrary commands
|
||||||
- `lfs` - Get info on mounted disks _(better df)_
|
- [`jq`](https://github.com/stedolan/jq) - JSON parser
|
||||||
- `procs` - Advanced process viewer _(better ps)_
|
- [`most`](https://www.jedsoft.org/most/) - Multi-window scroll pager _(better less)_
|
||||||
- `ripgrep` - Searching within files _(better grep)_
|
- [`procs`](https://github.com/dalance/procs) - Advanced process viewer _(better ps)_
|
||||||
- `scc` - Count lines of code _(better cloc)_
|
- [`ripgrep`](https://github.com/BurntSushi/ripgrep) - Searching within files _(better grep)_
|
||||||
- `sd` - RegEx find and replace _(better sed)_
|
- [`scc`](https://github.com/boyter/scc) - Count lines of code _(better cloc)_
|
||||||
- `thefuck` - Auto-correct miss-typed commands
|
- [`sd`](https://github.com/chmln/sd) - RegEx find and replace _(better sed)_
|
||||||
- `tldr` - Community-maintained docs _(better man)_
|
- [`thefuck`](https://github.com/nvbn/thefuck) - Auto-correct miss-typed commands
|
||||||
- `tree` - Directory listings as tree
|
- [`tldr`](https://github.com/tldr-pages/tldr) - Community-maintained docs _(better man)_
|
||||||
- `trash-cli` - Record + restore removed files
|
- [`tree`](https://gitlab.com/OldManProgrammer/unix-tree) - Directory listings as tree
|
||||||
- `xsel` - Copy paste access to X clipboard
|
- [`trash-cli`](https://github.com/andreafrancia/trash-cli) - Record + restore removed files
|
||||||
- `zoxide` - Easy navigation _(better cd)_
|
- [`xsel`](https://github.com/kfish/xsel) - Copy paste access to X clipboard
|
||||||
|
- [`zoxide`](https://github.com/ajeetdsouza/zoxide) - Easy navigation _(better cd)_
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>CLI Monitoring and Performance Apps</summary>
|
<summary>CLI Monitoring and Performance Apps</summary>
|
||||||
|
|
||||||
- `bandwhich` - Bandwidth utilization monitor
|
- [`bandwhich`](https://github.com/imsnif/bandwhich) - Bandwidth utilization monitor
|
||||||
- `ctop` - Container metrics and monitoring
|
- [`ctop`](https://github.com/bcicen/ctop) - Container metrics and monitoring
|
||||||
- `bpytop` - Resource monitoring _(like htop)_
|
- [`bpytop`](https://github.com/aristocratos/bpytop) - Resource monitoring _(like htop)_
|
||||||
- `glances` - Resource monitor + web and API
|
- [`glances`](https://github.com/nicolargo/glances) - Resource monitor + web and API
|
||||||
- `gping` - Interactive ping tool, with graph
|
- [`gping`](https://github.com/orf/gping) - Interactive ping tool, with graph
|
||||||
- `ncdu` - Disk usage analyzer and monitor _(better du)_
|
- [`ncdu`](https://dev.yorhel.nl/ncdu) - Disk usage analyzer and monitor _(better du)_
|
||||||
- `speedtest-cli` -# Command line speed test utility
|
- [`speedtest-cli`](https://github.com/sivel/speedtest-cli) - Command line speed test utility
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>CLI Productivity Apps</summary>
|
<summary>CLI Productivity Apps</summary>
|
||||||
|
|
||||||
- `browsh` - CLI web browser
|
- [`browsh`](https://github.com/browsh-org/browsh) - CLI web browser
|
||||||
- `buku` - Bookmark manager
|
- [`buku`](https://github.com/jarun/buku) - Bookmark manager
|
||||||
- `cmus` - Music browser / player
|
- [`cmus`](https://github.com/cmus/cmus) - Music browser / player
|
||||||
- `khal` - Calendar client
|
- [`khal`](https://github.com/pimutils/khal) - Calendar client
|
||||||
- `mutt` - Email client
|
- [`mutt`](https://gitlab.com/muttmua/mutt) - Email client
|
||||||
- `newsboat` - RSS / ATOM news reader
|
- [`newsboat`](https://github.com/newsboat/newsboat) - RSS / ATOM news reader
|
||||||
- `rclone` - Manage cloud storage
|
- [`rclone`](https://github.com/rclone/rclone) - Manage cloud storage
|
||||||
- `task` - Todo + task management
|
- [`task`](https://github.com/GothenburgBitFactory/taskwarrior) - Todo + task management
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>CLI Dev Suits</summary>
|
<summary>CLI Dev Suits</summary>
|
||||||
|
|
||||||
- `httpie` - HTTP / API testing testing client
|
- [`httpie`]() - HTTP / API testing testing client
|
||||||
- `lazydocker` - Full Docker management app
|
- [`lazydocker`]() - Full Docker management app
|
||||||
- `lazygit` - Full Git managemtne app
|
- [`lazygit`]() - Full Git managemtne app
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>CLI External Sercvices</summary>
|
<summary>CLI External Sercvices</summary>
|
||||||
|
|
||||||
- `ngrok` - Reverse proxy for sharing localhost
|
- [`ngrok`]() - Reverse proxy for sharing localhost
|
||||||
- `tmate` - Share a terminal session via internet
|
- [`tmate`]() - Share a terminal session via internet
|
||||||
- `pbgopy` - Cross-device copy and paste service
|
- [`pbgopy`]() - Cross-device copy and paste service
|
||||||
- `asciinema` - Recording + sharing terminal sessions
|
- [`asciinema`]() - Recording + sharing terminal sessions
|
||||||
- `googler` - Fetch search results from Google
|
- [`googler`]() - Fetch search results from Google
|
||||||
- `gotty` - Expose terminal sessaion via browser
|
- [`gotty`]() - Expose terminal sessaion via browser
|
||||||
- `navi` - Browse, search, read cheat sheets
|
- [`navi`]() - Browse, search, read cheat sheets
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>CLI Fun</summary>
|
<summary>CLI Fun</summary>
|
||||||
|
|
||||||
- `cowsay` - Have an ASCII cow say your message
|
- [`cowsay`]() - Have an ASCII cow say your message
|
||||||
- `figlet` - Output text as big ASCII art text
|
- [`figlet`]() - Output text as big ASCII art text
|
||||||
- `lolcat` - Make console output raibow colored
|
- [`lolcat`]() - Make console output raibow colored
|
||||||
- `neofetch` - Show system data and ditstro info
|
- [`neofetch`]() - Show system data and ditstro info
|
||||||
- `pipes-sh` - Cool terminal pipe screen saver
|
- [`pipes-sh`]() - Cool terminal pipe screen saver
|
||||||
- `pv` - Pipe viewer, with animation options
|
- [`pv`]() - Pipe viewer, with animation options
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@ -904,12 +857,13 @@ The installation script can also prompt you to confiture system settings and use
|
|||||||
|
|
||||||
#### MacOS
|
#### MacOS
|
||||||
|
|
||||||
MacOS includes a utility named [`defaults`](https://real-world-systems.com/docs/defaults.1.html), which lets you configure all system and app preferences programatically through the command line. This is very powerful, as you can write a script that configures every aspect of your system enabling you to setup a brand new machine in seconds.
|
MacOS includes a built-in utility named [`defaults`](https://real-world-systems.com/docs/defaults.1.html), which lets you configure all system and app preferences programatically through the command line. This is very powerful, as you can write a script that configures every aspect of your system enabling you to setup a brand new machine in seconds.
|
||||||
|
|
||||||
All settings are then updated in the `.plist` files stored in `~/Library/Preferences`. This can also be used to configure preferences for any installed app on your system, where the application is specified by its domain identifier - you can view a full list of your configurable apps by running `defaults domains`.
|
All settings are then updated in the `.plist` files stored in `~/Library/Preferences`. This can also be used to configure preferences for any installed app on your system, where the application is specified by its domain identifier - you can view a full list of your configurable apps by running `defaults domains`.
|
||||||
|
|
||||||
|
|
||||||
In my dotfiles, the MacOS preferences will configure everything from system security to launchpad layout. The Mac settings are located in [`system-specific/macos/system-settings/`](https://github.com/Lissy93/dotfiles/tree/master/system-specific/macos/system-settings), and are split into three files:
|
In my dotfiles, the MacOS preferences will configure everything from system security to launchpad layout.
|
||||||
|
The Mac settings are located in [`system-specific/macos/system-settings/`](https://github.com/Lissy93/dotfiles/tree/master/system-specific/macos/system-settings), and are split into three files:
|
||||||
- [`macos-security.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-security.sh) - Sets essential security settings, disables telementry, disconnects unused ports, enforces signing, sets logout timeouts, and much more
|
- [`macos-security.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-security.sh) - Sets essential security settings, disables telementry, disconnects unused ports, enforces signing, sets logout timeouts, and much more
|
||||||
- [`macos-preferences.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-preferences.sh) - Configures all user preferences, including computer name, highlight color, finder options, spotlight settings, hardware preferences and more
|
- [`macos-preferences.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-preferences.sh) - Configures all user preferences, including computer name, highlight color, finder options, spotlight settings, hardware preferences and more
|
||||||
- [`macos-apps.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-apps.sh) - Applies preferences to any installed desktop apps, such as Terminal, Time Machine, Photos, Spotify, and many others
|
- [`macos-apps.sh`](https://github.com/Lissy93/dotfiles/blob/master/system-specific/macos/system-settings/macos-apps.sh) - Applies preferences to any installed desktop apps, such as Terminal, Time Machine, Photos, Spotify, and many others
|
||||||
@ -1060,3 +1014,88 @@ They can be easily installed/ updated with your package manger, e.g:
|
|||||||
|
|
||||||
Depending on your setup, the following utils may also be required: `make`, `ctags`, `fzf` and `python3-pip`
|
Depending on your setup, the following utils may also be required: `make`, `ctags`, `fzf` and `python3-pip`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
### Utilities
|
||||||
|
|
||||||
|
|
||||||
|
The dotfiles also contains several handy bash scripts to carry out useful tasks with slightly more ease.
|
||||||
|
|
||||||
|
Each of these scripts is standalone, without any dependencies, and can be executed directly to use.
|
||||||
|
Alternatively, they can be sourced from within a .zshrc / .bashrc, for use anywhere via their alias.
|
||||||
|
|
||||||
|
For usage instructions about any of them, just append the `--help` flag.
|
||||||
|
|
||||||
|
- [Transfer]() - Quickly transfer files or folders to the internet
|
||||||
|
- [Web Search]() - Open a specific search engine with a given query
|
||||||
|
- [QR Code]() - Generates a QR code for a given string, to transfer data to mobile device
|
||||||
|
- [Weather]() - Shows current and forecasted weather for your location
|
||||||
|
- [Color Map]() - Just outputs your terminal emulators supported color pallete
|
||||||
|
- [Welcome]() - Used for first login, prints personalised greeting, system info, and other handy info
|
||||||
|
- [Online]() - Checks if you are connected to the internet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### Transfer
|
||||||
|
|
||||||
|
Quickly transfer a file, group of files or directory via the transfer.sh service.<br>
|
||||||
|
To get started, run `transfer <file(s) / folder>`, for more info, run `transfer --help`
|
||||||
|
|
||||||
|
If multiple files are passed in, they will automatically be compressed into an archive.
|
||||||
|
You can change the file transfer service, or use a self-hosted instance by setting the URL in `FILE_TRANSFER_SERVICE`
|
||||||
|
The file can be either run directly, or sourced in your `.zshrc` and used via the `transfer` alias.
|
||||||
|
|
||||||
|
> For info, run `transfer --help`<br>
|
||||||
|
> Source: [`utils/transfer.sh`](https://github.com/Lissy93/dotfiles/blob/master/utils/transfer.sh)
|
||||||
|
|
||||||
|
#### Web Search
|
||||||
|
|
||||||
|
Quickly open web search results for a given query using a selected search engine. To get started, run `web-search`, or `web-search --help` for more info.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
All parameters are optional, to get started just run `web-search` or `web-search <search provider (optional)> <query (optional)>`, the `ws` alias can also be used. If a search engine isn't specified, you'll be prompted to select one from the list. Similarly, if a query hasn't been included you'll be asked for that too.
|
||||||
|
|
||||||
|
- `web-search` - Opens interactive menu, you'll be prompted to select a search engine from the list then enter your query
|
||||||
|
- `web-search <search term>` - Specify a search term, and you'll be prompted to select the search engine
|
||||||
|
- For example, `web-search Hello World!`
|
||||||
|
- `web-search <search engine>` - Specify a search engine, and you'll be prompted for your search term
|
||||||
|
- For example, `web-search duckduckgo`
|
||||||
|
- `web-search <search engine> <search engine>` - Specify both a search engine and query, and results will open immediately
|
||||||
|
- For example, `web-search wikipedia Matrix Defense`
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
<summary><b>Supported Search Providers</b></summary>
|
||||||
|
|
||||||
|
The following search engines are supported by default:
|
||||||
|
- DuckDuckGo: `ws duckduckgo` (or `wsddg`)
|
||||||
|
- Wikipedia: `ws wikipedia` or (`wswiki`)
|
||||||
|
- GitHub: `ws github` (or `wsgh`)
|
||||||
|
- StackOverflow: `ws stackoverflow` (or `wsso`)
|
||||||
|
- Wolframalpha: `ws wolframalpha` (or `wswa`)
|
||||||
|
- Reddit: `ws reddit` (or `wsrdt`)
|
||||||
|
- Maps: `ws maps` (or `wsmap`)
|
||||||
|
- Google: `ws google` (or `wsggl`)
|
||||||
|
- Grep App: `ws grepapp` (or `wsgra`)
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
The alias `ws` will also resolve to `web-search`, if it's not already in use. You can either run the script directly, e.g.`~/.config/utils/web-search.sh` (don't forget to `chmod +x` the file first, to make it executable), or use the `web-search` / `ws` alias anywhere, once it has been source'd from your .zshrc.
|
||||||
|
|
||||||
|
> For info, run `web-search --help`<br>
|
||||||
|
> Source: [`utils/web-search.sh`](https://github.com/Lissy93/dotfiles/blob/master/utils/web-search.sh)
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
<summary>Try now!</summary>
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash <(curl -s https://raw.githubusercontent.com/Lissy93/dotfiles/master/utils/web-search.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"makefile.extensionOutputFolder": "./.vscode"
|
|
||||||
}
|
|
13
bash/.bashrc
13
bash/.bashrc
@ -1,6 +1,13 @@
|
|||||||
# A simple Bash PS1 prompt, that displays directory, git status and arrow
|
|
||||||
# Availible on GitHub: https://github.com/Lissy93/minimal-terminal-prompt
|
#######################################################################
|
||||||
# Licensed under MIT - (C) Alicia Sykes, 2022 <https://aliciasykes.com>
|
# ~/.bashrc - Custom PS1 Prompt for Bash Shell #
|
||||||
|
#######################################################################
|
||||||
|
# I don't much use Bash me, prefer ZSH of Fish... #
|
||||||
|
# When that's not availible, let's at least make things look half ok #
|
||||||
|
#######################################################################
|
||||||
|
# Originated from: https://github.com/Lissy93/minimal-terminal-prompt #
|
||||||
|
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
## Define all the colors
|
## Define all the colors
|
||||||
COL_USER_HOST='\e[35m' # The color of 'user@host.ext'
|
COL_USER_HOST='\e[35m' # The color of 'user@host.ext'
|
||||||
|
@ -268,3 +268,9 @@
|
|||||||
smudge = git-lfs smudge -- %f
|
smudge = git-lfs smudge -- %f
|
||||||
process = git-lfs filter-process
|
process = git-lfs filter-process
|
||||||
required = true
|
required = true
|
||||||
|
[difftool "sourcetree"]
|
||||||
|
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
|
||||||
|
path =
|
||||||
|
[mergetool "sourcetree"]
|
||||||
|
cmd = /Users/alicia/Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
|
||||||
|
trustExitCode = true
|
||||||
|
@ -252,9 +252,14 @@ function install_packages () {
|
|||||||
echo -e "${PURPLE}Skipping package installs${RESET}"
|
echo -e "${PURPLE}Skipping package installs${RESET}"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
# Mac OS
|
|
||||||
if [ "$system_type" = "Darwin" ]; then
|
if [ "$system_type" = "Darwin" ]; then
|
||||||
|
# Mac OS
|
||||||
intall_macos_packages
|
intall_macos_packages
|
||||||
|
elif [ -f "/etc/arch-release" ]; then
|
||||||
|
# Arch Linux
|
||||||
|
arch_pkg_install_script="${DOTFILES_DIR}/installs/arch-pacman.sh"
|
||||||
|
chmod +x $arch_pkg_install_script
|
||||||
|
$arch_pkg_install_script
|
||||||
fi
|
fi
|
||||||
# If running in Linux desktop mode, prompt to install desktop apps via Flatpak
|
# If running in Linux desktop mode, prompt to install desktop apps via Flatpak
|
||||||
flatpak_script="${DOTFILES_DIR}/installs/flatpak.sh"
|
flatpak_script="${DOTFILES_DIR}/installs/flatpak.sh"
|
||||||
|
@ -39,12 +39,13 @@ brew 'bat' # Output highlighting (better cat)
|
|||||||
brew 'broot' # Interactive directory navigation
|
brew 'broot' # Interactive directory navigation
|
||||||
brew 'ctags' # Indexing of file info + headers
|
brew 'ctags' # Indexing of file info + headers
|
||||||
brew 'diff-so-fancy'# Readable file compares (better diff)
|
brew 'diff-so-fancy'# Readable file compares (better diff)
|
||||||
|
brew 'duf' # Get info on mounted disks (better df)
|
||||||
brew 'exa' # Listing files with info (better ls)
|
brew 'exa' # Listing files with info (better ls)
|
||||||
brew 'fzf' # Fuzzy file finder and filtering
|
brew 'fzf' # Fuzzy file finder and filtering
|
||||||
brew 'hyperfine' # Benchmarking for arbitrary commands
|
brew 'hyperfine' # Benchmarking for arbitrary commands
|
||||||
brew 'just' # Powerful command runner (better make)
|
brew 'just' # Powerful command runner (better make)
|
||||||
brew 'jq' # JSON parser, output and query files
|
brew 'jq' # JSON parser, output and query files
|
||||||
brew 'duf' # Get info on mounted disks (better df)
|
brew 'most' # Multi-window scroll pager (better less)
|
||||||
brew 'procs' # Advanced process viewer (better ps)
|
brew 'procs' # Advanced process viewer (better ps)
|
||||||
brew 'ripgrep' # Searching within files (better grep)
|
brew 'ripgrep' # Searching within files (better grep)
|
||||||
brew 'scc' # Count lines of code (better cloc)
|
brew 'scc' # Count lines of code (better cloc)
|
||||||
|
165
installs/arch-pacman.sh
Normal file
165
installs/arch-pacman.sh
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# 📜 Arch Linux, Pacman Package Install / Update Script #
|
||||||
|
################################################################
|
||||||
|
# Installs listed packages on Arch-based systems via Pacman #
|
||||||
|
# Also updates the cache database and existing applications #
|
||||||
|
# Confirms apps arn't installed via different package manager #
|
||||||
|
# Doesn't include desktop apps, that're managed via Flatpak #
|
||||||
|
# Apps are sorted by category, and arranged alphabetically #
|
||||||
|
# Be sure to delete / comment out anything you do not need #
|
||||||
|
# For more info, see: https://wiki.archlinux.org/title/Pacman #
|
||||||
|
################################################################
|
||||||
|
# MIT Licensed (C) Alicia Sykes 2022 <https://aliciasykes.com> #
|
||||||
|
################################################################
|
||||||
|
|
||||||
|
# Apps to be installed via Pacman
|
||||||
|
pacman_apps=(
|
||||||
|
# Essentials
|
||||||
|
'git' # Version controll
|
||||||
|
'neovim' # Text editor
|
||||||
|
'ranger' # Directory browser
|
||||||
|
'tmux' # Term multiplexer
|
||||||
|
'wget' # Download files
|
||||||
|
|
||||||
|
# CLI Power Basics
|
||||||
|
'aria2' # Resuming download util (better wget)
|
||||||
|
'bat' # Output highlighting (better cat)
|
||||||
|
'broot' # Interactive directory navigation
|
||||||
|
'cloc' # Count lines of code in file / dir
|
||||||
|
'ctags' # Indexing of file info + headers
|
||||||
|
'diff-so-fancy' # Readable file compares (better diff)
|
||||||
|
'duf' # Get info on mounted disks (better df)
|
||||||
|
'exa' # Listing files with info (better ls)
|
||||||
|
'fzf' # Fuzzy file finder and filtering
|
||||||
|
'hyperfine' # Benchmarking for arbitrary commands
|
||||||
|
'just' # Powerful command runner (better make)
|
||||||
|
'jq' # JSON parser, output and query files
|
||||||
|
'most' # Multi-window scroll pager (better less)
|
||||||
|
'procs' # Advanced process viewer (better ps)
|
||||||
|
'ripgrep' # Searching within files (better grep)
|
||||||
|
'scrot' # Screenshots programmatically via CLI
|
||||||
|
'sd' # RegEx find and replace (better sed)
|
||||||
|
'thefuck' # Auto-correct miss-typed commands
|
||||||
|
'tealdeer' # Reader for command docs (better man)
|
||||||
|
'tree' # Directory listings as tree structure
|
||||||
|
'trash-cli' # Record and restore removed files
|
||||||
|
'xsel' # Copy paste access to the X clipboard
|
||||||
|
'zoxide' # Auto-learning navigation (better cd)
|
||||||
|
|
||||||
|
# Security Utilities
|
||||||
|
'clamav' # Open source virus scanning suite
|
||||||
|
'cryptsetup' # Reading / writing encrypted volumes
|
||||||
|
'gnupg' # PGP encryption, signing and verifying
|
||||||
|
'git-crypt' # Transparent encryption for git repos
|
||||||
|
'lynis' # Scan system for common security issues
|
||||||
|
'openssl' # Cryptography and SSL/TLS Toolkit
|
||||||
|
'rkhunter' # Search / detect potential root kits
|
||||||
|
|
||||||
|
# Monitoring, management and stats
|
||||||
|
'btop' # Live system resource monitoring
|
||||||
|
'bmon' # Bandwidth utilization monitor
|
||||||
|
'ctop' # Container metrics and monitoring
|
||||||
|
'gping' # Interactive ping tool, with graph
|
||||||
|
'glances' # Resource monitor + web and API
|
||||||
|
'goaccess' # Web log analyzer and viewer
|
||||||
|
'speedtest-cli' # Command line speed test utility
|
||||||
|
|
||||||
|
# CLI Fun
|
||||||
|
'cowsay' # Outputs message with ASCII art cow
|
||||||
|
'figlet' # Outputs text as 3D ASCII word art
|
||||||
|
'lolcat' # Rainbow coloured terminal output
|
||||||
|
'neofetch' # Show off distro and system info
|
||||||
|
)
|
||||||
|
|
||||||
|
# Colors
|
||||||
|
PURPLE='\033[0;35m'
|
||||||
|
YELLOW='\033[0;93m'
|
||||||
|
CYAN_B='\033[1;96m'
|
||||||
|
LIGHT='\x1b[2m'
|
||||||
|
RESET='\033[0m'
|
||||||
|
|
||||||
|
PROMPT_TIMEOUT=15 # When user is prompted for input, skip after x seconds
|
||||||
|
|
||||||
|
# If set to auto-yes - then don't wait for user reply
|
||||||
|
if [[ $* == *"--auto-yes"* ]]; then
|
||||||
|
PROMPT_TIMEOUT=0
|
||||||
|
REPLY='Y'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Print intro message
|
||||||
|
echo -e "${PURPLE}Starting Arch package install / update script"
|
||||||
|
echo -e "${LIGHT}The following script is for Arch / Arch-based headless systems, and will"
|
||||||
|
echo -e "update database, upgrade packages, clear cache then install all listed CLI apps."
|
||||||
|
echo -e "${YELLOW}Before proceeding, ensure your happy with all the packages listed in \e[4m${0##*/}"
|
||||||
|
echo -e "${RESET}"
|
||||||
|
|
||||||
|
# Check if running as root, and prompt for password if not
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo -e "${PURPLE}Elevated permissions are required to adjust system settings."
|
||||||
|
echo -e "${CYAN_B}Please enter your password...${RESET}"
|
||||||
|
sudo -v
|
||||||
|
if [ $? -eq 1 ]; then
|
||||||
|
echo -e "${YELLOW}Exiting, as not being run as sudo${RESET}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check pacman actually installed
|
||||||
|
if ! hash pacman 2> /dev/null; then
|
||||||
|
echo "${YELLOW_B}Pacman doesn't seem to be present on your system. Exiting...${RESET}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prompt user to update package database
|
||||||
|
echo -e "${CYAN_B}Would you like to update package database? (y/N)${RESET}\n"
|
||||||
|
read -t $PROMPT_TIMEOUT -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
echo -e "${PURPLE}Updating dadatbase...${RESET}"
|
||||||
|
sudo pacman -Syy --noconfirm
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prompt user to upgrade currently installed packages
|
||||||
|
echo -e "${CYAN_B}Would you like to upgrade currently installed packages? (y/N)${RESET}\n"
|
||||||
|
read -t $PROMPT_TIMEOUT -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
echo -e "${PURPLE}Upgrading installed packages...${RESET}"
|
||||||
|
sudo pacman -Syu --noconfirm
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prompt user to clear old package caches
|
||||||
|
echo -e "${CYAN_B}Would you like to clear unused package caches? (y/N)${RESET}\n"
|
||||||
|
read -t $PROMPT_TIMEOUT -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
echo -e "${PURPLE}Freeing up disk space...${RESET}"
|
||||||
|
sudo pacman -Sc --noconfirm
|
||||||
|
paccache -r
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prompt user to install all listed apps
|
||||||
|
echo -e "${CYAN_B}Would you like to install listed apps? (y/N)${RESET}\n"
|
||||||
|
read -t $PROMPT_TIMEOUT -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
echo -e "${PURPLE}Starting install...${RESET}"
|
||||||
|
for app in ${pacman_apps[@]}; do
|
||||||
|
if hash "${app}" 2> /dev/null; then
|
||||||
|
echo -e "${YELLOW}[Skipping]${LIGHT} ${app} is already installed${RESET}"
|
||||||
|
elif [[ $(echo $(pacman -Qk $(echo $app | tr 'A-Z' 'a-z') 2> /dev/null )) == *"total files"* ]]; then
|
||||||
|
echo -e "${YELLOW}[Skipping]${LIGHT} ${app} is already installed via Pacman${RESET}"
|
||||||
|
elif hash flatpak 2> /dev/null && [[ ! -z $(echo $(flatpak list --columns=ref | grep $app)) ]]; then
|
||||||
|
echo -e "${YELLOW}[Skipping]${LIGHT} ${app} is already installed via Flatpak${RESET}"
|
||||||
|
else
|
||||||
|
echo -e "${PURPLE}[Installing]${LIGHT} Downloading ${app}...${RESET}"
|
||||||
|
sudo pacman -S ${app} --needed --noconfirm
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${PURPLE}Finished installing / updating Arch packages.${RESET}"
|
||||||
|
|
||||||
|
# EOF
|
164
installs/arch.sh
164
installs/arch.sh
@ -1,164 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
###############################################################
|
|
||||||
# Installs listed packages on Arch-based systems via Pacman #
|
|
||||||
# Doesn't include desktop apps, that're managed via Flatpak #
|
|
||||||
# Apps are sorted by category, and arranged alphabetically #
|
|
||||||
# Be sure to delete / comment out anything you do not need #
|
|
||||||
# For more info, see: https://wiki.archlinux.org/title/Pacman #
|
|
||||||
###############################################################
|
|
||||||
# MIT Licensed (C) Alicia Sykes 2022 <https://aliciasykes.com>#
|
|
||||||
###############################################################
|
|
||||||
|
|
||||||
# Apps to be installed via Pacman
|
|
||||||
pacman_apps=(
|
|
||||||
# Essentials
|
|
||||||
'git' # Version controll
|
|
||||||
'neovim' # Text editor
|
|
||||||
'ranger' # Directory browser
|
|
||||||
'tmux' # Term multiplexer
|
|
||||||
|
|
||||||
# Basics
|
|
||||||
'aria2' # Resuming download util (better wget)
|
|
||||||
'bat' # Output highlighting (better cat)
|
|
||||||
'broot' # Interactive directory navigation
|
|
||||||
'ctags' # Indexing of file info + headers
|
|
||||||
'diff-so-fancy'# Readable file compares (better diff)
|
|
||||||
'exa' # Listing files with info (better ls)
|
|
||||||
'fzf' # Fuzzy file finder and filtering
|
|
||||||
'hyperfine' # Benchmarking for arbitrary commands
|
|
||||||
'just' # Powerful command runner (better make)
|
|
||||||
'jq' # JSON parser, output and query files
|
|
||||||
'duf' # Get info on mounted disks (better df)
|
|
||||||
'procs' # Advanced process viewer (better ps)
|
|
||||||
'ripgrep' # Searching within files (better grep)
|
|
||||||
'scc' # Count lines of code (better cloc)
|
|
||||||
'sd' # RegEx find and replace (better sed)
|
|
||||||
'thefuck' # Auto-correct miss-typed commands
|
|
||||||
'tldr' # Community-maintained docs (better man)
|
|
||||||
'tree' # Directory listings as tree structure
|
|
||||||
'trash-cli' # Record and restore removed files
|
|
||||||
'xsel' # Copy paste access to the X clipboard
|
|
||||||
'zoxide' # Auto-learning navigation (better cd)
|
|
||||||
|
|
||||||
# Monitoring
|
|
||||||
'bmon' # Bandwidth utilization monitor
|
|
||||||
'ctop' # Container metrics and monitoring
|
|
||||||
'bpytop' # Resource monitoring (like htop)
|
|
||||||
'glances' # Resource monitor + web and API
|
|
||||||
'goaccess' # Web log analyzer and viewer
|
|
||||||
'gping' # Interactive ping tool, with graph
|
|
||||||
'ncdu' # Disk usage analyzer and monitor (better du)
|
|
||||||
'speedtest-cli'# Command line speed test utility
|
|
||||||
|
|
||||||
# Productivity Apps
|
|
||||||
'browsh' # Web browser, in terminal
|
|
||||||
'buku' # Bookmark manager
|
|
||||||
'cmus' # Music player
|
|
||||||
'khal' # Calendar client
|
|
||||||
'mutt' # Email client
|
|
||||||
'newsboat' # RSS / ATOM reader
|
|
||||||
'pass' # Password store
|
|
||||||
'rclone' # Manage cloud storage
|
|
||||||
'task' # Todo + task management
|
|
||||||
|
|
||||||
# Development Suits
|
|
||||||
'httpie' # HTTP / API testing testing client
|
|
||||||
'lazydocker' # Full Docker management app
|
|
||||||
'lazygit' # Full Git managemtne app
|
|
||||||
|
|
||||||
# External Sercvices
|
|
||||||
'ngrok' # Reverse proxy for sharing localhost
|
|
||||||
'tmate' # Share a terminal session via internet
|
|
||||||
'asciinema' # Recording + sharing terminal sessions
|
|
||||||
'navi' # Browse, search, read cheat sheets
|
|
||||||
|
|
||||||
# Fun
|
|
||||||
'cowsay' # Have an ASCII cow say your message
|
|
||||||
'figlet' # Output text as big ASCII art text
|
|
||||||
'lolcat' # Make console output raibow colored
|
|
||||||
'neofetch' # Show system data and ditstro info
|
|
||||||
'pipes-sh' # Cool terminal pipe screen saver
|
|
||||||
'pv' # Pipe viewer, with animation options
|
|
||||||
)
|
|
||||||
|
|
||||||
# Colors
|
|
||||||
CYAN_B='\033[1;96m'
|
|
||||||
YELLOW='\033[0;93m'
|
|
||||||
RESET='\033[0m'
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
PURPLE='\033[0;35m'
|
|
||||||
LIGHT='\x1b[2m'
|
|
||||||
|
|
||||||
PROMPT_TIMEOUT=15 # When user is prompted for input, skip after x seconds
|
|
||||||
|
|
||||||
# Print intro message
|
|
||||||
echo -e "${PURPLE}Starting Arch app install / update script"
|
|
||||||
echo -e "${LIGHT}The following script is for Arch / Arch-based headless systems, and will"
|
|
||||||
echo -e "update database, upgrade packages, clear cache then install all listed CLI apps."
|
|
||||||
echo -e "${YELLOW}Before proceeding, ensure your happy with all the packages listed in \e[4m${0##*/}"
|
|
||||||
echo -e "${RESET}"
|
|
||||||
|
|
||||||
# Check if running as root, and prompt for password if not
|
|
||||||
if [ "$EUID" -ne 0 ]; then
|
|
||||||
echo -e "${PURPLE}Elevated permissions are required to adjust system settings."
|
|
||||||
echo -e "${CYAN_B}Please enter your password...${RESET}"
|
|
||||||
sudo -v
|
|
||||||
if [ $? -eq 1 ]; then
|
|
||||||
echo -e "${YELLOW}Exiting, as not being run as sudo${RESET}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check pacman actually installed
|
|
||||||
if ! hash pacman 2> /dev/null; then
|
|
||||||
echo "${YELLOW_B}Pacman doesn't seem to be present on your system. Exiting...${RESET}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prompt user to update package database
|
|
||||||
echo -e "${CYAN_B}Would you like to update package database? (y/N)${RESET}\n"
|
|
||||||
read -t $PROMPT_TIMEOUT -n 1 -r
|
|
||||||
echo
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo -e "${PURPLE}Updating dadatbase...${RESET}"
|
|
||||||
sudo pacman -Syy --noconfirm
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prompt user to upgrade currently installed packages
|
|
||||||
echo -e "${CYAN_B}Would you like to upgrade currently installed packages? (y/N)${RESET}\n"
|
|
||||||
read -t $PROMPT_TIMEOUT -n 1 -r
|
|
||||||
echo
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo -e "${PURPLE}Upgrading installed packages...${RESET}"
|
|
||||||
sudo pacman -Syu --noconfirm
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prompt user to clear old package caches
|
|
||||||
echo -e "${CYAN_B}Would you like to clear unused package caches? (y/N)${RESET}\n"
|
|
||||||
read -t $PROMPT_TIMEOUT -n 1 -r
|
|
||||||
echo
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo -e "${PURPLE}Freeing up disk space...${RESET}"
|
|
||||||
sudo pacman -Sc --noconfirm
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prompt user to install all listed apps
|
|
||||||
echo -e "${CYAN_B}Would you like to install listed apps? (y/N)${RESET}\n"
|
|
||||||
read -t $PROMPT_TIMEOUT -n 1 -r
|
|
||||||
echo
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo -e "${PURPLE}Starting install...${RESET}"
|
|
||||||
for app in ${pacman_apps[@]}; do
|
|
||||||
if hash "${app}" 2> /dev/null; then
|
|
||||||
echo -e "${YELLOW}[Skipping]${LIGHT} ${app} is already installed${RESET}"
|
|
||||||
elif hash flatpak 2> /dev/null && [[ ! -z $(echo $(flatpak list --columns=ref | grep $app)) ]]; then
|
|
||||||
echo -e "${YELLOW}[Skipping]${LIGHT} ${app} is already installed via Flatpak${RESET}"
|
|
||||||
else
|
|
||||||
echo -e "${PURPLE}[Installing]${LIGHT} Downloading ${app}...${RESET}"
|
|
||||||
# pacman -S ${app} --noconfirm
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "${PURPLE}Finished installing / updating Arch packages.${RESET}"
|
|
15
lets-go.sh
15
lets-go.sh
@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Lissy93/dotfiles - Remote Runnable Dotfile Setup and Update Script #
|
# Lissy93/dotfiles - Remote Runnable Dotfile Setup and Update Script #
|
||||||
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
|
######################################################################
|
||||||
# #
|
|
||||||
# This script will clone + install, or update dotfiles from git #
|
# This script will clone + install, or update dotfiles from git #
|
||||||
# Be sure to read through the repo before running anything here #
|
# Be sure to read through the repo before running anything here #
|
||||||
# For more info, read docs: https://github.com/Lissy93/dotfiles #
|
# For more info, read docs: https://github.com/Lissy93/dotfiles #
|
||||||
@ -12,6 +11,8 @@
|
|||||||
# - DOTFILES_REPO - Optionally sets the source repo to be cloned #
|
# - DOTFILES_REPO - Optionally sets the source repo to be cloned #
|
||||||
# - DOTFILES_DIR - Optionally sets the local destination directory #
|
# - DOTFILES_DIR - Optionally sets the local destination directory #
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
|
||||||
|
######################################################################
|
||||||
|
|
||||||
# If not already set, specify dotfiles destination directory and source repo
|
# If not already set, specify dotfiles destination directory and source repo
|
||||||
DOTFILES_DIR="${DOTFILES_DIR:-$HOME/Documents/config/dotfiles}"
|
DOTFILES_DIR="${DOTFILES_DIR:-$HOME/Documents/config/dotfiles}"
|
||||||
@ -19,10 +20,10 @@ DOTFILES_REPO="${DOTFILES_REPO:-https://github.com/lissy93/dotfiles.git}"
|
|||||||
|
|
||||||
# Print starting message
|
# Print starting message
|
||||||
echo -e "\033[1;35m""Lissy93/Dotfiles Installation Script 🧰
|
echo -e "\033[1;35m""Lissy93/Dotfiles Installation Script 🧰
|
||||||
\033[0;35mThis script will install or update dotfiles from \033[4;35m\
|
\033[0;35mThis script will install or update specified dotfiles:
|
||||||
${DOTFILES_REPO}\033[0;35m into \033[4;35m${DOTFILES_DIR}\033[0;35m\n\
|
- From \033[4;35m${DOTFILES_REPO}\033[0;35m
|
||||||
Be sure that you have read and understood config which will be applied.
|
- Into \033[4;35m${DOTFILES_DIR}\033[0;35m
|
||||||
If you don't want to proceed, press Ctrl+C to cancel now...\033[0m\n"
|
Be sure you've read and understood the what will be applied.\033[0m\n"
|
||||||
|
|
||||||
# If dotfiles not yet present then clone
|
# If dotfiles not yet present then clone
|
||||||
if [[ ! -d "$DOTFILES_DIR" ]]; then
|
if [[ ! -d "$DOTFILES_DIR" ]]; then
|
||||||
@ -33,6 +34,6 @@ fi
|
|||||||
# Execute setup or update script
|
# Execute setup or update script
|
||||||
cd "${DOTFILES_DIR}" && \
|
cd "${DOTFILES_DIR}" && \
|
||||||
chmod +x ./install.sh && \
|
chmod +x ./install.sh && \
|
||||||
./install.sh
|
./install.sh --no-clear
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
@ -21,9 +21,7 @@
|
|||||||
${XDG_CONFIG_HOME}/tmux/tmux.conf: tmux/tmux.conf
|
${XDG_CONFIG_HOME}/tmux/tmux.conf: tmux/tmux.conf
|
||||||
${XDG_CONFIG_HOME}/utils: utils
|
${XDG_CONFIG_HOME}/utils: utils
|
||||||
${XDG_CONFIG_HOME}/git/.gitconfig: configs/.gitconfig
|
${XDG_CONFIG_HOME}/git/.gitconfig: configs/.gitconfig
|
||||||
# ~/.gitconfig: configs/.gitconfig
|
|
||||||
${XDG_CONFIG_HOME}/.gitignore_global: configs/.gitignore_global
|
${XDG_CONFIG_HOME}/.gitignore_global: configs/.gitignore_global
|
||||||
# ${XDG_CONFIG_HOME}/curl/.curlrc: configs/.curlrc
|
|
||||||
$XDG_CONFIG_HOME/yabai/yabairc:
|
$XDG_CONFIG_HOME/yabai/yabairc:
|
||||||
if: '[ `uname` = Darwin ]'
|
if: '[ `uname` = Darwin ]'
|
||||||
path: system-specific/macos/app-configs/yabairc
|
path: system-specific/macos/app-configs/yabairc
|
||||||
|
@ -1,11 +1,28 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# ~/.macos
|
########################################################################
|
||||||
|
# Initiates the applying of MacOS-specific settings and preferences #
|
||||||
DIR="$(cd "$(dirname "$0")" && pwd)/system-settings"
|
# Will use local files if available, otherwise run directly from git #
|
||||||
|
# IMPORTANT: Be sure to read files through thoughouly before executing #
|
||||||
$DIR/macos-security.sh
|
########################################################################
|
||||||
$DIR/macos-preferences.sh
|
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
|
||||||
$DIR/macos-apps.sh
|
########################################################################
|
||||||
|
|
||||||
|
macos_scripts=(
|
||||||
|
"macos-security.sh" # Applies security settings
|
||||||
|
"macos-preferences.sh" # Sets user preferences
|
||||||
|
"macos-apps.sh" # Configures app options
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ ! -z $0 ]; then # Use local files
|
||||||
|
DIR="$(cd "$(dirname "$0")" && pwd)/system-settings"
|
||||||
|
for mac_script in ${macos_scripts[@]}; do
|
||||||
|
$DIR/$mac_script
|
||||||
|
done
|
||||||
|
else # Run from remote origin
|
||||||
|
REMOTE_DIR="https://raw.githubusercontent.com/Lissy93/dotfiles"
|
||||||
|
REMOTE_DIR+="/master/system-specific/macos/system-settings"
|
||||||
|
for mac_script in ${macos_scripts[@]}; do
|
||||||
|
bash <(curl -s "${REMOTE_DIR}/${mac_script}")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
@ -1,30 +1,76 @@
|
|||||||
|
|
||||||
# To copy, left click and drag to highlight text in yellow,
|
|
||||||
# once you release left click yellow text will disappear and will automatically be available in clibboard
|
######################################################################
|
||||||
|
# Tmux Configuration File (~/.tmux.conf) #
|
||||||
|
######################################################################
|
||||||
|
# Config for Tmux multiplexer (requires version >= v2.4) #
|
||||||
|
# Sets preferences, keybindings and configures plugins #
|
||||||
|
# For docs and more info, see: https://github.com/lissy93/dotfiles #
|
||||||
|
# #
|
||||||
|
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# Basics #
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
# Add a secondary prefix key (Ctrl+A as well as Ctrl+B)
|
||||||
|
|
||||||
|
# Set Tmux prefix keys (Ctrl+B or `)
|
||||||
|
set-option -g prefix C-b
|
||||||
|
set-option -g prefix2 `
|
||||||
|
|
||||||
# Use vim keybindings in copy mode
|
# Use vim keybindings in copy mode
|
||||||
setw -g mode-keys vi
|
setw -g mode-keys vi
|
||||||
|
|
||||||
|
# Allow mouse support
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# Use wider color pallete
|
||||||
|
set -g default-terminal screen-256color
|
||||||
|
|
||||||
|
# Set bigger history limit
|
||||||
|
set -g history-limit 20000
|
||||||
|
|
||||||
|
# Set Esc delay after prefix
|
||||||
|
set -sg escape-time 20
|
||||||
|
|
||||||
|
# Keep Tmux alive when the initial command is finished
|
||||||
|
set -g remain-on-exit off
|
||||||
|
|
||||||
|
# Sets parent terminal title, same as current Tmux window
|
||||||
|
set -g set-titles on
|
||||||
|
set -g set-titles-string "#I:#W"
|
||||||
|
|
||||||
# Update default binding of `Enter` to also use copy-pipe
|
# Update default binding of `Enter` to also use copy-pipe
|
||||||
unbind -T copy-mode-vi Enter
|
unbind -T copy-mode-vi Enter
|
||||||
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
|
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
|
||||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
|
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# Navigation #
|
||||||
|
######################################################################
|
||||||
|
|
||||||
# Allow Alt+Arrow to switch pains
|
# Allow Alt+Arrow to switch pains
|
||||||
bind -n M-Left select-pane -L
|
bind -n M-Left select-pane -L
|
||||||
bind -n M-Right select-pane -R
|
bind -n M-Right select-pane -R
|
||||||
bind -n M-Up select-pane -U
|
bind -n M-Up select-pane -U
|
||||||
bind -n M-Down select-pane -D
|
bind -n M-Down select-pane -D
|
||||||
|
|
||||||
# Allow mouse support
|
# Split window horizontally (h) / veritcally (v)
|
||||||
set -g mouse on
|
bind v split-window -v
|
||||||
|
bind h split-window -h
|
||||||
|
|
||||||
# Activity Monitoring (for when something happens in another pain)
|
# Activity Monitoring (for when something happens in another pain)
|
||||||
set -g monitor-activity on
|
set -g monitor-activity on
|
||||||
set -g visual-activity on
|
set -g visual-activity on
|
||||||
|
|
||||||
# Use wider color pallete
|
|
||||||
set -g default-terminal screen-256color
|
######################################################################
|
||||||
|
# Plugin Imports and Configurations #
|
||||||
|
######################################################################
|
||||||
|
|
||||||
# Set install location for plugins
|
# Set install location for plugins
|
||||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH "${XDG_DATA_HOME}/tmux/plugins"
|
set-environment -g TMUX_PLUGIN_MANAGER_PATH "${XDG_DATA_HOME}/tmux/plugins"
|
||||||
|
@ -180,3 +180,4 @@ alias gtfo='exit'
|
|||||||
|
|
||||||
# Alias for install script
|
# Alias for install script
|
||||||
alias dotfiles="${DOTFILES_DIR:-$HOME/Documents/config/dotfiles}/install.sh"
|
alias dotfiles="${DOTFILES_DIR:-$HOME/Documents/config/dotfiles}/install.sh"
|
||||||
|
alias dots="dotfiles"
|
||||||
|
@ -26,7 +26,7 @@ alias gcl="git clone" # Downloads repo from <url>
|
|||||||
alias gch="git checkout" # Switch the HEAD to <branch>
|
alias gch="git checkout" # Switch the HEAD to <branch>
|
||||||
alias gb="git branch" # Create a new <branch> from HEAD
|
alias gb="git branch" # Create a new <branch> from HEAD
|
||||||
alias gd="git diff" # Show all changes to untracked files
|
alias gd="git diff" # Show all changes to untracked files
|
||||||
alias gtree="git log --graph --oneline --decorate" # Show branch tree
|
alias gtree="git log --graph --oneline --decorate --abbrev-commit" # Show branch tree
|
||||||
alias gl='git log'
|
alias gl='git log'
|
||||||
|
|
||||||
# Tags
|
# Tags
|
||||||
|
Loading…
Reference in New Issue
Block a user