Compare commits
3 Commits
df4e95bfea
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 5f73b76800 | |||
| 55f1b32e4d | |||
| e10c95152e |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,2 +1,6 @@
|
||||
# Ignore Wireguard config of course!
|
||||
/config/wg/**
|
||||
# Ignore bash environment variables.
|
||||
/config/bash/env
|
||||
# Ignore backups of old config files
|
||||
/config/old/**
|
||||
|
||||
74
bin/get-port
Executable file
74
bin/get-port
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import subprocess
|
||||
import questionary
|
||||
import re
|
||||
import sys
|
||||
|
||||
def get_interfaces():
|
||||
try:
|
||||
# Run tcpdump -D command
|
||||
result = subprocess.run(['sudo', 'tcpdump', '-D'],
|
||||
capture_output=True,
|
||||
text=True)
|
||||
|
||||
# Split output into lines and create a list of interfaces
|
||||
interfaces = []
|
||||
for line in result.stdout.split('\n'):
|
||||
if line.strip():
|
||||
# Extract interface name and description
|
||||
match = re.match(r'\d+\.(.+)', line)
|
||||
if match:
|
||||
interfaces.append(line)
|
||||
|
||||
return interfaces
|
||||
except Exception as e:
|
||||
print(f"Error getting interfaces: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
def get_port_info(interface_number):
|
||||
try:
|
||||
# Extract just the number from the interface selection
|
||||
number = interface_number.split('.')[0]
|
||||
|
||||
# Run tcpdump command for port info
|
||||
cmd = [
|
||||
'sudo', 'tcpdump', '-nnv',
|
||||
'-i', number,
|
||||
'-s', '1500',
|
||||
'-c', '1',
|
||||
'ether[12:2]==0x88cc'
|
||||
]
|
||||
|
||||
print("\nListening for LLDP packets (this might take a few seconds)...")
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
|
||||
return result.stdout or result.stderr
|
||||
except Exception as e:
|
||||
print(f"Error getting port info: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
def main():
|
||||
# Get list of interfaces
|
||||
interfaces = get_interfaces()
|
||||
|
||||
if not interfaces:
|
||||
print("No interfaces found!")
|
||||
sys.exit(1)
|
||||
|
||||
# Let user select an interface
|
||||
selected = questionary.select(
|
||||
"Select an interface to check port information:",
|
||||
choices=interfaces
|
||||
).ask()
|
||||
|
||||
if selected:
|
||||
# Get and display port information
|
||||
port_info = get_port_info(selected)
|
||||
print("\nPort Information:")
|
||||
print(port_info)
|
||||
else:
|
||||
print("No interface selected.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
191
bin/gnf
Executable file
191
bin/gnf
Executable file
@@ -0,0 +1,191 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# gnf – Friendly wrapper around 'sudo dnf'
|
||||
# Version 1.2
|
||||
# Author: You
|
||||
#
|
||||
# Features:
|
||||
# • Implicit '-y' on install/remove/reinstall/downgrade (toggle with -n/--no-confirm)
|
||||
# • 'gnf update' pipeline:
|
||||
# - dnf update [-y] [--refresh]
|
||||
# - flatpak update (user + system)
|
||||
# - optional fwupd refresh+update
|
||||
# with its own flags: -r/--refresh, -f/--firmware, -n/--no-confirm, -y/--yes
|
||||
# • Passes any other 'dnf' subcommand straight to sudo dnf
|
||||
# • 'copr' sub-commands get auto '-y' for addrepo/removerepo/enable/disable/list
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
PROGRAM=$(basename "$0")
|
||||
VERSION="1.2"
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
$PROGRAM – wrapper for sudo dnf with smart defaults
|
||||
|
||||
Usage:
|
||||
$PROGRAM [GLOBAL OPTIONS] COMMAND [COMMAND OPTIONS] [ARGS...]
|
||||
|
||||
GLOBAL OPTIONS (must precede COMMAND):
|
||||
-h, --help Show this help and exit
|
||||
--version Show version and exit
|
||||
-n, --no-confirm Disable the automatic '-y' on supported commands
|
||||
-y, --yes (Re-)enable the automatic '-y' (default)
|
||||
|
||||
COMMANDS:
|
||||
install, remove, reinstall, downgrade
|
||||
→ Implicit '-y' unless disabled by global '-n'
|
||||
|
||||
update (alias: upgrade)
|
||||
→ dnf update + flatpak update + optional fwupd
|
||||
→ COMMAND OPTIONS:
|
||||
-r, --refresh Pass --refresh to dnf update
|
||||
-f, --firmware After dnf+flatpak, run fwupdmgr refresh && update
|
||||
-n, --no-confirm Do NOT add '-y' to dnf update
|
||||
-y, --yes Force '-y' on dnf update (default)
|
||||
→ You may group short flags: e.g. -rf or -fr
|
||||
|
||||
copr (subcommands: addrepo, removerepo, enable, disable, list, …)
|
||||
→ For addrepo/removerepo/enable/disable/list, we auto '-y'
|
||||
→ Other copr actions are passed straight through
|
||||
|
||||
any other dnf COMMAND is forwarded to 'sudo dnf'
|
||||
|
||||
EXAMPLES:
|
||||
gnf install vim git
|
||||
gnf -n install firefox # interactive remove/install
|
||||
gnf update # dnf update -y ; flatpak
|
||||
gnf update -r # + --refresh
|
||||
gnf update -rf # + firmware
|
||||
gnf -n update --refresh # no -y, + refresh
|
||||
gnf copr addrepo user/project
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# If no args, show help
|
||||
if [[ $# -eq 0 ]]; then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#
|
||||
# 1) Parse GLOBAL OPTIONS
|
||||
#
|
||||
auto_yes=true
|
||||
while [[ $# -gt 0 && "$1" == -* ]]; do
|
||||
case "$1" in
|
||||
-h|--help) usage; exit 0 ;;
|
||||
--version) echo "$PROGRAM $VERSION"; exit 0 ;;
|
||||
-n|--no-confirm) auto_yes=false; shift ;;
|
||||
-y|--yes) auto_yes=true; shift ;;
|
||||
--) shift; break ;; # end of globals
|
||||
*) break ;; # first non-global dash-opt
|
||||
esac
|
||||
done
|
||||
|
||||
# Must have at least one positional argument now: the COMMAND
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "Error: no COMMAND specified." >&2
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cmd=$1; shift
|
||||
# Treat 'upgrade' as alias for 'update'
|
||||
[[ "$cmd" == "upgrade" ]] && cmd=update
|
||||
|
||||
#
|
||||
# 2) Dispatch on COMMAND
|
||||
#
|
||||
case "$cmd" in
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# install/remove/reinstall/downgrade (auto '-y' unless -n)
|
||||
# ---------------------------------------------------------------
|
||||
install|remove|reinstall|downgrade)
|
||||
dnf_args=()
|
||||
$auto_yes && dnf_args+=(-y)
|
||||
sudo dnf "$cmd" "${dnf_args[@]}" "$@"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# update pipeline
|
||||
# ---------------------------------------------------------------
|
||||
update)
|
||||
# 2.1) Map any long opts to short ones for getopts
|
||||
mapped=()
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--refresh) mapped+=(-r) ;;
|
||||
--firmware) mapped+=(-f) ;;
|
||||
--no-confirm) mapped+=(-n) ;;
|
||||
--yes) mapped+=(-y) ;;
|
||||
--) mapped+=(--);;
|
||||
*) mapped+=("$arg");;
|
||||
esac
|
||||
done
|
||||
|
||||
# 2.2) Parse update-specific flags with getopts (supports grouping: -rf)
|
||||
refresh=false
|
||||
firmware=false
|
||||
confirm=$auto_yes
|
||||
OPTIND=1
|
||||
# note: the leading colon suppresses getopts’ own error msg
|
||||
while getopts ":rfny" opt "${mapped[@]}"; do
|
||||
case "$opt" in
|
||||
r) refresh=true ;;
|
||||
f) firmware=true ;;
|
||||
n) confirm=false ;;
|
||||
y) confirm=true ;;
|
||||
\?) echo "Unknown option '-$OPTARG' for update" >&2; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND - 1))
|
||||
|
||||
# 2.3) Run the dnf update
|
||||
dnf_args=()
|
||||
$confirm && dnf_args+=(-y)
|
||||
$refresh && dnf_args+=(--refresh)
|
||||
sudo dnf update "${dnf_args[@]}" "$@"
|
||||
|
||||
# 2.4) Run flatpak updates (user then system)
|
||||
flatpak update -y
|
||||
sudo flatpak update
|
||||
|
||||
# 2.5) Optional firmware via fwupd
|
||||
if $firmware; then
|
||||
sudo fwupdmgr refresh
|
||||
sudo fwupdmgr update
|
||||
fi
|
||||
|
||||
exit $?
|
||||
;;
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# copr sub-commands
|
||||
# ---------------------------------------------------------------
|
||||
copr)
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "Error: 'gnf copr' requires a subcommand." >&2
|
||||
exit 1
|
||||
fi
|
||||
sub=$1; shift
|
||||
case "$sub" in
|
||||
addrepo|removerepo|enable|disable|list)
|
||||
sudo dnf copr "$sub" -y "$@" ;;
|
||||
*)
|
||||
sudo dnf copr "$sub" "$@" ;;
|
||||
esac
|
||||
exit $?
|
||||
;;
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# anything else → pass straight to sudo dnf
|
||||
# ---------------------------------------------------------------
|
||||
*)
|
||||
sudo dnf "$cmd" "$@"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
@@ -1,25 +0,0 @@
|
||||
# .bashrc
|
||||
|
||||
# Source global definitions
|
||||
if [ -f /etc/bashrc ]; then
|
||||
. /etc/bashrc
|
||||
fi
|
||||
|
||||
# User specific environment
|
||||
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then
|
||||
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
|
||||
fi
|
||||
export PATH
|
||||
|
||||
# Uncomment the following line if you don't like systemctl's auto-paging feature:
|
||||
# export SYSTEMD_PAGER=
|
||||
|
||||
# User specific aliases and functions
|
||||
if [ -d ~/.bashrc.d ]; then
|
||||
for rc in ~/.bashrc.d/*; do
|
||||
if [ -f "$rc" ]; then
|
||||
. "$rc"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
unset rc
|
||||
6
config/dot/espanso/bin/get_login
Normal file
6
config/dot/espanso/bin/get_login
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
source ~/.local/share/sunhat/defaults/bash/api_keys
|
||||
printf '%s\t%s' \
|
||||
"$(bw --session "$BW_SESSION" get username "$1")" \
|
||||
"$(bw --session "$BW_SESSION" get password "$1")"
|
||||
40
config/dot/espanso/config/default.yml
Normal file
40
config/dot/espanso/config/default.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
# espanso configuration file
|
||||
|
||||
# For a complete introduction, visit the official docs at: https://espanso.org/docs/
|
||||
|
||||
# You can use this file to define the global configuration options for espanso.
|
||||
# These are the parameters that will be used by default on every application,
|
||||
# but you can also override them on a per-application basis.
|
||||
|
||||
# To make customization easier, this file contains some of the commonly used
|
||||
# parameters. Feel free to uncomment and tune them to fit your needs!
|
||||
|
||||
# --- Toggle key
|
||||
|
||||
# Customize the key used to disable and enable espanso (when double tapped)
|
||||
# Available options: CTRL, SHIFT, ALT, CMD, OFF
|
||||
# You can also specify the key variant, such as LEFT_CTRL, RIGHT_SHIFT, etc...
|
||||
# toggle_key: ALT
|
||||
# You can also disable the toggle key completely with
|
||||
# toggle_key: OFF
|
||||
|
||||
# --- Injection Backend
|
||||
|
||||
# Espanso supports multiple ways of injecting text into applications. Each of
|
||||
# them has its quirks, therefore you may want to change it if you are having problems.
|
||||
# By default, espanso uses the "Auto" backend which should work well in most cases,
|
||||
# but you may want to try the "Clipboard" or "Inject" backend in case of issues.
|
||||
# backend: Clipboard
|
||||
|
||||
# --- Auto-restart
|
||||
|
||||
# Enable/disable the config auto-reload after a file change is detected.
|
||||
# auto_restart: false
|
||||
|
||||
# --- Clipboard threshold
|
||||
|
||||
# Because injecting long texts char-by-char is a slow operation, espanso automatically
|
||||
# uses the clipboard if the text is longer than 'clipboard_threshold' characters.
|
||||
clipboard_threshold: 500
|
||||
# For a list of all the available options, visit the official docs at: https://espanso.org/docs/
|
||||
show_icon: false
|
||||
1746
config/dot/espanso/match/base.yml
Normal file
1746
config/dot/espanso/match/base.yml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,56 @@
|
||||
# html-utils-package
|
||||
|
||||
Make HTML5 easier and less time-consuming with this [Espanso](https://espanso.org/) package!
|
||||
|
||||
# Installation
|
||||
|
||||
Make sure you have already installed [Espanso](https://espanso.org/install/) first.
|
||||
|
||||
```
|
||||
espanso install html-utils-package
|
||||
```
|
||||
|
||||
That's all. You can start using the package. Open your favorite editor and type `::docskel` to test!
|
||||
|
||||
# Preview
|
||||
|
||||
You can choose between all of them from the Search-bar:
|
||||

|
||||
|
||||
# Triggers
|
||||
|
||||
Here you can see some of them:
|
||||
|
||||
| Trigger | Result |
|
||||
| ------------- | ------------- |
|
||||
| `::docskel` | Generates an empty document with `utf-8` and `viewport` headers (unindented) |
|
||||
| `::doctype` | `<!DOCTYPE html>` |
|
||||
| `::meta-charset` | `<meta charset="">` |
|
||||
| `::meta-utf-8` | `<meta charset="UTF-8">` |
|
||||
| `::meta-viewport` | `<meta name="viewport" content="width=device-width, initial-scale=1">` |
|
||||
| `::meta-author` | `<meta name="author" content="">` |
|
||||
| `::meta-desc` | `<meta name="description" content="">` |
|
||||
| `::meta-keywords` | `<meta name="keywords" content="">` |
|
||||
| `::title` | `<title></title>` |
|
||||
| `::div` | `<div></div>` |
|
||||
| `::html` | `<html></html>` |
|
||||
| `::head` | `<head></head>` |
|
||||
| `::body` | `<body></body>` |
|
||||
| `::a` | `<a href=""></a>` |
|
||||
| `::br` | `<br>` |
|
||||
| `::button` | `<button type="button"></button> ` |
|
||||
| `::style` | `<style></style>` |
|
||||
| `::css` | `<link rel="stylesheet" type="text/css" href="">` |
|
||||
| `::script` | `<script></script>` |
|
||||
| `::js` | `<script type="text/javascript" src=""></script>` |
|
||||
| `::form` | `<form action="" method=""></form>` |
|
||||
| `::label` | `<label for=""></label>` |
|
||||
| `::input-submit` | `<input type="submit" value="">` |
|
||||
| `::input-text` | `<input type="text" name="" id="">` |
|
||||
| `::input-password` | `<input type="password" name="" id="">` |
|
||||
| `::input-radio` | `<input type="radio" name="" id="" value="">` |
|
||||
| `::input-checkbox` | `<input type="checkbox" name="" id="" value="">` |
|
||||
| `::input-file` | `<input type="file" name="" id="">` |
|
||||
|
||||
# Contributions
|
||||
If you feel like there's any important tag/snippet missing, feel free to create a Pull Request or open an [Issue](https://github.com/woodenbell/html-utils-package/issues/new).
|
||||
@@ -0,0 +1,7 @@
|
||||
author: Gabriel Barbosa
|
||||
description: A simple package to make coding in HTML5 easier.
|
||||
name: html-utils-package
|
||||
title: HTML utilities package
|
||||
version: 2.0.1
|
||||
homepage: "https://github.com/woodenbell/html-utils-package"
|
||||
tags: ["frontend", "html", "development"]
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
hub
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 8.4 KiB |
239
config/dot/espanso/match/packages/html-utils-package/package.yml
Normal file
239
config/dot/espanso/match/packages/html-utils-package/package.yml
Normal file
@@ -0,0 +1,239 @@
|
||||
matches:
|
||||
- trigger: "::doctype"
|
||||
label: "HTML - doctype"
|
||||
replace: >-
|
||||
<!DOCTYPE html>
|
||||
|
||||
- trigger: "::meta-charset"
|
||||
label: "HTML - meta-charset"
|
||||
replace: >-
|
||||
<meta charset="$|$">
|
||||
|
||||
- trigger: "::meta-utf-8"
|
||||
label: "HTML - meta-utf-8"
|
||||
replace: >-
|
||||
<meta charset="UTF-8">
|
||||
|
||||
- trigger: "::meta-viewport"
|
||||
label: "HTML - meta-viewport"
|
||||
replace: >-
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
- trigger: "::meta-author"
|
||||
label: "HTML - meta-autor"
|
||||
replace: >-
|
||||
<meta name="author" content="$|$">
|
||||
|
||||
- trigger: "::meta-desc"
|
||||
label: "HTML - meta-desc"
|
||||
replace: >-
|
||||
<meta name="description" content="$|$">
|
||||
|
||||
- trigger: "::meta-keywords"
|
||||
label: "HTML - meta-keywords"
|
||||
replace: >-
|
||||
<meta name="keywords" content="$|$">
|
||||
|
||||
- trigger: "::title"
|
||||
label: "HTML - title"
|
||||
replace: >-
|
||||
<title>$|$</title>
|
||||
|
||||
- trigger: "::div"
|
||||
label: "HTML - div"
|
||||
replace: >-
|
||||
<div>$|$</div>
|
||||
|
||||
- trigger: "::html"
|
||||
label: "HTML - html"
|
||||
replace: >-
|
||||
<html>$|$</html>
|
||||
|
||||
- trigger: "::head"
|
||||
label: "HTML - head"
|
||||
replace: >-
|
||||
<head>$|$</head>
|
||||
|
||||
- trigger: "::body"
|
||||
label: "HTML - body"
|
||||
replace: >-
|
||||
<body>$|$</body>
|
||||
|
||||
- trigger: "::inline-css"
|
||||
label: "HTML - inline-css"
|
||||
replace: style="{{element}}:$|$;"
|
||||
vars:
|
||||
- name: element
|
||||
type: choice
|
||||
params:
|
||||
values:
|
||||
- "color"
|
||||
- "background-color"
|
||||
- "padding"
|
||||
- "font-family"
|
||||
- "font-size"
|
||||
- "font-weight"
|
||||
- "border"
|
||||
- "padding"
|
||||
- "margin"
|
||||
|
||||
- trigger: "::a"
|
||||
label: "HTML - a"
|
||||
replace: >-
|
||||
<a href="$|$"></a>
|
||||
|
||||
- trigger: "::2a"
|
||||
label: "HTML - 2a"
|
||||
replace: <a href="{{clipboard}}" target="_blank" rel="noopener noreferrer">$|$</a>
|
||||
vars:
|
||||
- name: "clipboard"
|
||||
type: "clipboard"
|
||||
|
||||
- trigger: "::br"
|
||||
label: "HTML - br"
|
||||
replace: >-
|
||||
<br>
|
||||
|
||||
- trigger: "::p"
|
||||
label: "HTML - p"
|
||||
replace: >-
|
||||
<p>$|$</p>
|
||||
|
||||
- trigger: "::block"
|
||||
label: "HTML - block"
|
||||
replace: >-
|
||||
<blockquote>$|$</blockquote>
|
||||
|
||||
- trigger: "::button"
|
||||
label: "HTML - button"
|
||||
replace: >-
|
||||
<button type="button">$|$</button>
|
||||
|
||||
- trigger: "::style"
|
||||
label: "HTML - style"
|
||||
replace: >-
|
||||
<style>$|$</style>
|
||||
|
||||
- trigger: "::css"
|
||||
label: "HTML - css"
|
||||
replace: >-
|
||||
<link rel="stylesheet" type="text/css" href="$|$">
|
||||
|
||||
- trigger: "::ul"
|
||||
label: "HTML - ul"
|
||||
replace: |
|
||||
<ul>
|
||||
<li>$|$</li>
|
||||
</ul>
|
||||
|
||||
- trigger: "::li"
|
||||
label: "HTML - li"
|
||||
replace: >-
|
||||
<li>$|$</li>
|
||||
|
||||
- trigger: "::table"
|
||||
label: "HTML - table"
|
||||
replace: |
|
||||
<table width="$|$" border="" align="">
|
||||
<tr>
|
||||
<td width=""></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
- trigger: "::td"
|
||||
label: "HTML - td"
|
||||
replace: >-
|
||||
<td>$|$</td>
|
||||
|
||||
- trigger: "::select"
|
||||
label: "HTML - select"
|
||||
replace: |
|
||||
<select name="$|$" id="">
|
||||
<option value=""></option>
|
||||
</select>
|
||||
|
||||
- trigger: "::optgroup"
|
||||
label: "HTML - optgroup"
|
||||
replace: |
|
||||
<select name="$|$" id="">
|
||||
<optgroup label="">
|
||||
<option value=""></option>
|
||||
</optgroup>
|
||||
</select>
|
||||
|
||||
- trigger: "::option"
|
||||
label: "HTML - option"
|
||||
replace: >-
|
||||
<option value="$|$"></option>
|
||||
|
||||
- trigger: "::script"
|
||||
label: "HTML - script"
|
||||
replace: >-
|
||||
<script>$|$</script>
|
||||
|
||||
- trigger: "::js"
|
||||
label: "HTML - js"
|
||||
replace: >-
|
||||
<script type="text/javascript" src="$|$"></script>
|
||||
|
||||
- trigger: "::form"
|
||||
label: "HTML - form"
|
||||
replace: >-
|
||||
<form action="$|$" method=""></form>
|
||||
|
||||
- trigger: "::label"
|
||||
label: "HTML - label"
|
||||
replace: >-
|
||||
<label for="$|$"></label>
|
||||
|
||||
- trigger: "::img"
|
||||
label: "HTML - img"
|
||||
replace: >-
|
||||
<img src="$|$" alt="">
|
||||
|
||||
- trigger: "::input-submit"
|
||||
label: "HTML - input-submit"
|
||||
replace: >-
|
||||
<input type="submit" value="$|$">
|
||||
|
||||
- trigger: "::input-text"
|
||||
label: "HTML - input-text"
|
||||
replace: >-
|
||||
<input type="text" name="$|$" id="">
|
||||
|
||||
- trigger: "::input-password"
|
||||
label: "HTML - input-password"
|
||||
replace: >-
|
||||
<input type="password" name="$|$" id="">
|
||||
|
||||
- trigger: "::input-radio"
|
||||
label: "HTML - input-radio"
|
||||
replace: >-
|
||||
<input type="radio" name="$|$" id="" value="">
|
||||
|
||||
- trigger: "::input-checkbox"
|
||||
label: "HTML - input-checkbox"
|
||||
replace: >-
|
||||
<input type="checkbox" name="$|$" id="" value="">
|
||||
|
||||
- trigger: "::input-file"
|
||||
label: "HTML - input-file"
|
||||
replace: >-
|
||||
<input type="file" name="$|$" id="">
|
||||
|
||||
- trigger: "::docskel"
|
||||
label: "HTML - docskel"
|
||||
replace: |
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>$|$</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
21
config/dot/espanso/match/packages/markdown-shortcuts/LICENSE
Normal file
21
config/dot/espanso/match/packages/markdown-shortcuts/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 José Ferreira
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,22 @@
|
||||
# Available matches
|
||||
| Trigger | Replace |
|
||||
|--------------|--------------------------------------------------------|
|
||||
| :block: | \```🖰\n``` |
|
||||
| :code: | \`🖰` |
|
||||
| :h1: | # |
|
||||
| :h2: | ## |
|
||||
| :h3: | ### |
|
||||
| :h4: | #### |
|
||||
| :h5: | ##### |
|
||||
| :h6: | ###### |
|
||||
| :bold: | \*\*🖰** |
|
||||
| :italic: | \*🖰\* |
|
||||
| :strike: | \~\~🖰~~ |
|
||||
| :url: | \[🖰]() |
|
||||
| :image: | !\[](🖰) |
|
||||
| :horizontal: | ___\n |
|
||||
| :task: | - [ ] |
|
||||
| :donetask: | - [x] |
|
||||
| :collapse: | \<details>\<summary>🖰\</summary>\n\<p>\n\n\</p>\n\</details> |
|
||||
|
||||
**Note: The 🖰 symbol is where your mouse cursor will be after the trigger and \n represents a new line.**
|
||||
@@ -0,0 +1,7 @@
|
||||
author: "Jos\xE9 Ferreira"
|
||||
description: A simple package to make writing Markdown easier
|
||||
name: markdown-shortcuts
|
||||
title: Markdown shortcuts
|
||||
version: 0.1.0
|
||||
homepage: "https://github.com/jpmvferreira/espanso-mega-pack"
|
||||
tags: ["markdown", "development", "writing"]
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
hub
|
||||
@@ -0,0 +1,65 @@
|
||||
name: markdown-shortcuts
|
||||
parent: default
|
||||
|
||||
matches:
|
||||
- triggers: [":block:", ":mb:"]
|
||||
replace: |-
|
||||
```$|$
|
||||
```
|
||||
force_clipboard: true
|
||||
|
||||
- triggers: [":code:", ":mc:"]
|
||||
replace: |-
|
||||
`$|$`
|
||||
force_clipboard: true
|
||||
|
||||
- trigger: ":h1:"
|
||||
replace: "#"
|
||||
|
||||
- trigger: ":h2:"
|
||||
replace: "##"
|
||||
|
||||
- trigger: ":h3:"
|
||||
replace: "###"
|
||||
|
||||
- trigger: ":h4:"
|
||||
replace: "####"
|
||||
|
||||
- trigger: ":h5:"
|
||||
replace: "#####"
|
||||
|
||||
- trigger: ":h6:"
|
||||
replace: "######"
|
||||
|
||||
- trigger: ":bold:"
|
||||
replace: "**$|$**"
|
||||
|
||||
- trigger: ":italic:"
|
||||
replace: "*$|$*"
|
||||
|
||||
- trigger: ":strike:"
|
||||
replace: "~~$|$~~"
|
||||
|
||||
- trigger: ":url:"
|
||||
replace: "[$|$]()"
|
||||
|
||||
- triggers: [":image:", ":img:"]
|
||||
replace: ""
|
||||
|
||||
- triggers: [":horizontal:", ":mh:"]
|
||||
replace: "___"
|
||||
|
||||
- triggers: [":task:", ":mt:"]
|
||||
replace: "- [ ] "
|
||||
|
||||
- triggers: [":taskdone:", ":mtd:"]
|
||||
replace: "- [x] "
|
||||
|
||||
- triggers: [":collapse:", ":mcol:"]
|
||||
replace: |-
|
||||
<details>
|
||||
<summary></summary>
|
||||
|
||||
$|$
|
||||
</details>
|
||||
force_clipboard: true
|
||||
27
config/dot/espanso/match/packages/misspell-en/LICENSE
Normal file
27
config/dot/espanso/match/packages/misspell-en/LICENSE
Normal file
@@ -0,0 +1,27 @@
|
||||
Copyright (c) 2019 Timo Runge <me@timorunge.com>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
22
config/dot/espanso/match/packages/misspell-en/README.md
Normal file
22
config/dot/espanso/match/packages/misspell-en/README.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# misspell-en
|
||||
|
||||
misspell-en is a espanso package which is replacing commonly misspelled english words.
|
||||
The package is based on [github.com/client9/misspell](https://github.com/client9/misspell).
|
||||
|
||||
## Installation
|
||||
|
||||
Install the package with:
|
||||
|
||||
```
|
||||
espanso install misspell-en
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Type `yuo` and see what's happening.
|
||||
|
||||
## License
|
||||
|
||||
[BSD 3-Clause "New" or "Revised" License](LICENSE)
|
||||
|
||||
Misspell is [MIT](https://github.com/client9/misspell/blob/master/LICENSE).
|
||||
@@ -0,0 +1,7 @@
|
||||
author: Timo Runge
|
||||
description: Replace commonly misspelled english words.
|
||||
name: misspell-en
|
||||
title: Misspell EN
|
||||
version: 0.1.2
|
||||
homepage: "https://github.com/timorunge/espanso-misspell-en"
|
||||
tags: ["spell-correction", "english"]
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
hub
|
||||
112189
config/dot/espanso/match/packages/misspell-en/package.yml
Normal file
112189
config/dot/espanso/match/packages/misspell-en/package.yml
Normal file
File diff suppressed because it is too large
Load Diff
72
config/dot/forge/config/.windows.json.~260c6b69
Normal file
72
config/dot/forge/config/.windows.json.~260c6b69
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"overrides": [
|
||||
{
|
||||
"wmClass": "jetbrains-toolbox",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.amezin.ddterm",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.donadigo.eddy",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Conky",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Gnome-initial-setup",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "org.gnome.Calculator",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "gnome-terminal-preferences",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Guake",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "zoom",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "mpv",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Bitwarden",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Hidamari",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Cider",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Ulauncher",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Emulator",
|
||||
"mode": "float"
|
||||
}
|
||||
]
|
||||
}
|
||||
72
config/dot/forge/config/.windows.json.~318f7cf9
Normal file
72
config/dot/forge/config/.windows.json.~318f7cf9
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"overrides": [
|
||||
{
|
||||
"wmClass": "jetbrains-toolbox",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.amezin.ddterm",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.donadigo.eddy",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Conky",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Gnome-initial-setup",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "org.gnome.Calculator",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "gnome-terminal-preferences",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Guake",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "zoom",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "mpv",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Bitwarden",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Hidamari",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Cider",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Ulauncher",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Emulator",
|
||||
"mode": "float"
|
||||
}
|
||||
]
|
||||
}
|
||||
72
config/dot/forge/config/.windows.json.~38323208
Normal file
72
config/dot/forge/config/.windows.json.~38323208
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"overrides": [
|
||||
{
|
||||
"wmClass": "jetbrains-toolbox",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.amezin.ddterm",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.donadigo.eddy",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Conky",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Gnome-initial-setup",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "org.gnome.Calculator",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "gnome-terminal-preferences",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Guake",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "zoom",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "mpv",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Bitwarden",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Hidamari",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Cider",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Ulauncher",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Emulator",
|
||||
"mode": "float"
|
||||
}
|
||||
]
|
||||
}
|
||||
72
config/dot/forge/config/.windows.json.~42767d6d
Normal file
72
config/dot/forge/config/.windows.json.~42767d6d
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"overrides": [
|
||||
{
|
||||
"wmClass": "jetbrains-toolbox",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.amezin.ddterm",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.donadigo.eddy",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Conky",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Gnome-initial-setup",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "org.gnome.Calculator",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "gnome-terminal-preferences",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Guake",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "zoom",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "mpv",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Bitwarden",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Hidamari",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Cider",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Ulauncher",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Emulator",
|
||||
"mode": "float"
|
||||
}
|
||||
]
|
||||
}
|
||||
72
config/dot/forge/config/.windows.json.~63ed4469
Normal file
72
config/dot/forge/config/.windows.json.~63ed4469
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"overrides": [
|
||||
{
|
||||
"wmClass": "jetbrains-toolbox",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.amezin.ddterm",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.donadigo.eddy",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Conky",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Gnome-initial-setup",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "org.gnome.Calculator",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "gnome-terminal-preferences",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Guake",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "zoom",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "mpv",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Bitwarden",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Hidamari",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Cider",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Ulauncher",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Emulator",
|
||||
"mode": "float"
|
||||
}
|
||||
]
|
||||
}
|
||||
72
config/dot/forge/config/.windows.json.~68bf2ae6
Normal file
72
config/dot/forge/config/.windows.json.~68bf2ae6
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"overrides": [
|
||||
{
|
||||
"wmClass": "jetbrains-toolbox",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.amezin.ddterm",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.donadigo.eddy",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Conky",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Gnome-initial-setup",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "org.gnome.Calculator",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "gnome-terminal-preferences",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Guake",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "zoom",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "mpv",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Bitwarden",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Hidamari",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Cider",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Ulauncher",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Emulator",
|
||||
"mode": "float"
|
||||
}
|
||||
]
|
||||
}
|
||||
72
config/dot/forge/config/windows.json
Normal file
72
config/dot/forge/config/windows.json
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"overrides": [
|
||||
{
|
||||
"wmClass": "jetbrains-toolbox",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.amezin.ddterm",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Com.github.donadigo.eddy",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Conky",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Gnome-initial-setup",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "org.gnome.Calculator",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "gnome-terminal-preferences",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Guake",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "zoom",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Bitwarden",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Hidamari",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.mattjakeman.ExtensionManager",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Cider",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Ulauncher",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "com.nextcloud.desktopclient.nextcloud",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "mpv",
|
||||
"mode": "float"
|
||||
},
|
||||
{
|
||||
"wmClass": "Spotify",
|
||||
"mode": "float"
|
||||
}
|
||||
]
|
||||
}
|
||||
132
config/dot/forge/stylesheet/forge/stylesheet.css
Normal file
132
config/dot/forge/stylesheet/forge/stylesheet.css
Normal file
@@ -0,0 +1,132 @@
|
||||
.tiled {
|
||||
color: rgba(236, 94, 94, 1);
|
||||
opacity: 1;
|
||||
border-width: 3px;
|
||||
}
|
||||
|
||||
.split {
|
||||
color: rgba(255, 246, 108, 1);
|
||||
opacity: 1;
|
||||
border-width: 3px;
|
||||
}
|
||||
|
||||
.stacked {
|
||||
color: rgba(247, 162, 43, 1);
|
||||
opacity: 1;
|
||||
border-width: 3px;
|
||||
}
|
||||
|
||||
.tabbed {
|
||||
color: rgba(17, 199, 224, 1);
|
||||
opacity: 1;
|
||||
border-width: 3px;
|
||||
}
|
||||
|
||||
.floated {
|
||||
color: rgba(180, 167, 214, 1);
|
||||
border-width: 3px;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.window-tiled-border {
|
||||
border-width: 4px;
|
||||
border-color: rgb(130,170,255);
|
||||
border-style: solid;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
.window-split-border {
|
||||
border-width: 4px;
|
||||
border-color: rgb(130,170,255);
|
||||
border-style: solid;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
.window-split-horizontal {
|
||||
border-left-width: 0;
|
||||
border-top-width: 0;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
.window-split-vertical {
|
||||
border-left-width: 0;
|
||||
border-top-width: 0;
|
||||
border-right-width: 0;
|
||||
}
|
||||
|
||||
.window-stacked-border {
|
||||
border-width: 4px;
|
||||
border-color: rgb(130,170,255);
|
||||
border-style: solid;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
.window-tabbed-border {
|
||||
border-width: 4px;
|
||||
border-color: rgb(130,170,255);
|
||||
border-style: solid;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
.window-tabbed-bg {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.window-tabbed-tab {
|
||||
background-color: rgba(54, 47, 45, 1);
|
||||
border-color: rgba(130,170,255,0.6);
|
||||
border-width: 1px;
|
||||
border-radius: 8px;
|
||||
color: white;
|
||||
margin: 1px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.window-tabbed-tab-active {
|
||||
background-color: rgb(130,170,255);
|
||||
color: black;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.window-tabbed-tab-close {
|
||||
padding: 3px;
|
||||
margin: 4px;
|
||||
border-radius: 16px;
|
||||
width: 16px;
|
||||
background-color: #e06666;
|
||||
}
|
||||
|
||||
.window-tabbed-tab-icon {
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
.window-floated-border {
|
||||
border-width: 4px;
|
||||
border-color: rgb(130,170,255);
|
||||
border-style: solid;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
.window-tilepreview-tiled {
|
||||
border-width: 1px;
|
||||
border-color: rgba(130,170,255,0.3);
|
||||
border-style: solid;
|
||||
border-radius: 14px;
|
||||
background-color: rgba(130,170,255,0.2);
|
||||
}
|
||||
|
||||
.window-tilepreview-stacked {
|
||||
border-width: 1px;
|
||||
border-color: rgba(130,170,255,0.3);
|
||||
border-style: solid;
|
||||
border-radius: 14px;
|
||||
background-color: rgba(130,170,255,0.2);
|
||||
}
|
||||
|
||||
.window-tilepreview-tabbed {
|
||||
border-width: 1px;
|
||||
border-color: rgba(130,170,255,0.3);
|
||||
border-style: solid;
|
||||
border-radius: 14px;
|
||||
background-color: rgba(130,170,255,0.2);
|
||||
}
|
||||
31
config/dot/ghostty/config
Normal file
31
config/dot/ghostty/config
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
# Theme
|
||||
|
||||
theme = tokyonight
|
||||
font-family = "VictorMono Nerd Font Mono"
|
||||
#font-family-bold = "VictorMono Nerd Font Mono, Bold"
|
||||
#font-family-italic = "VictorMono Nerd Font Mono, Regular Italic"
|
||||
#font-family-bold-italic = "VictorMono Nerd Font Mono, Bold Italic"
|
||||
font-size = 15
|
||||
background-opacity = 0.92
|
||||
background-blur = true
|
||||
|
||||
# Keybindings
|
||||
keybind = ctrl+shift+r=reload_config
|
||||
|
||||
## Tabs
|
||||
keybind = ctrl+shift+h=previous_tab
|
||||
keybind = ctrl+shift+l=next_tab
|
||||
keybind = ctrl+shift+j=move_tab:-1
|
||||
keybind = ctrl+shift+k=move_tab:1
|
||||
keybind = ctrl+shift+q=close_tab
|
||||
|
||||
## Splits
|
||||
keybind = ctrl+shift+b=new_split:right
|
||||
keybind = ctrl+shift+d=new_split:down
|
||||
keybind = ctrl+shift+,=goto_split:previous
|
||||
keybind = ctrl+shift+.=goto_split:next
|
||||
keybind = ctrl+shift+up=goto_split:up
|
||||
keybind = ctrl+shift+down=goto_split:down
|
||||
keybind = ctrl+shift+left=goto_split:left
|
||||
keybind = ctrl+shift+right=goto_split:right
|
||||
2238
config/dot/kitty/kitty.conf
Normal file
2238
config/dot/kitty/kitty.conf
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" },
|
||||
"avante.nvim": { "branch": "main", "commit": "7f48770e66684e9a7d4d5b9c47505a23e0167a6e" },
|
||||
"avante.nvim": { "branch": "main", "commit": "f8a7cd1a606460ec0a2c4ec886bc102daccf912e" },
|
||||
"barbar.nvim": { "branch": "master", "commit": "53b5a2f34b68875898f0531032fbf090e3952ad7" },
|
||||
"cloak.nvim": { "branch": "main", "commit": "648aca6d33ec011dc3166e7af3b38820d01a71e4" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
@@ -19,7 +19,7 @@
|
||||
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||
"cmp-tw2css": { "branch": "main", "commit": "1abe0eebcb57fcbd5538d054f0db61f4e4a1302b" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"conform.nvim": { "branch": "master", "commit": "26c02e1155a4980900bdccabca4516f4c712aae9" },
|
||||
"conform.nvim": { "branch": "master", "commit": "cde4da5c1083d3527776fee69536107d98dae6c9" },
|
||||
"copilot.vim": { "branch": "release", "commit": "da369d90cfd6c396b1d0ec259836a1c7222fb2ea" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "e32b672d8fd343f9d6a76944fedb8c61d7d8111a" },
|
||||
@@ -27,32 +27,32 @@
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" },
|
||||
"image.nvim": { "branch": "master", "commit": "446a8a5cc7a3eae3185ee0c697732c32a5547a0b" },
|
||||
"img-clip.nvim": { "branch": "main", "commit": "e7e29f0d07110405adecd576b602306a7edd507a" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "e6a8824858757ca9cd4f5ae1a72d845fa5c46a39" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||
"lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "d7b5feb6e769e995f7fcf44d92f49f811c51d10c" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "b1d9a914b02ba5660f1e272a03314b31d4576fe2" },
|
||||
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
|
||||
"mcphub.nvim": { "branch": "main", "commit": "8ff40b5edc649959bb7e89d25ae18e055554859a" },
|
||||
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "8cdd6b1940f333c1dd085526a9c45b30fb2dbf50" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" },
|
||||
"nerdcommenter": { "branch": "master", "commit": "02a3b6455fa07b61b9440a78732f1e9b7876c991" },
|
||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "106c4bcc053a5da783bf4a9d907b6f22485c2ea0" },
|
||||
"nvim-lsp-file-operations": { "branch": "master", "commit": "9744b738183a5adca0f916527922078a965515ed" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "c8503e63c6afab3ed34b49865a4a4edbb1ebf4a8" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-treesitter-context": { "branch": "master", "commit": "ec308c7827b5f8cb2dd0ad303a059c945dd21969" },
|
||||
"nvim-treesitter-context": { "branch": "master", "commit": "660861b1849256398f70450afdf93908d28dc945" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" },
|
||||
"nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" },
|
||||
"playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "a1b2bf029c37397947082f31969b4aec0d1b92bd" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "41712e3026a6d690e3c65f83b335cb34e054d2cd" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "f58c05f349d6e7650f4b40b0df1514400f0c10de" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "dec29f55666f8f4545835636077a86b150faf630" },
|
||||
"supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "b13cfc1286d2aa8bda6ce137b79e857d5a3d5739" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||
"undotree": { "branch": "master", "commit": "0f1c9816975b5d7f87d5003a19c53c6fd2ff6f7f" }
|
||||
}
|
||||
|
||||
@@ -311,11 +311,9 @@ return {
|
||||
require 'mason-lspconfig'.setup({
|
||||
ensure_installed = {
|
||||
'angularls',
|
||||
'asm_lsp',
|
||||
'bacon_ls',
|
||||
'bashls',
|
||||
'clangd',
|
||||
'cmake',
|
||||
'cssls',
|
||||
'css_variables',
|
||||
'cssmodules_ls',
|
||||
@@ -334,7 +332,6 @@ return {
|
||||
'ltex_plus',
|
||||
'lua_ls',
|
||||
'markdown_oxide',
|
||||
'nginx_language_server',
|
||||
'phpactor',
|
||||
'postgres_lsp',
|
||||
'prismals',
|
||||
@@ -343,7 +340,6 @@ return {
|
||||
'remark_ls',
|
||||
'rust_analyzer',
|
||||
'sqlls',
|
||||
'superhtml',
|
||||
'svelte',
|
||||
'systemd_ls',
|
||||
'tailwindcss',
|
||||
|
||||
83
config/dot/tmux/tmux.conf
Normal file
83
config/dot/tmux/tmux.conf
Normal file
@@ -0,0 +1,83 @@
|
||||
# True color support (crucial for kitty + neovim)
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -ag terminal-overrides ",xterm-256color:RGB"
|
||||
|
||||
# Super important for osc52, images, hyperlinks, etc.
|
||||
set -g allow-passthrough on
|
||||
|
||||
# Enable mouse support
|
||||
set -g mouse on
|
||||
|
||||
# Renumber windows when one is closed
|
||||
set -g renumber-windows on
|
||||
|
||||
# Set prefix to C-Space
|
||||
unbind C-b
|
||||
set -g prefix C-Space
|
||||
bind C-Space send-prefix
|
||||
|
||||
# Set status bar
|
||||
#set -g status-bg pink
|
||||
# Tokyo Night Moon color palette
|
||||
set -g mode-style "fg=#82aaff,bg=#3b4261"
|
||||
|
||||
set -g message-style "fg=#82aaff,bg=#3b4261"
|
||||
set -g message-command-style "fg=#82aaff,bg=#3b4261"
|
||||
|
||||
set -g pane-border-style "fg=#82aaff"
|
||||
set -g pane-active-border-style "fg=#b172b0"
|
||||
|
||||
set -g status-style "fg=#b172b0,bg=#3b4261"
|
||||
set -g status-bg "#222436"
|
||||
|
||||
set -g status-left "#[fg=#1b1d2b,bg=#b172b0,bold] #S #[fg=#1b1d2b,bg=#b172b0,nobold,nounderscore,noitalics]"
|
||||
set -g status-right "#[fg=#1b1d2b,bg=#82aaff,nobold,nounderscore,noitalics]#[fg=#b172b0,bg=#3b4261] #{prefix_highlight} #[fg=#3b4261,bg=#3b4261]#[fg=#b172b0,bg=#3b4261] %Y/%m/%d %I:%M %p #[fg=#82aaff,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#1b1d2b,bg=#b172b0,bold,italics] #h "
|
||||
|
||||
setw -g window-status-format "#[fg=#1b1d2b,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#82aaff,bg=#3b4261] #I #W #F #[fg=#1b1d2b,bg=#3b4261,nobold,nounderscore,noitalics]"
|
||||
setw -g window-status-current-format "#[fg=#1b1d2b,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#b172b0,bg=#3b4261,bold] #I #W #F #[fg=#3b4261,bg=#3b4261,nobold,nounderscore,noitalics]"
|
||||
|
||||
setw -g window-status-separator ""
|
||||
|
||||
# Increase scrollback buffer
|
||||
set -g history-limit 50000
|
||||
|
||||
# Display tmux messages for 4 seconds
|
||||
set -g display-time 4000
|
||||
|
||||
# Refresh status bar every 5 seconds
|
||||
set -g status-interval 5
|
||||
|
||||
# Focus events for neovim autoread
|
||||
set -g focus-events on
|
||||
|
||||
# Aggressive resize (useful for multi-monitor)
|
||||
setw -g aggressive-resize on
|
||||
|
||||
# Reduce escape time (better for neovim)
|
||||
set -sg escape-time 10
|
||||
|
||||
# Split panes using | and -
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
bind - split-window -v -c "#{pane_current_path}"
|
||||
unbind '"'
|
||||
unbind %
|
||||
|
||||
# Reload config
|
||||
bind r source-file ~/.config/tmux/tmux.conf \; display "Config reloaded!"
|
||||
|
||||
# Switch panes with vim keys
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# Resize panes with vim keys
|
||||
bind -r H resize-pane -L 5
|
||||
bind -r J resize-pane -D 5
|
||||
bind -r K resize-pane -U 5
|
||||
bind -r L resize-pane -R 5
|
||||
|
||||
# Vi mode for copy mode
|
||||
setw -g mode-keys vi
|
||||
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||
4
install
4
install
@@ -6,8 +6,4 @@ source ~/.local/share/Panama/bin/ascii
|
||||
read -p "What should the hostname be? " HOST_NAME
|
||||
sudo hostnamectl set-hostname $HOST_NAME
|
||||
|
||||
# Ensure computer doesn't go to sleep while installing
|
||||
gsettings set org.gnome.desktop.screensaver lock-enabled false
|
||||
gsettings set org.gnome.desktop.session idle-delay 0
|
||||
|
||||
for script in ~/.local/share/Panama/setup/scripts/*; do source $script; done
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
bison
|
||||
clang-analyzer
|
||||
clangd
|
||||
cliphist
|
||||
cmake
|
||||
compat-lua
|
||||
composer
|
||||
|
||||
@@ -4,15 +4,21 @@
|
||||
log() { echo -e "\033[1;34m[INFO]\033[0m $*"; }
|
||||
exists() { command -v "$1" >/dev/null 2>&1; }
|
||||
|
||||
echo -e "\n--- Installing initial packages ---\n"
|
||||
# --- Defined Paths ---
|
||||
PANAMA_PATH="$HOME/.local/share/Panama"
|
||||
|
||||
echo -e "\n--- Installing relevant packages ---\n"
|
||||
# --- Update all packages ---
|
||||
log "Updating all packages..."
|
||||
sudo dnf update -y --refresh > /dev/null 2>&1
|
||||
|
||||
# --- Install all initial packages ---
|
||||
PACKAGES_FILE="$HOME/.local/share/Panama/setup/packages/initial-packages"
|
||||
PACKAGES_FILE="$PANAMA_PATH/setup/packages/initial-packages"
|
||||
if [[ -f "$PACKAGES_FILE" ]]; then
|
||||
INITIAL_PACKAGES=$(tr "\n" " " <"$PACKAGES_FILE")
|
||||
log "Installing $INITIAL_PACKAGES"
|
||||
sudo dnf install -y "$INITIAL_PACKAGES" > /dev/null 2>&1
|
||||
log "Packages installed!"
|
||||
log "Initial packages installed!"
|
||||
else
|
||||
log "Package list was not in specified path: $PACKAGES_FILE"
|
||||
fi
|
||||
@@ -40,3 +46,22 @@ else
|
||||
log "Installing oh-my-posh via curl..."
|
||||
curl -s https://ohmyposh.dev/install.sh | bash -s -- -d "$LOCAL_BIN_PATH" > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
# --- Install Development Packages needed for Neovim ---
|
||||
DEV_FILE="$PANAMA_PATH/setup/packages/development-packages"
|
||||
if [[ -f "$DEV_FILE" ]]; then
|
||||
DEV_PACKAGES=$(tr "\n" " " <"$DEV_FILE")
|
||||
log "Installing $DEV_PACKAGES"
|
||||
sudo dnf install -y $DEV_PACKAGES > /dev/null 2>&1
|
||||
log "Development packages installed!"
|
||||
else
|
||||
log "Package list was not in specified path: $DEV_FILE"
|
||||
fi
|
||||
|
||||
# --- Install Bun ---
|
||||
if [[ -x "$HOME/.bun/bin/bun" ]]; then
|
||||
log "Bun already installed at \"$HOME/.bun/bin/bun\""
|
||||
else
|
||||
log "Installing Bun via curl..."
|
||||
curl -fsSL https://bun.sh/install | bash > /dev/null 2>&1
|
||||
fi
|
||||
@@ -3,15 +3,44 @@
|
||||
# Define paths as they have not been defined by new bashrc yet!
|
||||
PANAMA_PATH="${PANAMA_PATH:-$HOME/.local/share/Panama}"
|
||||
PANAMA_BASH="${PANAMA_BASH:-$PANAMA_PATH/config/bash}"
|
||||
PANAMA_DOT="$PANAMA_PATH/config/dot"
|
||||
PANAMA_OLD="$PANAMA_PATH/config/old"
|
||||
CONFIG="$HOME/.config"
|
||||
|
||||
# Make backup folder if it doesn't exist
|
||||
mkdir -p "$PANAMA_OLD"
|
||||
|
||||
# --- Bashrc ---
|
||||
# Backup existing .bashrc if it's a regular file
|
||||
if [ -f "$HOME/.bashrc" ] && [ ! -L "$HOME/.bashrc" ]; then
|
||||
mv "$HOME/.bashrc" "$PANAMA_BASH/.bashrc.bak"
|
||||
mv "$HOME/.bashrc" "$PANAMA_OLD/.bashrc"
|
||||
fi
|
||||
|
||||
# Remove old symlink if it exists and points somewhere else
|
||||
if [ -L "$HOME/.bashrc" ]; then
|
||||
rm "$HOME/.bashrc"
|
||||
fi
|
||||
|
||||
# Symlink Panama .bashrc file to ~/.bashrc
|
||||
ln -s "$PANAMA_BASH/.bashrc" "$HOME/.bashrc"
|
||||
|
||||
dirs=("espanso", "forge", "ghostty", "kitty", "nvim", "tmux")
|
||||
|
||||
for dir in "${dirs[@]}"; do
|
||||
echo "--- Setting up $dir ---"
|
||||
|
||||
# Remove old symlink if it exists
|
||||
if [ -L "$CONFIG/$dir" ]; then
|
||||
rm "$CONFIG/$dir"
|
||||
echo "Removed old symlink at $CONFIG/$dir"
|
||||
fi
|
||||
|
||||
# Backup existing directory if it exists
|
||||
if [ -d "$CONFIG/$dir" ]; then
|
||||
mv "$CONFIG/$dir" "$PANAMA_OLD/$dir"
|
||||
echo "Moved existing $dir config to $PANAMA_OLD/$dir"
|
||||
fi
|
||||
|
||||
# Create symlink
|
||||
ln -s "$PANAMA_DOT/$dir" "$CONFIG/$dir"
|
||||
echo "Linked $PANAMA_DOT/$dir → $CONFIG/$dir"
|
||||
echo
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user