# scripts
A collection of my Linux scripts and configs that I use across my machines.
When refering to {repo_dir}, be sure to use absolute paths! I am using
repo_dir = ~/scripts
# .tmux.conf
I use i3 window manager, and I appreciate its default keybindings and navigation.
They have been ported over to tmux, please read the file for information on the keys.
The direction navigation is the same as vim.
In the root `~/.tmux.conf`
add
```
source {repo_dir}/tmux.conf
```
## Keyboard binding for Tmux
| Keybinding | Description |
|------------|-------------|
| M-f | Prefix key (similar to $mod in i3) |
| Prefix + Space | Send prefix |
| Prefix + ? | List keys |
| Prefix + [ | Enter copy mode |
| Prefix + ] | Paste buffer |
| Prefix + r | Refresh client |
| Prefix + R | Reload tmux configuration |
| Prefix + g | Split window horizontally |
| Prefix + v | Split window vertically |
| Prefix + h | Select pane on the left |
| Prefix + j | Select pane below |
| Prefix + k | Select pane above |
| Prefix + l | Select pane on the right |
| Prefix + H | Resize pane left |
| Prefix + J | Resize pane down |
| Prefix + K | Resize pane up |
| Prefix + L | Resize pane right |
| Prefix + w | Choose window |
| Prefix + 1-0 | Select window 1-10 |
| M-1 to M-0 | Create new window 1-10 |
| Prefix + ! | Move current pane to window 1 |
| Prefix + @ | Move current pane to window 2 |
| Prefix + # | Move current pane to window 3 |
| Prefix + $ | Move current pane to window 4 |
| Prefix + % | Move current pane to window 5 |
| Prefix + ^ | Move current pane to window 6 |
| Prefix + & | Move current pane to window 7 |
| Prefix + * | Move current pane to window 8 |
| Prefix + ( | Move current pane to window 9 |
| Prefix + ) | Move current pane to window 10 |
| Prefix + q | Kill selected pane |
# .bashrc ^ .zshrc
I prefer my capslock to be esc, so I have included that in the .bashrc file.
These files will also add the repository to the path so that the bash scripts are accessible by the command line.
Use either file respectively
```
source {repo_dir}/bashrc
export PATH="{repo_dir}/sh:$PATH"
```
```
source {repo_dir}/zshrc`
export PATH="{repo_dir}/sh:$PATH"
```
# .vimrc
This also needs similar treatment
```
source {repo_dir}/vimrc
```
# i3config
I also have my own personal i3 bindings, that mimic vim.
Please add to your `~/.i3/config` file:
```
include {repo_dir}/i3config
```
## Keybindings for i3
| Keybinding | Description |
|------------|-------------|
| $mod + Return | Start a terminal (Alacritty) |
| $mod + Shift + q | Kill focused window |
| $mod + d | Start program launcher (dmenu) |
| $mod + z | Launch categorized menu |
| $mod + Ctrl + m | Launch PulseAudio control |
| $mod + Ctrl + b | Launch bmenu in terminal |
| $mod + F2 | Launch Pale Moon browser |
| $mod + F3 | Launch PCManFM file manager |
| $mod + Shift + F3 | Launch PCManFM file manager with elevated privileges |
| $mod + F5 | Launch MOCP music player |
| $mod + t | Kill Picom compositor |
| $mod + Ctrl + t | Start Picom compositor |
| $mod + Shift + d | Restart Dunst notification daemon |
| Print | Take a screenshot |
| $mod + Print | Take a screenshot of active window |
| $mod + Shift + Print | Take a screenshot of selected area |
| $mod + Ctrl + x | Launch xkill |
| $mod + h/j/k/l | Change focus (left/down/up/right) |
| $mod + Shift + h/j/k/l | Move focused window (left/down/up/right) |
| $mod + b | Switch to previous workspace |
| $mod + g | Split horizontally |
| $mod + v | Split vertically |
| $mod + f | Toggle fullscreen |
| $mod + s | Layout stacking |
| $mod + w | Layout tabbed |
| $mod + e | Toggle split layout |
| $mod + Shift + space | Toggle floating |
| $mod + space | Toggle focus between tiling/floating windows |
| $mod + a | Focus parent container |
| $mod + 1-8 | Switch to workspace 1-8 |
| $mod + Shift + 1-8 | Move container to workspace 1-8 |
| $mod + Shift + c | Reload the configuration file |
| $mod + Shift + r | Restart i3 |
| $mod + 0 | Enter system mode (lock, exit, suspend, etc.) |
| $mod + r | Enter resize mode |
| $mod + 9 | Lock screen |
| $mod + m | Toggle i3bar visibility |
| $mod + Shift + g | Enter gap adjustment mode |
# getfile ^ sharefile
These are short bash scripts that help upload files to `https://0x0.st`
`sharefile {filename}` Will upload the file to 0x0.st and return the unique identifier
`getfile {id}` Will retrieve the file from 0x0.st