commit f637529a8db2896a09bab4725c2ee937f83359ef Author: Kendall Whitman Date: Sun Jan 12 19:54:41 2025 -0600 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..237fbf8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bash/.env +/tmux/.config/tmux/plugins/ +__pycache__ diff --git a/Repos/.directory b/Repos/.directory new file mode 100644 index 0000000..3e7a4a6 --- /dev/null +++ b/Repos/.directory @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=folder-git diff --git a/bash/.bash-prompt/main.py b/bash/.bash-prompt/main.py new file mode 100644 index 0000000..01c3ebf --- /dev/null +++ b/bash/.bash-prompt/main.py @@ -0,0 +1,42 @@ +import re +import subprocess + +from utils import ( + colors, + status_indicators, +) + +BASH_PATH: str = fr"{colors.CYAN}{colors.BOLD}\w" +POINTER: str = f"{colors.YELLOW}-> {colors.RESET}" + + +def prompt() -> None: + git_status: subprocess.CompletedProcess[str] = subprocess.run( + ['git', 'status'], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + ) + + if not git_status.stderr.strip(): + git_branch: str = re.findall( r'([a-zA-Z0-9-\/()]+)', git_status.stdout.strip())[2] + + for key in status_indicators.keys(): + if key in git_status.stdout.strip(): + color: str = status_indicators[key]['color'] + icon: str = status_indicators[key]['icon'] + + git_branch_color: str = f"{color}({git_branch}{icon})" + print(f"{BASH_PATH} {git_branch_color} {POINTER}") + exit(0) + + print(f"{BASH_PATH} {POINTER}") + exit(0) + + +def main(): + prompt() + + +if __name__ == '__main__': + main() diff --git a/bash/.bash-prompt/utils/__init__.py b/bash/.bash-prompt/utils/__init__.py new file mode 100644 index 0000000..4edb5e4 --- /dev/null +++ b/bash/.bash-prompt/utils/__init__.py @@ -0,0 +1,2 @@ +from .colors import * +from .status_indicators import * diff --git a/bash/.bash-prompt/utils/colors.py b/bash/.bash-prompt/utils/colors.py new file mode 100644 index 0000000..e562542 --- /dev/null +++ b/bash/.bash-prompt/utils/colors.py @@ -0,0 +1,16 @@ +# ANSI color codes in bash format + +def template(color_code: int) -> str: + return fr"\[\033[{color_code}m\]" + + +RESET = template(0) +BOLD = template(1) +RED = template(31) +GREEN = template(32) +YELLOW = template(33) +BLUE = template(34) +MAGENTA = template(35) +CYAN = template(36) +WHITE = template(37) +DEFAULT = template(39) diff --git a/bash/.bash-prompt/utils/status_indicators.py b/bash/.bash-prompt/utils/status_indicators.py new file mode 100644 index 0000000..67f0d74 --- /dev/null +++ b/bash/.bash-prompt/utils/status_indicators.py @@ -0,0 +1,29 @@ +from utils import colors +from typing import Dict + +status_indicators: Dict[str, Dict[str, str]] = { + 'working tree clean': { + 'color': colors.GREEN, + 'icon': '', + }, + 'not staged': { + 'color': colors.YELLOW, + 'icon': ' *', + }, + 'to be committed': { + 'color': colors.YELLOW, + 'icon': ' +', + }, + 'is behind': { + 'color': colors.YELLOW, + 'icon': ' ', + }, + 'is ahead': { + 'color': colors.YELLOW, + 'icon': ' ', + }, + 'fix conflicts': { + 'color': colors.RED, + 'icon': ' ', + }, +} diff --git a/bash/.bash_aliases b/bash/.bash_aliases new file mode 100644 index 0000000..21eb8b8 --- /dev/null +++ b/bash/.bash_aliases @@ -0,0 +1,59 @@ +#!/bin/bash + +# General Aliases +alias ll='ls -la' +alias update='sudo apt update && sudo apt upgrade -y && flatpak update -y' +alias R='cd ~/Repos/' + +# Git Config User +function gitConfigUser() { + git config user.email $1 + git config user.name "Kendall Whitman" +} + +alias gcp='gitConfigUser "kendall@kendallwhitman.dev"' +alias gcw='gitConfigUser "kendall.whitman@nbcuni.com"' + +# Git Formatter +alias gft='python3 ~/.git-formatter/main.py' + +# Git Aliases +alias ga='git add' +alias gaa='git add .' +alias gb='git branch' +alias gc='git clone' +alias gcb='git checkout -b' +alias gco='git checkout' +alias gcmsg='gft -m' +alias gd='git diff' +alias gf='git fetch' +alias gl='git pull' +alias gp='git push' +alias gpu='git push -u origin $(git branch --show-current)' +alias grs='git restore --staged' +alias gst='git status' +alias gwa='gft -i' +alias gwr='gft -r' + +#NBC Aliases +alias nbc='tmuxp load phoenix ramen amp amped-up hfs omega' +alias p='cd ~/Repos/NBC/WEB.Phoenix.git/' +alias r='cd ~/Repos/NBC/nextjs-ramen.git/' +alias h='cd ~/Repos/NBC/header-footer-service.git/' +alias o='cd ~/Repos/NBC/omega-player.git/' +alias amp='cd ~/Repos/NBC/WEB.AMP.git/' +alias amped='cd ~/Repos/NBC/amped-up.git/' + +# NPM Alias +alias ns='nvm use && npm start' +alias nd='nvm use && npm run dev' + +# OpenRGB +alias rgb='sudo /media/kendall/1TB/AppImages/OpenRGB/OpenRGB.AppImage' + +# Bash Prompt +function bashPrompt() { + PS1=$(python3 ~/.dotfiles/bash/.bash-prompt/main.py) +} + +PROMPT_COMMAND=bashPrompt diff --git a/bash/.git-formatter/config.py b/bash/.git-formatter/config.py new file mode 100644 index 0000000..b559f7a --- /dev/null +++ b/bash/.git-formatter/config.py @@ -0,0 +1,36 @@ +NBC = { + 'branch_format': "BRANCH_TYPE/BRANCH_ID", + 'commit_format': "BRANCH_ID", + 'types': { + 'Feature': 'feature', + 'Fix': 'fix', + 'Refactor': 'refactor', + 'Release': 'release', + 'Documentation': 'docs', + } +} + +DEFAULT = { + 'branch_format': "BRANCH_TYPE(BRANCH_ID)", + 'commit_format': "BRANCH_TYPE(BRANCH_ID)", + 'types': { + 'Feature': 'feat', + 'Fix': 'fix', + 'Refactor': 'refactor', + 'Release': 'release', + 'Documentation': 'docs', + } +} + +REPO_FORMATS = { + 'amped-up.git': NBC, + 'nextjs-ramen.git': NBC, + 'omega-player.git': DEFAULT, + 'WEB.AMP.git': NBC, + 'WEB.Phoenix.git': NBC, + 'header-footer-service.git': NBC, + 'ham-search': DEFAULT, +} + +if __name__ == '__main__': + REPO_FORMATS diff --git a/bash/.git-formatter/main.py b/bash/.git-formatter/main.py new file mode 100644 index 0000000..5f4779e --- /dev/null +++ b/bash/.git-formatter/main.py @@ -0,0 +1,98 @@ +import argparse +import sys +from scripts import ( + add_worktree, + remove_worktree, + add_commit, + new_branch, +) + + +def help_menu(): + parser = argparse.ArgumentParser( + add_help=False, + description="Git Formatter", + prog="gft", + formatter_class=argparse.RawTextHelpFormatter + ) + + worktree_group = parser.add_argument_group('Worktree Options') + branch_group = parser.add_argument_group('Branch Options') + commit_group = parser.add_argument_group('Commit Options') + options_group = parser.add_argument_group('General Options') + + worktree_group.add_argument( + '-a', + default=False, + metavar="worktree", + nargs='?', + help="Create a git worktree", + ) + + worktree_group.add_argument( + '-i', + default=False, + metavar="worktree", + nargs='?', + help="Create a git worktree and automatically install npm packages", + ) + + worktree_group.add_argument( + '-r', + default=False, + metavar="worktree", + nargs='?', + help="Remove a git worktree", + ) + + branch_group.add_argument( + '-b', + default=False, + metavar="branch", + nargs='?', + help="Create a branch", + ) + + commit_group.add_argument( + '-m', + default=False, + metavar="message", + nargs='?', + help="Commit changes with a formatted message", + ) + + options_group.add_argument( + '-h', + '--help', + action='help', + help='Show this help menu' + ) + + if len(sys.argv) == 1: + parser.print_help() + exit(0) + + return parser.parse_args() + + +def main(): + args = help_menu() + + if args.a is not False: + add_worktree(args.a) + + if args.i is not False: + add_worktree(args.i, True) + + if args.r is not False: + remove_worktree(args.r) + + if args.b is not False: + new_branch() + + if args.m is not False: + add_commit(args.m) + + +if __name__ == '__main__': + main() diff --git a/bash/.git-formatter/scripts/__init__.py b/bash/.git-formatter/scripts/__init__.py new file mode 100644 index 0000000..ab5737e --- /dev/null +++ b/bash/.git-formatter/scripts/__init__.py @@ -0,0 +1,8 @@ +from .worktree import ( + add_worktree, + remove_worktree, +) +from .commit import add_commit +from .branch import ( + new_branch, +) diff --git a/bash/.git-formatter/scripts/branch.py b/bash/.git-formatter/scripts/branch.py new file mode 100644 index 0000000..93243e9 --- /dev/null +++ b/bash/.git-formatter/scripts/branch.py @@ -0,0 +1,9 @@ +from utils.branch_details import branch_details +from utils.format import format_branch +from utils.git_commands import git_checkout_branch + + +def new_branch(): + branch_type, branch_id = branch_details() + branch_name = format_branch(branch_type, branch_id) + git_checkout_branch(branch_name) diff --git a/bash/.git-formatter/scripts/commit.py b/bash/.git-formatter/scripts/commit.py new file mode 100644 index 0000000..93d0df7 --- /dev/null +++ b/bash/.git-formatter/scripts/commit.py @@ -0,0 +1,19 @@ +from utils.format import format_commit +from utils.git_commands import git_commit +from utils.messages import ( + title, + instructions, + commit_instructions, +) + + +def add_commit(message=''): + commit_title = f"{format_commit()}: " + commit_message = message + + if commit_message == '': + title("Commit Message") + instructions(commit_instructions) + commit_message = input(commit_title) + + git_commit(f"{commit_title}{commit_message}") diff --git a/bash/.git-formatter/scripts/worktree.py b/bash/.git-formatter/scripts/worktree.py new file mode 100644 index 0000000..23b94dd --- /dev/null +++ b/bash/.git-formatter/scripts/worktree.py @@ -0,0 +1,60 @@ +import os +import subprocess +from .branch import branch_details +from utils.format import format_branch +from utils.git_commands import ( + git_add_worktree, + git_remove_worktree, +) +from utils.messages import ( + title, + instructions, + worktree_instructions, +) + + +def add_worktree(worktree=None, auto_install=False): + + # Check for bare repo + try: + with open('config') as git_config: + content = ' '.join(git_config.readlines()) + if 'bare = true' in content: + + # Ask for worktree folder name + + if worktree is None: + title('Create Worktree') + instructions(worktree_instructions) + worktree = input('Worktree Directory Name: ') + + # Get branch details + branch_type, branch_id = branch_details() + + # Format branch name + branch_name = format_branch( + branch_type, + branch_id, + worktree, + ) + + # Create worktree + git_add_worktree(worktree, branch_name) + + # Install NPM packages after worktree creation + if auto_install: + os.chdir(f"./{worktree}") + + subprocess.run(['/bin/bash', '-i', '-c', 'nvm use']) + subprocess.run(['npm', 'i']) + + exit(0) + + except Exception: + print('No worktree found') + exit(1) + + +def remove_worktree(worktree): + worktree_name = worktree if worktree else input('Worktree to remove: ') + git_remove_worktree(worktree_name) diff --git a/bash/.git-formatter/utils/__init__.py b/bash/.git-formatter/utils/__init__.py new file mode 100644 index 0000000..aa4c888 --- /dev/null +++ b/bash/.git-formatter/utils/__init__.py @@ -0,0 +1,30 @@ +from .repo_format import ( + branch_format, + branch_types, + commit_format, + repo_format, +) + +from .format import ( + format_branch, + format_commit, +) + +from .git_commands import ( + git_add_worktree, + git_branches, + git_checkout_branch, + git_commit, + git_current_branch, + git_remove_worktree, +) + +from .messages import ( + title, + instructions, + worktree_instructions, + commit_instructions, +) + +from .repo_name import repo_name +from .branch_details import branch_details diff --git a/bash/.git-formatter/utils/branch_details.py b/bash/.git-formatter/utils/branch_details.py new file mode 100644 index 0000000..02aa349 --- /dev/null +++ b/bash/.git-formatter/utils/branch_details.py @@ -0,0 +1,24 @@ +from utils.messages import ( + title, + instructions, + worktree_instructions, +) +from utils.repo_format import branch_types + + +def branch_details(): + + # Ask for branch type + for idx, type in enumerate(branch_types): + print(f"[{idx + 1}] {type}") + + title("Branch Types") + instructions(worktree_instructions) + branch_type: str = input('Branch Type: ') + branch_type_idx: int = int(branch_type) - 1 + branch_type_value: str = list(branch_types.values())[branch_type_idx] + + # Ask for branch id + branch_id: str = input('Branch ID: ').upper() + + return branch_type_value, branch_id diff --git a/bash/.git-formatter/utils/format.py b/bash/.git-formatter/utils/format.py new file mode 100644 index 0000000..040d20a --- /dev/null +++ b/bash/.git-formatter/utils/format.py @@ -0,0 +1,36 @@ +import re +from .git_commands import git_current_branch +from .repo_format import ( + branch_format, + commit_format, +) + + +def format_branch(branch_type, branch_id, worktree_name=''): + if branch_type != '' and branch_id != '': + return ( + branch_format + .replace('BRANCH_TYPE', branch_type) + .replace('BRANCH_ID', branch_id) + ) + + if branch_type == '' and branch_id == '' and worktree_name != '': + return worktree_name + + if branch_type == '' and branch_id != '': + return branch_id + + return 'Error: Something went wrong' + + +def format_commit(): + branch_list = re.findall(r'([a-zA-Z0-9-]+)', git_current_branch()) + + if len(branch_list) == 1: + return branch_list[0] + elif len(branch_list) > 1: + return ( + commit_format + .replace('BRANCH_TYPE', branch_list[0]) + .replace('BRANCH_ID', branch_list[1]) + ) diff --git a/bash/.git-formatter/utils/git_commands.py b/bash/.git-formatter/utils/git_commands.py new file mode 100644 index 0000000..001071c --- /dev/null +++ b/bash/.git-formatter/utils/git_commands.py @@ -0,0 +1,53 @@ +import subprocess + +git_branches = subprocess.run( + ['git', 'branch'], + stdout=subprocess.PIPE, + text=True, +).stdout.strip() + + +def git_add_worktree(worktree_name, branch_name, git_branches=git_branches): + # FIXME: This should check for the exact branch name. + # If NGAV-1000 already exists, an error is thrown when + # NGAV-100 tries to be created + existing_branch = branch_name in git_branches + + subprocess.run([ + 'git', + 'worktree', + 'add', + worktree_name, + '--checkout' if existing_branch else '-b', + branch_name + ]) + + +def git_remove_worktree(worktree_name): + subprocess.run([ + 'git', + 'worktree', + 'remove', + worktree_name + ]) + + +def git_checkout_branch(branch_name): + subprocess.run([ + 'git', + 'checkout', + '-b', + branch_name + ]) + + +def git_current_branch(): + return subprocess.run( + ['git', 'branch', '--show-current'], + stdout=subprocess.PIPE, + text=True, + ).stdout + + +def git_commit(commit_message): + subprocess.run(['git', 'commit', '-m', commit_message]) diff --git a/bash/.git-formatter/utils/messages.py b/bash/.git-formatter/utils/messages.py new file mode 100644 index 0000000..8f742a3 --- /dev/null +++ b/bash/.git-formatter/utils/messages.py @@ -0,0 +1,14 @@ +def title(text) -> None: + border_char = '=' + print(f"\n{text}\n{border_char * len(text)}") + + +def instructions(text) -> None: + print(f"{text}\n") + + +worktree_instructions = """Name the worktree directory. +This can be different than your branch name. +""" + +commit_instructions = """Some great commit instructions...""" diff --git a/bash/.git-formatter/utils/repo_format.py b/bash/.git-formatter/utils/repo_format.py new file mode 100644 index 0000000..6b43c8c --- /dev/null +++ b/bash/.git-formatter/utils/repo_format.py @@ -0,0 +1,7 @@ +from config import REPO_FORMATS +from .repo_name import repo_name + +repo_format = REPO_FORMATS[repo_name()] +branch_types = repo_format['types'] +branch_format = repo_format['branch_format'] +commit_format = repo_format['commit_format'] diff --git a/bash/.git-formatter/utils/repo_name.py b/bash/.git-formatter/utils/repo_name.py new file mode 100644 index 0000000..4dd67c3 --- /dev/null +++ b/bash/.git-formatter/utils/repo_name.py @@ -0,0 +1,11 @@ +import os +from config import REPO_FORMATS + + +def repo_name() -> str: + for repo in REPO_FORMATS: + if repo in os.getcwd(): + return repo + + print("Sorry, this repo isn't setup to use Git Formatter") + exit(1) diff --git a/fonts/FiraCodeNerdFont-Retina.ttf b/fonts/FiraCodeNerdFont-Retina.ttf new file mode 100644 index 0000000..34e4318 Binary files /dev/null and b/fonts/FiraCodeNerdFont-Retina.ttf differ diff --git a/fonts/Fira_Code_Regular_Nerd_Font_Complete.ttf b/fonts/Fira_Code_Regular_Nerd_Font_Complete.ttf new file mode 100644 index 0000000..0d48c23 Binary files /dev/null and b/fonts/Fira_Code_Regular_Nerd_Font_Complete.ttf differ diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..ee8871a --- /dev/null +++ b/install.sh @@ -0,0 +1,204 @@ +APPS=( + barrier + cmake + curl + flatpak + g++ + htop + neofetch + ninja-build + plasma-discover-backend-flatpak + ripgrep + rtorrent + scdaemon + steam + stow + tmux + tmuxp + virt-manager + xclip +) + +FLATPAK_APPS=( + ch.protonmail.protonmail-bridge + com.logseq.Logseq + com.obsproject.Studio + com.protonvpn.www + com.ultimaker.cura + im.riot.Riot + org.blender.Blender + org.darktable.Darktable + org.freecadweb.FreeCAD + org.gimp.GIMP + org.inkscape.Inkscape + org.libreoffice.LibreOffice + org.mozilla.Thunderbird + org.mozilla.firefox +) + +DOTFILES=( + bash + konsole + #menus + nvim + rtorrent + tmux + tmuxp +) + +# Check if Snap is installed +if [ -x "$(command -v snap)" ]; then + echo "Remove Snap packages first before running this script!" + exit 1 +fi + +# Check for Debian installation. If yes, remove some default programs +while true; do + read -p "Is this a Debian installation? y/N: " osChoice + osChoice=$(echo "$osChoice" | tr '[:upper:]' '[:lower:]') + + if [ "$osChoice" = "y" ]; then + sudo apt purge libreoffice-core libreoffice-base-core libreoffice-common libreoffice-style-breeze libreoffice-style-colibre firefox-esr gimp -y + sudo apt autoremove -y + break + elif [ "$osChoice" = "n" ]; then + break + else + echo "Invalid input. Please enter y or n." + fi +done + +# Sym Link Home Folders To External Storage +while true; do + read -p "Do you want to link home folders with external storage? y/N: " storageChoice + storageChoice=$(echo "$storageChoice" | tr '[:upper:]' '[:lower:]') + + sudo rm -rf ~/Public ~/Templates + + if [ "$storageChoice" = "y" ]; then + read -p "Specify the path to the external storage device (full path must be used): " storagePath + + sudo rm -rf ~/Documents ~/Pictures ~/Downloads + + ln -s "$storagePath/Pictures/" ~/ + ln -s "$storagePath/Repos/" ~/ + ln -s "$storagePath/Documents/" ~/ + ln -s "$storagePath/Downloads/" ~/ + + break + elif [ "$storageChoice" = "n" ]; then + echo "Skipping sym linking..." + cp -r ./Repos ~ + break + else + echo "Invalid input. Please enter y or n." + fi +done + +# Install Apt Apps +for i in "${APPS[@]}" +do + if [ -x "$(command -v $i)" ]; then + echo "$i already installed!" + else + sudo apt install $i -y + fi +done + +# Add Flathub Repo +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + +# Install Flatpak Apps +for i in "${FLATPAK_APPS[@]}" +do + if [ -x "$(command -v $i)" ]; then + echo "$i already installed!" + else + flatpak install $i -y + fi +done + +# NVM Setup +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash + +source ~/.bashrc +. ~/.nvm/nvm.sh +nvm install --lts + +# Add Yubikey Support to bashrc +if grep -q '# Yubikey SSH Support' ~/.bashrc; then + echo "Yubikey support already added." +else + +echo " +# Yubikey SSH Support +export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) +" >> ~/.bashrc + +fi + +# Link Config Files +for folder in ${DOTFILES[@]} +do + echo $folder + stow $folder --adopt +done + +git restore . + +# Font Install +sudo cp ./fonts/Fira_Code_Regular_Nerd_Font_Complete.ttf /usr/local/share/fonts +sudo cp ./fonts/FiraCodeNerdFont-Retina.ttf /usr/local/share/fonts + +# Check if this is my profile +while true; do + read -p "Is this profile for Kendall? y/N: " profileChoice + profileChoice=$(echo "$profileChoice" | tr '[:upper:]' '[:lower:]') + + if [ "$profileChoice" = "y" ]; then + # Add Profile Image + sudo rm ~/.face + cp ./profile/.face ~ + + # Add User To Group For Virtual Manager + sudo adduser kendall libvirt-qemu + break + elif [ "$profileChoice" = "n" ]; then + break + else + echo "Invalid input. Please enter y or n." + fi +done + +# Add touchscreen scroll support to Firefox +while true; do + read -p "Does this device have a touchscreen? y/N: " touchscreenChoice + touchscreenChoice=$(echo "$touchscreenChoice" | tr '[:upper:]' '[:lower:]') + + if [ "$touchscreenChoice" = "y" ]; then + sudo flatpak override --env="MOZ_USE_XINPUT2=1" org.mozilla.firefox + break + elif [ "$touchscreenChoice" = "n" ]; then + echo "Skipping touchscreen setup..." + break + else + echo "Invalid input. Please enter y or n." + fi +done + +# Add filesystem override to Firefox +sudo flatpak override org.mozilla.firefox --filesystem=$HOME + +# Install latest Neovim +if ! [ -x "$(command -v nvim)" ]; then + sudo apt remove gettext-base -y + sudo apt install gettext -y + source ~/.bashrc + git clone https://github.com/neovim/neovim + cd neovim + make CMAKE_BUILD_TYPE=RelWithDebInfo && cd build && cpack -G DEB && sudo dpkg -i nvim-linux64.deb + cd ~/.dotfiles/ && sudo rm -rf neovim +fi + +# Install TPM +git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm diff --git a/konsole/.config/konsolerc b/konsole/.config/konsolerc new file mode 100644 index 0000000..2e58686 --- /dev/null +++ b/konsole/.config/konsolerc @@ -0,0 +1,35 @@ +[Desktop Entry] +DefaultProfile=Profile 1.profile + +[General] +ConfigVersion=1 + +[KFileDialog Settings] +iconViewIconSize=64 + +[MainWindow] +1920x1080 screen: Height=554 +1920x1080 screen: Width=911 +1920x1080 screen: Window-Maximized=true +2 screens: Height=1041 +2 screens: Width=1732 +2 screens: Window-Maximized=true +2 screens: XPosition=0 +2 screens: YPosition=30 +2560x1440 screen: Height=690 +2560x1440 screen: Width=1280 +2560x1440 screen: Window-Maximized=true +2560x1440 screen: XPosition=0 +2560x1440 screen: YPosition=30 +3 screens: Height=900 +3 screens: Width=1706 +3 screens: Window-Maximized=true +DP-1=DP-1 +DP-2=DP-2 +DP-2 HDMI-0=DP-2 +MenuBar=Disabled +State=AAAA/wAAAAD9AAAAAQAAAAAAAAAAAAAAAPwCAAAAAvsAAAAcAFMAUwBIAE0AYQBuAGEAZwBlAHIARABvAGMAawAAAAAA/////wAAARUBAAAD+wAAACIAUQB1AGkAYwBrAEMAbwBtAG0AYQBuAGQAcwBEAG8AYwBrAAAAAAD/////AAABfAEAAAMAAAeAAAAD7wAAAAQAAAAEAAAACAAAAAj8AAAAAQAAAAIAAAACAAAAFgBtAGEAaQBuAFQAbwBvAGwAQgBhAHIAAAAAAP////8AAAAAAAAAAAAAABwAcwBlAHMAcwBpAG8AbgBUAG8AbwBsAGIAYQByAAAAAAD/////AAAAAAAAAAA= +ToolBarsMovable=Disabled + +[UiSettings] +ColorScheme= diff --git a/konsole/.local/share/konsole/Profile 1.profile b/konsole/.local/share/konsole/Profile 1.profile new file mode 100644 index 0000000..7c22b65 --- /dev/null +++ b/konsole/.local/share/konsole/Profile 1.profile @@ -0,0 +1,20 @@ +[Appearance] +ColorScheme=Breeze +Font=FiraCode Nerd Font,11,-1,5,53,0,0,0,0,0,Retina +UseFontLineChararacters=false + +[General] +Command=/bin/tmux +DimWhenInactive=false +Name=Profile 1 +Parent=FALLBACK/ +StartInCurrentSessionDir=false + +[Scrolling] +HistoryMode=2 +ScrollBarPosition=2 +ScrollFullPage=false + +[Terminal Features] +BellMode=3 +BlinkingCursorEnabled=true diff --git a/menus/.config/menus/applications-kmenuedit.menu b/menus/.config/menus/applications-kmenuedit.menu new file mode 100644 index 0000000..192e199 --- /dev/null +++ b/menus/.config/menus/applications-kmenuedit.menu @@ -0,0 +1,310 @@ + + + + Development + + + Translation + Web Development + + + org.kde.kate.desktop + + + + + Education + + Mathematics + + + org.libreoffice.LibreOffice.math.desktop + + + + Science + + + org.freecadweb.FreeCAD.desktop + org.libreoffice.LibreOffice.math.desktop + + + + + Languages + Mathematics + Miscellaneous + Science + Tools + + + + Games + + + Arcade + Board + Card + Kidsgames + + steam.desktop + Logic + TacticStrategy + + + + Graphics + + org.kde.gwenview.desktop + display-im6.q16.desktop + org.kde.okular.desktop + org.kde.skanlite.desktop + org.libreoffice.LibreOffice.draw.desktop + org.kde.kontrast.desktop + + + + org.blender.Blender.desktop + org.darktable.Darktable.desktop + org.freecadweb.FreeCAD.desktop + org.gimp.GIMP.desktop + Godot.desktop + org.inkscape.Inkscape.desktop + + + More + + + Godot.desktop + + + + Internet + + Terminal + + + + org.kde.kdeconnect.app.desktop + org.kde.kdeconnect.sms.desktop + org.kde.kdeconnect_open.desktop + steam.desktop + remote-viewer.desktop + org.kde.akregator.desktop + org.kde.contactprintthemeeditor.desktop + org.kde.contactthemeeditor.desktop + org.kde.kmail2.desktop + org.kde.headerthemeeditor.desktop + konqbrowser.desktop + org.kde.ktnef.desktop + org.kde.pimdataexporter.desktop + org.kde.sieveeditor.desktop + + + ch.protonmail.protonmail-bridge.desktop + + + + com.discordapp.Discord.desktop + im.riot.Riot.desktop + org.mozilla.firefox.desktop + org.kde.krdc.desktop + ch.protonmail.protonmail-bridge.desktop + com.slack.Slack.desktop + org.mozilla.Thunderbird.desktop + + + More + + + + Multimedia + + + org.kde.haruna.desktop + pavucontrol-qt.desktop + + + More + + + + Office + + org.kde.contactprintthemeeditor.desktop + org.kde.contactthemeeditor.desktop + org.kde.kaddressbook.desktop + org.kde.kmail2.desktop + org.kde.headerthemeeditor.desktop + org.kde.korganizer.desktop + org.kde.ktnef.desktop + org.kde.sieveeditor.desktop + ch.protonmail.protonmail-bridge.desktop + + + + org.libreoffice.LibreOffice.desktop + org.libreoffice.LibreOffice.base.desktop + org.libreoffice.LibreOffice.calc.desktop + org.libreoffice.LibreOffice.draw.desktop + org.libreoffice.LibreOffice.impress.desktop + org.libreoffice.LibreOffice.math.desktop + org.libreoffice.LibreOffice.writer.desktop + com.logseq.Logseq.desktop + org.kde.okular.desktop + + + More + + + com.logseq.Logseq.desktop + + + + Utilities + + Settingsmenu + + + + im-config.desktop + pavucontrol-qt.desktop + systemsettings.desktop + kde_wacom_tabletfinder.desktop + + + + System + + + + org.kde.discover.desktop + org.kde.dolphin.desktop + htop.desktop + org.kde.kinfocenter.desktop + org.kde.partitionmanager.desktop + org.kde.konsole.desktop + org.kde.ksystemlog.desktop + org.kde.kwalletmanager5.desktop + org.kde.kmenuedit.desktop + apport-kde.desktop + + ScreenSavers + usb-creator-kde.desktop + org.kde.plasma-systemmonitor.desktop + Terminal + debian-uxterm.desktop + virt-manager.desktop + debian-xterm.desktop + + More + + + + org.kde.gwenview.desktop + display-im6.q16.desktop + org.kde.skanlite.desktop + remote-viewer.desktop + via.desktop + + + org.libreoffice.LibreOffice.draw.desktop + com.logseq.Logseq.desktop + + + + org.kde.ark.desktop + barrier.desktop + org.kde.plasma.emojier.desktop + org.kde.gwenview.desktop + display-im6.q16.desktop + org.kde.kate.desktop + org.kde.kcalc.desktop + nvim.desktop + remote-viewer.desktop + + Settingsmenu + org.kde.skanlite.desktop + org.kde.spectacle.desktop + System + info.desktop + com.ultimaker.cura.desktop + XUtilities + + More + + + + System + Utilities/System + + + Settingsmenu + Utilities/Settingsmenu + + + .hidden + + org.kde.kate.desktop + org.freecadweb.FreeCAD.desktop + org.libreoffice.LibreOffice.math.desktop + org.kde.okular.desktop + org.libreoffice.LibreOffice.draw.desktop + org.kde.kdeconnect.app.desktop + org.kde.kdeconnect.sms.desktop + org.kde.kdeconnect_open.desktop + steam.desktop + org.kde.khelpcenter.desktop + org.kde.kontrast.desktop + org.kde.akregator.desktop + konqbrowser.desktop + org.kde.pimdataexporter.desktop + org.kde.contactprintthemeeditor.desktop + org.kde.contactthemeeditor.desktop + org.kde.kaddressbook.desktop + org.kde.kmail2.desktop + org.kde.headerthemeeditor.desktop + org.kde.korganizer.desktop + org.kde.ktnef.desktop + org.kde.sieveeditor.desktop + + + + org.kde.khelpcenter.desktop + + + Applications + + + via.desktop + + + via.desktop + + + + + + Education + Games + Graphics + Internet + Multimedia + Office + Science + Utilities + + + Science + + + Development + Development.directory + + + + + Godot.desktop + + + diff --git a/menus/.config/plasma-org.kde.plasma.desktop-appletsrc b/menus/.config/plasma-org.kde.plasma.desktop-appletsrc new file mode 100644 index 0000000..55bbf84 --- /dev/null +++ b/menus/.config/plasma-org.kde.plasma.desktop-appletsrc @@ -0,0 +1,277 @@ +[ActionPlugins][0] +MiddleButton;NoModifier=org.kde.paste +RightButton;NoModifier=org.kde.contextmenu +wheel:Vertical;NoModifier=org.kde.switchdesktop + +[ActionPlugins][1] +RightButton;NoModifier=org.kde.contextmenu + +[Containments][1] +activityId= +formfactor=2 +immutability=1 +lastScreen=0 +location=4 +plugin=org.kde.panel +wallpaperplugin=org.kde.image + +[Containments][1][Applets][19] +immutability=1 +plugin=org.kde.plasma.digitalclock + +[Containments][1][Applets][19][Configuration] +PreloadWeight=100 +popupHeight=550 +popupWidth=990 + +[Containments][1][Applets][19][Configuration][Appearance] +customDateFormat=dddd MMM, d +enabledCalendarPlugins=/usr/lib/x86_64-linux-gnu/qt5/plugins/plasmacalendarplugins/holidaysevents.so +use24hFormat=0 + +[Containments][1][Applets][19][Configuration][ConfigDialog] +DialogHeight=660 +DialogWidth=880 + +[Containments][1][Applets][2] +immutability=1 +plugin=org.kde.plasma.kickoff + +[Containments][1][Applets][2][Configuration] +PreloadWeight=100 +popupHeight=577 +popupWidth=735 + +[Containments][1][Applets][2][Configuration][ConfigDialog] +DialogHeight=660 +DialogWidth=880 + +[Containments][1][Applets][2][Configuration][Configuration/General] +showAppsByName=true + +[Containments][1][Applets][2][Configuration][General] +alphaSort=true +compactMode=true +favoritesPortedToKAstats=true +systemFavorites=suspend\\,hibernate\\,reboot\\,shutdown + +[Containments][1][Applets][2][Configuration][Shortcuts] +global=Alt+F1 + +[Containments][1][Applets][2][Shortcuts] +global= + +[Containments][1][Applets][32] +immutability=1 +plugin=org.kde.plasma.pager + +[Containments][1][Applets][32][Configuration][ConfigDialog] +DialogHeight=660 +DialogWidth=880 + +[Containments][1][Applets][4] +immutability=1 +plugin=org.kde.plasma.icontasks + +[Containments][1][Applets][4][Configuration][ConfigDialog] +DialogHeight=660 +DialogWidth=880 + +[Containments][1][Applets][4][Configuration][General] +launchers=preferred://filemanager,file:///var/lib/flatpak/exports/share/applications/org.mozilla.firefox.desktop,file:///var/lib/flatpak/exports/share/applications/org.mozilla.Thunderbird.desktop,applications:org.kde.konsole.desktop,file:///var/lib/flatpak/exports/share/applications/im.riot.Riot.desktop,file:///var/lib/flatpak/exports/share/applications/com.slack.Slack.desktop,file:///var/lib/flatpak/exports/share/applications/com.logseq.Logseq.desktop,applications:Godot.desktop,file:///var/lib/flatpak/exports/share/applications/org.blender.Blender.desktop + +[Containments][1][Applets][5] +immutability=1 +plugin=org.kde.plasma.marginsseparator + +[Containments][1][Applets][6] +immutability=1 +plugin=org.kde.plasma.systemtray + +[Containments][1][Applets][6][Configuration] +PreloadWeight=100 +SystrayContainmentId=7 + +[Containments][1][ConfigDialog] +DialogHeight=93 +DialogWidth=2560 + +[Containments][1][General] +AppletOrder=2;4;32;5;6;19 + +[Containments][100][Applets][101][Configuration] +PreloadWeight=100 +popupHeight=574 +popupWidth=729 + +[Containments][23] +ItemGeometries-2560x1440= +ItemGeometriesHorizontal= +activityId=da69c9c3-3ae2-43e4-8ff9-3d000803aa74 +formfactor=0 +immutability=1 +lastScreen=0 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][23][ConfigDialog] +DialogHeight=660 +DialogWidth=880 + +[Containments][23][General] +ToolBoxButtonState=topcenter +ToolBoxButtonX=697 + +[Containments][23][Wallpaper][org.kde.image][General] +Image=/home/kendall/Pictures/Wallpapers/low-poly-planet.webp +SlidePaths=/usr/share/plasma/wallpapers/,/usr/share/wallpapers/ + +[Containments][33] +ItemGeometries-2560x1440= +ItemGeometriesHorizontal= +activityId=da69c9c3-3ae2-43e4-8ff9-3d000803aa74 +formfactor=0 +immutability=1 +lastScreen=1 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][33][ConfigDialog] +DialogHeight=660 +DialogWidth=880 + +[Containments][33][Wallpaper][org.kde.image][General] +Image=/home/kendall/Pictures/Wallpapers/low-poly-planet.webp +SlidePaths=/usr/share/plasma/wallpapers/,/usr/share/wallpapers/ + +[Containments][34] +ItemGeometries-0x0=Applet-35:0,1104,336,80,0;Applet-36:336,1104,336,80,0; +ItemGeometries-2560x1440=Applet-35:0,1104,336,320,0;Applet-36:336,1104,336,320,0; +ItemGeometriesHorizontal=Applet-35:0,1104,336,80,0;Applet-36:336,1104,336,80,0; +activityId=da69c9c3-3ae2-43e4-8ff9-3d000803aa74 +formfactor=0 +immutability=1 +lastScreen=2 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][34][Applets][35] +immutability=1 +plugin=org.kde.plasma.notes + +[Containments][34][Applets][35][Configuration][General] +fontSize=10 +noteId=9c7feb20-fbad-4171-bba4-92dcb46c87 + +[Containments][34][Applets][36] +immutability=1 +plugin=org.kde.plasma.notes + +[Containments][34][Applets][36][Configuration][General] +fontSize=10 +noteId=d0cc9522-bccd-48ec-9571-f3d84abc60 + +[Containments][34][ConfigDialog] +DialogHeight=660 +DialogWidth=880 + +[Containments][34][Wallpaper][org.kde.image][General] +Image=/home/kendall/Pictures/Wallpapers/low-poly-planet.webp +SlidePaths=/usr/share/plasma/wallpapers/,/usr/share/wallpapers/ + +[Containments][7] +activityId= +formfactor=2 +immutability=1 +lastScreen=0 +location=4 +plugin=org.kde.plasma.private.systemtray +popupHeight=528 +popupWidth=528 +wallpaperplugin=org.kde.image + +[Containments][7][Applets][10][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][11][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][12][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][13][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][14][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][15] +immutability=1 +plugin=org.kde.plasma.volume + +[Containments][7][Applets][15][Configuration] +PreloadWeight=100 + +[Containments][7][Applets][15][Configuration][General] +migrated=true +showVirtualDevices=true + +[Containments][7][Applets][16][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][17][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][18][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][22] +immutability=1 +plugin=org.kde.plasma.networkmanagement + +[Containments][7][Applets][22][Configuration] +PreloadWeight=100 + +[Containments][7][Applets][23] +immutability=1 +plugin=org.kde.plasma.bluetooth + +[Containments][7][Applets][23][Configuration] +PreloadWeight=100 + +[Containments][7][Applets][24] +immutability=1 +plugin=org.kde.plasma.mediacontroller + +[Containments][7][Applets][24][Configuration] +PreloadWeight=0 +selectedConfig=0 + +[Containments][7][Applets][25][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][8][Configuration] +PreloadWeight=42 + +[Containments][7][Applets][9] +immutability=1 +plugin=org.kde.plasma.notifications + +[Containments][7][Applets][9][Configuration] +PreloadWeight=75 + +[Containments][7][ConfigDialog] +DialogHeight=838 +DialogWidth=1050 + +[Containments][7][General] +extraItems=org.kde.plasma.networkmanagement,org.kde.plasma.notifications,org.kde.plasma.volume,org.kde.plasma.bluetooth,org.kde.plasma.mediacontroller +hiddenItems=org.kde.plasma.notifications,org.kde.plasma.mediacontroller,indicator-solaar,Proton Mail Bridge,martchus.syncthingplasmoid +knownItems=org.kde.plasma.vault,org.kde.plasma.battery,org.kde.plasma.networkmanagement,org.kde.kupapplet,org.kde.plasma.notifications,org.kde.plasma.keyboardlayout,org.kde.kdeconnect,org.kde.plasma.keyboardindicator,org.kde.plasma.manage-inputmethod,org.kde.plasma.bluetooth,org.kde.plasma.devicenotifier,org.kde.plasma.volume,org.kde.plasma.nightcolorcontrol,org.kde.plasma.clipboard,org.kde.kscreen,org.kde.plasma.mediacontroller,org.kde.plasma.printmanager + +[ScreenMapping] +itemsOnDisabledScreens= +screenMapping= diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua new file mode 100644 index 0000000..91d6915 --- /dev/null +++ b/nvim/.config/nvim/init.lua @@ -0,0 +1,84 @@ +local g = vim.g +local o = vim.o +local keymap = vim.keymap.set +local cmd = vim.cmd +local fn = vim.fn +local api = vim.api + +-- Leader Key +g.mapleader = " " + +-- Disable netrw for Nvim Tree +g.loaded_netrw = 1 +g.loaded_netrwPlugin = 1 + +-- Numbers +o.number = true +o.relativenumber = true +o.numberwidth = 1 + +-- Clipboard +cmd[[set clipboard+=unnamedplus]] + +-- Files +o.swapfile = false +o.backup = false + +-- Scroll Offset +o.scrolloff = 15 + +-- Cursor & Column Lines +o.colorcolumn = "80" +o.cursorline = true + +-- Mouse +o.mouse = "a" + +-- Spacing +o.tabstop = 2 +o.shiftwidth = 2 +o.expandtab = true + +-- Update Time +o.updatetime = 50 + +-- Hide Highlighting +cmd[[set nohlsearch]] + +-- Indent +keymap("n", "", "<<") +keymap("n", "", ">>") +keymap("v", "", "<<") +keymap("v", "", ">>") +keymap("i", "", "") + +-- Move Between Panels +keymap("", "", ":wincmd h") +keymap("", "", ":wincmd j") +keymap("", "", ":wincmd k") +keymap("", "", ":wincmd l") + +-- Jump Up/Down A Half Page +keymap("n", "", "zz") +keymap("n", "", "zz") + +-- Keep Copy/Paste Value +keymap("x", "p", "\"_dP") + +-- Sort +keymap("v", "", ":sort") + +-- Disable F1 in Insert mode +keymap('i', '', '') + +-- Close Neovim +cmd("command! Qa qa") + +-- Remove trailing whitespace when focus is lost or the window is closed, +-- without moving the cursor +api.nvim_exec([[ + autocmd FocusLost,WinLeave * if &modifiable | let w:save_cursor = getcurpos() | %s/\s\+$//e | call setpos('.', w:save_cursor) | endif +]], false) + +-- Lazy.nvim +require("plugins") diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..a4cfd71 --- /dev/null +++ b/nvim/.config/nvim/lazy-lock.json @@ -0,0 +1,22 @@ +{ + "LuaSnip": { "branch": "master", "commit": "33b06d72d220aa56a7ce80a0dd6f06c70cd82b9d" }, + "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, + "copilot.vim": { "branch": "release", "commit": "87038123804796ca7af20d1b71c3428d858a9124" }, + "gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" }, + "gruvbox.nvim": { "branch": "main", "commit": "68c3460a5d1d1a362318960035c9f3466d5011f5" }, + "indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" }, + "lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" }, + "lsp-zero.nvim": { "branch": "v3.x", "commit": "ab2a3413646fedd77aa0eab4214a6473e62f6a64" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "c6c686781f9841d855bf1b926e10aa5e19430a38" }, + "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, + "nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" }, + "nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" }, + "nvim-lspconfig": { "branch": "master", "commit": "ff2b85abaa810f6611233dbe6d31c07510ebf43d" }, + "nvim-tree.lua": { "branch": "master", "commit": "68fc4c20f5803444277022c681785c5edd11916d" }, + "nvim-treesitter": { "branch": "master", "commit": "eb3e850acff4d9f2f2dd8dacd75353043c899753" }, + "nvim-web-devicons": { "branch": "master", "commit": "63f552a7f59badc6e6b6d22e603150f0d5abebb7" }, + "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, + "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" } +} diff --git a/nvim/.config/nvim/lua/plugins/colorscheme.lua b/nvim/.config/nvim/lua/plugins/colorscheme.lua new file mode 100644 index 0000000..45bd43b --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/colorscheme.lua @@ -0,0 +1,14 @@ +require('gruvbox').setup({ + priority = 1000, + + config = true, + + contrast = "hard", + transparent_mode = true, + overrides = { + NonText = { fg = "#666666" }, + }, +}) + +-- Colorscheme +vim.cmd("colorscheme gruvbox") diff --git a/nvim/.config/nvim/lua/plugins/copilot.lua b/nvim/.config/nvim/lua/plugins/copilot.lua new file mode 100644 index 0000000..e69de29 diff --git a/nvim/.config/nvim/lua/plugins/gitsigns.lua b/nvim/.config/nvim/lua/plugins/gitsigns.lua new file mode 100644 index 0000000..b34230f --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/gitsigns.lua @@ -0,0 +1,9 @@ +require('gitsigns').setup({ + current_line_blame = true, + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 0, + ignore_whitespace = false, + }, +}) diff --git a/nvim/.config/nvim/lua/plugins/indent-blankline.lua b/nvim/.config/nvim/lua/plugins/indent-blankline.lua new file mode 100644 index 0000000..f8f921e --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/indent-blankline.lua @@ -0,0 +1,12 @@ +vim.cmd [[highlight IndentBlanklineColor guifg=#555555 gui=nocombine]] + +local highlights = { + "CursorColumn", + "Whitespace", +} + +require('ibl').setup({ + indent = { + highlight = highlight, + } +}) diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..b8d762d --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/init.lua @@ -0,0 +1,68 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +-- Plugins +require("lazy").setup({ + { "windwp/nvim-autopairs" }, + { "Pocco81/auto-save.nvim" }, + { "ellisonleao/gruvbox.nvim" }, + { "lewis6991/gitsigns.nvim" }, + { "lukas-reineke/indent-blankline.nvim" }, + { + "VonHeikemen/lsp-zero.nvim", + branch = "v3.x", + dependencies = { + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + "neovim/nvim-lspconfig", + "hrsh7th/nvim-cmp", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "L3MON4D3/LuaSnip", + }, + }, + { + "nvim-telescope/telescope.nvim", + tag = "0.1.8", + dependencies = "nvim-lua/plenary.nvim", + }, + { + "nvim-tree/nvim-tree.lua", + dependencies = "nvim-tree/nvim-web-devicons", + }, + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + }, + { + "github/copilot.vim", + config = function() + vim.g.copilot_no_tab_map = true + vim.api.nvim_set_keymap( + "i", + "", + 'copilot#Accept("")', + { silent = true, expr = true } + ) + end, + }, +}) + +require('plugins.colorscheme') +require('plugins.gitsigns') +require('plugins.indent-blankline') +require('plugins.lsp-zero') +require('plugins.nvim-autopairs') +require('plugins.nvim-tree') +require('plugins.telescope') +require('plugins.treesitter') diff --git a/nvim/.config/nvim/lua/plugins/lsp-zero.lua b/nvim/.config/nvim/lua/plugins/lsp-zero.lua new file mode 100644 index 0000000..90c79e3 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/lsp-zero.lua @@ -0,0 +1,62 @@ +local lsp_zero = require('lsp-zero') +local cmp = require('cmp') +local cmp_action = lsp_zero.cmp_action() + +-- LSP Zero +lsp_zero.on_attach(function(client, bufnr) + lsp_zero.default_keymaps({buffer = bufnr}) +end) + +lsp_zero.set_sign_icons({ + error = '✘', + warn = '▲', + hint = '⚑', + info = '»' +}) + +-- CMP +cmp.setup({ + source = { + { name = 'nvim_lsp' }, + { name = 'buffer' }, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + preselect = 'item', + completion = { + completeopt = 'menu,menuone,noinsert' + }, + mapping = { + [''] = cmp_action.luasnip_supertab(), + [''] = cmp_action.luasnip_shift_supertab(), + [''] = cmp.mapping.confirm({select = true}), + } +}) + +-- Mason +require('mason').setup({}) + +require('mason-lspconfig').setup({ + ensure_installed = { + 'lua_ls', + 'ts_ls', + 'html', + 'cssls', + 'jsonls', + 'emmet_ls', + }, + handlers = { + function(server_name) + require('lspconfig')[server_name].setup({}) + end, + }, +}) + +-- Show line diagnostics automatically in hover window +vim.diagnostic.config({ + virtual_text = false, +}) + +vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]] diff --git a/nvim/.config/nvim/lua/plugins/nvim-autopairs.lua b/nvim/.config/nvim/lua/plugins/nvim-autopairs.lua new file mode 100644 index 0000000..c2a09f8 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/nvim-autopairs.lua @@ -0,0 +1,4 @@ +require('nvim-autopairs').setup({ + event = "InsertEnter", + config = true +}) diff --git a/nvim/.config/nvim/lua/plugins/nvim-tree.lua b/nvim/.config/nvim/lua/plugins/nvim-tree.lua new file mode 100644 index 0000000..a1c46ca --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/nvim-tree.lua @@ -0,0 +1,33 @@ +local function custom_mapping(bufnr) + local api = require("nvim-tree.api") + + local function opts(desc) + return { + desc = "nvim-tree: " .. desc, + buffer = bufnr, + noremap = true, + silent = true, + nowait = true + } + end + + -- default mappings + api.config.mappings.default_on_attach(bufnr) + + -- custom mappings + vim.keymap.set('n', 's', api.node.open.vertical, opts('Open: Vertical Split')) + vim.keymap.set('n', 'u', api.node.navigate.parent_close, opts('Close Directory')) +end + +require("nvim-tree").setup({ + view = { + width = {}, + }, + on_attach = custom_mapping, +}) + +-- Tree +vim.keymap.set("n", [[]], ":NvimTreeToggle") +vim.keymap.set("n", [[\]], ":NvimTreeToggle") +vim.keymap.set("n", "ff", ":NvimTreeFindFile") + diff --git a/nvim/.config/nvim/lua/plugins/telescope.lua b/nvim/.config/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..ace09c4 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,10 @@ +require('telescope').setup({}) + +-- Telescope +local builtin = require("telescope.builtin") + +vim.keymap.set("n", "gf", builtin.git_files) +vim.keymap.set("n", "gs", builtin.git_status) +vim.keymap.set("n", "gg", builtin.live_grep) +vim.keymap.set("n", "b", builtin.buffers) + diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..92187cc --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,31 @@ +require('nvim-treesitter.configs').setup({ + ensure_installed = { + "bash", + "css", + "graphql", + "html", + "javascript", + "jsdoc", + "json", + "lua", + "markdown", + "python", + "query", + "regex", + "scss", + "svelte", + "tmux", + "typescript", + "vim", + "vimdoc", + "yaml", + "tsx", + }, + sync_install = false, + highlight = { + enable = true, + }, + indent = { + enable = true, + }, +}) diff --git a/powerline/.config/powerline/colorschemes/shell/default.json b/powerline/.config/powerline/colorschemes/shell/default.json new file mode 100644 index 0000000..bf10c9f --- /dev/null +++ b/powerline/.config/powerline/colorschemes/shell/default.json @@ -0,0 +1,70 @@ +{ + "groups": { + "information:additional": { "fg": "white", "bg": "gray3", "attrs": [] }, + "information:regular": { "fg": "white", "bg": "gray3", "attrs": ["bold"] }, + "information:highlighted": { "fg": "white", "bg": "gray4", "attrs": [] }, + "information:priority": { "fg": "brightyellow", "bg": "mediumorange", "attrs": [] }, + "warning:regular": { "fg": "white", "bg": "brightred", "attrs": ["bold"] }, + "critical:failure": { "fg": "white", "bg": "darkestred", "attrs": [] }, + "critical:success": { "fg": "white", "bg": "darkestgreen", "attrs": [] }, + "background": { "fg": "white", "bg": "gray0", "attrs": [] }, + "background:divider": { "fg": "gray5", "bg": "gray0", "attrs": [] }, + "session": { "fg": "black", "bg": "gray10", "attrs": ["bold"] }, + "date": { "fg": "gray8", "bg": "gray2", "attrs": [] }, + "time": { "fg": "gray10", "bg": "gray2", "attrs": ["bold"] }, + "time:divider": { "fg": "gray5", "bg": "gray2", "attrs": [] }, + "email_alert": "warning:regular", + "email_alert_gradient": { "fg": "white", "bg": "yellow_orange_red", "attrs": ["bold"] }, + "hostname": { "fg": "black", "bg": "gray10", "attrs": ["bold"] }, + "weather": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "weather_temp_gradient": { "fg": "blue_red", "bg": "gray0", "attrs": [] }, + "weather_condition_hot": { "fg": "khaki1", "bg": "gray0", "attrs": [] }, + "weather_condition_snowy": { "fg": "skyblue1", "bg": "gray0", "attrs": [] }, + "weather_condition_rainy": { "fg": "skyblue1", "bg": "gray0", "attrs": [] }, + "uptime": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "external_ip": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "internal_ip": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "network_load": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "network_load_gradient": { "fg": "green_yellow_orange_red", "bg": "gray0", "attrs": [] }, + "network_load_sent_gradient": "network_load_gradient", + "network_load_recv_gradient": "network_load_gradient", + "network_load:divider": "background:divider", + "system_load": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "system_load_gradient": { "fg": "green_yellow_orange_red", "bg": "gray0", "attrs": [] }, + "environment": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "cpu_load_percent": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "cpu_load_percent_gradient": { "fg": "green_yellow_orange_red", "bg": "gray0", "attrs": [] }, + "battery": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "battery_gradient": { "fg": "white_red", "bg": "gray0", "attrs": [] }, + "battery_full": { "fg": "red", "bg": "gray0", "attrs": [] }, + "battery_empty": { "fg": "white", "bg": "gray0", "attrs": [] }, + "player": { "fg": "gray10", "bg": "black", "attrs": [] }, + "user": { "fg": "white", "bg": "darkblue", "attrs": ["bold"] }, + "branch": { "fg": "gray9", "bg": "gray2", "attrs": [] }, + "branch_dirty": { "fg": "brightyellow", "bg": "gray2", "attrs": [] }, + "branch_clean": { "fg": "gray9", "bg": "gray2", "attrs": [] }, + "branch:divider": { "fg": "gray7", "bg": "gray2", "attrs": [] }, + "stash": "branch_dirty", + "stash:divider": "branch:divider", + "cwd": "information:additional", + "cwd:current_folder": "information:regular", + "cwd:divider": { "fg": "gray7", "bg": "gray3", "attrs": [] }, + "virtualenv": { "fg": "white", "bg": "darkcyan", "attrs": [] }, + "attached_clients": { "fg": "gray8", "bg": "gray0", "attrs": [] }, + "workspace": "information:regular", + "gitstatus": { "fg": "gray9", "bg": "gray2", "attrs": [] }, + "gitstatus_branch": { "fg": "white", "bg": "gray2", "attrs": [] }, + "gitstatus_branch_clean": { "fg": "green", "bg": "gray2", "attrs": [] }, + "gitstatus_branch_dirty": { "fg": "gray9", "bg": "gray2", "attrs": [] }, + "gitstatus_branch_detached": { "fg": "mediumpurple", "bg": "gray2", "attrs": [] }, + "gitstatus_tag": { "fg": "darkcyan", "bg": "gray2", "attrs": [] }, + "gitstatus_behind": { "fg": "gray10", "bg": "gray2", "attrs": [] }, + "gitstatus_ahead": { "fg": "gray10", "bg": "gray2", "attrs": [] }, + "gitstatus_staged": { "fg": "green", "bg": "gray2", "attrs": [] }, + "gitstatus_unmerged": { "fg": "brightred", "bg": "gray2", "attrs": [] }, + "gitstatus_changed": { "fg": "mediumorange", "bg": "gray2", "attrs": [] }, + "gitstatus_untracked": { "fg": "brightestorange", "bg": "gray2", "attrs": [] }, + "gitstatus_stashed": { "fg": "darkblue", "bg": "gray2", "attrs": [] }, + "gitstatus:divider": { "fg": "gray8", "bg": "gray2", "attrs": [] } + } +} diff --git a/powerline/.config/powerline/colorschemes/tmux/default.json b/powerline/.config/powerline/colorschemes/tmux/default.json new file mode 100644 index 0000000..4f361ef --- /dev/null +++ b/powerline/.config/powerline/colorschemes/tmux/default.json @@ -0,0 +1,28 @@ +{ + "groups": { + "active_window_status": {"fg": "gray8", "bg": "gray0", "attrs": []}, + "window_status": {"fg": "gray70", "bg": "gray0", "attrs": []}, + "activity_status": {"fg": "yellow", "bg": "gray0", "attrs": []}, + "bell_status": {"fg": "red", "bg": "gray0", "attrs": []}, + "window": {"fg": "gray6", "bg": "gray0", "attrs": []}, + "window:divider": {"fg": "gray4", "bg": "gray0", "attrs": []}, + "window:current": {"fg": "gray8", "bg": "gray3", "attrs": []}, + "window_name": {"fg": "white", "bg": "gray3", "attrs": ["bold"]}, + "session": {"fg": "black", "bg": "gray90", "attrs": ["bold"]}, + "session:prefix": {"fg": "gray90", "bg": "darkblue", "attrs": ["bold"]}, + "gitstatus": { "fg": "gray9", "bg": "gray2", "attrs": [] }, + "gitstatus_branch": { "fg": "white", "bg": "gray2", "attrs": [] }, + "gitstatus_branch_clean": { "fg": "green", "bg": "gray2", "attrs": [] }, + "gitstatus_branch_dirty": { "fg": "gray9", "bg": "gray2", "attrs": [] }, + "gitstatus_branch_detached": { "fg": "mediumpurple", "bg": "gray2", "attrs": [] }, + "gitstatus_tag": { "fg": "darkcyan", "bg": "gray2", "attrs": [] }, + "gitstatus_behind": { "fg": "gray10", "bg": "gray2", "attrs": [] }, + "gitstatus_ahead": { "fg": "gray10", "bg": "gray2", "attrs": [] }, + "gitstatus_staged": { "fg": "green", "bg": "gray2", "attrs": [] }, + "gitstatus_unmerged": { "fg": "brightred", "bg": "gray2", "attrs": [] }, + "gitstatus_changed": { "fg": "mediumorange", "bg": "gray2", "attrs": [] }, + "gitstatus_untracked": { "fg": "brightestorange", "bg": "gray2", "attrs": [] }, + "gitstatus_stashed": { "fg": "darkblue", "bg": "gray2", "attrs": [] }, + "gitstatus:divider": { "fg": "gray8", "bg": "gray2", "attrs": [] } + } +} diff --git a/powerline/.config/powerline/themes/shell/default_leftonly.json b/powerline/.config/powerline/themes/shell/default_leftonly.json new file mode 100644 index 0000000..19e97bc --- /dev/null +++ b/powerline/.config/powerline/themes/shell/default_leftonly.json @@ -0,0 +1,31 @@ +{ + "segments": { + "left": [ + { + "function": "powerline.segments.common.net.hostname" + }, + { + "function": "powerline.segments.common.env.virtualenv" + }, + { + "function": "powerline.segments.shell.cwd" + }, + { + "function": "powerline_gitstatus.gitstatus", + "args": { + "formats": { + "branch": "\ue0a0 {}", + "tag": " ★ {} ", + "behind": " ↓ {}", + "ahead": " ↑ {}", + "staged": " ● {}", + "unmerged": " ✖ {} ", + "changed": " ✚ {} ", + "untracked": " … {}", + "stashed": " ⚑ {}" + } + } + } + ] + } +} diff --git a/powerline/.config/powerline/themes/tmux/default.json b/powerline/.config/powerline/themes/tmux/default.json new file mode 100644 index 0000000..187d5a4 --- /dev/null +++ b/powerline/.config/powerline/themes/tmux/default.json @@ -0,0 +1,29 @@ +{ + "segments": { + "right": [ + { + "function": "powerline.segments.common.net.network_load" + }, + { + "function": "powerline.segments.common.net.internal_ip" + }, + { + "function": "powerline_gitstatus.gitstatus", + "args": { + "formats": { + "branch": "\ue0a0 {}", + "tag": " ★ {} ", + "behind": " ↓ {}", + "ahead": " ↑ {}", + "staged": " ● {}", + "unmerged": " ✖ {} ", + "changed": " ✚ {} ", + "untracked": " … {}", + "stashed": " ⚑ {}" + } + } + } + ], + "left": [] + } +} diff --git a/profile/.face b/profile/.face new file mode 100644 index 0000000..94ffbe3 Binary files /dev/null and b/profile/.face differ diff --git a/rtorrent/.config/rtorrent/rtorrent.rc b/rtorrent/.config/rtorrent/rtorrent.rc new file mode 100644 index 0000000..a26304c --- /dev/null +++ b/rtorrent/.config/rtorrent/rtorrent.rc @@ -0,0 +1,122 @@ +############################################################################# +# A minimal rTorrent configuration that provides the basic features +# you want to have in addition to the built-in defaults. +# +# See https://github.com/rakshasa/rtorrent/wiki/CONFIG-Template +# for an up-to-date version. +############################################################################# + + +## Instance layout (base paths) +method.insert = cfg.basedir, private|const|string, (cat,"/home/kendall/Downloads/") +method.insert = cfg.download, private|const|string, (cat,(cfg.basedir)) +method.insert = cfg.logs, private|const|string, (cat,(cfg.basedir),".rtorrent/log/") +method.insert = cfg.logfile, private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log") +method.insert = cfg.session, private|const|string, (cat,(cfg.basedir),".rtorrent/session/") +method.insert = cfg.watch, private|const|string, (cat,(cfg.basedir)) + + +## Create instance directories +execute.throw = sh, -c, (cat,\ + "mkdir -p \"",(cfg.download),"\" ",\ + "\"",(cfg.logs),"\" ",\ + "\"",(cfg.session),"\" ",\ + "\"",(cfg.watch),".rtorrent/load\" ",\ + "\"",(cfg.watch),".rtorrent/start\" ") + + +## Listening port for incoming peer traffic (fixed; you can also randomize it) +network.port_range.set = 50000-50000 +network.port_random.set = no + + +## Tracker-less torrent and UDP tracker support +## (conservative settings for 'private' trackers, change for 'public') +dht.mode.set = disable +protocol.pex.set = no + +trackers.use_udp.set = yes + + +## Peer settings +throttle.max_uploads.set = 100 +throttle.max_uploads.global.set = 250 + +throttle.min_peers.normal.set = 20 +throttle.max_peers.normal.set = 60 +throttle.min_peers.seed.set = 30 +throttle.max_peers.seed.set = 80 +trackers.numwant.set = 80 + +protocol.encryption.set = allow_incoming,try_outgoing,enable_retry + + +## Limits for file handle resources, this is optimized for +## an `ulimit` of 1024 (a common default). You MUST leave +## a ceiling of handles reserved for rTorrent's internal needs! +network.http.max_open.set = 50 +network.max_open_files.set = 600 +network.max_open_sockets.set = 300 + + +## Memory resource usage (increase if you have a large number of items loaded, +## and/or the available resources to spend) +pieces.memory.max.set = 1800M +network.xmlrpc.size_limit.set = 4M + + +## Basic operational settings (no need to change these) +session.path.set = (cat, (cfg.session)) +directory.default.set = (cat, (cfg.download)) +log.execute = (cat, (cfg.logs), "execute.log") +#log.xmlrpc = (cat, (cfg.logs), "xmlrpc.log") +execute.nothrow = sh, -c, (cat, "echo >",\ + (session.path), "rtorrent.pid", " ",(system.pid)) + + +## Other operational settings (check & adapt) +encoding.add = utf8 +system.umask.set = 0027 +system.cwd.set = (directory.default) +network.http.dns_cache_timeout.set = 25 +schedule2 = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M)) +#pieces.hash.on_completion.set = no +#view.sort_current = seeding, greater=d.ratio= +#keys.layout.set = qwerty +#network.http.capath.set = "/etc/ssl/certs" +#network.http.ssl_verify_peer.set = 0 +#network.http.ssl_verify_host.set = 0 + + +## Some additional values and commands +method.insert = system.startup_time, value|const, (system.time) +method.insert = d.data_path, simple,\ + "if=(d.is_multi_file),\ + (cat, (d.directory), /),\ + (cat, (d.directory), /, (d.name))" +method.insert = d.session_file, simple, "cat=(session.path), (d.hash), .torrent" + + +## Watch directories (add more as you like, but use unique schedule names) +## Add torrent +schedule2 = watch_load, 11, 10, ((load.verbose, (cat, (cfg.watch), "*.torrent"))) +## Add & download straight away +schedule2 = watch_start, 10, 10, ((load.start_verbose, (cat, (cfg.watch), "*.torrent"))) + + +## Run the rTorrent process as a daemon in the background +## (and control via XMLRPC sockets) +#system.daemon.set = true +#network.scgi.open_local = (cat,(session.path),rpc.socket) +#execute.nothrow = chmod,770,(cat,(session.path),rpc.socket) + + +## Logging: +## Levels = critical error warn notice info debug +## Groups = connection_* dht_* peer_* rpc_* storage_* thread_* tracker_* torrent_* +print = (cat, "Logging to ", (cfg.logfile)) +log.open_file = "log", (cfg.logfile) +log.add_output = "info", "log" +#log.add_output = "tracker_debug", "log" + +### END of rtorrent.rc ### diff --git a/tmux/.config/tmux/tmux.conf b/tmux/.config/tmux/tmux.conf new file mode 100644 index 0000000..98da703 --- /dev/null +++ b/tmux/.config/tmux/tmux.conf @@ -0,0 +1,55 @@ +BG=default +COLOR1=#16A085 +COLOR2=#fabd2f + +# Global Settings +set -g default-terminal "screen-256color" +set -ga terminal-overrides ",*256col*:Tc" + +# Bar Position +set -g status-position bottom + +# Bar Background Color +set -g status-style 'bg=#{BG}' + +# Command Bar Color +set -g message-style 'fg=#{COLOR2}' + +# Session Selector Background Color +set -g mode-style 'bg=#{COLOR1}' + +# Border +set -g pane-border-style '#{fg=#{COLOR1}}' +set -g pane-active-border-style '#{fg=#{COLOR2}}' + +# Extra Space On Top +# set -g status 2 +# set -Fg status-format[1] '#{status-format[0]}' +# set -g status-format[0] '' + +# Left +set -g status-left '#[fg=#{COLOR1} bold]  ' + +# Window Status +set -g window-status-current-format '#[fg=#{COLOR2} bold]#I󰧟#W ' +set -g window-status-format '#[fg=#{COLOR1} bold]#I󰧟#W ' + +# Right +set -g status-right-length 200 +set -g status-right '#[fg=#{COLOR1} bold]  %l:%M%p 󰃭 %m/%d/%Y 󰖐 #{forecast}  ' + +# Movement Keybindings +bind-key -r -T prefix C-k select-pane -U +bind-key -r -T prefix C-j select-pane -D +bind-key -r -T prefix C-h select-pane -L +bind-key -r -T prefix C-l select-pane -R + +# Plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' + +set -g @plugin 'aaronpowell/tmux-weather' +set -g @forecast-location 75025 +set -g @forecast-format '%C+%t' + +run '~/.tmux/plugins/tpm/tpm' diff --git a/tmuxp/.config/tmuxp/amp.yaml b/tmuxp/.config/tmuxp/amp.yaml new file mode 100644 index 0000000..a2d7054 --- /dev/null +++ b/tmuxp/.config/tmuxp/amp.yaml @@ -0,0 +1,17 @@ +session_name: Amp +windows: + - window_name: Amp + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/WEB.AMP.git/ + - cmd: clear + + - window_name: Server + layout: even-horizontal + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/WEB.AMP.git/ + - cmd: clear + - shell_command: + - cmd: cd ~/Repos/NBC/WEB.AMP.git/ + - cmd: clear diff --git a/tmuxp/.config/tmuxp/amped-up.yaml b/tmuxp/.config/tmuxp/amped-up.yaml new file mode 100644 index 0000000..da2bcf6 --- /dev/null +++ b/tmuxp/.config/tmuxp/amped-up.yaml @@ -0,0 +1,17 @@ +session_name: Amped +windows: + - window_name: Amped + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/amped-up.git/ + - cmd: clear + + - window_name: Server + layout: even-horizontal + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/amped-up.git/ + - cmd: clear + - shell_command: + - cmd: cd ~/Repos/NBC/amped-up.git/ + - cmd: clear diff --git a/tmuxp/.config/tmuxp/hfs.yaml b/tmuxp/.config/tmuxp/hfs.yaml new file mode 100644 index 0000000..3e198af --- /dev/null +++ b/tmuxp/.config/tmuxp/hfs.yaml @@ -0,0 +1,17 @@ +session_name: HFS +windows: + - window_name: HFS + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/header-footer-service.git/ + - cmd: clear + + - window_name: Server + layout: even-horizontal + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/header-footer-service.git/ + - cmd: clear + - shell_command: + - cmd: cd ~/Repos/NBC/header-footer-service.git/ + - cmd: clear diff --git a/tmuxp/.config/tmuxp/omega.yaml b/tmuxp/.config/tmuxp/omega.yaml new file mode 100644 index 0000000..005034a --- /dev/null +++ b/tmuxp/.config/tmuxp/omega.yaml @@ -0,0 +1,17 @@ +session_name: Omega +windows: + - window_name: Omega + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/omega-player.git/ + - cmd: clear + + - window_name: Server + layout: even-horizontal + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/omega-player.git/ + - cmd: clear + - shell_command: + - cmd: cd ~/Repos/NBC/omega-player.git/ + - cmd: clear diff --git a/tmuxp/.config/tmuxp/phoenix.yaml b/tmuxp/.config/tmuxp/phoenix.yaml new file mode 100644 index 0000000..0d4e961 --- /dev/null +++ b/tmuxp/.config/tmuxp/phoenix.yaml @@ -0,0 +1,17 @@ +session_name: Phoenix +windows: + - window_name: Phoenix + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/WEB.Phoenix.git/ + - cmd: clear + + - window_name: Server + layout: even-horizontal + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/WEB.Phoenix.git/ + - cmd: clear + - shell_command: + - cmd: cd ~/Repos/NBC/WEB.Phoenix.git/ + - cmd: clear diff --git a/tmuxp/.config/tmuxp/ramen.yaml b/tmuxp/.config/tmuxp/ramen.yaml new file mode 100644 index 0000000..bd37199 --- /dev/null +++ b/tmuxp/.config/tmuxp/ramen.yaml @@ -0,0 +1,17 @@ +session_name: Ramen +windows: + - window_name: Ramen + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/nextjs-ramen.git/ + - cmd: clear + + - window_name: Server + layout: even-horizontal + panes: + - shell_command: + - cmd: cd ~/Repos/NBC/nextjs-ramen.git/ + - cmd: clear + - shell_command: + - cmd: cd ~/Repos/NBC/nextjs-ramen.git/ + - cmd: clear