Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f3afc87074 | |||
| c999ca0655 | |||
| 8a86a2f980 | |||
| 39198bdd3a | |||
| bda1145d4c | |||
| 218bc783e1 | |||
| 39cfac6073 | |||
| 1b3849ccd3 |
@@ -0,0 +1,164 @@
|
||||
[env]
|
||||
TERM = "xterm-256color"
|
||||
WINIT_X11_SCALE_FACTOR = "1"
|
||||
|
||||
[window]
|
||||
dynamic_padding = true
|
||||
decorations = "full"
|
||||
title = "Alacritty@CachyOS"
|
||||
opacity = 0.5
|
||||
decorations_theme_variant = "Dark"
|
||||
|
||||
[window.dimensions]
|
||||
columns = 100
|
||||
lines = 30
|
||||
|
||||
[window.class]
|
||||
instance = "Alacritty"
|
||||
general = "Alacritty"
|
||||
|
||||
[scrolling]
|
||||
history = 10000
|
||||
multiplier = 3
|
||||
|
||||
[colors]
|
||||
draw_bold_text_with_bright_colors = true
|
||||
|
||||
[colors.primary]
|
||||
background = "0x202020"
|
||||
foreground = "0xD8DEE9"
|
||||
|
||||
[colors.normal]
|
||||
black = "0x3B4252"
|
||||
red = "0xBF616A"
|
||||
green = "0xA3BE8C"
|
||||
yellow = "0xEBCB8B"
|
||||
blue = "0x81A1C1"
|
||||
magenta = "0xB48EAD"
|
||||
cyan = "0x88C0D0"
|
||||
white = "0xE5E9F0"
|
||||
|
||||
[colors.bright]
|
||||
black = "0x4C566A"
|
||||
red = "0xBF616A"
|
||||
green = "0xA3BE8C"
|
||||
yellow = "0xEBCB8B"
|
||||
blue = "0x81A1C1"
|
||||
magenta = "0xB48EAD"
|
||||
cyan = "0x8FBCBB"
|
||||
white = "0xECEFF4"
|
||||
|
||||
[font]
|
||||
size = 12
|
||||
|
||||
[font.normal]
|
||||
family = "monospace"
|
||||
style = "Regular"
|
||||
|
||||
[font.bold]
|
||||
family = "monospace"
|
||||
style = "Bold"
|
||||
|
||||
[font.italic]
|
||||
family = "monospace"
|
||||
style = "Italic"
|
||||
|
||||
[font.bold_italic]
|
||||
family = "monospace"
|
||||
style = "Bold Italic"
|
||||
|
||||
[selection]
|
||||
semantic_escape_chars = ",│`|:\"' ()[]{}<>\t"
|
||||
save_to_clipboard = true
|
||||
|
||||
[cursor]
|
||||
style = "Block"
|
||||
vi_mode_style = "None"
|
||||
unfocused_hollow = true
|
||||
thickness = 0.15
|
||||
|
||||
[mouse]
|
||||
hide_when_typing = true
|
||||
|
||||
[[mouse.bindings]]
|
||||
mouse = "Middle"
|
||||
action = "PasteSelection"
|
||||
|
||||
[keyboard]
|
||||
[[keyboard.bindings]]
|
||||
key = "Paste"
|
||||
action = "Paste"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "Copy"
|
||||
action = "Copy"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "L"
|
||||
mods = "Control"
|
||||
action = "ClearLogNotice"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "L"
|
||||
mods = "Control"
|
||||
mode = "~Vi"
|
||||
chars = "\f"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "PageUp"
|
||||
mods = "Shift"
|
||||
mode = "~Alt"
|
||||
action = "ScrollPageUp"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "PageDown"
|
||||
mods = "Shift"
|
||||
mode = "~Alt"
|
||||
action = "ScrollPageDown"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "Home"
|
||||
mods = "Shift"
|
||||
mode = "~Alt"
|
||||
action = "ScrollToTop"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "End"
|
||||
mods = "Shift"
|
||||
mode = "~Alt"
|
||||
action = "ScrollToBottom"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "V"
|
||||
mods = "Control|Shift"
|
||||
action = "Paste"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "C"
|
||||
mods = "Control|Shift"
|
||||
action = "Copy"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "F"
|
||||
mods = "Control|Shift"
|
||||
action = "SearchForward"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "B"
|
||||
mods = "Control|Shift"
|
||||
action = "SearchBackward"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "C"
|
||||
mods = "Control|Shift"
|
||||
mode = "Vi"
|
||||
action = "ClearSelection"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "Key0"
|
||||
mods = "Control"
|
||||
action = "ResetFontSize"
|
||||
|
||||
[general]
|
||||
live_config_reload = true
|
||||
working_directory = "None"
|
||||
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=Run dynamic DNS service script
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Restart=on-failure
|
||||
RestartSec=300
|
||||
User=oracle
|
||||
ExecStart=/home/oracle/.config/dynu/dynu.sh
|
||||
WorkingDirectory=/home/oracle/.config/dynu/
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/bash
|
||||
echo url="http://api.dynu.com/nic/update?username=sacelani&password=3fcbc4856fa83ce0814e9860896939c5" | curl -k -o ~/.config/dynu/dynu.log -K -
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Run dynamic DNS service script
|
||||
|
||||
[Timer]
|
||||
OnBootSec=15min
|
||||
OnUnitActiveSec=15min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/master/doc/json_schema.json",
|
||||
"logo": {
|
||||
//"source": "~/.config/fastfetch/logos/batman-beyond.txt",
|
||||
//"source": "~/.config/fastfetch/logos/bb.txt",
|
||||
"source": "~/.config/fastfetch/logos/bb-mid.txt",
|
||||
"color": {
|
||||
"1": "#FF0000"
|
||||
}
|
||||
},
|
||||
"display": {
|
||||
"separator": ": ", // Separator between keys and values
|
||||
"color": {
|
||||
"keys": "black", // Key color
|
||||
"title": "#FF0000" // Title color
|
||||
},
|
||||
"key": {
|
||||
"width": 20, // Aligns keys to this width
|
||||
"type": "string" // string, icon, both, or none
|
||||
},
|
||||
"bar": {
|
||||
"width": 10, // Width of percentage bars
|
||||
"char": {
|
||||
"elapsed": "■", // Character for elapsed portion
|
||||
"total": "-" // Character for total portion
|
||||
}
|
||||
},
|
||||
"percent": {
|
||||
"type": 3, // 1=number, 2=bar, 3=both, 9=colored number
|
||||
"color": {
|
||||
"green": "green",
|
||||
"yellow": "light_yellow",
|
||||
"red": "light_red"
|
||||
}
|
||||
}
|
||||
},
|
||||
"modules": [
|
||||
"title",
|
||||
"separator",
|
||||
"os",
|
||||
"host",
|
||||
"kernel",
|
||||
"uptime",
|
||||
"packages",
|
||||
"shell",
|
||||
"display",
|
||||
"de",
|
||||
"wm",
|
||||
"wmtheme",
|
||||
"theme",
|
||||
"icons",
|
||||
"font",
|
||||
"cursor",
|
||||
"terminal",
|
||||
"terminalfont",
|
||||
"cpu",
|
||||
"gpu",
|
||||
"memory",
|
||||
"swap",
|
||||
"disk",
|
||||
"localip",
|
||||
"battery",
|
||||
"poweradapter",
|
||||
"locale",
|
||||
"break",
|
||||
"colors"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/master/doc/json_schema.json",
|
||||
"display": {
|
||||
"key": {
|
||||
"width": 10
|
||||
},
|
||||
"separator": ""
|
||||
},
|
||||
"logo": {
|
||||
"type": "auto",
|
||||
"source": "~/.config/fastfetch/logos/bb-smaller.txt",
|
||||
"color": {
|
||||
"1": "#FF0000"
|
||||
},
|
||||
"padding": {
|
||||
"top": 1,
|
||||
"left": 1
|
||||
}
|
||||
},
|
||||
"modules": [
|
||||
"break",
|
||||
{
|
||||
"type": "os",
|
||||
"key": " OS",
|
||||
"keyColor": "#FF0000",
|
||||
"format": "{name} {version-id}"
|
||||
},
|
||||
{
|
||||
"type": "command",
|
||||
"key": " KER",
|
||||
"keyColor": "#FF0000",
|
||||
"text": "echo $(uname -r | cut -d- -f1) $(uname -m)"
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"key": " PKG",
|
||||
"keyColor": "#FF0000",
|
||||
"format": "{all}"
|
||||
},
|
||||
{
|
||||
"type": "localip",
|
||||
"key": "{icon} IP",
|
||||
"keyColor": "#FF0000",
|
||||
"showIPv4": true,
|
||||
"showPrefixLen": true
|
||||
},
|
||||
{
|
||||
"type": "display",
|
||||
"key": "{icon} DISP",
|
||||
"keyColor": "#FF0000",
|
||||
"compactType": "original-with-refresh-rate"
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": " RAM",
|
||||
"keyColor": "#FF0000",
|
||||
"format": "{used} / {total} ({percentage})"
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": " SSD",
|
||||
"keyColor": "#FF0000",
|
||||
"folders": "/",
|
||||
"format": "{size-used} / {size-total} ({size-percentage})"
|
||||
},
|
||||
{
|
||||
"type": "battery",
|
||||
"key": "{icon} BATT",
|
||||
"keyColor": "#FF0000",
|
||||
"percentage": {
|
||||
"green": "70",
|
||||
"yellow": "25"
|
||||
},
|
||||
"format": "{capacity} [{status}] {time-formatted} rem."
|
||||
},
|
||||
{
|
||||
"type": "wm",
|
||||
"key": "{icon} WM",
|
||||
"keyColor": "#FF0000",
|
||||
"format": "{pretty-name}"
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": " TERM",
|
||||
"keyColor": "#FF0000",
|
||||
"format": "{pretty-name}"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": " SH",
|
||||
"keyColor": "#FF0000",
|
||||
"format": "{pretty-name}"
|
||||
},
|
||||
{
|
||||
"type": "uptime",
|
||||
"keyColor": "#FF0000",
|
||||
"key": " UP"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "{#1;38;2;255;0;0}COLORS {#1;38;2;0;0;0} {#1;38;2;255;0;0} {#1;38;2;0;128;0} {#1;38;2;128;128;0} {#1;38;2;0;0;255} {#1;38;2;128;0;128} {#1;38;2;0;128;128} {#1;38;2;255;255;255}"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": " {#1;38;2;128;128;128} {#1;38;2;255;0;128} {#1;38;2;0;255;0} {#1;38;2;255;255;0} {#1;38;2;0;150;255} {#1;38;2;255;0;255} {#1;38;2;0;255;255} {#1;38;2;128;128;128}"
|
||||
},
|
||||
"break"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"type": "auto",
|
||||
"source": "~/.config/fastfetch/logos/batman-beyond.txt",
|
||||
"padding": {
|
||||
"top": 2, // Top padding
|
||||
"left": 2, // Left padding
|
||||
"right": 2 // Right padding
|
||||
},
|
||||
"color": {
|
||||
"1": "#FF0000"
|
||||
}
|
||||
},
|
||||
"display": {
|
||||
"color": {
|
||||
"keys": "#FF0000"
|
||||
},
|
||||
"separator": "",
|
||||
"constants": [
|
||||
"─────────────────────────────────────────────────────────", // {$1} - horizontal line for borders
|
||||
"\u001b[58D", // {$2} - move cursor left 55 columns
|
||||
"\u001b[58C", // {$3} - move cursor right 55 columns
|
||||
"\u001b[57C", // {$4} - move cursor right 54 columns
|
||||
"│" // {$5} - vertical borders
|
||||
],
|
||||
"brightColor": false
|
||||
},
|
||||
"modules": [
|
||||
"break",
|
||||
{
|
||||
"type": "version",
|
||||
"key": "╭─────────────┬─{$1}╮\u001b[42D",
|
||||
"format": "\u001b[1m{#keys} {1} - {2} "
|
||||
},
|
||||
{
|
||||
"type": "os",
|
||||
"key": "{$5}{#white} \u001b[s{#37}{sysname}\u001b[u\u001b[10C{#30}{#keys}{$5}{$3}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": "{$5}{#37} {icon} \u001b[s{#37}Kernel\u001b[u\u001b[10C{#keys}{$5}{$3}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"key": "{$5}{#37} {icon}{#white} \u001b[s{#37}Packages{#37} {#red} {#keys}{$5} {$4}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "localip",
|
||||
"key": "{$5}{#37} {icon}{#white} {#37}Local IP{#37} {#keys}{$5}{$3}{$5}{$2}",
|
||||
"showIpv4": true,
|
||||
"showIpv6": false,
|
||||
"showMac": false,
|
||||
"showLoop": false,
|
||||
"showPrefixLen": true,
|
||||
"showMtu": false,
|
||||
"showSpeed": true,
|
||||
"showFlags": false,
|
||||
"compact": true,
|
||||
"defaultRouteOnly": false,
|
||||
"showAllIps": true,
|
||||
"namePrefix": ""
|
||||
},
|
||||
{
|
||||
"type": "locale",
|
||||
"key": "{$5}{#37} {icon} {#37}Locale{#37} {#keys}{$5}{$3}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "├─────────────┴─{$1}┤", // Bottom border of the entire layout
|
||||
"format": ""
|
||||
},
|
||||
|
||||
// Hardware section with cyan color theme
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╭────────────┬{$1}╮{#keys}{$5}\u001b[36D",
|
||||
"format": "{#bright_white} Hardware "
|
||||
},
|
||||
{
|
||||
"type": "board",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Board{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "cpu",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}CPU{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
"format": "{name} @{freq-max}",
|
||||
"showPeCoreCount": false
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}GPU{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
"temp": true,
|
||||
"showPeCoreCount": false
|
||||
},
|
||||
{
|
||||
"type": "display",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Display{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
"compactType": "original-with-refresh-rate"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╰────────────┴{$1}╯{#keys}{$5}",
|
||||
"format": ""
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╭────────────┬{$1}╮{#keys}{$5}\u001b[36D",
|
||||
"format": "{#bright_white} Memory & Storage "
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}RAM{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
// "keyColor": "34",
|
||||
"percent": {
|
||||
"type": 3, // 3 = show number + bar + percentage
|
||||
"green": 30, // <30% is green
|
||||
"yellow": 70 // 30-70% is yellow, >70% is red
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "swap",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}SWAP{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
// "keyColor": "34",
|
||||
"percent": {
|
||||
"type": 3, // 3 = show number + bar + percentage
|
||||
"green": 30, // <30% is green
|
||||
"yellow": 70 // 30-70% is yellow, >70% is red
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Disk{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
// "keyColor": "34",
|
||||
"percent": {
|
||||
"type": 3, // 3 = show number + bar + percentage
|
||||
"green": 30, // <30% is green
|
||||
"yellow": 70 // 30-70% is yellow, >70% is red
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "battery",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Battery{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╰────────────┴{$1}╯{#keys}{$5}",
|
||||
"format": ""
|
||||
},
|
||||
|
||||
// Desktop section
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╭────────────┬{$1}╮{#keys}{$5}\u001b[36D",
|
||||
"format": "{#bright_white} Desktop "
|
||||
},
|
||||
{
|
||||
"type": "de",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Desktop{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
"slowVersionDetection": false
|
||||
},
|
||||
{
|
||||
"type": "wm",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Session{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
"detectPlugin": false
|
||||
},
|
||||
{
|
||||
"type": "font",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Font{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "lm",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Greeter{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╰────────────┴{$1}╯{#keys}{$5}",
|
||||
"format": ""
|
||||
},
|
||||
|
||||
// Terminal section
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╭────────────┬{$1}╮{#keys}{$5}\u001b[37D",
|
||||
"format": "{#bright_white} Terminal "
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Term{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Shell{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "terminalfont",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Font{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
},
|
||||
// {
|
||||
// "type": "terminaltheme",
|
||||
// "key": "{$5}{#white}{$5}{#37}{icon} {#37}Colors{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
// },
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╰────────────┴{$1}╯{#keys}{$5}",
|
||||
"format": ""
|
||||
},
|
||||
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╭────────────┬{$1}╮{#keys}{$5}\u001b[36D",
|
||||
"format": "{#bright_white} Uptime "
|
||||
},
|
||||
{
|
||||
"type": "uptime",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Uptime{#37} {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
},
|
||||
{
|
||||
"type": "datetime",
|
||||
"key": "{$5}{#white}{$5} {#37}{icon} {#37}Fetched{#37} {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
"format": "{day-pretty}-{month-pretty}-{year} {hour-pretty}:{minute-pretty}:{second-pretty} {timezone-name}"
|
||||
},
|
||||
//{
|
||||
// "condition": { // Conditional module: only show on non-macOS
|
||||
// "!system": "macOS"
|
||||
// },
|
||||
// "type": "disk",
|
||||
// "key": "{$5}{#white}{$5} OS Age {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
// "folders": "/", // Check root filesystem
|
||||
// "format": "{create-time:10} [{days} days]" // Show creation time and age in days
|
||||
//},
|
||||
//{
|
||||
// "condition": { // Conditional module: only show on macOS
|
||||
// "system": "macOS"
|
||||
// },
|
||||
// "type": "disk",
|
||||
// "key": "{$5}{#white}{$5} OS Age {$5}{$4}{$5}{#keys}{$5}{$2}",
|
||||
// "folders": "/System/Volumes/VM", // Work around for APFS on macOS
|
||||
// "format": "{create-time:10} [{days} days]"
|
||||
//},
|
||||
//{
|
||||
// "type": "users",
|
||||
// "myselfOnly": true, // Only show current user
|
||||
// "key": "{$5}{#white}{$5} Login {$5}{$4}{$5}{#keys}{$5}{$2}"
|
||||
//
|
||||
//},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5}{#white}╰────────────┴{$1}╯{#keys}{$5}",
|
||||
"format": ""
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5} {$3} {$5}{$2}",
|
||||
"format":" {#1;48;2;0;0;0} {#1;48;2;255;0;0} {#1;48;2;0;128;0} {#1;48;2;128;128;0} {#1;48;2;0;0;255} {#1;48;2;128;0;128} {#1;48;2;0;128;128} {#1;48;2;255;255;255} "
|
||||
//"format":" {#1;48;2;0;0;0}{#1;38;2;255;0;0}{#1;38;2;0;128;0}{#1;38;2;128;128;0}{#1;38;2;0;0;255}{#1;38;2;128;0;128}{#1;38;2;0;128;128}{#1;38;2;255;255;255}"
|
||||
//"format":" {#black} {#white} {#red} {#yellow} {#green} {#blue} {#cyan} {#magenta} "
|
||||
//"format":" {#black} {#white} {#red} {#yellow} {#green} {#blue} {#cyan} {#magenta} "
|
||||
//"format":" {#black} {#white} {#red} {#yellow} {#green} {#blue} {#cyan} {#magenta} "
|
||||
//"format":" {#black} {#white} {#red} {#yellow} {#green} {#blue} {#cyan} {#magenta} "
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "{$5} {$3} {$5}{$2}",
|
||||
"format":" {#1;48;2;128;128;128} {#1;48;2;255;0;128} {#1;48;2;0;255;0} {#1;48;2;255;255;0} {#1;48;2;0;150;255} {#1;48;2;255;0;255} {#1;48;2;0;255;255} {#1;48;2;128;128;128} "
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"key": "╰───────────────{$1}╯", // Bottom border of the entire layout
|
||||
"format": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
$1 +## -##
|
||||
$1 ###### +#####
|
||||
$1 ######### #########:
|
||||
$1 =############: #############
|
||||
$1 ################= ################
|
||||
$1 #################* ##################
|
||||
$1 :################ #################
|
||||
$1 ################ ################-
|
||||
$1 ################ # # +###############
|
||||
$1 ###############* ## ## =###############
|
||||
$1 ################ ### ###+ ################-
|
||||
$1 *################ ############ #################
|
||||
$1 ################# ############ ##################
|
||||
$1 :################## =############ +##################
|
||||
$1 #################### ############## *####################
|
||||
$1 #########################################################*
|
||||
$1 ##############################################-
|
||||
$1 ######################################:
|
||||
$1 ################################
|
||||
$1 ##########################+
|
||||
$1 ######################:
|
||||
$1 ##################-
|
||||
$1 -###############
|
||||
$1 ############
|
||||
$1 =#########
|
||||
$1 ######=
|
||||
$1 ####
|
||||
$1 ##
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%@@@@@@@@@@@@@@@@@@@@@@@@@@@ * + @@@@@@@@@@@@@@@@@@@@@@@@@@@%
|
||||
-@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@-
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@+ :@@@@@@ =@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:
|
||||
=@@@@@@@@@@@@@@@@@@=
|
||||
@@@@@@@@@@@@
|
||||
@@@@@@@@
|
||||
@@@@
|
||||
@@
|
||||
:
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
$1 ### ###
|
||||
$1 ###### ######
|
||||
$1 ######## ########
|
||||
$1 ########## ##########
|
||||
$1 ############ ############
|
||||
$1 ############ ############
|
||||
$1 ########### # # ###########
|
||||
$1 ########### ## ## ###########
|
||||
$1 ########### ###### ###########
|
||||
$1 ########### ######## ###########
|
||||
$1 ########### ########## ############
|
||||
$1 ############################################
|
||||
$1 ##########################################
|
||||
$1 ##################################
|
||||
$1 ##########################
|
||||
$1 ####################
|
||||
$1 ################
|
||||
$1 ############
|
||||
$1 #########
|
||||
$1 ######
|
||||
$1 ####
|
||||
$1 ##
|
||||
$1
|
||||
$1
|
||||
@@ -0,0 +1,14 @@
|
||||
$1 # #
|
||||
$1 ### ###
|
||||
$1 ##### #####
|
||||
$1 ###### ######
|
||||
$1 ##### # # #####
|
||||
$1 ###### ### ######
|
||||
$1 ####### ####### #######
|
||||
$1 #####################
|
||||
$1 #############
|
||||
$1 #########
|
||||
$1 #####
|
||||
$1 ###
|
||||
$1 #
|
||||
$1
|
||||
@@ -0,0 +1,19 @@
|
||||
$1 # #
|
||||
$1 ### ###
|
||||
$1 ###### ######
|
||||
$1 ######## ########
|
||||
$1 ######### #########
|
||||
$1 ######## # # #########
|
||||
$1 ######### ##### #########
|
||||
$1 ######## ##### ########
|
||||
$1 ######### ####### #########
|
||||
$1 ###################################
|
||||
$1 #############################
|
||||
$1 #####################
|
||||
$1 ###############
|
||||
$1 ###########
|
||||
$1 #######
|
||||
$1 #####
|
||||
$1 ###
|
||||
$1 #
|
||||
$1
|
||||
@@ -0,0 +1,31 @@
|
||||
#-
|
||||
#-
|
||||
##########-
|
||||
####++++++#------####
|
||||
-##+++++++++++#----------###
|
||||
##++++++++++++++#-------------##+
|
||||
##++++++++++++++++#---------------##-
|
||||
##+++++++++++++++++#-----------------## -
|
||||
-#+++++++++++++++++++#------------------###+
|
||||
+#++++++++++++++++++++#-------------------##+
|
||||
#+++++++++++++++++++++#------------------####-
|
||||
##+++++++++++++++++++++#--------------#########
|
||||
#++++++++++++++++++++++#----------##########--#+
|
||||
##++++++++++++++++++++++#--------#### ###--#+
|
||||
##++++++++++++++++++++++------#### ###---##
|
||||
##########################++---#### ############-
|
||||
##++++++++++++++++++++++-----### -###----##
|
||||
##++++++++++++++++++++++#------### #####-----#+
|
||||
#++++++++++++++++++++++#-------########------##-
|
||||
##+++++++++++++++++++++#---------------------##
|
||||
##++++++++++++++++++++#--------------------##-
|
||||
##+++++++++++++++++++#-------------------##-
|
||||
##++++++++++++++++++#------------------##-
|
||||
##++++++++++++++++#----------------##+
|
||||
###++++++++++++++#--------------###-
|
||||
-##++++++++++++#------------###-
|
||||
####++++++++#--------####+
|
||||
-+################+-
|
||||
-+#+--
|
||||
#-
|
||||
+-
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
@@@@ @@@@
|
||||
@@@@@@@@@@ @@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@
|
||||
@@ @@@@@@@@@@@@@@@@@@@@@@ @@
|
||||
@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@
|
||||
@@@@@@@@
|
||||
@@@@@
|
||||
@@
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
# ====================================================================
|
||||
# auth: alex
|
||||
# file: .alias
|
||||
# revn: 04-19-2026 2.0
|
||||
# func: define useful fish aliases
|
||||
#
|
||||
# TODO: make boom more robust (scp, etc)
|
||||
# ====================================================================
|
||||
# r au mm-dd-yyyy: CHANGE LOG
|
||||
# --------------------------------------------------------------------
|
||||
# ac 04-??-2026: init
|
||||
# ac 04-16-2026: added gg alias
|
||||
# * ac 04-19-2026: added boom alias
|
||||
# added knight alias
|
||||
# * ac 04-22-2026: fixed insane ranger/knight bug
|
||||
#
|
||||
# ====================================================================
|
||||
|
||||
# Useful aliases
|
||||
|
||||
|
||||
# vim assumes tabs instead of buffers
|
||||
alias vim="vim -p"
|
||||
|
||||
# make ranger sound more batman-like
|
||||
alias knight="ranger"
|
||||
|
||||
# boomtube reference
|
||||
alias boom="ssh"
|
||||
|
||||
# shorthand for fastfetch
|
||||
alias ff="fastfetch"
|
||||
|
||||
# forfeit
|
||||
alias FF="shutdown now"
|
||||
|
||||
# good game
|
||||
alias gg="sudo reboot now"
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
## Source from conf.d before our fish config
|
||||
source /usr/share/cachyos-fish-config/conf.d/done.fish
|
||||
|
||||
|
||||
## Set values
|
||||
## Run fastfetch as welcome message
|
||||
function fish_greeting
|
||||
fastfetch
|
||||
end
|
||||
|
||||
# Format man pages
|
||||
set -x MANROFFOPT "-c"
|
||||
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
|
||||
|
||||
# Set settings for https://github.com/franciscolourenco/done
|
||||
set -U __done_min_cmd_duration 10000
|
||||
set -U __done_notification_urgency_level low
|
||||
|
||||
## Environment setup
|
||||
# Apply .profile: use this to put fish compatible .profile stuff in
|
||||
if test -f ~/.fish_profile
|
||||
source ~/.fish_profile
|
||||
end
|
||||
|
||||
# Add ~/.local/bin to PATH
|
||||
if test -d ~/.local/bin
|
||||
if not contains -- ~/.local/bin $PATH
|
||||
set -p PATH ~/.local/bin
|
||||
end
|
||||
end
|
||||
|
||||
# Add depot_tools to PATH
|
||||
if test -d ~/Applications/depot_tools
|
||||
if not contains -- ~/Applications/depot_tools $PATH
|
||||
set -p PATH ~/Applications/depot_tools
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
## Functions
|
||||
# Functions needed for !! and !$ https://github.com/oh-my-fish/plugin-bang-bang
|
||||
function __history_previous_command
|
||||
switch (commandline -t)
|
||||
case "!"
|
||||
commandline -t $history[1]; commandline -f repaint
|
||||
case "*"
|
||||
commandline -i !
|
||||
end
|
||||
end
|
||||
|
||||
function __history_previous_command_arguments
|
||||
switch (commandline -t)
|
||||
case "!"
|
||||
commandline -t ""
|
||||
commandline -f history-token-search-backward
|
||||
case "*"
|
||||
commandline -i '$'
|
||||
end
|
||||
end
|
||||
|
||||
if [ "$fish_key_bindings" = fish_vi_key_bindings ];
|
||||
bind -Minsert ! __history_previous_command
|
||||
bind -Minsert '$' __history_previous_command_arguments
|
||||
else
|
||||
bind ! __history_previous_command
|
||||
bind '$' __history_previous_command_arguments
|
||||
end
|
||||
|
||||
# Fish command history
|
||||
function history
|
||||
builtin history --show-time='%F %T '
|
||||
end
|
||||
|
||||
function backup --argument filename
|
||||
cp $filename $filename.bak
|
||||
end
|
||||
|
||||
# Copy DIR1 DIR2
|
||||
function copy
|
||||
set count (count $argv | tr -d \n)
|
||||
if test "$count" = 2; and test -d "$argv[1]"
|
||||
set from (echo $argv[1] | trim-right /)
|
||||
set to (echo $argv[2])
|
||||
command cp -r $from $to
|
||||
else
|
||||
command cp $argv
|
||||
end
|
||||
end
|
||||
|
||||
# Replace ls with eza
|
||||
alias ls='eza -al --color=always --group-directories-first --icons' # preferred listing
|
||||
alias la='eza -a --color=always --group-directories-first --icons' # all files and dirs
|
||||
alias ll='eza -abl --color=always --icons --git' # long format
|
||||
alias lt='eza -aT --color=always --group-directories-first --icons' # tree listing
|
||||
alias l.="eza -a | grep -e '^\.'" # show only dotfiles
|
||||
|
||||
# Common use
|
||||
alias grubup="sudo grub-mkconfig -o /boot/grub/grub.cfg"
|
||||
alias fixpacman="sudo rm /var/lib/pacman/db.lck"
|
||||
alias tarnow='tar -acf '
|
||||
alias untar='tar -zxvf '
|
||||
alias wget='wget -c '
|
||||
alias psmem='ps auxf | sort -nr -k 4'
|
||||
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
alias .....='cd ../../../..'
|
||||
alias ......='cd ../../../../..'
|
||||
alias dir='dir --color=auto'
|
||||
alias vdir='vdir --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
alias hw='hwinfo --short' # Hardware Info
|
||||
alias big="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB
|
||||
alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages
|
||||
alias update='sudo pacman -Syu'
|
||||
|
||||
# Get fastest mirrors
|
||||
alias mirror="sudo cachyos-rate-mirrors"
|
||||
|
||||
# Help people new to Arch
|
||||
alias apt='man pacman'
|
||||
alias apt-get='man pacman'
|
||||
alias please='sudo'
|
||||
alias tb='nc termbin.com 9999'
|
||||
|
||||
# Cleanup orphaned packages
|
||||
alias cleanup='sudo pacman -Rns (pacman -Qtdq)'
|
||||
|
||||
# Get the error messages from journalctl
|
||||
alias jctl="journalctl -p 3 -xb"
|
||||
|
||||
# Recent installed packages
|
||||
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl"
|
||||
@@ -0,0 +1,25 @@
|
||||
# source default* settings
|
||||
source /usr/share/cachyos-fish-config/cachyos-config.fish
|
||||
|
||||
# scripst for polybar
|
||||
source ~/.config/fish/functions/inc_brightness.fish
|
||||
source ~/.config/fish/functions/dec_brightness.fish
|
||||
source ~/.config/fish/functions/get_volume.fish
|
||||
|
||||
# bluetooth connect function
|
||||
source ~/.config/fish/functions/bt.fish
|
||||
|
||||
# do not load default ranger config
|
||||
set RANGER_LOAD_DEFAULT_RC FALSE
|
||||
|
||||
# source aliases
|
||||
if test -f ~/.config/fish/.alias
|
||||
source ~/.config/fish/.alias
|
||||
end
|
||||
|
||||
# overwrite greeting
|
||||
# potentially disabling fastfetch
|
||||
function fish_greeting
|
||||
# smth smth
|
||||
fastfetch --config bb-large.jsonc
|
||||
end
|
||||
@@ -0,0 +1,77 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR __done_min_cmd_duration:10000
|
||||
SETUVAR __done_notification_urgency_level:low
|
||||
SETUVAR __fish_initialized:4300
|
||||
SETUVAR pure_begin_prompt_with_current_directory:true
|
||||
SETUVAR pure_check_for_new_release:false
|
||||
SETUVAR pure_color_at_sign:pure_color_mute
|
||||
SETUVAR pure_color_aws_profile:pure_color_warning
|
||||
SETUVAR pure_color_command_duration:pure_color_warning
|
||||
SETUVAR pure_color_current_directory:pure_color_primary
|
||||
SETUVAR pure_color_danger:red
|
||||
SETUVAR pure_color_dark:black
|
||||
SETUVAR pure_color_exit_status:pure_color_danger
|
||||
SETUVAR pure_color_git_branch:pure_color_mute
|
||||
SETUVAR pure_color_git_dirty:pure_color_mute
|
||||
SETUVAR pure_color_git_stash:pure_color_info
|
||||
SETUVAR pure_color_git_unpulled_commits:pure_color_info
|
||||
SETUVAR pure_color_git_unpushed_commits:pure_color_info
|
||||
SETUVAR pure_color_hostname:pure_color_mute
|
||||
SETUVAR pure_color_info:cyan
|
||||
SETUVAR pure_color_jobs:pure_color_normal
|
||||
SETUVAR pure_color_k8s_context:pure_color_success
|
||||
SETUVAR pure_color_k8s_namespace:pure_color_primary
|
||||
SETUVAR pure_color_k8s_prefix:pure_color_info
|
||||
SETUVAR pure_color_light:white
|
||||
SETUVAR pure_color_mute:brblack
|
||||
SETUVAR pure_color_nixdevshell_prefix:pure_color_info
|
||||
SETUVAR pure_color_nixdevshell_symbol:pure_color_mute
|
||||
SETUVAR pure_color_normal:normal
|
||||
SETUVAR pure_color_prefix_root_prompt:pure_color_danger
|
||||
SETUVAR pure_color_primary:blue
|
||||
SETUVAR pure_color_prompt_on_error:pure_color_danger
|
||||
SETUVAR pure_color_prompt_on_success:pure_color_success
|
||||
SETUVAR pure_color_success:magenta
|
||||
SETUVAR pure_color_system_time:pure_color_mute
|
||||
SETUVAR pure_color_username_normal:pure_color_mute
|
||||
SETUVAR pure_color_username_root:pure_color_light
|
||||
SETUVAR pure_color_virtualenv:pure_color_mute
|
||||
SETUVAR pure_color_warning:yellow
|
||||
SETUVAR pure_convert_exit_status_to_signal:false
|
||||
SETUVAR pure_enable_aws_profile:true
|
||||
SETUVAR pure_enable_container_detection:true
|
||||
SETUVAR pure_enable_git:true
|
||||
SETUVAR pure_enable_k8s:false
|
||||
SETUVAR pure_enable_nixdevshell:false
|
||||
SETUVAR pure_enable_single_line_prompt:false
|
||||
SETUVAR pure_enable_virtualenv:true
|
||||
SETUVAR pure_reverse_prompt_symbol_in_vimode:true
|
||||
SETUVAR pure_separate_prompt_on_error:false
|
||||
SETUVAR pure_shorten_prompt_current_directory_length:0
|
||||
SETUVAR pure_shorten_window_title_current_directory_length:0
|
||||
SETUVAR pure_show_exit_status:false
|
||||
SETUVAR pure_show_jobs:false
|
||||
SETUVAR pure_show_numbered_git_indicator:false
|
||||
SETUVAR pure_show_prefix_root_prompt:false
|
||||
SETUVAR pure_show_subsecond_command_duration:false
|
||||
SETUVAR pure_show_system_time:false
|
||||
SETUVAR pure_symbol_aws_profile_prefix:
|
||||
SETUVAR pure_symbol_container_prefix:
|
||||
SETUVAR pure_symbol_exit_status_prefix:\x7c
|
||||
SETUVAR pure_symbol_exit_status_separator:\x7c
|
||||
SETUVAR pure_symbol_git_dirty:\x2a
|
||||
SETUVAR pure_symbol_git_stash:\u2261
|
||||
SETUVAR pure_symbol_git_unpulled_commits:\u21e3
|
||||
SETUVAR pure_symbol_git_unpushed_commits:\u21e1
|
||||
SETUVAR pure_symbol_k8s_prefix:\u2638
|
||||
SETUVAR pure_symbol_nixdevshell_prefix:\u2744\ufe0f
|
||||
SETUVAR pure_symbol_prefix_root_prompt:\x23
|
||||
SETUVAR pure_symbol_prompt:\u276f
|
||||
SETUVAR pure_symbol_reverse_prompt:\u276e
|
||||
SETUVAR pure_symbol_ssh_prefix:
|
||||
SETUVAR pure_symbol_title_bar_separator:\x2d
|
||||
SETUVAR pure_symbol_virtualenv_prefix:
|
||||
SETUVAR pure_threshold_command_duration:5
|
||||
SETUVAR pure_truncate_prompt_current_directory_keeps:\x2d1
|
||||
SETUVAR pure_truncate_window_title_current_directory_keeps:\x2d1
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/bin/fish
|
||||
|
||||
function m50x
|
||||
|
||||
set -l mac "00:0A:45:44:82:12"
|
||||
|
||||
set -l conn $( bluetoothctl devices Connected )
|
||||
|
||||
if test -z $conn
|
||||
if bluetoothctl connect $mac > /dev/null
|
||||
echo "Connection successful"
|
||||
end
|
||||
else
|
||||
if bluetoothctl disconnect > /dev/null
|
||||
echo "Disconnection successful"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/fish
|
||||
|
||||
function dec_brightness
|
||||
|
||||
brightnessctl -q set 5%-
|
||||
|
||||
set -f cur ( brightnessctl get )
|
||||
set -f max ( brightnessctl max )
|
||||
|
||||
set -f ret ( math -s0 "100 * $cur / $max" )
|
||||
|
||||
#echo $ret > /tmp/xobpipe
|
||||
echo $ret
|
||||
|
||||
end
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/fish
|
||||
|
||||
function get_volume
|
||||
|
||||
if string match --regex '\[off\]' $(amixer sset Master toggle) 1>/dev/null
|
||||
set -f ret $( pamixer --get-volume | sed 's/$/!/' )
|
||||
else
|
||||
set -f ret $( pamixer --get-volume )
|
||||
end
|
||||
|
||||
#echo $ret > /tmp/xobpipe
|
||||
echo $ret
|
||||
|
||||
end
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/fish
|
||||
|
||||
function inc_brightness
|
||||
|
||||
brightnessctl -q set +5%
|
||||
|
||||
set -f cur ( brightnessctl get )
|
||||
set -f max ( brightnessctl max )
|
||||
|
||||
set -f ret ( math -s0 "100 * $cur / $max" )
|
||||
|
||||
#echo $ret > /tmp/xobpipe
|
||||
echo $ret
|
||||
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/bin/fish
|
||||
|
||||
function qd
|
||||
set -l x ( pgrep -i "discord" | head -n1 )
|
||||
|
||||
if test $status -eq 0
|
||||
kill $x
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,19 @@
|
||||
[Unit]
|
||||
Description=Gitea (Git with a cup of tea)
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
RestartSec=2s
|
||||
Type=simple
|
||||
User=oracle
|
||||
Group=oracle
|
||||
WorkingDirectory=/home/oracle/Documents/gitea/data/gitea-repositories
|
||||
#WorkingDirectory=/var/lib/gitea/
|
||||
ExecStart=/home/oracle/Documents/gitea/gitea web
|
||||
# --config /etc/gitea/app.ini
|
||||
Restart=always
|
||||
Environment=USER=oracle HOME=/home/oracle/ GITEA_WORK_DIR=/home/oracle/Documents/gitea/data/gitea-repositories
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
i3lock -i ~/Downloads/bb.jpeg --verif-text="" --ring-color=ff000030 --ringver-color=00000000 --insidever-color=00000000 --keyhl-color=00000090 --bshl-color=666666ff --time-pos="ix:iy+150" --noinput-text=""
|
||||
@@ -0,0 +1,236 @@
|
||||
set $mod Mod4
|
||||
#font-5 = "batman logo evolution tfb:style=Regular:pixelsize=25;3"
|
||||
font pango:batman logo evolution tfb 9
|
||||
#font pango:Hack 9
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
set $term alacritty
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
#bindsym ctrl+space exec rofi -show run
|
||||
bindsym ctrl+shift+space exec "rofi -show combi -display-combi batcave -modi window,run,combi -combi-modi window,run"
|
||||
#bindsym ctrl+space exec dmenu_run
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+h split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
bindsym $mod+t split toggle
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
bindsym $mod+Shift+w sticky toggle
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
bindsym $mod+3 workspace number $ws3
|
||||
bindsym $mod+4 workspace number $ws4
|
||||
bindsym $mod+5 workspace number $ws5
|
||||
bindsym $mod+6 workspace number $ws6
|
||||
bindsym $mod+7 workspace number $ws7
|
||||
bindsym $mod+8 workspace number $ws8
|
||||
bindsym $mod+9 workspace number $ws9
|
||||
bindsym $mod+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 5 px or 5 ppt
|
||||
bindsym Down resize grow height 5 px or 5 ppt
|
||||
bindsym Up resize shrink height 5 px or 5 ppt
|
||||
bindsym Right resize grow width 5 px or 5 ppt
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
exec_always --no-startup-id ~/.config/polybar/launch.sh
|
||||
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #000000 #000000 #ffffff #000000 #000000
|
||||
client.focused_inactive #000000 #000000 #ffffff #000000 #000000
|
||||
client.unfocused #000000 #000000 #888888 #000000 #000000
|
||||
client.urgent #000000 #000000 #ffffff #000000 #000000
|
||||
client.placeholder #000000 #000000 #ffffff #000000 #000000
|
||||
client.background #ffffff
|
||||
|
||||
########################################################################
|
||||
########################################################################
|
||||
####
|
||||
#### Workplaces layout
|
||||
####
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
||||
exec --no-startup-id "i3-msg 'workspace 1; exec alacritty'"
|
||||
|
||||
########################################################################
|
||||
########################################################################
|
||||
####
|
||||
#### Floated windows
|
||||
####
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
||||
for_window [title="Calculator"] floating enable
|
||||
for_window [title="Timer"] floating enable
|
||||
for_window [class="^.*"] border pixel 1
|
||||
for_window [class="librewolf"] border none
|
||||
for_window [class="firefox"] border none
|
||||
for_window [class="mpv"] floating enable
|
||||
for_window [class="imv"] floating enable
|
||||
for_window [class="zenity"] floating enable
|
||||
for_window [class="cachyos-welcome"] floating enable
|
||||
|
||||
|
||||
########################################################################
|
||||
########################################################################
|
||||
####
|
||||
#### HOTKEYS
|
||||
####
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
||||
|
||||
bindsym XF86AudioRaiseVolume exec "pamixer -ui 3 && pamixer --get-volume > /tmp/xobpipe"
|
||||
bindsym XF86AudioLowerVolume exec "pamixer -ud 3 && pamixer --get-volume > /tmp/xobpipe"
|
||||
# mute sound
|
||||
#bindsym XF86AudioMute exec "amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > /tmp/xobpipe"
|
||||
bindsym XF86AudioMute exec "amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*\[([0-9]+)%\].*/\1!/ p' | head -1 > /tmp/xobpipe"
|
||||
|
||||
# change screen brightness
|
||||
#bindsym XF86MonBrightnessUp exec --no-startup-id "inc_brightness > /tmp/xobpipe"
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%
|
||||
#bindsym XF86MonBrightnessDown exec --no-startup-id "dec_brightness > /tmp/xobpipe"
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-
|
||||
|
||||
bindsym $mod+Shift+p exec gnome-calculator
|
||||
#bindsym $mod+p exec ~/.scripts/dmshot
|
||||
|
||||
## This will switch the current layout to the 'us'.
|
||||
#bindsym $mod+l exec "setxkbmap -layout us && sleep 0.1 && setxkbmap -option grp:caps_toggle 'us,ru' -option grp_led:caps && sleep 0.1 && i3lock --blur 5"
|
||||
|
||||
## This keybind will lock the screen. The lockscreen.
|
||||
bindsym $mod+Escape exec "sleep 0.1 && ~/.config/i3/i3lock_updated.sh"
|
||||
bindsym $mod+Shift+Escape exec "sleep 0.1 && ~/.config/i3/batlock.sh"
|
||||
|
||||
#exec --no-startup-id xautolock -time 20 -locker "systemctl suspend"
|
||||
|
||||
########################################################################
|
||||
########################################################################
|
||||
####
|
||||
#### AUTOLOAD
|
||||
####
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
||||
## Here is a language switcher by pressing capslock button,
|
||||
## and the capslock functionality available by using shift+capslock.
|
||||
## Uncomment to enable 'us' to/from 'ru' switch. change to language(s) you prefer more.
|
||||
|
||||
#exec_always setxkbmap -option grp:caps_toggle "us,ru" -option "grp:caps_toggle,grp_led:caps"
|
||||
|
||||
exec xrandr --output HDMI-1 --mode 1920x1080 --rate 60 --scale 1x1
|
||||
#exec xrandr --auto --output HDMI-1 --mode 1920x1080 --above HDMI-2
|
||||
|
||||
#exec_always --no-startup-id killall back4.sh
|
||||
#exec_always --no-startup-id $HOME/back4.sh ~/Downloads/bb-wp.gif
|
||||
|
||||
#exec feh --bg-fill ~/.config/i3/wallpaper.png
|
||||
exec feh --bg-fill ~/Downloads/bb.jpeg
|
||||
|
||||
exec --no-startup-id dunst
|
||||
exec --no-startup-id picom
|
||||
exec --no-startup-id redshift
|
||||
exec --no-startup-id dex -a -s /etc/xdg/autostart/:~/.config/autostart/
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
exec_always mkfifo /tmp/xobpipe && tail -f /tmp/xobpipe | xob -t 2170 & disown
|
||||
#exec ~/.i3/launch.sh
|
||||
|
||||
# EXEC
|
||||
exec firefox
|
||||
assign [class="firefox"] $ws2
|
||||
|
||||
exec snapchat
|
||||
assign [class="Snapchat"] $ws3
|
||||
|
||||
exec discord
|
||||
assign [class="discord"] $ws10
|
||||
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
i3lock -kB5 --verif-text="" --ring-color=ff000030 --ringver-color=00000000 --insidever-color=00000000 --keyhl-color=00000090 --bshl-color=666666ff --time-pos="ix:iy+150" --indicator --noinput-text=""
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 541 KiB |
@@ -0,0 +1,339 @@
|
||||
;==========================================================
|
||||
;
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
;
|
||||
; The README contains a lot of information
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
[colors]
|
||||
background = #FF0000
|
||||
background-alt = #000000
|
||||
foreground = #000000
|
||||
foreground-alt = #FF0000
|
||||
primary = #00FF00
|
||||
secondary = #0000FF
|
||||
alert = #FF0000
|
||||
white = #FFFFFF
|
||||
|
||||
[bar/example]
|
||||
monitor = ${env:MONITOR:}
|
||||
width = 100%
|
||||
height = 22
|
||||
radius = 9.0
|
||||
fixed-center = true
|
||||
top = yes
|
||||
bottom = no
|
||||
override-redirect = false
|
||||
|
||||
foreground = ${colors.foreground-alt}
|
||||
background = ${colors.background-alt}
|
||||
|
||||
; Under-/overline pixel size and argb color
|
||||
; Individual values can be defined using:
|
||||
; {overline,underline}-size
|
||||
; {overline,underline}-color
|
||||
line-size = 1
|
||||
line-color = #dfdfdf
|
||||
|
||||
border-top-size = 0
|
||||
border-bottom-size = 0
|
||||
border-left-size = 0
|
||||
border-right-size = 0
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 0
|
||||
|
||||
module-margin-left = 0
|
||||
module-margin-right = 0
|
||||
|
||||
font-0 = Hack:pixelsize=9;3
|
||||
font-2 = "Wuncon Siji:pixelsize=10;3"
|
||||
font-1 = Weather Icons:style=Regular:size=10;2
|
||||
font-3 = FontAwesome5Free:style=Solid:pixelsize=10;3
|
||||
font-4 = FontAwesome5Brands:style=Solid:pixelsize=10;3
|
||||
font-5 = "batman logo evolution tfb:style=Regular:pixelsize=25;3"
|
||||
font-6 = "Material Design Icons:style=Regular:pixelsize=15;3"
|
||||
|
||||
modules-left = i3 sp0
|
||||
modules-right = network sp1 battery sp2 temp sp1 linux-ver sp2 date sp2
|
||||
;modules-right = volume sp1 network sp1 battery sp2 temp sp1 linux-ver sp2 date sp2
|
||||
modules-center = bb
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 0
|
||||
tray-detached = false
|
||||
tray-maxsize = 14
|
||||
tray-scale = 1.0
|
||||
tray-background = ${colors.background-alt}
|
||||
tray-foreground = ${colors.foreground-alt}
|
||||
tray-offset-x = 0
|
||||
tray-offset-y = 0
|
||||
|
||||
wm-restack = i3
|
||||
|
||||
scroll-up = #i3.next
|
||||
scroll-down = #i3.prev
|
||||
|
||||
cursor-click = pointer
|
||||
|
||||
[module/sp0]
|
||||
type = custom/text
|
||||
content = "| "
|
||||
content-foreground = #93A1A1
|
||||
content-background = ${colors.background-alt}
|
||||
|
||||
[module/sp1]
|
||||
type = custom/text
|
||||
content = " | "
|
||||
content-foreground = #93A1A1
|
||||
content-background = ${colors.background-alt}
|
||||
|
||||
[module/sp2]
|
||||
type = custom/text
|
||||
content = " |"
|
||||
content-foreground = #93A1A1
|
||||
content-background = ${colors.background-alt}
|
||||
|
||||
[module/bb]
|
||||
type = custom/text
|
||||
label = %{T6}O%{T-}
|
||||
click-left = sleep 0.1 && i3lock -i ~/Downloads/bb.jpeg -F --verif-text="" --ring-color=ff000030 --ringver-color=00000000 --insidever-color=00000000 --keyhl-color=00000090 --bshl-color=666666ff --time-pos="ix:iy+150" --noinput-text=""
|
||||
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
format = <label-state> <label-mode>
|
||||
index-sort = true
|
||||
wrapping-scroll = false
|
||||
strip-wsnumbers = false
|
||||
enable-click = false
|
||||
enable-scroll = false
|
||||
|
||||
label-mode = %mode%
|
||||
label-mode-padding = 1
|
||||
label-mode-foreground = ${colors.foreground-alt}
|
||||
label-mode-background = ${colors.background-alt}
|
||||
|
||||
; focused = Active workspace on focused monitor
|
||||
label-focused = %index%
|
||||
label-focused-foreground = ${colors.foreground}
|
||||
label-focused-background = ${colors.background}
|
||||
label-focused-underline = ${colors.foreground-alt}
|
||||
label-focused-padding = 1
|
||||
|
||||
; unfocused = Inactive workspace on any monitor
|
||||
label-unfocused = %index%
|
||||
label-unfocused-padding = ${self.label-focused-padding}
|
||||
label-unfocused-foreground = ${colors.foreground-alt}
|
||||
label-unfocused-background = ${colors.background-alt}
|
||||
|
||||
; visible = Active workspace on unfocused monitor
|
||||
label-visible = %index%
|
||||
label-visible-foreground = ${self.label-focused-background}
|
||||
label-visible-background = ${self.label-focused-foreground}
|
||||
label-visible-underline = ${self.label-focused-underline}
|
||||
label-visible-padding = ${self.label-focused-padding}
|
||||
|
||||
; urgent = Workspace with urgency hint set
|
||||
label-urgent = %index%
|
||||
label-urgent-foreground = ${colors.foreground}
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
; Separator in between workspaces
|
||||
label-separator =
|
||||
label-separator-padding = 0
|
||||
label-separator-foreground = #fff
|
||||
|
||||
[module/linux-ver]
|
||||
type = custom/script
|
||||
exec = uname -r
|
||||
interval = 600
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
full-at = 85
|
||||
low-at = 10
|
||||
battery = BAT0
|
||||
adapter = AC
|
||||
poll-interval = 5
|
||||
|
||||
format-discharging = <label-discharging> <ramp-capacity>
|
||||
label-discharging = %percentage%%
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-0-foreground = #FFFFFF
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-1-foreground = #FFFFFF
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-2-foreground = #FFFFFF
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-3-foreground = #FFFFFF
|
||||
ramp-capacity-4 =
|
||||
ramp-capacity-4-foreground = #FFFFFF
|
||||
ramp-capacity-5 =
|
||||
ramp-capacity-5-foreground = #FFFFFF
|
||||
ramp-capacity-6 =
|
||||
ramp-capacity-6-foreground = #FFFFFF
|
||||
ramp-capacity-7 =
|
||||
ramp-capacity-7-foreground = #FFFFFF
|
||||
ramp-capacity-8 =
|
||||
ramp-capacity-8-foreground = #FFFFFF
|
||||
ramp-capacity-9 =
|
||||
ramp-capacity-9-foreground = #FFFFFF
|
||||
|
||||
format-charging = <label-charging> <animation-charging>
|
||||
label-charging = %percentage%%
|
||||
animation-charging-0 =
|
||||
animation-charging-0-foreground = #FFFFFF
|
||||
animation-charging-1 =
|
||||
animation-charging-1-foreground = #FFFFFF
|
||||
animation-charging-2 =
|
||||
animation-charging-2-foreground = #FFFFFF
|
||||
animation-charging-3 =
|
||||
animation-charging-3-foreground = #FFFFFF
|
||||
animation-charging-4 =
|
||||
animation-charging-4-foreground = #FFFFFF
|
||||
animation-charging-5 =
|
||||
animation-charging-5-foreground = #FFFFFF
|
||||
animation-charging-6 =
|
||||
animation-charging-6-foreground = #FFFFFF
|
||||
animation-charging-7 =
|
||||
animation-charging-7-foreground = #FFFFFF
|
||||
animation-charging-8 =
|
||||
animation-charging-8-foreground = #FFFFFF
|
||||
animation-charging-9 =
|
||||
animation-charging-9-foreground = #FFFFFF
|
||||
animation-charging-framerate = 2000
|
||||
|
||||
format-low = <label-low> <animation-low>
|
||||
label-low = %percentage%%
|
||||
animation-low-0 =
|
||||
animation-low-1 = "%{F#00000000}%{F-}"
|
||||
animation-low-framerate = 500
|
||||
|
||||
format-full = <label-full>
|
||||
label-full = %percentage%% %{F#ffffff}%{F-}
|
||||
|
||||
[module/network]
|
||||
type = internal/network
|
||||
interface = wlan0
|
||||
|
||||
format-connected = <label-connected> <ramp-signal>
|
||||
label-connected = %essid% %{F#FFFFFF}%{F-}%netspeed%
|
||||
ramp-signal-0 =
|
||||
ramp-signal-0-foreground = #FFFFFF
|
||||
ramp-signal-1 =
|
||||
ramp-signal-1-foreground = #FFFFFF
|
||||
ramp-signal-2 =
|
||||
ramp-signal-2-foreground = #FFFFFF
|
||||
ramp-signal-3 =
|
||||
ramp-signal-3-foreground = #FFFFFF
|
||||
ramp-signal-4 =
|
||||
ramp-signal-4-foreground = #FFFFFF
|
||||
|
||||
format-disconnected = <label-disconnected>
|
||||
label-disconnected =
|
||||
|
||||
[module/tempy]
|
||||
type = internal/temperature
|
||||
interval = 0.5
|
||||
thermal-zone = 0
|
||||
zone-type = x86_pkg_temp
|
||||
hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
|
||||
base-tempertaure = 25
|
||||
warn-temperature = 70
|
||||
units = true
|
||||
|
||||
format = <label> <ramp>
|
||||
format-warn = <label> <ramp>
|
||||
|
||||
label = %temperature-f%
|
||||
label-foreground = #FF0000
|
||||
|
||||
label-warn = %temperature-f%
|
||||
label-warn-foreground = #FF0000
|
||||
|
||||
ramp-0 =
|
||||
ramp-1 =
|
||||
ramp-2 =
|
||||
ramp-3 =
|
||||
ramp-foreground = #FFFFFF
|
||||
|
||||
[module/temp]
|
||||
type = custom/script
|
||||
format-prefix = ""
|
||||
exec = ~/.config/polybar/scripts/cpu_temp.sh
|
||||
label = %output% %{F#FFFFFF}%{F-}
|
||||
interval = 0.5
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
time = "%a %d %I:%M %P"
|
||||
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-prefix-background = ${colors.background-alt}
|
||||
|
||||
label = %time%
|
||||
label-foreground = ${colors.foreground-alt}
|
||||
label-background = ${colors.background-alt}
|
||||
|
||||
[module/volume]
|
||||
type = internal/alsa
|
||||
|
||||
; Soundcard to be used
|
||||
; Usually in the format hw:# where # is the card number
|
||||
; You can find the different card numbers in `/proc/asound/cards`
|
||||
master-soundcard = default
|
||||
speaker-soundcard = default
|
||||
headphone-soundcard = default
|
||||
|
||||
; Name of the master, speaker and headphone mixers
|
||||
; Use the following command to list available mixer controls:
|
||||
; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p"
|
||||
; If master, speaker or headphone-soundcard isn't the default,
|
||||
; use `amixer -c # scontrols` instead where # is the number
|
||||
; of the master, speaker or headphone soundcard respectively
|
||||
;
|
||||
; Default: Master
|
||||
master-mixer = Master
|
||||
|
||||
format-volume = <label-volume> <ramp-volume>
|
||||
label-volume = %percentage%%
|
||||
|
||||
format-muted = %{F#808080}<label-muted> %{F-}
|
||||
label-muted = %percentage%%
|
||||
|
||||
ramp-volume-0 =
|
||||
ramp-volume-0-foreground = #FFFFFF
|
||||
ramp-volume-1 =
|
||||
ramp-volume-1-foreground = #FFFFFF
|
||||
ramp-volume-2 =
|
||||
ramp-volume-2-foreground = #FFFFFF
|
||||
|
||||
[settings]
|
||||
throttle-output = 5
|
||||
throttle-output-for = 10
|
||||
;throttle-input-for = 30
|
||||
screenchange-reload = true
|
||||
compositing-background = over
|
||||
compositing-foreground = over
|
||||
compositing-overline = over
|
||||
compositing-border = over
|
||||
|
||||
[global/wm]
|
||||
margin-top = 5
|
||||
margin-bottom = 5
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Wait for audio
|
||||
until pactl info >/dev/null 2>&1; do
|
||||
sleep 0.5
|
||||
done
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# for multimonitor
|
||||
if type "xrandr"; then
|
||||
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
|
||||
MONITOR=$m polybar --reload example & disown
|
||||
done
|
||||
else
|
||||
polybar --reload example & disown
|
||||
fi
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then
|
||||
updates_arch=0
|
||||
fi
|
||||
|
||||
if ! updates_aur=$(paru -Qum | wc -l); then
|
||||
# if ! updates_aur=$(cower -u 2> /dev/null | wc -l); then
|
||||
# if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then
|
||||
updates_aur=0
|
||||
fi
|
||||
|
||||
updates=$(("$updates_arch" + "$updates_aur"))
|
||||
|
||||
#if [ "$updates" -gt 0 ]; then
|
||||
# echo "# $updates"
|
||||
#else
|
||||
# echo ""
|
||||
#fi
|
||||
|
||||
|
||||
re='^[0-9]+$'
|
||||
if ! [[ $updates_arch =~ $re ]] ; then
|
||||
updates_aur=999; exit 1
|
||||
fi
|
||||
|
||||
if ! [[ $updates_arch =~ $re ]] ; then
|
||||
updates_aur=999; exit 1
|
||||
fi
|
||||
|
||||
echo "P:$updates_arch Y:$updates_aur"
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#awk '{printf " %.1f°F\n", ($1/1000)*9/5+32}' /sys/class/hwmon/hwmon*/temp1_input 2>/dev/null | head -n1
|
||||
awk '{printf " %.1f°F\n", ($1/1000)*9/5+32; exit}' /sys/class/hwmon/hwmon*/temp1_input 2>/dev/null
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
# not useful unless exec commands can be placed in internal polybar modules
|
||||
# or I can do the low discharging animation from here
|
||||
|
||||
|
||||
BATRAW=$( cat /sys/class/power_supply/BAT0/capacity )
|
||||
#STATUS=$( cat /sys/class/power_supply/BAT0/status )
|
||||
STATUS="Charging"
|
||||
|
||||
BATADJ=$(( 9 + 100 * $BATRAW / 80 ))
|
||||
STEP=$(( $BATADJ / 10 ))
|
||||
|
||||
CHARGING=( "" "" "" "" "" "" "" "" "" "" )
|
||||
DISCHARGING=( "" "" "" "" "" "" "" "" "" "" )
|
||||
|
||||
if test $STATUS = "Discharging"; then
|
||||
echo ${DISCHARGING[$STEP]}
|
||||
elif test $STATUS = "Charging"; then
|
||||
echo ${CHARGING[$STEP]}
|
||||
fi
|
||||
|
||||
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#!/bin/sh
|
||||
# shellcheck disable=SC2016,SC2059
|
||||
|
||||
KEYBOARD_ID="Keyboard K380 Keyboard"
|
||||
|
||||
# cpm: characters per minute
|
||||
# wpm: words per minute (1 word = 5 characters)
|
||||
METRIC=cpm
|
||||
FORMAT="# %d $METRIC"
|
||||
|
||||
INTERVAL=20
|
||||
|
||||
# If you have a keyboard layout that is not listed here yet, create a condition
|
||||
# yourself. $3 is the key index. Use `xinput test "AT Translated Set 2 keyboard"`
|
||||
# to see key codes in real time. Be sure to open a pull request for your
|
||||
# layout's condition!
|
||||
LAYOUT=qwerty
|
||||
|
||||
case "$LAYOUT" in
|
||||
qwerty) CONDITION='($3 >= 10 && $3 <= 19) || ($3 >= 24 && $3 <= 33) || ($3 >= 37 && $3 <= 53) || ($3 >= 52 && $3 <= 58)'; ;;
|
||||
azerty) CONDITION='($3 >= 10 && $3 <= 19) || ($3 >= 24 && $3 <= 33) || ($3 >= 37 && $3 <= 54) || ($3 >= 52 && $3 <= 57)'; ;;
|
||||
dontcare) CONDITION='1'; ;; # Just register all key presses, not only letters and numbers
|
||||
*) echo "# Unsupported layout \"$LAYOUT\""; exit 1; ;;
|
||||
esac
|
||||
|
||||
# We have to account for the fact we're not listening a whole minute
|
||||
multiply_by=60
|
||||
divide_by=$INTERVAL
|
||||
|
||||
case "$METRIC" in
|
||||
wpm) divide_by=$((divide_by * 5)); ;;
|
||||
cpm) ;;
|
||||
*) echo "Unsupported metric \"$METRIC\""; exit 1; ;;
|
||||
esac
|
||||
|
||||
hackspeed_cache="$(mktemp -p '' hackspeed_cache.XXXXX)"
|
||||
trap 'rm "$hackspeed_cache"' EXIT
|
||||
|
||||
# Write a dot to our cache for each key press
|
||||
printf '' > "$hackspeed_cache"
|
||||
xinput test "$KEYBOARD_ID" | \
|
||||
stdbuf -o0 awk '$1 == "key" && $2 == "press" && ('"$CONDITION"') {printf "."}' >> "$hackspeed_cache" &
|
||||
|
||||
while true; do
|
||||
# Ask the kernel how big the file is with the command `stat`. The number we
|
||||
# get is the file size in bytes, which equals the amount of dots the file
|
||||
# contains, and hence how much keys were pressed since the file was last
|
||||
# cleared.
|
||||
lines=$(stat --format %s "$hackspeed_cache")
|
||||
|
||||
# Truncate the cache file so that in the next iteration, we count only new
|
||||
# keypresses
|
||||
printf '' > "$hackspeed_cache"
|
||||
|
||||
# The shell only does integer operations, so make sure to first multiply and
|
||||
# then divide
|
||||
value=$((lines * multiply_by / divide_by))
|
||||
|
||||
printf "$FORMAT\\n" "$value"
|
||||
|
||||
sleep $INTERVAL
|
||||
done
|
||||
@@ -0,0 +1,13 @@
|
||||
#test-fonts.pl
|
||||
use strict;
|
||||
use warnings;
|
||||
use Font::FreeType;
|
||||
my ($char) = @ARGV;
|
||||
foreach my $font_def (`fc-list`) {
|
||||
my ($file, $name) = split(/: /, $font_def);
|
||||
my $face = Font::FreeType->new->face($file);
|
||||
my $glyph = $face->glyph_from_char($char);
|
||||
if ($glyph) {
|
||||
print $font_def;
|
||||
}
|
||||
}
|
||||
Executable
+88
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
get_icon() {
|
||||
case $1 in
|
||||
01d) icon="🟠";;
|
||||
01n) icon="⚫";;
|
||||
02d) icon="⛅";;
|
||||
02n) icon="⛅";;
|
||||
04d) icon="🌥️";;
|
||||
04n) icon="🌥️";;
|
||||
09d) icon="🌧️";;
|
||||
09n) icon="🌧️";;
|
||||
10d) icon="🌦️";;
|
||||
10n) icon="🌦️";;
|
||||
11d) icon="🌩️";;
|
||||
11n) icon="🌩️";;
|
||||
13d) icon="❄️";;
|
||||
13n) icon="❄️";;
|
||||
50d) icon="🌫️";;
|
||||
50n) icon="🌫️";;
|
||||
*) icon="☁️";
|
||||
esac
|
||||
|
||||
echo $icon
|
||||
}
|
||||
|
||||
get_duration() {
|
||||
|
||||
osname=$(uname -s)
|
||||
|
||||
case $osname in
|
||||
*BSD) date -r "$1" -u +%H:%M;;
|
||||
*) date --date="@$1" -u +%H:%M;;
|
||||
esac
|
||||
|
||||
}
|
||||
|
||||
KEY=""
|
||||
CITY=""
|
||||
UNITS="metric"
|
||||
SYMBOL="°"
|
||||
|
||||
API="https://api.openweathermap.org/data/2.5"
|
||||
|
||||
if [ ! -z $CITY ]; then
|
||||
if [ "$CITY" -eq "$CITY" ] 2>/dev/null; then
|
||||
CITY_PARAM="id=$CITY"
|
||||
else
|
||||
CITY_PARAM="q=$CITY"
|
||||
fi
|
||||
|
||||
current=$(curl -sf "$API/weather?appid=$KEY&$CITY_PARAM&units=$UNITS")
|
||||
#curl -s "https://api.openweathermap.org/data/2.5/onecall?lat=0&lon=0&appid=TOKEN&units=metric" | jq -r '.daily[1].temp.day'
|
||||
forecast=$(curl -sf "$API/forecast?appid=$KEY&$CITY_PARAM&units=$UNITS&cnt=1")
|
||||
else
|
||||
location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue)
|
||||
|
||||
if [ ! -z "$location" ]; then
|
||||
location_lat="$(echo "$location" | jq '.location.lat')"
|
||||
location_lon="$(echo "$location" | jq '.location.lng')"
|
||||
|
||||
current=$(curl -sf "$API/weather?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS")
|
||||
forecast=$(curl -sf "$API/forecast?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS&cnt=1")
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$current" ] && [ ! -z "$forecast" ]; then
|
||||
current_temp=$(printf "%.0f" $(echo "$current" | jq ".main.temp"))
|
||||
current_icon=$(echo "$current" | jq -r ".weather[0].icon")
|
||||
|
||||
forecast_temp=$(printf "%.0f" $(echo "$forecast" | jq ".list[].main.temp"))
|
||||
forecast_icon=$(echo "$forecast" | jq -r ".list[].weather[0].icon")
|
||||
|
||||
sun_rise=$(echo "$current" | jq ".sys.sunrise")
|
||||
sun_set=$(echo "$current" | jq ".sys.sunset")
|
||||
now=$(date +%s)
|
||||
|
||||
if [ "$sun_rise" -gt "$now" ]; then
|
||||
daytime="🌅 $(get_duration "$((sun_rise-now))")"
|
||||
elif [ "$sun_set" -gt "$now" ]; then
|
||||
daytime="🌇 $(get_duration "$((sun_set-now))")"
|
||||
else
|
||||
daytime="🌅 $(get_duration "$((sun_rise-now))")"
|
||||
fi
|
||||
|
||||
echo "$(get_icon "$current_icon") $current_temp$SYMBOL $(get_icon "$forecast_icon") $forecast_temp$SYMBOL $daytime"
|
||||
fi
|
||||
@@ -0,0 +1,176 @@
|
||||
# Ivaylo Kuzev <ivkuzev@gmail.com>, 2014
|
||||
# Zenburn like colorscheme for https://github.com/hut/ranger .
|
||||
|
||||
# default colorscheme.
|
||||
# Copyright (C) 2009-2013 Roman Zimbelmann <hut@lepus.uberspace.de>
|
||||
# This software is distributed under the terms of the GNU GPL version 3.
|
||||
|
||||
from ranger.gui.colorscheme import ColorScheme
|
||||
from ranger.gui.color import default_colors, reverse, bold, normal, default
|
||||
|
||||
|
||||
# pylint: disable=too-many-branches,too-many-statements
|
||||
class Gotham(ColorScheme):
|
||||
progress_bar_color = 108
|
||||
|
||||
def use(self, context):
|
||||
fg, bg, attr = default_colors
|
||||
|
||||
if context.reset:
|
||||
return default_colors
|
||||
|
||||
elif context.in_browser:
|
||||
if context.selected:
|
||||
attr = reverse
|
||||
else:
|
||||
attr = normal
|
||||
if context.empty or context.error:
|
||||
attr |= bold
|
||||
fg = 232
|
||||
bg = 124
|
||||
if context.border:
|
||||
fg = 7
|
||||
if context.image: # spellbinder
|
||||
fg = 208
|
||||
if context.video:
|
||||
fg = 66
|
||||
if context.audio: # shriek
|
||||
fg = 45
|
||||
bg = 231
|
||||
if context.document:
|
||||
fg = 15
|
||||
if context.container: # ra's al ghul in talia's body
|
||||
attr |= bold
|
||||
fg = 141
|
||||
bg = 28
|
||||
if context.directory:
|
||||
attr |= bold
|
||||
fg = 124
|
||||
# simon harper
|
||||
elif context.executable and not \
|
||||
any((context.media, context.container,
|
||||
context.fifo, context.socket)):
|
||||
attr |= bold
|
||||
fg = 94
|
||||
if context.socket: # chronos
|
||||
fg = 40
|
||||
attr |= bold
|
||||
if context.fifo or context.device: # inque
|
||||
fg = 16
|
||||
bg = 18
|
||||
if context.device:
|
||||
attr |= bold
|
||||
if context.link: # hush, dick grayson clone
|
||||
fg = 20
|
||||
bg = 247 if context.good else 196
|
||||
if context.bad:
|
||||
bg = 232
|
||||
if context.tag_marker and not context.selected:
|
||||
attr |= bold
|
||||
# if fg is empty/error or badinfo
|
||||
if fg in (232, 196):
|
||||
fg = 248
|
||||
else:
|
||||
fg = 174
|
||||
if not context.selected and (context.cut or context.copied):
|
||||
fg = 108
|
||||
bg = 234
|
||||
if context.main_column:
|
||||
if context.selected:
|
||||
attr |= bold
|
||||
if context.marked:
|
||||
attr |= bold
|
||||
fg = 223
|
||||
if context.badinfo:
|
||||
if attr & reverse:
|
||||
bg = 196
|
||||
else:
|
||||
fg = 196
|
||||
|
||||
elif context.in_titlebar:
|
||||
attr |= bold
|
||||
if context.hostname:
|
||||
fg = 124
|
||||
if context.bad:
|
||||
attr |= reverse
|
||||
elif context.directory:
|
||||
fg = 124
|
||||
elif context.tab:
|
||||
if context.good:
|
||||
bg = 150
|
||||
elif context.link:
|
||||
fg = 20
|
||||
|
||||
elif context.in_statusbar:
|
||||
if context.permissions:
|
||||
if context.good:
|
||||
fg = 124
|
||||
elif context.bad:
|
||||
bg = 124
|
||||
fg = 16
|
||||
if context.marked:
|
||||
attr |= bold | reverse
|
||||
fg = 223
|
||||
if context.message:
|
||||
if context.bad:
|
||||
attr |= bold
|
||||
fg = 16
|
||||
bg = 124
|
||||
if context.loaded:
|
||||
bg = self.progress_bar_color
|
||||
if context.vcsinfo:
|
||||
fg = 124
|
||||
attr &= ~bold
|
||||
if context.vcscommit:
|
||||
fg = 124
|
||||
attr &= ~bold
|
||||
|
||||
if context.text:
|
||||
if context.highlight:
|
||||
attr |= reverse
|
||||
|
||||
if context.in_taskview:
|
||||
if context.title:
|
||||
fg = 116
|
||||
|
||||
if context.selected:
|
||||
attr |= reverse
|
||||
|
||||
if context.loaded:
|
||||
if context.selected:
|
||||
fg = self.progress_bar_color
|
||||
else:
|
||||
bg = self.progress_bar_color
|
||||
|
||||
if context.vcsfile and not context.selected:
|
||||
attr &= ~bold
|
||||
if context.vcsconflict:
|
||||
fg = 16
|
||||
bg = 124
|
||||
elif context.vcschanged:
|
||||
fg = 124
|
||||
elif context.vcsunknown:
|
||||
#fg = 246
|
||||
fg = 200
|
||||
elif context.vcsstaged:
|
||||
fg = 40
|
||||
elif context.vcssync:
|
||||
fg = 124
|
||||
elif context.vcsignored:
|
||||
fg = default
|
||||
|
||||
elif context.vcsremote and not context.selected:
|
||||
attr &= ~bold
|
||||
if context.vcssync:
|
||||
fg = 124
|
||||
elif context.vcsbehind:
|
||||
fg = 15
|
||||
elif context.vcsahead:
|
||||
fg = 20
|
||||
elif context.vcsdiverged:
|
||||
fg = 16
|
||||
bg = 124
|
||||
elif context.vcsunknown:
|
||||
fg = 247
|
||||
|
||||
return fg, bg, attr
|
||||
@@ -0,0 +1,761 @@
|
||||
# ===================================================================
|
||||
# This file contains the default startup commands for ranger.
|
||||
# To change them, it is recommended to create either /etc/ranger/rc.conf
|
||||
# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
|
||||
# commands there.
|
||||
#
|
||||
# If you copy this whole file there, you may want to set the environment
|
||||
# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
|
||||
#
|
||||
# The purpose of this file is mainly to define keybindings and settings.
|
||||
# For running more complex python code, please create a plugin in "plugins/" or
|
||||
# a command in "commands.py".
|
||||
#
|
||||
# Each line is a command that will be run before the user interface
|
||||
# is initialized. As a result, you can not use commands which rely
|
||||
# on the UI such as :delete or :mark.
|
||||
# ===================================================================
|
||||
|
||||
# ===================================================================
|
||||
# == Options
|
||||
# ===================================================================
|
||||
|
||||
# Which viewmode should be used? Possible values are:
|
||||
# miller: Use miller columns which show multiple levels of the hierarchy
|
||||
# multipane: Midnight-commander like multipane view showing all tabs next
|
||||
# to each other
|
||||
set viewmode miller
|
||||
#set viewmode multipane
|
||||
|
||||
# How many columns are there, and what are their relative widths?
|
||||
set column_ratios 1,3,4
|
||||
|
||||
# Which files should be hidden? (regular expression)
|
||||
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
|
||||
|
||||
# Show hidden files? You can toggle this by typing 'zh'
|
||||
set show_hidden true
|
||||
|
||||
# Ask for a confirmation when running the "delete" command?
|
||||
# Valid values are "always", "never", "multiple" (default)
|
||||
# With "multiple", ranger will ask only if you delete multiple files at once.
|
||||
set confirm_on_delete multiple
|
||||
|
||||
# Use non-default path for file preview script?
|
||||
# ranger ships with scope.sh, a script that calls external programs (see
|
||||
# README.md for dependencies) to preview images, archives, etc.
|
||||
#set preview_script ~/.config/ranger/scope.sh
|
||||
|
||||
# Use the external preview script or display simple plain text or image previews?
|
||||
set use_preview_script true
|
||||
|
||||
# Automatically count files in the directory, even before entering them?
|
||||
set automatically_count_files true
|
||||
|
||||
# Open all images in this directory when running certain image viewers
|
||||
# like feh or sxiv? You can still open selected files by marking them.
|
||||
set open_all_images true
|
||||
|
||||
# Be aware of version control systems and display information.
|
||||
set vcs_aware true
|
||||
|
||||
# State of the four backends git, hg, bzr, svn. The possible states are
|
||||
# disabled, local (only show local info), enabled (show local and remote
|
||||
# information).
|
||||
set vcs_backend_git enabled
|
||||
set vcs_backend_hg disabled
|
||||
set vcs_backend_bzr disabled
|
||||
set vcs_backend_svn disabled
|
||||
|
||||
# Truncate the long commit messages to this length when shown in the statusbar.
|
||||
set vcs_msg_length 50
|
||||
|
||||
# Use one of the supported image preview protocols
|
||||
set preview_images true
|
||||
|
||||
# Set the preview image method. Supported methods:
|
||||
#
|
||||
# * w3m (default):
|
||||
# Preview images in full color with the external command "w3mimgpreview"?
|
||||
# This requires the console web browser "w3m" and a supported terminal.
|
||||
# It has been successfully tested with "xterm" and "urxvt" without tmux.
|
||||
#
|
||||
# * iterm2:
|
||||
# Preview images in full color using iTerm2 image previews
|
||||
# (http://iterm2.com/images.html). This requires using iTerm2 compiled
|
||||
# with image preview support.
|
||||
#
|
||||
# This feature relies on the dimensions of the terminal's font. By default, a
|
||||
# width of 8 and height of 11 are used. To use other values, set the options
|
||||
# iterm2_font_width and iterm2_font_height to the desired values.
|
||||
#
|
||||
# * terminology:
|
||||
# Previews images in full color in the terminology terminal emulator.
|
||||
# Supports a wide variety of formats, even vector graphics like svg.
|
||||
#
|
||||
# * urxvt:
|
||||
# Preview images in full color using urxvt image backgrounds. This
|
||||
# requires using urxvt compiled with pixbuf support.
|
||||
#
|
||||
# * urxvt-full:
|
||||
# The same as urxvt but utilizing not only the preview pane but the
|
||||
# whole terminal window.
|
||||
#
|
||||
# * kitty:
|
||||
# Preview images in full color using kitty image protocol.
|
||||
# Requires python PIL or pillow library.
|
||||
# If ranger does not share the local filesystem with kitty
|
||||
# the transfer method is changed to encode the whole image;
|
||||
# while slower, this allows remote previews,
|
||||
# for example during an ssh session.
|
||||
# Tmux is unsupported.
|
||||
#
|
||||
# * ueberzug:
|
||||
# Preview images in full color with the external command "ueberzug".
|
||||
# Images are shown by using a child window.
|
||||
# Only for users who run X11 in GNU/Linux.
|
||||
set preview_images_method ueberzug
|
||||
|
||||
# Delay in seconds before displaying an image with the w3m method.
|
||||
# Increase it in case of experiencing display corruption.
|
||||
set w3m_delay 0.02
|
||||
|
||||
# Manually adjust the w3mimg offset when using a terminal which needs this
|
||||
set w3m_offset 0
|
||||
|
||||
# Default iTerm2 font size (see: preview_images_method: iterm2)
|
||||
set iterm2_font_width 8
|
||||
set iterm2_font_height 11
|
||||
|
||||
# Use a unicode "..." character to mark cut-off filenames?
|
||||
set unicode_ellipsis false
|
||||
|
||||
# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic).
|
||||
# Requires the python-bidi pip package
|
||||
set bidi_support false
|
||||
|
||||
# Show dotfiles in the bookmark preview box?
|
||||
set show_hidden_bookmarks true
|
||||
|
||||
# Which colorscheme to use? These colorschemes are available by default:
|
||||
# default, jungle, snow, solarized
|
||||
#set colorscheme zenburn
|
||||
#set colorscheme default
|
||||
set colorscheme gotham-2019
|
||||
|
||||
# Preview files on the rightmost column?
|
||||
# And collapse (shrink) the last column if there is nothing to preview?
|
||||
set preview_files true
|
||||
set preview_directories true
|
||||
set collapse_preview true
|
||||
|
||||
# Wrap long lines in plain text previews?
|
||||
set wrap_plaintext_previews false
|
||||
|
||||
# Save the console history on exit?
|
||||
set save_console_history true
|
||||
|
||||
# Draw the status bar on top of the browser window (default: bottom)
|
||||
set status_bar_on_top false
|
||||
|
||||
# Draw a progress bar in the status bar which displays the average state of all
|
||||
# currently running tasks which support progress bars?
|
||||
set draw_progress_bar_in_status_bar true
|
||||
|
||||
# Draw borders around columns? (separators, outline, both, or none)
|
||||
# Separators are vertical lines between columns.
|
||||
# Outline draws a box around all the columns.
|
||||
# Both combines the two.
|
||||
set draw_borders both
|
||||
|
||||
# Display the directory name in tabs?
|
||||
set dirname_in_tabs true
|
||||
|
||||
# Enable the mouse support?
|
||||
set mouse_enabled true
|
||||
|
||||
# Display the file size in the main column or status bar?
|
||||
set display_size_in_main_column true
|
||||
set display_size_in_status_bar true
|
||||
|
||||
# Display the free disk space in the status bar?
|
||||
set display_free_space_in_status_bar true
|
||||
|
||||
# Display files tags in all columns or only in main column?
|
||||
set display_tags_in_all_columns true
|
||||
|
||||
# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME`
|
||||
set update_title true
|
||||
|
||||
# Set the tmux/screen window-name to "ranger"?
|
||||
set update_tmux_title true
|
||||
|
||||
# Shorten the title if it gets long? The number defines how many
|
||||
# directories are displayed at once, 0 turns off this feature.
|
||||
set shorten_title 3
|
||||
|
||||
# Show hostname in titlebar?
|
||||
set hostname_in_titlebar true
|
||||
|
||||
# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
|
||||
set tilde_in_titlebar true
|
||||
|
||||
# How many directory-changes or console-commands should be kept in history?
|
||||
set max_history_size 20
|
||||
set max_console_history_size 50
|
||||
|
||||
# Try to keep so much space between the top/bottom border when scrolling:
|
||||
set scroll_offset 8
|
||||
|
||||
# Flush the input after each key hit? (Noticeable when ranger lags)
|
||||
set flushinput true
|
||||
|
||||
# Padding on the right when there's no preview?
|
||||
# This allows you to click into the space to run the file.
|
||||
set padding_right true
|
||||
|
||||
# Save bookmarks (used with mX and `X) instantly?
|
||||
# This helps to synchronize bookmarks between multiple ranger
|
||||
# instances but leads to *slight* performance loss.
|
||||
# When false, bookmarks are saved when ranger is exited.
|
||||
set autosave_bookmarks true
|
||||
|
||||
# Save the "`" bookmark to disk. This can be used to switch to the last
|
||||
# directory by typing "``".
|
||||
set save_backtick_bookmark true
|
||||
|
||||
# You can display the "real" cumulative size of directories by using the
|
||||
# command :get_cumulative_size or typing "dc". The size is expensive to
|
||||
# calculate and will not be updated automatically. You can choose
|
||||
# to update it automatically though by turning on this option:
|
||||
set autoupdate_cumulative_size false
|
||||
|
||||
# Turning this on makes sense for screen readers:
|
||||
set show_cursor false
|
||||
|
||||
# One of: size, natural, basename, atime, ctime, mtime, type, random
|
||||
set sort natural
|
||||
|
||||
# Additional sorting options
|
||||
set sort_reverse false
|
||||
set sort_case_insensitive true
|
||||
set sort_directories_first true
|
||||
set sort_unicode false
|
||||
|
||||
# Enable this if key combinations with the Alt Key don't work for you.
|
||||
# (Especially on xterm)
|
||||
set xterm_alt_key false
|
||||
|
||||
# Whether to include bookmarks in cd command
|
||||
set cd_bookmarks true
|
||||
|
||||
# Changes case sensitivity for the cd command tab completion
|
||||
set cd_tab_case sensitive
|
||||
|
||||
# Use fuzzy tab completion with the "cd" command. For example,
|
||||
# ":cd /u/lo/b<tab>" expands to ":cd /usr/local/bin".
|
||||
set cd_tab_fuzzy false
|
||||
|
||||
# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
|
||||
# disable this feature.
|
||||
set preview_max_size 0
|
||||
|
||||
# The key hint lists up to this size have their sublists expanded.
|
||||
# Otherwise the submaps are replaced with "...".
|
||||
set hint_collapse_threshold 10
|
||||
|
||||
# Add the highlighted file to the path in the titlebar
|
||||
set show_selection_in_titlebar true
|
||||
|
||||
# The delay that ranger idly waits for user input, in milliseconds, with a
|
||||
# resolution of 100ms. Lower delay reduces lag between directory updates but
|
||||
# increases CPU load.
|
||||
set idle_delay 2000
|
||||
|
||||
# When the metadata manager module looks for metadata, should it only look for
|
||||
# a ".metadata.json" file in the current directory, or do a deep search and
|
||||
# check all directories above the current one as well?
|
||||
set metadata_deep_search false
|
||||
|
||||
# Clear all existing filters when leaving a directory
|
||||
set clear_filters_on_dir_change false
|
||||
|
||||
# Disable displaying line numbers in main column.
|
||||
# Possible values: false, absolute, relative.
|
||||
set line_numbers absolute
|
||||
|
||||
# When line_numbers=relative show the absolute line number in the
|
||||
# current line.
|
||||
set relative_current_zero false
|
||||
|
||||
# Start line numbers from 1 instead of 0
|
||||
set one_indexed false
|
||||
|
||||
# Save tabs on exit
|
||||
set save_tabs_on_exit false
|
||||
|
||||
# Enable scroll wrapping - moving down while on the last item will wrap around to
|
||||
# the top and vice versa.
|
||||
set wrap_scroll false
|
||||
|
||||
# Set the global_inode_type_filter to nothing. Possible options: d, f and l for
|
||||
# directories, files and symlinks respectively.
|
||||
set global_inode_type_filter
|
||||
|
||||
# This setting allows to freeze the list of files to save I/O bandwidth. It
|
||||
# should be 'false' during start-up, but you can toggle it by pressing F.
|
||||
set freeze_files false
|
||||
|
||||
# Print file sizes in bytes instead of the default human-readable format.
|
||||
set size_in_bytes false
|
||||
|
||||
# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words
|
||||
# give a warning when you nest ranger in a subshell started by ranger.
|
||||
# Special value "error" makes the warning more visible.
|
||||
set nested_ranger_warning true
|
||||
|
||||
# ===================================================================
|
||||
# == Local Options
|
||||
# ===================================================================
|
||||
# You can set local options that only affect a single directory.
|
||||
|
||||
# Examples:
|
||||
# setlocal path=~/downloads sort mtime
|
||||
|
||||
# ===================================================================
|
||||
# == Command Aliases in the Console
|
||||
# ===================================================================
|
||||
|
||||
alias e edit
|
||||
alias q quit
|
||||
alias q! quit!
|
||||
alias qa quitall
|
||||
alias qa! quitall!
|
||||
alias qall quitall
|
||||
alias qall! quitall!
|
||||
alias setl setlocal
|
||||
|
||||
alias filter scout -prts
|
||||
alias find scout -aets
|
||||
alias mark scout -mr
|
||||
alias unmark scout -Mr
|
||||
alias search scout -rs
|
||||
alias search_inc scout -rts
|
||||
alias travel scout -aefklst
|
||||
|
||||
# ===================================================================
|
||||
# == Define keys for the browser
|
||||
# ===================================================================
|
||||
|
||||
# Basic
|
||||
map Q quitall
|
||||
map q quit
|
||||
copymap q ZZ ZQ
|
||||
|
||||
map R reload_cwd
|
||||
map F set freeze_files!
|
||||
map <C-r> reset
|
||||
map <C-l> redraw_window
|
||||
map <C-c> abort
|
||||
map <esc> change_mode normal
|
||||
map ~ set viewmode!
|
||||
|
||||
map i display_file
|
||||
map <A-j> scroll_preview 1
|
||||
map <A-k> scroll_preview -1
|
||||
map ? help
|
||||
map W display_log
|
||||
map w taskview_open
|
||||
map S shell $SHELL
|
||||
|
||||
map : console
|
||||
map ; console
|
||||
map ! console shell%space
|
||||
map @ console -p6 shell %%s
|
||||
map # console shell -p%space
|
||||
map s console shell%space
|
||||
map r chain draw_possible_programs; console open_with%space
|
||||
map f console find%space
|
||||
map cd console cd%space
|
||||
|
||||
map <C-p> chain console; eval fm.ui.console.history_move(-1)
|
||||
|
||||
# Change the line mode
|
||||
map Mf linemode filename
|
||||
map Mi linemode fileinfo
|
||||
map Mm linemode mtime
|
||||
map Mh linemode humanreadablemtime
|
||||
map Mp linemode permissions
|
||||
map Ms linemode sizemtime
|
||||
map MH linemode sizehumanreadablemtime
|
||||
map Mt linemode metatitle
|
||||
|
||||
# Tagging / Marking
|
||||
map t tag_toggle
|
||||
map ut tag_remove
|
||||
map "<any> tag_toggle tag=%any
|
||||
map <Space> mark_files toggle=True
|
||||
map v mark_files all=True toggle=True
|
||||
map uv mark_files all=True val=False
|
||||
map V toggle_visual_mode
|
||||
map uV toggle_visual_mode reverse=True
|
||||
|
||||
# For the nostalgics: Midnight Commander bindings
|
||||
map <F1> help
|
||||
map <F2> rename_append
|
||||
map <F3> display_file
|
||||
map <F4> edit
|
||||
map <F5> copy
|
||||
map <F6> cut
|
||||
map <F7> console mkdir%space
|
||||
map <F8> console delete
|
||||
#map <F8> console trash
|
||||
map <F10> exit
|
||||
|
||||
# In case you work on a keyboard with dvorak layout
|
||||
map <UP> move up=1
|
||||
map <DOWN> move down=1
|
||||
map <LEFT> move left=1
|
||||
map <RIGHT> move right=1
|
||||
map <HOME> move to=0
|
||||
map <END> move to=-1
|
||||
map <PAGEDOWN> move down=1 pages=True
|
||||
map <PAGEUP> move up=1 pages=True
|
||||
map <CR> move right=1
|
||||
#map <DELETE> console delete
|
||||
map <INSERT> console touch%space
|
||||
|
||||
# VIM-like
|
||||
copymap <UP> k
|
||||
copymap <DOWN> j
|
||||
copymap <LEFT> h
|
||||
copymap <RIGHT> l
|
||||
copymap <HOME> gg
|
||||
copymap <END> G
|
||||
copymap <PAGEDOWN> <C-F>
|
||||
copymap <PAGEUP> <C-B>
|
||||
|
||||
map J move down=0.5 pages=True
|
||||
map K move up=0.5 pages=True
|
||||
copymap J <C-D>
|
||||
copymap K <C-U>
|
||||
|
||||
# Jumping around
|
||||
map H history_go -1
|
||||
map L history_go 1
|
||||
map ] move_parent 1
|
||||
map [ move_parent -1
|
||||
map } traverse
|
||||
map { traverse_backwards
|
||||
map ) jump_non
|
||||
|
||||
map gh cd ~
|
||||
map ge cd /etc
|
||||
map gu cd /usr
|
||||
map gd cd /dev
|
||||
map gl cd -r .
|
||||
map gL cd -r %f
|
||||
map go cd /opt
|
||||
map gv cd /var
|
||||
map gm cd /media
|
||||
map gi eval fm.cd('/run/media/' + os.getenv('USER'))
|
||||
map gM cd /mnt
|
||||
map gs cd /srv
|
||||
map gp cd /tmp
|
||||
map gr cd /
|
||||
map gR eval fm.cd(ranger.RANGERDIR)
|
||||
map g/ cd /
|
||||
map g? cd /usr/share/doc/ranger
|
||||
|
||||
# External Programs
|
||||
map E edit
|
||||
map du shell -p du --max-depth=1 -h --apparent-size
|
||||
map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
|
||||
map yp yank path
|
||||
map yd yank dir
|
||||
map yn yank name
|
||||
map y. yank name_without_extension
|
||||
|
||||
# Filesystem Operations
|
||||
map = chmod
|
||||
|
||||
map cw console rename%space
|
||||
map a rename_append
|
||||
map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
|
||||
map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
|
||||
|
||||
map pp paste
|
||||
map po paste overwrite=True
|
||||
map pP paste append=True
|
||||
map pO paste overwrite=True append=True
|
||||
map pl paste_symlink relative=False
|
||||
map pL paste_symlink relative=True
|
||||
map phl paste_hardlink
|
||||
map pht paste_hardlinked_subtree
|
||||
map pd console paste dest=
|
||||
map p`<any> paste dest=%any_path
|
||||
map p'<any> paste dest=%any_path
|
||||
|
||||
map dD console delete
|
||||
map dT console trash
|
||||
|
||||
map dd cut
|
||||
map ud uncut
|
||||
map da cut mode=add
|
||||
map dr cut mode=remove
|
||||
map dt cut mode=toggle
|
||||
|
||||
map yy copy
|
||||
map uy uncut
|
||||
map ya copy mode=add
|
||||
map yr copy mode=remove
|
||||
map yt copy mode=toggle
|
||||
|
||||
# Temporary workarounds
|
||||
map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
|
||||
map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
|
||||
map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
|
||||
map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
|
||||
map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
|
||||
map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
|
||||
map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
|
||||
map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
|
||||
|
||||
# Searching
|
||||
map / console search%space
|
||||
map n search_next
|
||||
map N search_next forward=False
|
||||
map ct search_next order=tag
|
||||
map cs search_next order=size
|
||||
map ci search_next order=mimetype
|
||||
map cc search_next order=ctime
|
||||
map cm search_next order=mtime
|
||||
map ca search_next order=atime
|
||||
|
||||
# Tabs
|
||||
map <C-n> tab_new
|
||||
map <C-w> tab_close
|
||||
map <TAB> tab_move 1
|
||||
map <S-TAB> tab_move -1
|
||||
map <A-Right> tab_move 1
|
||||
map <A-Left> tab_move -1
|
||||
map gt tab_move 1
|
||||
map gT tab_move -1
|
||||
map gn tab_new
|
||||
map gc tab_close
|
||||
map uq tab_restore
|
||||
map <a-1> tab_open 1
|
||||
map <a-2> tab_open 2
|
||||
map <a-3> tab_open 3
|
||||
map <a-4> tab_open 4
|
||||
map <a-5> tab_open 5
|
||||
map <a-6> tab_open 6
|
||||
map <a-7> tab_open 7
|
||||
map <a-8> tab_open 8
|
||||
map <a-9> tab_open 9
|
||||
map <a-r> tab_shift 1
|
||||
map <a-l> tab_shift -1
|
||||
|
||||
# Sorting
|
||||
map or set sort_reverse!
|
||||
map oz set sort=random
|
||||
map os chain set sort=size; set sort_reverse=False
|
||||
map ob chain set sort=basename; set sort_reverse=False
|
||||
map on chain set sort=natural; set sort_reverse=False
|
||||
map om chain set sort=mtime; set sort_reverse=False
|
||||
map oc chain set sort=ctime; set sort_reverse=False
|
||||
map oa chain set sort=atime; set sort_reverse=False
|
||||
map ot chain set sort=type; set sort_reverse=False
|
||||
map oe chain set sort=extension; set sort_reverse=False
|
||||
|
||||
map oS chain set sort=size; set sort_reverse=True
|
||||
map oB chain set sort=basename; set sort_reverse=True
|
||||
map oN chain set sort=natural; set sort_reverse=True
|
||||
map oM chain set sort=mtime; set sort_reverse=True
|
||||
map oC chain set sort=ctime; set sort_reverse=True
|
||||
map oA chain set sort=atime; set sort_reverse=True
|
||||
map oT chain set sort=type; set sort_reverse=True
|
||||
map oE chain set sort=extension; set sort_reverse=True
|
||||
|
||||
map dc get_cumulative_size
|
||||
|
||||
# Settings
|
||||
map zc set collapse_preview!
|
||||
map zd set sort_directories_first!
|
||||
map zh set show_hidden!
|
||||
map <C-h> set show_hidden!
|
||||
copymap <C-h> <backspace>
|
||||
copymap <backspace> <backspace2>
|
||||
map zI set flushinput!
|
||||
map zi set preview_images!
|
||||
map zm set mouse_enabled!
|
||||
map zp set preview_files!
|
||||
map zP set preview_directories!
|
||||
map zs set sort_case_insensitive!
|
||||
map zu set autoupdate_cumulative_size!
|
||||
map zv set use_preview_script!
|
||||
map zf console filter%space
|
||||
copymap zf zz
|
||||
|
||||
# Filter stack
|
||||
map .d filter_stack add type d
|
||||
map .f filter_stack add type f
|
||||
map .l filter_stack add type l
|
||||
map .m console filter_stack add mime%space
|
||||
map .n console filter_stack add name%space
|
||||
map .# console filter_stack add hash%space
|
||||
map ." filter_stack add duplicate
|
||||
map .' filter_stack add unique
|
||||
map .| filter_stack add or
|
||||
map .& filter_stack add and
|
||||
map .! filter_stack add not
|
||||
map .r filter_stack rotate
|
||||
map .c filter_stack clear
|
||||
map .* filter_stack decompose
|
||||
map .p filter_stack pop
|
||||
map .. filter_stack show
|
||||
|
||||
# Bookmarks
|
||||
map `<any> enter_bookmark %any
|
||||
map '<any> enter_bookmark %any
|
||||
map m<any> set_bookmark %any
|
||||
map um<any> unset_bookmark %any
|
||||
|
||||
map m<bg> draw_bookmarks
|
||||
copymap m<bg> um<bg> `<bg> '<bg>
|
||||
|
||||
# Generate all the chmod bindings with some python help:
|
||||
eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg))
|
||||
|
||||
eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
|
||||
eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
|
||||
|
||||
# ===================================================================
|
||||
# == Define keys for the console
|
||||
# ===================================================================
|
||||
# Note: Unmapped keys are passed directly to the console.
|
||||
|
||||
# Basic
|
||||
cmap <tab> eval fm.ui.console.tab()
|
||||
cmap <s-tab> eval fm.ui.console.tab(-1)
|
||||
cmap <ESC> eval fm.ui.console.close()
|
||||
cmap <CR> eval fm.ui.console.execute()
|
||||
cmap <C-l> redraw_window
|
||||
|
||||
copycmap <ESC> <C-c>
|
||||
copycmap <CR> <C-j>
|
||||
|
||||
# Move around
|
||||
cmap <up> eval fm.ui.console.history_move(-1)
|
||||
cmap <down> eval fm.ui.console.history_move(1)
|
||||
cmap <left> eval fm.ui.console.move(left=1)
|
||||
cmap <right> eval fm.ui.console.move(right=1)
|
||||
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
|
||||
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
|
||||
cmap <a-b> eval fm.ui.console.move_word(left=1)
|
||||
cmap <a-f> eval fm.ui.console.move_word(right=1)
|
||||
|
||||
copycmap <a-b> <a-left>
|
||||
copycmap <a-f> <a-right>
|
||||
|
||||
# Line Editing
|
||||
cmap <backspace> eval fm.ui.console.delete(-1)
|
||||
cmap <delete> eval fm.ui.console.delete(0)
|
||||
cmap <C-w> eval fm.ui.console.delete_word()
|
||||
cmap <A-d> eval fm.ui.console.delete_word(backward=False)
|
||||
cmap <C-k> eval fm.ui.console.delete_rest(1)
|
||||
cmap <C-u> eval fm.ui.console.delete_rest(-1)
|
||||
cmap <C-y> eval fm.ui.console.paste()
|
||||
|
||||
# And of course the emacs way
|
||||
copycmap <ESC> <C-g>
|
||||
copycmap <up> <C-p>
|
||||
copycmap <down> <C-n>
|
||||
copycmap <left> <C-b>
|
||||
copycmap <right> <C-f>
|
||||
copycmap <home> <C-a>
|
||||
copycmap <end> <C-e>
|
||||
copycmap <delete> <C-d>
|
||||
copycmap <backspace> <C-h>
|
||||
|
||||
# Note: There are multiple ways to express backspaces. <backspace> (code 263)
|
||||
# and <backspace2> (code 127). To be sure, use both.
|
||||
copycmap <backspace> <backspace2>
|
||||
|
||||
# This special expression allows typing in numerals:
|
||||
cmap <allow_quantifiers> false
|
||||
|
||||
# ===================================================================
|
||||
# == Pager Keybindings
|
||||
# ===================================================================
|
||||
|
||||
# Movement
|
||||
pmap <down> pager_move down=1
|
||||
pmap <up> pager_move up=1
|
||||
pmap <left> pager_move left=4
|
||||
pmap <right> pager_move right=4
|
||||
pmap <home> pager_move to=0
|
||||
pmap <end> pager_move to=-1
|
||||
pmap <pagedown> pager_move down=1.0 pages=True
|
||||
pmap <pageup> pager_move up=1.0 pages=True
|
||||
pmap <C-d> pager_move down=0.5 pages=True
|
||||
pmap <C-u> pager_move up=0.5 pages=True
|
||||
|
||||
copypmap <UP> k <C-p>
|
||||
copypmap <DOWN> j <C-n> <CR>
|
||||
copypmap <LEFT> h
|
||||
copypmap <RIGHT> l
|
||||
copypmap <HOME> g
|
||||
copypmap <END> G
|
||||
copypmap <C-d> d
|
||||
copypmap <C-u> u
|
||||
copypmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copypmap <PAGEUP> p b <C-B>
|
||||
|
||||
# Basic
|
||||
pmap <C-l> redraw_window
|
||||
pmap <ESC> pager_close
|
||||
copypmap <ESC> q Q i <F3>
|
||||
pmap E edit_file
|
||||
|
||||
# ===================================================================
|
||||
# == Taskview Keybindings
|
||||
# ===================================================================
|
||||
|
||||
# Movement
|
||||
tmap <up> taskview_move up=1
|
||||
tmap <down> taskview_move down=1
|
||||
tmap <home> taskview_move to=0
|
||||
tmap <end> taskview_move to=-1
|
||||
tmap <pagedown> taskview_move down=1.0 pages=True
|
||||
tmap <pageup> taskview_move up=1.0 pages=True
|
||||
tmap <C-d> taskview_move down=0.5 pages=True
|
||||
tmap <C-u> taskview_move up=0.5 pages=True
|
||||
|
||||
copytmap <UP> k <C-p>
|
||||
copytmap <DOWN> j <C-n> <CR>
|
||||
copytmap <HOME> g
|
||||
copytmap <END> G
|
||||
copytmap <C-u> u
|
||||
copytmap <PAGEDOWN> n f <C-F> <Space>
|
||||
copytmap <PAGEUP> p b <C-B>
|
||||
|
||||
# Changing priority and deleting tasks
|
||||
tmap J eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap K eval -q fm.ui.taskview.task_move(0)
|
||||
tmap dd eval -q fm.ui.taskview.task_remove()
|
||||
tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
|
||||
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
|
||||
tmap <delete> eval -q fm.ui.taskview.task_remove()
|
||||
|
||||
# Basic
|
||||
tmap <C-l> redraw_window
|
||||
tmap <ESC> taskview_close
|
||||
copytmap <ESC> q Q w <C-c>
|
||||
@@ -0,0 +1 @@
|
||||
rofi.theme: /usr/share/rofi/themes/gotham-2019.rasi
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
@import "/usr/share/rofi/themes/gotham-2019.rasi"
|
||||
@@ -0,0 +1,161 @@
|
||||
/************************************************
|
||||
* ROFI Color theme
|
||||
* User: dodd
|
||||
* Copyright: 2026 dodd
|
||||
* active-foreground: rgba ( 101, 172, 255, 100 % );
|
||||
* foreground: rgba ( 0, 203, 212, 100 % );
|
||||
***********************************************/
|
||||
|
||||
* {
|
||||
red: rgba ( 220, 50, 47, 100 % );
|
||||
dark: rgba ( 38, 139, 0, 100 % );
|
||||
darker: rgba ( 15, 18, 29, 45 % );
|
||||
black: rgba ( 0, 0, 0, 100 % );
|
||||
|
||||
spacing: 2;
|
||||
border-color: rgba ( 220, 50, 47, 80 % );
|
||||
//border-color: rgba ( 124, 131, 137, 100 % );
|
||||
separatorcolor: @darker;
|
||||
|
||||
lightfg: rgba ( 255, 104, 117, 100 % );
|
||||
lightbg: rgba ( 238, 232, 213, 100 % );
|
||||
|
||||
foreground: @red;
|
||||
background: @darker;
|
||||
|
||||
normal-foreground: @foreground;
|
||||
normal-background: @background;
|
||||
selected-normal-foreground: rgba ( 220, 50, 47, 100 % );
|
||||
selected-normal-background: rgba ( 125, 30, 30, 30 % );
|
||||
alternate-normal-foreground: @foreground;
|
||||
alternate-normal-background: rgba ( 30, 33, 44, 59 % );
|
||||
|
||||
active-foreground: @foreground;
|
||||
//active-background: rgba ( 29, 31, 33, 17 % );
|
||||
active-background: @darker;
|
||||
selected-active-foreground: rgba ( 249, 249, 249, 100 % );
|
||||
selected-active-background: @selected-normal-background;
|
||||
alternate-active-foreground: @active-foreground;
|
||||
alternate-active-background: rgba ( 0, 81, 96, 89 % );
|
||||
|
||||
urgent-foreground: rgba ( 204, 102, 102, 100 % );
|
||||
urgent-background: rgba ( 29, 31, 33, 17 % );
|
||||
selected-urgent-foreground: rgba ( 249, 249, 249, 100 % );
|
||||
selected-urgent-background: rgba ( 165, 66, 66, 100 % );
|
||||
alternate-urgent-foreground: @urgent-foreground;
|
||||
alternate-urgent-background: rgba ( 0, 81, 96, 90 % );
|
||||
}
|
||||
window {
|
||||
background-color: @background;
|
||||
border: 1;
|
||||
padding: 5;
|
||||
}
|
||||
mainbox {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
message {
|
||||
border: 2px 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
padding: 1px ;
|
||||
}
|
||||
textbox {
|
||||
text-color: @foreground;
|
||||
}
|
||||
listview {
|
||||
fixed-height: 0;
|
||||
border: 2px 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
spacing: 2px ;
|
||||
scrollbar: true;
|
||||
padding: 2px 0px 0px ;
|
||||
}
|
||||
element {
|
||||
border: 0;
|
||||
padding: 1px ;
|
||||
}
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
element.normal.normal {
|
||||
background-color: @normal-background;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
element.normal.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
element.normal.active {
|
||||
background-color: @active-background;
|
||||
text-color: @active-foreground;
|
||||
}
|
||||
element.selected.normal {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
element.selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @selected-urgent-foreground;
|
||||
}
|
||||
element.selected.active {
|
||||
background-color: @selected-active-background;
|
||||
text-color: @selected-active-foreground;
|
||||
}
|
||||
element.alternate.normal {
|
||||
background-color: @alternate-normal-background;
|
||||
text-color: @alternate-normal-foreground;
|
||||
}
|
||||
element.alternate.urgent {
|
||||
background-color: @alternate-urgent-background;
|
||||
text-color: @alternate-urgent-foreground;
|
||||
}
|
||||
element.alternate.active {
|
||||
background-color: @alternate-active-background;
|
||||
text-color: @alternate-active-foreground;
|
||||
}
|
||||
scrollbar {
|
||||
width: 4px ;
|
||||
border: 0;
|
||||
handle-color: @normal-foreground;
|
||||
handle-width: 8px ;
|
||||
padding: 0;
|
||||
}
|
||||
mode-switcher {
|
||||
border: 2px 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
}
|
||||
button {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
button.selected {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
inputbar {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
padding: 1px ;
|
||||
}
|
||||
case-indicator {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
entry {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
prompt {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
inputbar {
|
||||
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: "::";
|
||||
margin: 0px 0.3em 0em 0em ;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
# dev work
|
||||
dev:
|
||||
#!/usr/bin/bash
|
||||
REPO=$(basename $(git rev-parse --show-toplevel))
|
||||
BRANCH=$(git branch --show-current)
|
||||
tmux has-session -t "$REPO->$BRANCH"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
tmux attach-session -t "$REPO->$BRANCH"
|
||||
else
|
||||
tmux new-session -Ad -s "$REPO->$BRANCH"
|
||||
tmux rename-window "write"
|
||||
tmux new-window -a -t 1 -n "test"
|
||||
tmux new-window -a -t 2 -n "git" lazygit
|
||||
tmux new-window -a -t 3 -n "man"
|
||||
tmux select-window -t 2
|
||||
tmux select-window -t 1
|
||||
tmux attach -t "$REPO->$BRANCH"
|
||||
fi
|
||||
|
||||
# prep repo to be committed
|
||||
prep:
|
||||
mv justfile test_justfile
|
||||
mv prod_justfile justfile
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
let g:netrw_dirhistmax =10
|
||||
let g:netrw_dirhistcnt =6
|
||||
let g:netrw_dirhist_6='/Users/adamska/.vim/ftdetect'
|
||||
let g:netrw_dirhist_5='/Users/adamska/Documents/work/dotfiles/mac'
|
||||
let g:netrw_dirhist_4='/Users/adamska/Documents/work/dotfiles'
|
||||
let g:netrw_dirhist_3='/Users/adamska/Documents/work'
|
||||
let g:netrw_dirhist_2='/usr/share/vim/vim90'
|
||||
let g:netrw_dirhist_1='/Users/adamska/.vim'
|
||||
@@ -1,25 +0,0 @@
|
||||
" Vim color file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2001 Jul 23
|
||||
|
||||
" This is the default color scheme. It doesn't define the Normal
|
||||
" highlighting, it uses whatever the colors used to be.
|
||||
|
||||
" Set 'background' back to the default. The value can't always be estimated
|
||||
" and is then guessed.
|
||||
hi clear Normal
|
||||
set bg&
|
||||
|
||||
" Remove all existing highlighting and set the defaults.
|
||||
hi clear
|
||||
|
||||
hi LineNr ctermfg=Green
|
||||
|
||||
" Load the syntax highlighting defaults, if it's enabled.
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
let colors_name = "real_def"
|
||||
|
||||
" vim: sw=2
|
||||
-132
@@ -1,132 +0,0 @@
|
||||
# ==============================================================================
|
||||
# Auth: dodd
|
||||
# File: .zshrc
|
||||
# Revn: 01-02-2025 2.0
|
||||
# Func: Define user-made aliases and functions to make using the terminal easier
|
||||
#
|
||||
# TODO: make bt functions to check for connection before dc/connecting
|
||||
# research git command stuff
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# 09-06-2023: init
|
||||
# copied over useful aliases from ocelot
|
||||
# wrote function to ssh into ocelot remotely, ip robust
|
||||
# 09-09-2023: added aliases to gcc and g++
|
||||
# 09-10-2023: added moved tdm and donut to ~/bin/, changed alias accordingly
|
||||
# 09-15-2023: made ocelot and sentinel try local ssh before using $ip
|
||||
# 09-18-2023: added vim alias to correct vim loading shitty colors
|
||||
# 12-28-2023: added blueutil aliases to connect/dc from M50x's
|
||||
# 01-18-2024: converted btutil aliases into functions
|
||||
# added power on/off to btfunctions
|
||||
#*04-11-2024: removed constant ip call, because of ddns (thanks luke)
|
||||
# added o and p flags to ls alias
|
||||
# gutted remote ssh calls, replaced with ddns
|
||||
# 05-11-2024: added git branch recognition of some sort
|
||||
# 05-16-2024: updated pi static IP's ( fuck speccy )
|
||||
# fixed accidental yank and place of "-p 23" in sentinel
|
||||
# 06-07-2024: updated pi public IP's ( fuck speccy again )
|
||||
# fixed accidental renaming ofrsentinel as rocelot
|
||||
# 10-22-2024: updated prompt, moving git branch to beginning
|
||||
# placed branch inside double brackets, [[ ]] ( vcs_git )
|
||||
# 12-20-2024: added -p flag to vim alias
|
||||
#*01-02-2025: wrote and commented oops()
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
|
||||
# User specific aliases and functions
|
||||
## Aliases
|
||||
|
||||
### Shows everything in detail, except . and ..
|
||||
# A - list ALL ( except for . and .. )
|
||||
# F - put symbols behind items in list
|
||||
# G - force color
|
||||
# h - human readable file sizes
|
||||
# l - long, list long
|
||||
# o - list long, omit group
|
||||
alias ll="ls -AFGhlo"
|
||||
alias l="ls -AFGhlo"
|
||||
|
||||
### Go home
|
||||
alias home="cd ~"
|
||||
|
||||
### local ssh
|
||||
alias ocelot="ssh ocelot@192.168.1.152"
|
||||
alias sentinel="ssh pi@192.168.1.139"
|
||||
alias rocelot="ssh ocelot@97.70.74.80"
|
||||
alias rsentinel="ssh -p 23 pi@97.70.74.80"
|
||||
|
||||
|
||||
### mac gcc is an alias for clang
|
||||
### after downloading gcc, it's not in the global bin, it's local
|
||||
alias gcc="/usr/local/bin/gcc-13"
|
||||
alias g++="/usr/local/bin/g++-13"
|
||||
|
||||
### donut
|
||||
alias donut="~/bin/donut"
|
||||
|
||||
### tdm
|
||||
alias tdm="~/bin/tdm"
|
||||
|
||||
### vim
|
||||
alias vim="vim +\"colo real_def\" -p"
|
||||
|
||||
### load changes to .zshrc
|
||||
alias src="source ~/.zshrc"
|
||||
|
||||
## Aliases
|
||||
|
||||
|
||||
## Functions
|
||||
### turn on bluetooth and connect to m50x-bt
|
||||
### TODO make more robust? how does btutil react when bt is on
|
||||
### btutil -p 1 is run?
|
||||
bt() {
|
||||
blueutil -p 1
|
||||
blueutil --connect 00-0a-45-19-a0-4e
|
||||
}
|
||||
|
||||
|
||||
### turn off bluetooth and dc from m50x-bt
|
||||
btdc() {
|
||||
blueutil --disconnect 00-0a-45-19-a0-4e
|
||||
blueutil -p 0
|
||||
}
|
||||
|
||||
|
||||
### correct mistaken commands
|
||||
oops() {
|
||||
# not exactly sure this works on zsh
|
||||
# but in *bash*
|
||||
# $1 is the argument given to the function
|
||||
# and $_ is the arguments from the previous command
|
||||
# so the idea is that if you do like
|
||||
# ls ~/.vim/syntax/commentS.txt
|
||||
# and you wanna do vim ~/.vim/syntax/commentS.txt
|
||||
# but don't wanna type it all out again
|
||||
# you do can just do
|
||||
# ls ~/.vim/syntax/commentS.txt
|
||||
# oops vim
|
||||
# and it works
|
||||
$1 $_
|
||||
# TODO improve with bangs, so the correct command is stored in
|
||||
# history
|
||||
}
|
||||
|
||||
## Functions
|
||||
|
||||
|
||||
autoload -Uz vcs_info
|
||||
precmd() { vcs_info }
|
||||
|
||||
zstyle ':vcs_info:git:*' formats '%F{white}<<%f%F{red}[[%b]]%f'
|
||||
|
||||
# zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html
|
||||
setopt PROMPT_SUBST
|
||||
# %F{color}...%f colors the encompassed text /color/
|
||||
# %m - shows the short machine name
|
||||
# %1d - current working directory
|
||||
PROMPT='%F{green}%m%f%B%F{red}${vcs_info_msg_0_}%b%f::%F{blue}%1~%f ⇌ '
|
||||
#PROMPT='%F{green}%*%f %F{blue}%~%f %F{red}${vcs_info_msg0}%f$ '
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
# ==============================================================================
|
||||
# Auth: dodd
|
||||
# File: XXX.xx
|
||||
# Revn: MM-DD-YYYY 0.0
|
||||
# Func:
|
||||
#
|
||||
# TODO: create
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# MM-DD-YYYY: init
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
|
||||
for i in {1..10}
|
||||
do
|
||||
osascript mes.as +15863812670 "hewwo uwu"
|
||||
done
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
# ==============================================================================
|
||||
# Auth: dodd
|
||||
# File: mac_dl.sh
|
||||
# Revn: 09-09-2023 0.1
|
||||
# Func: print the apps and links of stuff to download
|
||||
#
|
||||
# TODO: add mathematica
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# 09-09-2023: init
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
echo "chrome"
|
||||
echo "https://www.google.com/chrome/"
|
||||
|
||||
echo "spotify"
|
||||
echo "https://www.spotify.com/us/download/mac/"
|
||||
|
||||
echo "minecraft"
|
||||
echo "https://www.minecraft.net/en-us/download"
|
||||
|
||||
echo "notion"
|
||||
echo "https://www.notion.so/desktop"
|
||||
|
||||
echo "arduino"
|
||||
echo "https://www.arduino.cc/en/software"
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
# ==============================================================================
|
||||
# Auth: dodd
|
||||
# File: mac_setup.sh
|
||||
# Revn: 01-04-2025 1.0
|
||||
# Func: re-setup terminal tools in mac
|
||||
#
|
||||
# TODO: improve
|
||||
# comment?
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# 09-09-2023: init
|
||||
# 04-11-2024: added mkdir for bin and src
|
||||
# moved some clones up a little bit
|
||||
# put binaries in local bin directory
|
||||
# 12-18-2024: made dotfiles symlink instead of copied diverging files
|
||||
# 12-20-2024: corrected relative pathing issue with symlinks
|
||||
# fixed bugs in cp mes.as and dos.sh lines
|
||||
#*01-14-2025: fixed typo in .vimrc symlink
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
brew help > out 2> errout
|
||||
rm out
|
||||
|
||||
if [ -s errout ]; then
|
||||
rm errout
|
||||
echo "installing brew"
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
fi
|
||||
|
||||
|
||||
brew install gcc
|
||||
brew install go
|
||||
brew install htop
|
||||
#brew install btop
|
||||
brew install neofetch
|
||||
brew install onefetch
|
||||
brew install rust
|
||||
brew install tmux
|
||||
brew install wireshark
|
||||
brew install nmap
|
||||
|
||||
mkdir ~/bin
|
||||
mkdir ~/src
|
||||
mkdir ~/Documents/work
|
||||
cd ~/Documents/work
|
||||
|
||||
git clone https://github.com/alexander-the-alright/dotfiles
|
||||
|
||||
ln -s ~/Documents/work/dotfiles/mac/.zshrc ~/.zshrc
|
||||
ln -s ~/Documents/work/dotfiles/.vimrc ~/.vimrc
|
||||
ln -s ~/Documents/work/dotfiles/mac/.vim ~/.vim
|
||||
|
||||
#cp dotfiles/mac/.zshrc ~/
|
||||
#cp dotfiles/mac/.vimrc ~/
|
||||
#cp -r dotfiles/mac/.vim ~/
|
||||
|
||||
cp dotfiles/mac/mes.as ~/
|
||||
cp dotfiles/mac/dos.sh ~/
|
||||
|
||||
git clone https://github.com/alexander-the-alright/soary
|
||||
|
||||
git clone https://github.com/alexander-the-alright/TDM
|
||||
go build TDM/tdm.go
|
||||
mv tdm ~/bin
|
||||
|
||||
/usr/local/bin/gcc-13 -o donut dotfiles/mac/donut.c > /dev/null 2> errout
|
||||
|
||||
if [ -s errout ]; then
|
||||
rm errout
|
||||
echo "gcc failed"
|
||||
else
|
||||
mv donut ~/bin
|
||||
fi
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
on run {targetBuddyPhone, targetMessage}
|
||||
tell application "Messages"
|
||||
set targetService to 1st service whose service type = SMS
|
||||
set targetBuddy to buddy targetBuddyPhone of targetService
|
||||
send targetMessage to targetBuddy
|
||||
end tell
|
||||
end run
|
||||
@@ -1,107 +0,0 @@
|
||||
% Style file for CS5311 "Theory of Computation" documents
|
||||
% Charles Wallace
|
||||
% These style settings are what I use to format the lecture notes and homework assignments.
|
||||
% Feel free to use as much (or as little) of them as you like.
|
||||
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amsthm}
|
||||
\usepackage{latexsym}
|
||||
\usepackage{fullpage,parskip,paralist}
|
||||
\usepackage{amsmath,amsthm,amssymb}
|
||||
\usepackage{graphicx}
|
||||
|
||||
\ifdefined\nosol
|
||||
\newcommand{\sol}[1]{}
|
||||
\newcommand{\soltitle}{}
|
||||
\else
|
||||
\newcommand{\sol}[1]{{\bf Solution.} #1}
|
||||
\newcommand{\soltitle}{: Solutions}
|
||||
\fi
|
||||
|
||||
\newcommand{\thetitle}[1]{\title{#1\soltitle}}
|
||||
\author{}
|
||||
\date{CS5311, Theory of Computation}
|
||||
|
||||
% \ie, \eg: the abbreviations the way they are supposed to be written
|
||||
\newcommand{\ie}{{\em i.e.,}}
|
||||
\newcommand{\eg}{{\em e.g.,}}
|
||||
|
||||
% These set common formats for various kinds of names
|
||||
% \prob{P}: name of problem/language P
|
||||
\newcommand{\prob}[1]{\mbox{\bf #1}}
|
||||
% \pprob{P}{M}: problem P restricted to machine class M
|
||||
\newcommand{\pprob}[2]{\mbox{$\prob{#1}_{\prob{\tiny #2}}$}}
|
||||
% \prog{M}: name of program/machine M
|
||||
\newcommand{\prog}[1]{\mbox{\tt #1}}
|
||||
% \enc{M}: string encoding of machine M
|
||||
\newcommand{\enc}[1]{\mbox{[\prog{#1}]}}
|
||||
% \lang{M}: language accepted by machine M
|
||||
\newcommand{\lang}[1]{\mbox{\bf L(\prog{#1})}}
|
||||
|
||||
% definition environment (unnumbered)
|
||||
\theoremstyle{definition}
|
||||
\newtheorem*{definition}{Definition}
|
||||
% numbered environments: theorem, proof, lemma, corollary, claim
|
||||
\newtheorem{theorem}{Theorem}
|
||||
\newtheorem{lemma}{Lemma}
|
||||
\newtheorem{corollary}{Corollary}
|
||||
\newtheorem{claim}{Claim}
|
||||
|
||||
% Proof opening statement
|
||||
\newcommand{\prf}{{\em Proof.}}
|
||||
\newcommand{\prfout}{{\em Proof outline.}}
|
||||
|
||||
% \code{L}{P}{I}{C}: Turing Machine code (as a box containing formatted text)
|
||||
% L: horizontal length of box
|
||||
% P: name of program
|
||||
% I: names of inputs
|
||||
% C: program code
|
||||
\newcommand{\code}[4]{\fbox{\parbox{#1}
|
||||
{\prog{#2}\hfill (Input: #3)
|
||||
\begin{enumerate}
|
||||
#4
|
||||
\end{enumerate}}}}
|
||||
|
||||
% some common problems
|
||||
\newcommand{\atm}{\pprob{A}{TM}}
|
||||
\newcommand{\etm}{\pprob{E}{TM}}
|
||||
\newcommand{\alltm}{\pprob{All}{TM}}
|
||||
\newcommand{\acfl}{\pprob{A}{CFL}}
|
||||
\newcommand{\allcfl}{\pprob{All}{CFL}}
|
||||
\newcommand{\areg}{\pprob{A}{RL}}
|
||||
\newcommand{\allreg}{\pprob{All}{RL}}
|
||||
\newcommand{\anfa}{\pprob{A}{NFA}}
|
||||
\newcommand{\adfa}{\pprob{A}{DFA}}
|
||||
|
||||
% \bigo{T}: big-O of term T
|
||||
\newcommand{\bigo}[1]{\mbox{O$(#1)$}}
|
||||
% \expbigo{T}: 2^(big-O of term T)
|
||||
\newcommand{\expbigo}[1]{\mbox{$2^{\mbox{O$(#1)$}}$}}
|
||||
% \bigom{T}: big-Omega of term T
|
||||
\newcommand{\bigom}[1]{\mbox{$\Omega(#1)$}}
|
||||
% time/space complexity terms
|
||||
\newcommand{\TIME}[1]{\mbox{TIME$(#1)$}}
|
||||
\newcommand{\NTIME}[1]{\mbox{NTIME$(#1)$}}
|
||||
\newcommand{\SPACE}[1]{\mbox{SPACE$(#1)$}}
|
||||
\newcommand{\NSPACE}[1]{\mbox{NSPACE$(#1)$}}
|
||||
% some common complexity classes
|
||||
\newcommand{\PTIME}{\mbox{P}}
|
||||
\newcommand{\NPTIME}{\mbox{NP}}
|
||||
\newcommand{\EXPTIME}{\mbox{EXPTIME}}
|
||||
\newcommand{\PSPACE}{\mbox{PSPACE}}
|
||||
\newcommand{\NPSPACE}{\mbox{NPSPACE}}
|
||||
\newcommand{\LSPACE}{\mbox{L}}
|
||||
\newcommand{\NLSPACE}{\mbox{NL}}
|
||||
\newcommand{\coNLSPACE}{\mbox{coNL}}
|
||||
\newcommand{\NC}{\mbox{NC}}
|
||||
\newcommand{\NPcomplete}{\NPTIME-complete}
|
||||
|
||||
% \polyreduce{P}{Q} polynomial-time reduction relation
|
||||
\newcommand{\polyreduce}[2]{$\prob{#1}\leq_{\mbox{\small P}}\prob{#2}$}
|
||||
% \logreduce{P}{Q}: log-space reduction relation
|
||||
\newcommand{\logreduce}[2]{$\prob{#1}\leq_{\mbox{\small L}}\prob{#2}$}
|
||||
|
||||
\newcommand{\gad}{\mathbf{Gadget}}
|
||||
\newcommand{\domino}[2]
|
||||
{\begin{tabular}{|l|} \hline $#1$\\ \hline $#2$ \\ \hline \end{tabular}}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 MiB |
@@ -1,183 +0,0 @@
|
||||
# ==============================================================================
|
||||
# Auth: dodd
|
||||
# File: .bashrc
|
||||
# Revn: 01-04-2025 1.0
|
||||
# Func: Define user-made aliases and functions to make using the terminal easier
|
||||
#
|
||||
# TODO: break down PS1 stuff
|
||||
# color files in ls, and color different file differently
|
||||
# pick a new color and prompt scheme
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# 07-12-2023: init
|
||||
# cleaned it up a little
|
||||
# 08-24-2023: updated some PS1 stuff, added documentation
|
||||
# 08-30-2023: added link to color resource
|
||||
# 05-16-2024: updated exe name for ekho, changed call
|
||||
# 06-07-2024: added "if not running interactively" line to make scp
|
||||
# work
|
||||
# 06-09-2024: updated ekho exe to ekho-cli-sen
|
||||
#*01-04-2025: added vim -p alias
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- == *i* ]] || return
|
||||
|
||||
# User specific aliases and functions
|
||||
## Aliases
|
||||
|
||||
### Shows everything in detail, except . and ..
|
||||
alias ll="ls -AFGhl"
|
||||
alias l="ls -AFGhl"
|
||||
alias lr="ls -AFGhlR"
|
||||
|
||||
### Go home
|
||||
alias home="cd ~"
|
||||
|
||||
### TDM stuff
|
||||
alias todo="~/bin/todo"
|
||||
alias mark="~/bin/todo mark"
|
||||
alias delete="~/bin/todo delete"
|
||||
alias show="~/bin/todo show"
|
||||
|
||||
### MOTD stuff
|
||||
alias ekho="~/bin/ekho-cli-sen"
|
||||
|
||||
### vim default to tabs
|
||||
alias vim="vim -p"
|
||||
|
||||
## Aliases
|
||||
|
||||
## Exports
|
||||
|
||||
# Holy shit, export PS1 kept failing, so I had to make it reload every
|
||||
# time a command is run. Hacky and probably really slow, but it works
|
||||
# PROMPT_COMMAND is a command run before it prints the prompt
|
||||
# export PS1 is the command prompt, won't run in this file, only runs
|
||||
# in actual terminal, or here apparently
|
||||
# \e[0;31m is red
|
||||
# \W is the current folder
|
||||
# \e[0;34m is blue
|
||||
# ' -> ' is a space and then an arrow, and then a space
|
||||
# \e0;31m is red again
|
||||
# \e[m is no color
|
||||
#export PROMPT_COMMAND="export PS1='\[\e[0;32m\]\W\[\e[1;31m\] -> \[\e[0;32m\]'"
|
||||
#export PROMPT_COMMAND="export PS1='\e[0;31m$(parse_git_branch) \e[m\W -> '"
|
||||
#export PROMPT_COMMAND="export PS1='\W -> '"
|
||||
#export LSCOLORS=exfxcxdxbxegabagacad
|
||||
export PATH=$PATH:/usr/local/go/bin
|
||||
|
||||
. "$HOME/.cargo/env"
|
||||
|
||||
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color) color_prompt=yes;;
|
||||
esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
#TODO come back and break each of these down
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
# PS1 documentation
|
||||
# https://misc.flogisoft.com/bash/tip_colors_and_formatting
|
||||
|
||||
# color resource - https://misc.flogisoft.com/bash/tip_colors_and_formatting
|
||||
e="\e" # escape character
|
||||
# background types
|
||||
rst="[0m"
|
||||
bold="[1m"
|
||||
ul="[4m"
|
||||
blink="[5m"
|
||||
# colors
|
||||
red="[31m"
|
||||
green="[32m"
|
||||
yellow="[33m"
|
||||
blue="[34m"
|
||||
magenta="[35m"
|
||||
cyan="[36m"
|
||||
lred="[91m"
|
||||
lgreen="[92m"
|
||||
lblue="[94m"
|
||||
lmag="[95m"
|
||||
lcyan="[96m"
|
||||
white="[97m"
|
||||
# background colors
|
||||
bred="[40m"
|
||||
bgreen="[42m"
|
||||
bblue="[44m"
|
||||
|
||||
# use different PS1 for each user, while maintaining one bashfile
|
||||
if [ "${USER}" = "venom" ]; then
|
||||
# venom gets diamond dogs
|
||||
#PS1='\[\033[01;34m\]DIAMOND DOGS\[\033[00m\]:\[\033[01;32m\]\W\[\033[00m\] ♢ '
|
||||
PS1="$e$blue""DIAMOND"" "DOGS"$e$rst":"$e$green""\W""$e$rst ♢ "
|
||||
# kaz might get it too
|
||||
elif [ "${USER}" = "ocelot" ]; then
|
||||
# pi/ocelot gets OUTER-HEAVEN
|
||||
# this makes some sense for ocelot, but itd make more sense
|
||||
# for venom or kaz. But still
|
||||
# or something
|
||||
#PS1='\[\033[01;32m\]\h\[\033[00m\]/\[\033[01;37m\]\[\033[07;37m\]XOF\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\] ⇌ '
|
||||
PS1="$e$bold$e$green""\h""$e$rst"::"$e$blue""\W""$e$rst ⇌ "
|
||||
else
|
||||
# use the standard prompt if we don't know the user
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
else
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\h: \w\a\]$PS1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
alias dir='dir --color=auto'
|
||||
#alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# colored GCC warnings and errors
|
||||
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||
|
||||
# run quick and dirty program to flash an LED
|
||||
~/bin/boot
|
||||
|
||||
# call motd
|
||||
#~/bin/ekho-cli-sen
|
||||
~/bin/client.o
|
||||
-82
@@ -1,82 +0,0 @@
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color) color_prompt=yes;;
|
||||
esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
#force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||
else
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
#alias dir='dir --color=auto'
|
||||
#alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# some more ls aliases
|
||||
alias ll='ls -alF'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
|
||||
# Add an "alert" alias for long running commands. Use like so:
|
||||
# sleep 10; alert
|
||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||
|
||||
# Alias definitions.
|
||||
# You may want to put all your additions into a separate file like
|
||||
# ~/.bash_aliases, instead of adding them here directly.
|
||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
@@ -1,13 +0,0 @@
|
||||
# ==============================================================================
|
||||
# Auth: dodd
|
||||
# File: XXX.xx
|
||||
# Revn: MM-DD-YYYY 0.0
|
||||
# Func:
|
||||
#
|
||||
# TODO: create
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# MM-DD-YYYY: init
|
||||
#
|
||||
# ==============================================================================
|
||||
@@ -1,13 +0,0 @@
|
||||
% ==============================================================================
|
||||
% Auth: dodd
|
||||
% File: XXX.xx
|
||||
% Revn: MM-DD-YYYY 0.0
|
||||
% Func:
|
||||
%
|
||||
% TODO: create
|
||||
% ==============================================================================
|
||||
% CHANGE LOG
|
||||
% ------------------------------------------------------------------------------
|
||||
% MM-DD-YYYY: init
|
||||
%
|
||||
% ==============================================================================
|
||||
@@ -1,15 +0,0 @@
|
||||
"""
|
||||
===============================================================================
|
||||
Auth: dodd
|
||||
File: XXX.py
|
||||
Revn: MM-DD-YYYY 0.0
|
||||
Func:
|
||||
|
||||
TODO: create
|
||||
===============================================================================
|
||||
CHANGE LOG
|
||||
-------------------------------------------------------------------------------
|
||||
MM-DD-YYYY: init
|
||||
|
||||
===============================================================================
|
||||
"""
|
||||
@@ -1,13 +0,0 @@
|
||||
// =============================================================================
|
||||
// Auth: dodd
|
||||
// File: XXX.xx
|
||||
// Revn: MM-DD-YYYY 0.0
|
||||
// Func:
|
||||
//
|
||||
// TODO: create
|
||||
// =============================================================================
|
||||
// CHANGE LOG
|
||||
// -----------------------------------------------------------------------------
|
||||
// MM-DD-YYYY: init
|
||||
//
|
||||
// =============================================================================
|
||||
@@ -1 +0,0 @@
|
||||
au BufRead,BufNewFile *.ano set filetype=ano
|
||||
@@ -1,135 +0,0 @@
|
||||
" ==============================================================================
|
||||
" Auth: David Daub <david.daub@googlemail.com>, Alex
|
||||
" Lang: GoLang
|
||||
" Revn: 15-11-2009 Official, 03-27-2020 1.4
|
||||
" Func: Define syntax coloring for .go files when being edited in Vim
|
||||
"
|
||||
" TODO: very much
|
||||
" learn regex
|
||||
" learn Go
|
||||
" ==============================================================================
|
||||
" CHANGE LOG
|
||||
" ------------------------------------------------------------------------------
|
||||
" 12-31-2018: init
|
||||
" 01-01-2019: added header block
|
||||
" added coloring for bool type
|
||||
" changed print/println to Print/Println, added Printf/Sprintf
|
||||
" changed boolean values link to Keyword (Yellow) from Boolean
|
||||
" (Green?)
|
||||
" 01-02-2019: added coloring for main and Scanln
|
||||
" 12-26-2019: changed goBoolean link from Keyword to Type
|
||||
" added coloring for error
|
||||
" 03-27-2020: added while to list of repetition structures
|
||||
"
|
||||
" ==============================================================================
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
" A bunch of useful Go keywords
|
||||
syn keyword goStatement select
|
||||
syn keyword goStatement defer
|
||||
syn keyword goStatement fallthrough range type
|
||||
syn keyword goStatement return
|
||||
|
||||
syn keyword goClause import package
|
||||
syn keyword goConditional if else switch
|
||||
syn keyword goBranch goto break continue
|
||||
syn keyword goLabel case default
|
||||
syn keyword goRepeat for
|
||||
syn keyword goRepeat while
|
||||
" Added this line ^^^
|
||||
syn keyword goType struct const interface func
|
||||
syn keyword goType var map
|
||||
syn keyword goType uint8 uint16 uint32 uint64
|
||||
syn keyword goType int8 int16 int32 int64
|
||||
syn keyword goType float32 float64
|
||||
syn keyword goType float32 float64
|
||||
syn keyword goType byte
|
||||
syn keyword goType uint int float uintptr string
|
||||
syn keyword goType bool
|
||||
" Added this line ^^^
|
||||
syn keyword goType error
|
||||
" Added this line ^^^
|
||||
|
||||
syn keyword goConcurrent chan go
|
||||
|
||||
syn keyword goValue nil
|
||||
syn keyword goBoolean true false
|
||||
|
||||
syn keyword goConstant iota
|
||||
|
||||
" Builtin functions
|
||||
syn keyword goBif len make new close closed cap map
|
||||
|
||||
" According to the language specification it is not garanteed to stay in the
|
||||
" language. See http://golang.org/doc/go_spec.html#Bootstrapping
|
||||
syn keyword goBif Print Println Printf Sprintf Scanln
|
||||
" Changed print[ln] to Print[ln] ^^^
|
||||
|
||||
syn keyword goBif panic panicln main
|
||||
|
||||
" Comments
|
||||
syn keyword goTodo contained TODO FIXME XXX
|
||||
syn match goLineComment "\/\/.*" contains=@Spell,goTodo
|
||||
syn match goCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
|
||||
syn region goComment start="/\*" end="\*/" contains=@Spell,goTodo
|
||||
|
||||
" Numerals
|
||||
syn case ignore
|
||||
"integer number, or floating point number without a dot and with "f".
|
||||
syn match goNumbers display transparent "\<\d\|\.\d" contains=goNumber,goFloat,goOctError,goOct
|
||||
syn match goNumbersCom display contained transparent "\<\d\|\.\d" contains=goNumber,goFloat,goOct
|
||||
syn match goNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
|
||||
" hex number
|
||||
syn match goNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
|
||||
" oct number
|
||||
syn match goOct display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=goOctZero
|
||||
syn match goOctZero display contained "\<0"
|
||||
|
||||
syn match goFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\="
|
||||
syn match goFloat display contained "\d\+e[-+]\=\d\=\>"
|
||||
syn match goFloat display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>"
|
||||
|
||||
" Literals
|
||||
syn region goString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
|
||||
|
||||
syn match goSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
|
||||
syn match goCharacter "L\='[^\\]'"
|
||||
syn match goCharacter "L'[^']*'" contains=goSpecial
|
||||
|
||||
|
||||
hi def link goStatement Statement
|
||||
hi def link goClause Preproc
|
||||
hi def link goConditional Conditional
|
||||
hi def link goBranch Conditional
|
||||
hi def link goLabel Label
|
||||
hi def link goRepeat Repeat
|
||||
hi def link goType Type
|
||||
hi def link goConcurrent Statement
|
||||
hi def link goValue Constant
|
||||
hi def link goBoolean Type
|
||||
" Changed goBoolean link from Boolean to Keyword
|
||||
" Changed goBoolean link from Keyword to Type
|
||||
hi def link goConstant Constant
|
||||
hi def link goBif Function
|
||||
hi def link goTodo Todo
|
||||
hi def link goLineComment goComment
|
||||
hi def link goComment Comment
|
||||
hi def link goNumbers Number
|
||||
hi def link goNumbersCom Number
|
||||
hi def link goNumber Number
|
||||
hi def link goFloat Float
|
||||
hi def link goOct Number
|
||||
hi def link goOctZero Number
|
||||
hi def link goString String
|
||||
hi def link goSpecial Special
|
||||
hi def link goCharacter Character
|
||||
|
||||
|
||||
let b:current_syntax = "go"
|
||||
@@ -1 +0,0 @@
|
||||
au BufRead,BufNewFile *.prv set filetype=prv
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
|
||||
autocmd BufNewFile,BufRead *.txt set filetype=txt
|
||||
|
||||
|
||||
@@ -1,231 +0,0 @@
|
||||
" ====================================================================
|
||||
" Auth: jontino
|
||||
" Lang: ANO
|
||||
" Revn: 04-17-2023 1.0
|
||||
" Func: Define syntax coloring for .ano files when being edited in Vim
|
||||
"
|
||||
" TODO: begin writing, add new words
|
||||
" implement regular expressions for match baby names
|
||||
" ====================================================================
|
||||
" CHANGE LOG
|
||||
" --------------------------------------------------------------------
|
||||
" 04-17-2023: copied from prv.vim
|
||||
"
|
||||
" ====================================================================
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
" Required fields
|
||||
" Comments
|
||||
" header comments # Green
|
||||
" single line comments // Cyan
|
||||
" in/multi line comments /* ... */ Cyan
|
||||
" Quotes
|
||||
" must work multiline
|
||||
" Gray? LightRed?
|
||||
" Names
|
||||
"
|
||||
|
||||
|
||||
|
||||
" XXX Dates:
|
||||
" Date highlighting for the Change Log
|
||||
" the first and last quote define the expression
|
||||
" \d is any digit [0-9]
|
||||
" \{1,2} matches 1 or 2 times, although it should only ever get 2
|
||||
" - literal hyphen, which seperates months, days, and years
|
||||
" The same three elements are repeated again for the days
|
||||
" \d is any digit, used again for the years
|
||||
" \{4} for only four digits can be matched
|
||||
" ends with : because only dates in change log should be highlighted
|
||||
" marked as contained, as it should only be highlighted in comments
|
||||
" contains colon, so I can highlight the color separately
|
||||
" for some reason, the colon doesn't work as keyword, so simple match
|
||||
syn match date "\d\{1,2}-\d\{1,2}-\d\{4}:" contained contains=colon
|
||||
syn match colon ":" contained
|
||||
|
||||
|
||||
|
||||
" XXX Comments:
|
||||
" comments come after #
|
||||
" eg| not comment # now a comment
|
||||
" # comment
|
||||
" not a comment
|
||||
" not
|
||||
" not
|
||||
" ### comment
|
||||
"
|
||||
" first and last quote define the expression
|
||||
" # can come literally, because it doesn't need escaping
|
||||
" . is every non-new line character possible
|
||||
" * matches as many matches as possible
|
||||
" i.e. a pound sign, and then as many characters as possible
|
||||
syn match header "#.*" contains=commentFields,commentTodo,date,names,germ,rus,latin,rusgerm
|
||||
syn match SLcomment "//.*" contains=names,germ,rus,latin,rusgerm
|
||||
syn region ILMLcomment start="/\*" end="\*/" contains=names,germ,rus,latin,rusgerm
|
||||
" commentFields and commentTodo are contained within comments, so they
|
||||
" are as such in the definition of a comment, and listed as contained
|
||||
" in their own definitions
|
||||
" commentFields is match instead of keyword, will contain the space
|
||||
syn keyword commentFields contained Auth Revn File Func
|
||||
syn keyword commentTodo contained TODO todo Todo XXX FIXME
|
||||
syn match commentFields contained "CHANGE LOG"
|
||||
|
||||
|
||||
|
||||
" XXX Quotes:
|
||||
" quotes should exist between odd pairs of quotation marks
|
||||
" eg| "quote" not
|
||||
" "quote" not "quote"
|
||||
" "not
|
||||
" quote"
|
||||
" "quote only if the it rolls
|
||||
" over onto the next line"
|
||||
" Calling the quotation a region instead of pattern match makes it
|
||||
" easier to wrap around a new line
|
||||
" the first and last quote define the expression
|
||||
" \ escapes the next character, allowing \" to appear as a literal "
|
||||
" thus, start and end are both quotes, and the reqion can span lines
|
||||
syn region quote start="\"" end="\"" contains=names,germ,rus,latin,rusgerm
|
||||
" -- DEPRECATED --
|
||||
" the first and last quote define the expression
|
||||
" \ is the escape character, so \" means I want to look for a quote
|
||||
" . is every non-new line character possible
|
||||
" \{,} is \{0,infinity}, means I'm looking for between 0 and infinity
|
||||
" matches for the previous character, which is a wildcard, .
|
||||
" \{-,} will prioritize the smallest amount of matches possible
|
||||
" syn match quote "\".\{-,}\""
|
||||
" -- DEPRECATED --
|
||||
|
||||
|
||||
|
||||
" XXX Notes:
|
||||
" Allow for notes to be left with special highlighting
|
||||
" \c escapes the case, so search is entirely case insensitive
|
||||
" note are all literals
|
||||
" s\? will alow for either 0 or 1 of the character "s" to be matched,
|
||||
" essentially allowing for both notes and note
|
||||
" finally followed by a colon
|
||||
" nextgroup is the actual notes to be taken, as this is just the tag
|
||||
syn match noteTag "\cnotes\?:" nextgroup=notes
|
||||
" define notes as starting with space, ending with exclamation mark
|
||||
" if it's not denoted as contained, then the whole damn thing will be
|
||||
" highlighted
|
||||
syn region notes start=" " end="!" contained
|
||||
|
||||
|
||||
|
||||
" XXX Names:
|
||||
" keyword to the whole list of words
|
||||
" lmfao ignore case sensitivity to avoid writing things twice
|
||||
syn case ignore
|
||||
|
||||
" nicknames for archie
|
||||
syn keyword ambiii archie chicho chach chibo
|
||||
syn keyword ambiii barchie chachfield archibald
|
||||
syn match ambiii "Lord Archibald Mordecai Blackanddecker III"
|
||||
|
||||
" nicknames for olly
|
||||
syn keyword obrg olly bolly boliver oliver ogibler oboe
|
||||
syn match obrg "bolly bear"
|
||||
syn match obrg "bolly ball"
|
||||
syn match obrg "olly ball"
|
||||
syn match obrg "Sir Oliver Boliver Rockford Gubbins"
|
||||
|
||||
" things that apply to both babies
|
||||
syn match both "of Sealand"
|
||||
syn match both "sink boy"
|
||||
syn match both "baby boy"
|
||||
|
||||
" us?
|
||||
syn keyword parents mom dad
|
||||
|
||||
syn case match
|
||||
" lmfao and turn the case sensitivity back on
|
||||
|
||||
|
||||
|
||||
|
||||
" keeping this as it might be useful later
|
||||
" XXX Expressions:
|
||||
" highlight equations, formulas, expressions, etc
|
||||
" expressions: .* is any number of characters
|
||||
" = is literal
|
||||
" .* is any number of characters again
|
||||
" added spaces around = to avoid confusion with =>
|
||||
"
|
||||
" the idea is that it's stuff that equals stuff, and we
|
||||
" worry about what it is later
|
||||
" name: \c case-escapes the sequence
|
||||
" \a is alphabetic characters, probably don't need escaping
|
||||
" \+ is at least 1 match, so it's 1 or more letters is a name
|
||||
" name: \c\a\= is 0 or 1 case-escaped alphabetic characters
|
||||
" _ is literal, best I can get to subscripts
|
||||
" \a\+ is 1 or more case-escaped alphabetic characters
|
||||
" op: inside [] can allow for one choice from any contained characters
|
||||
" =, +, -, /, ^ are all literals for operations
|
||||
" \* escapes the * character, which is now multiplication
|
||||
" Num: see Numbers: below
|
||||
" FIXME try to make name into one thing, probably with \{,1}
|
||||
|
||||
|
||||
" ColorGuide: ctermfg and ctermbg args - - - - source:: :help cterm
|
||||
" Black
|
||||
" LightBlue/Cyan/LightCyan, Blue/DarkBlue/DarkCyan
|
||||
" Green/LightGreen, DarkGreen
|
||||
" Red/LightRed, DarkRed
|
||||
" Magenta/LightMagenta, DarkMagenta
|
||||
" Yellow/LightYellow, DarkYellow/Brown
|
||||
" White
|
||||
" Gray/LightGray, DarkGray
|
||||
" ColorGuide: ctermfg and ctermbg args - - - - source:: :help cterm
|
||||
" ColorGuide: - - - - - - - - - - - - - - - source:: :help group-name
|
||||
" Dates and fields in comments still use links for highlighting to get
|
||||
" access to 'term' arguments that don't want to load correctly, namely
|
||||
" Underline -> PreProc (Magenta in default colo), with underline
|
||||
" ColorGuide: - - - - - - - - - - - - - - - source:: :help group-name
|
||||
|
||||
|
||||
" XXX Coloring:
|
||||
" hi[ghlight] <group> cterm=<style> ctermfg=<color> [ctermbg=<color>]
|
||||
" group is typically a user-made group
|
||||
" cterm is stuff like Underline and Bold
|
||||
" ctermfg is the foreground, or font color
|
||||
" ctermbg is the background color, or highlight color
|
||||
|
||||
" quotes are good
|
||||
hi quote ctermfg=DarkRed
|
||||
|
||||
" header comments are good
|
||||
hi header ctermfg=Green
|
||||
" leaving these as link because I like the color it sets
|
||||
" in theory... I could choose my own colors...
|
||||
"hi def link commentFields Underlined
|
||||
"hi def link date Underlined
|
||||
hi commentFields cterm=Underline ctermfg=Blue
|
||||
hi date cterm=Underline ctermfg=Blue
|
||||
|
||||
" comments are good
|
||||
hi SLcomment ctermfg=Cyan
|
||||
hi ILMLcomment ctermfg=Cyan
|
||||
hi colon ctermfg=Cyan
|
||||
hi commentTodo ctermfg=Black ctermbg=Yellow
|
||||
|
||||
" important notes
|
||||
" could probably do without this, tbh
|
||||
hi noteTag ctermfg=White ctermbg=Red
|
||||
hi notes ctermfg=White ctermbg=Red
|
||||
|
||||
" nicknames for the boys
|
||||
hi ambiii ctermfg=Green
|
||||
hi obrg ctermfg=Red
|
||||
" picked by archie himself
|
||||
hi both ctermfg=LightBlue
|
||||
hi parents ctermfg=DarkGray
|
||||
|
||||
let b:current_syntax = "ano"
|
||||
|
||||
@@ -1,135 +0,0 @@
|
||||
" ==============================================================================
|
||||
" Auth: David Daub <david.daub@googlemail.com>, Alex
|
||||
" Lang: GoLang
|
||||
" Revn: 15-11-2009 Official, 03-27-2020 1.4
|
||||
" Func: Define syntax coloring for .go files when being edited in Vim
|
||||
"
|
||||
" TODO: very much
|
||||
" learn regex
|
||||
" learn Go
|
||||
" ==============================================================================
|
||||
" CHANGE LOG
|
||||
" ------------------------------------------------------------------------------
|
||||
" 12-31-2018: init
|
||||
" 01-01-2019: added header block
|
||||
" added coloring for bool type
|
||||
" changed print/println to Print/Println, added Printf/Sprintf
|
||||
" changed boolean values link to Keyword (Yellow) from Boolean
|
||||
" (Green?)
|
||||
" 01-02-2019: added coloring for main and Scanln
|
||||
" 12-26-2019: changed goBoolean link from Keyword to Type
|
||||
" added coloring for error
|
||||
" 03-27-2020: added while to list of repetition structures
|
||||
"
|
||||
" ==============================================================================
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
" A bunch of useful Go keywords
|
||||
syn keyword goStatement select
|
||||
syn keyword goStatement defer
|
||||
syn keyword goStatement fallthrough range type
|
||||
syn keyword goStatement return
|
||||
|
||||
syn keyword goClause import package
|
||||
syn keyword goConditional if else switch
|
||||
syn keyword goBranch goto break continue
|
||||
syn keyword goLabel case default
|
||||
syn keyword goRepeat for
|
||||
syn keyword goRepeat while
|
||||
" Added this line ^^^
|
||||
syn keyword goType struct const interface func
|
||||
syn keyword goType var map
|
||||
syn keyword goType uint8 uint16 uint32 uint64
|
||||
syn keyword goType int8 int16 int32 int64
|
||||
syn keyword goType float32 float64
|
||||
syn keyword goType float32 float64
|
||||
syn keyword goType byte
|
||||
syn keyword goType uint int float uintptr string
|
||||
syn keyword goType bool
|
||||
" Added this line ^^^
|
||||
syn keyword goType error
|
||||
" Added this line ^^^
|
||||
|
||||
syn keyword goConcurrent chan go
|
||||
|
||||
syn keyword goValue nil
|
||||
syn keyword goBoolean true false
|
||||
|
||||
syn keyword goConstant iota
|
||||
|
||||
" Builtin functions
|
||||
syn keyword goBif len make new close closed cap map
|
||||
|
||||
" According to the language specification it is not garanteed to stay in the
|
||||
" language. See http://golang.org/doc/go_spec.html#Bootstrapping
|
||||
syn keyword goBif Print Println Printf Sprintf Scanln
|
||||
" Changed print[ln] to Print[ln] ^^^
|
||||
|
||||
syn keyword goBif panic panicln main
|
||||
|
||||
" Comments
|
||||
syn keyword goTodo contained TODO FIXME XXX
|
||||
syn match goLineComment "\/\/.*" contains=@Spell,goTodo
|
||||
syn match goCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
|
||||
syn region goComment start="/\*" end="\*/" contains=@Spell,goTodo
|
||||
|
||||
" Numerals
|
||||
syn case ignore
|
||||
"integer number, or floating point number without a dot and with "f".
|
||||
syn match goNumbers display transparent "\<\d\|\.\d" contains=goNumber,goFloat,goOctError,goOct
|
||||
syn match goNumbersCom display contained transparent "\<\d\|\.\d" contains=goNumber,goFloat,goOct
|
||||
syn match goNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
|
||||
" hex number
|
||||
syn match goNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
|
||||
" oct number
|
||||
syn match goOct display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=goOctZero
|
||||
syn match goOctZero display contained "\<0"
|
||||
|
||||
syn match goFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\="
|
||||
syn match goFloat display contained "\d\+e[-+]\=\d\=\>"
|
||||
syn match goFloat display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>"
|
||||
|
||||
" Literals
|
||||
syn region goString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
|
||||
|
||||
syn match goSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
|
||||
syn match goCharacter "L\='[^\\]'"
|
||||
syn match goCharacter "L'[^']*'" contains=goSpecial
|
||||
|
||||
|
||||
hi def link goStatement Statement
|
||||
hi def link goClause Preproc
|
||||
hi def link goConditional Conditional
|
||||
hi def link goBranch Conditional
|
||||
hi def link goLabel Label
|
||||
hi def link goRepeat Repeat
|
||||
hi def link goType Type
|
||||
hi def link goConcurrent Statement
|
||||
hi def link goValue Constant
|
||||
hi def link goBoolean Type
|
||||
" Changed goBoolean link from Boolean to Keyword
|
||||
" Changed goBoolean link from Keyword to Type
|
||||
hi def link goConstant Constant
|
||||
hi def link goBif Function
|
||||
hi def link goTodo Todo
|
||||
hi def link goLineComment goComment
|
||||
hi def link goComment Comment
|
||||
hi def link goNumbers Number
|
||||
hi def link goNumbersCom Number
|
||||
hi def link goNumber Number
|
||||
hi def link goFloat Float
|
||||
hi def link goOct Number
|
||||
hi def link goOctZero Number
|
||||
hi def link goString String
|
||||
hi def link goSpecial Special
|
||||
hi def link goCharacter Character
|
||||
|
||||
|
||||
let b:current_syntax = "go"
|
||||
@@ -1,283 +0,0 @@
|
||||
" ====================================================================
|
||||
" Auth: jontino
|
||||
" Lang: Providence
|
||||
" Revn: 04-17-2023 1.0
|
||||
" Func: Define syntax coloring for .prv files when being edited in Vim
|
||||
"
|
||||
" TODO: begin writing, add new words
|
||||
" ====================================================================
|
||||
" CHANGE LOG
|
||||
" --------------------------------------------------------------------
|
||||
" 02-13-2023: copied from txt.vim
|
||||
" 04-17-2023: completed
|
||||
"
|
||||
" ====================================================================
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
" Required fields
|
||||
" Comments
|
||||
" header comments # Green
|
||||
" single line comments // Cyan
|
||||
" in/multi line comments /* ... */ Cyan
|
||||
"
|
||||
" Quotes
|
||||
" must work multiline
|
||||
" Gray? LightRed?
|
||||
" Names
|
||||
" each type of character gets a different color
|
||||
" Good
|
||||
" Green
|
||||
" Evil
|
||||
" DarkRed
|
||||
" Neutral/Background
|
||||
" Blue
|
||||
" Places
|
||||
" Words
|
||||
" Latin-derived words
|
||||
" LightBlue
|
||||
" Germanic words
|
||||
" LightGreen
|
||||
" Russian words
|
||||
" Red
|
||||
" Russo-Germanic words
|
||||
" Brown
|
||||
"
|
||||
|
||||
|
||||
|
||||
" XXX Dates:
|
||||
" Date highlighting for the Change Log
|
||||
" the first and last quote define the expression
|
||||
" \d is any digit [0-9]
|
||||
" \{1,2} matches 1 or 2 times, although it should only ever get 2
|
||||
" - literal hyphen, which seperates months, days, and years
|
||||
" The same three elements are repeated again for the days
|
||||
" \d is any digit, used again for the years
|
||||
" \{4} for only four digits can be matched
|
||||
" ends with : because only dates in change log should be highlighted
|
||||
" marked as contained, as it should only be highlighted in comments
|
||||
" contains colon, so I can highlight the color separately
|
||||
" for some reason, the colon doesn't work as keyword, so simple match
|
||||
syn match date "\d\{1,2}-\d\{1,2}-\d\{4}:" contained contains=colon
|
||||
syn match colon ":" contained
|
||||
|
||||
|
||||
|
||||
" XXX Comments:
|
||||
" comments come after #
|
||||
" eg| not comment # now a comment
|
||||
" # comment
|
||||
" not a comment
|
||||
" not
|
||||
" not
|
||||
" ### comment
|
||||
"
|
||||
" first and last quote define the expression
|
||||
" # can come literally, because it doesn't need escaping
|
||||
" . is every non-new line character possible
|
||||
" * matches as many matches as possible
|
||||
" i.e. a pound sign, and then as many characters as possible
|
||||
syn match header "#.*" contains=commentFields,commentTodo,date,names,germ,rus,latin,rusgerm
|
||||
syn match SLcomment "//.*" contains=names,germ,rus,latin,rusgerm
|
||||
syn region ILMLcomment start="/\*" end="\*/" contains=names,germ,rus,latin,rusgerm
|
||||
" commentFields and commentTodo are contained within comments, so they
|
||||
" are as such in the definition of a comment, and listed as contained
|
||||
" in their own definitions
|
||||
" commentFields is match instead of keyword, will contain the space
|
||||
syn keyword commentFields contained Auth Revn File Func
|
||||
syn keyword commentTodo contained TODO todo Todo XXX FIXME
|
||||
syn match commentFields contained "CHANGE LOG"
|
||||
|
||||
|
||||
|
||||
" XXX Quotes:
|
||||
" quotes should exist between odd pairs of quotation marks
|
||||
" eg| "quote" not
|
||||
" "quote" not "quote"
|
||||
" "not
|
||||
" quote"
|
||||
" "quote only if the it rolls
|
||||
" over onto the next line"
|
||||
" Calling the quotation a region instead of pattern match makes it
|
||||
" easier to wrap around a new line
|
||||
" the first and last quote define the expression
|
||||
" \ escapes the next character, allowing \" to appear as a literal "
|
||||
" thus, start and end are both quotes, and the reqion can span lines
|
||||
syn region quote start="\"" end="\"" contains=names,germ,rus,latin,rusgerm
|
||||
" -- DEPRECATED --
|
||||
" the first and last quote define the expression
|
||||
" \ is the escape character, so \" means I want to look for a quote
|
||||
" . is every non-new line character possible
|
||||
" \{,} is \{0,infinity}, means I'm looking for between 0 and infinity
|
||||
" matches for the previous character, which is a wildcard, .
|
||||
" \{-,} will prioritize the smallest amount of matches possible
|
||||
" syn match quote "\".\{-,}\""
|
||||
" -- DEPRECATED --
|
||||
|
||||
|
||||
|
||||
" XXX Notes:
|
||||
" Allow for notes to be left with special highlighting
|
||||
" \c escapes the case, so search is entirely case insensitive
|
||||
" note are all literals
|
||||
" s\? will alow for either 0 or 1 of the character "s" to be matched,
|
||||
" essentially allowing for both notes and note
|
||||
" finally followed by a colon
|
||||
" nextgroup is the actual notes to be taken, as this is just the tag
|
||||
syn match noteTag "\cnotes\?:" nextgroup=notes
|
||||
" define notes as starting with space, ending with exclamation mark
|
||||
" if it's not denoted as contained, then the whole damn thing will be
|
||||
" highlighted
|
||||
syn region notes start=" " end="!" contained
|
||||
|
||||
|
||||
|
||||
" XXX Names:
|
||||
" Separated into three catergories: Good, Neutral, Bad
|
||||
" This taxonomy is pretty self-explanatory
|
||||
" keyword to the whole list of words
|
||||
" lmfao ignore case sensitivity to avoid writing things twice
|
||||
syn case ignore
|
||||
|
||||
syn keyword good dobra miro
|
||||
syn keyword neutral yaroslav
|
||||
syn keyword bad boris mstislav
|
||||
|
||||
|
||||
|
||||
" XXX Places:
|
||||
" Places! Just place names!
|
||||
" keyword to the whole list of words
|
||||
syn keyword place providence
|
||||
|
||||
|
||||
|
||||
" XXX Words:
|
||||
" Different types of words:
|
||||
" words referring to norway, russian, etc
|
||||
" Latin
|
||||
" Slavic
|
||||
" Germanic
|
||||
" Russo-Germanic
|
||||
|
||||
" Highlight norwegian shit green
|
||||
" Highlight Russian shit red
|
||||
|
||||
syn keyword latin constable
|
||||
|
||||
syn keyword slavic slava
|
||||
|
||||
syn keyword germanic reeve
|
||||
|
||||
syn keyword russogerm skazarktos
|
||||
|
||||
syn keyword norwegian nordic nordics
|
||||
syn keyword norwegian norse
|
||||
syn keyword norwegian norway
|
||||
syn keyword norwegian norge
|
||||
syn keyword norwegian norsk
|
||||
syn keyword norwegian norwegian norwegians
|
||||
|
||||
syn keyword russian russian russians
|
||||
syn keyword russian rusky ruskies
|
||||
syn keyword russian russia
|
||||
syn keyword russian slav slavs
|
||||
syn keyword russian slavic
|
||||
syn case match
|
||||
" lmfao and turn the case sensitivity back on
|
||||
|
||||
|
||||
|
||||
|
||||
" keeping this as it might be useful later
|
||||
" XXX Expressions:
|
||||
" highlight equations, formulas, expressions, etc
|
||||
" expressions: .* is any number of characters
|
||||
" = is literal
|
||||
" .* is any number of characters again
|
||||
" added spaces around = to avoid confusion with =>
|
||||
"
|
||||
" the idea is that it's stuff that equals stuff, and we
|
||||
" worry about what it is later
|
||||
" name: \c case-escapes the sequence
|
||||
" \a is alphabetic characters, probably don't need escaping
|
||||
" \+ is at least 1 match, so it's 1 or more letters is a name
|
||||
" name: \c\a\= is 0 or 1 case-escaped alphabetic characters
|
||||
" _ is literal, best I can get to subscripts
|
||||
" \a\+ is 1 or more case-escaped alphabetic characters
|
||||
" op: inside [] can allow for one choice from any contained characters
|
||||
" =, +, -, /, ^ are all literals for operations
|
||||
" \* escapes the * character, which is now multiplication
|
||||
" Num: see Numbers: below
|
||||
" FIXME try to make name into one thing, probably with \{,1}
|
||||
|
||||
|
||||
" ColorGuide: ctermfg and ctermbg args - - - - source:: :help cterm
|
||||
" Black
|
||||
" LightBlue/Cyan/LightCyan, Blue/DarkBlue/DarkCyan
|
||||
" Green/LightGreen, DarkGreen
|
||||
" Red/LightRed, DarkRed
|
||||
" Magenta/LightMagenta, DarkMagenta
|
||||
" Yellow/LightYellow, DarkYellow/Brown
|
||||
" White
|
||||
" Gray/LightGray, DarkGray
|
||||
" ColorGuide: ctermfg and ctermbg args - - - - source:: :help cterm
|
||||
" ColorGuide: - - - - - - - - - - - - - - - source:: :help group-name
|
||||
" Dates and fields in comments still use links for highlighting to get
|
||||
" access to 'term' arguments that don't want to load correctly, namely
|
||||
" Underline -> PreProc (Magenta in default colo), with underline
|
||||
" ColorGuide: - - - - - - - - - - - - - - - source:: :help group-name
|
||||
|
||||
|
||||
" XXX Coloring:
|
||||
" hi[ghlight] <group> cterm=<style> ctermfg=<color> [ctermbg=<color>]
|
||||
" group is typically a user-made group
|
||||
" cterm is stuff like Underline and Bold
|
||||
" ctermfg is the foreground, or font color
|
||||
" ctermbg is the background color, or highlight color
|
||||
|
||||
" quotes are good
|
||||
hi quote ctermfg=DarkRed
|
||||
|
||||
" header comments are good
|
||||
hi header ctermfg=Green
|
||||
" leaving these as link because I like the color it sets
|
||||
" in theory... I could choose my own colors...
|
||||
"hi def link commentFields Underlined
|
||||
"hi def link date Underlined
|
||||
hi commentFields cterm=Underline ctermfg=Red
|
||||
hi date cterm=Underline ctermfg=Red
|
||||
|
||||
" comments are good
|
||||
hi SLcomment ctermfg=Cyan
|
||||
hi ILMLcomment ctermfg=Cyan
|
||||
hi colon ctermfg=Cyan
|
||||
hi commentTodo ctermfg=Black ctermbg=Yellow
|
||||
|
||||
" important notes
|
||||
" could probably do without this, tbh
|
||||
hi noteTag ctermfg=White ctermbg=Red
|
||||
hi notes ctermfg=White ctermbg=Red
|
||||
|
||||
" different types of characters get different colors
|
||||
hi good ctermfg=Green
|
||||
hi neutral ctermfg=Blue
|
||||
hi bad ctermfg=DarkRed
|
||||
|
||||
" places are underlined
|
||||
" maybe give places a color?
|
||||
hi place ctermfg=White cterm=Underline
|
||||
|
||||
" color words in different registers different colors
|
||||
hi germanic ctermfg=LightGreen
|
||||
hi slavic ctermfg=Red
|
||||
hi latin ctermfg=LightBlue
|
||||
hi russogerm ctermfg=Brown
|
||||
|
||||
let b:current_syntax = "prv"
|
||||
|
||||
@@ -1,385 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: Rust
|
||||
" Maintainer: Patrick Walton <pcwalton@mozilla.com>
|
||||
" Maintainer: Ben Blum <bblum@cs.cmu.edu>
|
||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||
" Last Change: Feb 24, 2016
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Syntax definitions {{{1
|
||||
" Basic keywords {{{2
|
||||
syn keyword rustConditional match if else
|
||||
syn keyword rustRepeat loop while
|
||||
" `:syn match` must be used to prioritize highlighting `for` keyword.
|
||||
syn match rustRepeat /\<for\>/
|
||||
" Highlight `for` keyword in `impl ... for ... {}` statement. This line must
|
||||
" be put after previous `syn match` line to overwrite it.
|
||||
syn match rustKeyword /\%(\<impl\>.\+\)\@<=\<for\>/
|
||||
syn keyword rustRepeat in
|
||||
syn keyword rustTypedef type nextgroup=rustIdentifier skipwhite skipempty
|
||||
syn keyword rustStructure struct enum nextgroup=rustIdentifier skipwhite skipempty
|
||||
syn keyword rustUnion union nextgroup=rustIdentifier skipwhite skipempty contained
|
||||
syn match rustUnionContextual /\<union\_s\+\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*/ transparent contains=rustUnion
|
||||
syn keyword rustOperator as
|
||||
syn keyword rustExistential existential nextgroup=rustTypedef skipwhite skipempty contained
|
||||
syn match rustExistentialContextual /\<existential\_s\+type/ transparent contains=rustExistential,rustTypedef
|
||||
|
||||
syn match rustAssert "\<assert\(\w\)*!" contained
|
||||
syn match rustPanic "\<panic\(\w\)*!" contained
|
||||
syn match rustAsync "\<async\%(\s\|\n\)\@="
|
||||
syn keyword rustKeyword break
|
||||
syn keyword rustKeyword box
|
||||
syn keyword rustKeyword continue
|
||||
syn keyword rustKeyword crate
|
||||
syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty
|
||||
syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite skipempty
|
||||
syn keyword rustKeyword impl let
|
||||
syn keyword rustKeyword macro
|
||||
syn keyword rustKeyword pub nextgroup=rustPubScope skipwhite skipempty
|
||||
syn keyword rustKeyword return
|
||||
syn keyword rustKeyword yield
|
||||
syn keyword rustSuper super
|
||||
syn keyword rustKeyword where
|
||||
syn keyword rustUnsafeKeyword unsafe
|
||||
syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty
|
||||
" FIXME: Scoped impl's name is also fallen in this category
|
||||
syn keyword rustKeyword mod trait nextgroup=rustIdentifier skipwhite skipempty
|
||||
syn keyword rustStorage move mut ref static const
|
||||
syn match rustDefault /\<default\ze\_s\+\(impl\|fn\|type\|const\)\>/
|
||||
syn keyword rustAwait await
|
||||
syn match rustKeyword /\<try\>!\@!/ display
|
||||
|
||||
syn keyword rustPubScopeCrate crate contained
|
||||
syn match rustPubScopeDelim /[()]/ contained
|
||||
syn match rustPubScope /([^()]*)/ contained contains=rustPubScopeDelim,rustPubScopeCrate,rustSuper,rustModPath,rustModPathSep,rustSelf transparent
|
||||
|
||||
syn keyword rustExternCrate crate contained nextgroup=rustIdentifier,rustExternCrateString skipwhite skipempty
|
||||
" This is to get the `bar` part of `extern crate "foo" as bar;` highlighting.
|
||||
syn match rustExternCrateString /".*"\_s*as/ contained nextgroup=rustIdentifier skipwhite transparent skipempty contains=rustString,rustOperator
|
||||
syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite skipempty
|
||||
|
||||
syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||
syn match rustFuncName "\%(r#\)\=\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||
|
||||
syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end="),\=[*+]" contains=TOP
|
||||
syn match rustMacroVariable "$\w\+"
|
||||
syn match rustRawIdent "\<r#\h\w*" contains=NONE
|
||||
|
||||
" Reserved (but not yet used) keywords {{{2
|
||||
syn keyword rustReservedKeyword become do priv typeof unsized abstract virtual final override
|
||||
|
||||
" Built-in types {{{2
|
||||
syn keyword rustType isize usize char bool u8 u16 u32 u64 u128 f32
|
||||
syn keyword rustType f64 i8 i16 i32 i64 i128 str Self
|
||||
|
||||
" Things from the libstd v1 prelude (src/libstd/prelude/v1.rs) {{{2
|
||||
" This section is just straight transformation of the contents of the prelude,
|
||||
" to make it easy to update.
|
||||
|
||||
" Reexported core operators {{{3
|
||||
syn keyword rustTrait Copy Send Sized Sync
|
||||
syn keyword rustTrait Drop Fn FnMut FnOnce
|
||||
|
||||
" Reexported functions {{{3
|
||||
" There’s no point in highlighting these; when one writes drop( or drop::< it
|
||||
" gets the same highlighting anyway, and if someone writes `let drop = …;` we
|
||||
" don’t really want *that* drop to be highlighted.
|
||||
"syn keyword rustFunction drop
|
||||
|
||||
" Reexported types and traits {{{3
|
||||
syn keyword rustTrait Box
|
||||
syn keyword rustTrait ToOwned
|
||||
syn keyword rustTrait Clone
|
||||
syn keyword rustTrait PartialEq PartialOrd Eq Ord
|
||||
syn keyword rustTrait AsRef AsMut Into From
|
||||
syn keyword rustTrait Default
|
||||
syn keyword rustTrait Iterator Extend IntoIterator
|
||||
syn keyword rustTrait DoubleEndedIterator ExactSizeIterator
|
||||
syn keyword rustEnum Option
|
||||
syn keyword rustEnumVariant Some None
|
||||
syn keyword rustEnum Result
|
||||
syn keyword rustEnumVariant Ok Err
|
||||
syn keyword rustTrait SliceConcatExt
|
||||
syn keyword rustTrait String ToString
|
||||
syn keyword rustTrait Vec
|
||||
|
||||
" Other syntax {{{2
|
||||
syn keyword rustSelf self
|
||||
syn keyword rustBoolean true false
|
||||
|
||||
" If foo::bar changes to foo.bar, change this ("::" to "\.").
|
||||
" If foo::bar changes to Foo::bar, change this (first "\w" to "\u").
|
||||
syn match rustModPath "\w\(\w\)*::[^<]"he=e-3,me=e-3
|
||||
syn match rustModPathSep "::"
|
||||
|
||||
syn match rustFuncCall "\w\(\w\)*("he=e-1,me=e-1
|
||||
syn match rustFuncCall "\w\(\w\)*::<"he=e-3,me=e-3 " foo::<T>();
|
||||
|
||||
" This is merely a convention; note also the use of [A-Z], restricting it to
|
||||
" latin identifiers rather than the full Unicode uppercase. I have not used
|
||||
" [:upper:] as it depends upon 'noignorecase'
|
||||
"syn match rustCapsIdent display "[A-Z]\w\(\w\)*"
|
||||
|
||||
syn match rustOperator display "\%(+\|-\|/\|*\|=\|\^\|&\||\|!\|>\|<\|%\)=\?"
|
||||
" This one isn't *quite* right, as we could have binary-& with a reference
|
||||
syn match rustSigil display /&\s\+[&~@*][^)= \t\r\n]/he=e-1,me=e-1
|
||||
syn match rustSigil display /[&~@*][^)= \t\r\n]/he=e-1,me=e-1
|
||||
" This isn't actually correct; a closure with no arguments can be `|| { }`.
|
||||
" Last, because the & in && isn't a sigil
|
||||
syn match rustOperator display "&&\|||"
|
||||
" This is rustArrowCharacter rather than rustArrow for the sake of matchparen,
|
||||
" so it skips the ->; see http://stackoverflow.com/a/30309949 for details.
|
||||
syn match rustArrowCharacter display "->"
|
||||
syn match rustQuestionMark display "?\([a-zA-Z]\+\)\@!"
|
||||
|
||||
syn match rustMacro '\w\(\w\)*!' contains=rustAssert,rustPanic
|
||||
syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustPanic
|
||||
|
||||
syn match rustEscapeError display contained /\\./
|
||||
syn match rustEscape display contained /\\\([nrt0\\'"]\|x\x\{2}\)/
|
||||
syn match rustEscapeUnicode display contained /\\u{\%(\x_*\)\{1,6}}/
|
||||
syn match rustStringContinuation display contained /\\\n\s*/
|
||||
syn region rustString matchgroup=rustStringDelimiter start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation
|
||||
syn region rustString matchgroup=rustStringDelimiter start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell
|
||||
syn region rustString matchgroup=rustStringDelimiter start='b\?r\z(#*\)"' end='"\z1' contains=@Spell
|
||||
|
||||
" Match attributes with either arbitrary syntax or special highlighting for
|
||||
" derives. We still highlight strings and comments inside of the attribute.
|
||||
syn region rustAttribute start="#!\?\[" end="\]" contains=@rustAttributeContents,rustAttributeParenthesizedParens,rustAttributeParenthesizedCurly,rustAttributeParenthesizedBrackets,rustDerive
|
||||
syn region rustAttributeParenthesizedParens matchgroup=rustAttribute start="\w\%(\w\)*("rs=e end=")"re=s transparent contained contains=rustAttributeBalancedParens,@rustAttributeContents
|
||||
syn region rustAttributeParenthesizedCurly matchgroup=rustAttribute start="\w\%(\w\)*{"rs=e end="}"re=s transparent contained contains=rustAttributeBalancedCurly,@rustAttributeContents
|
||||
syn region rustAttributeParenthesizedBrackets matchgroup=rustAttribute start="\w\%(\w\)*\["rs=e end="\]"re=s transparent contained contains=rustAttributeBalancedBrackets,@rustAttributeContents
|
||||
syn region rustAttributeBalancedParens matchgroup=rustAttribute start="("rs=e end=")"re=s transparent contained contains=rustAttributeBalancedParens,@rustAttributeContents
|
||||
syn region rustAttributeBalancedCurly matchgroup=rustAttribute start="{"rs=e end="}"re=s transparent contained contains=rustAttributeBalancedCurly,@rustAttributeContents
|
||||
syn region rustAttributeBalancedBrackets matchgroup=rustAttribute start="\["rs=e end="\]"re=s transparent contained contains=rustAttributeBalancedBrackets,@rustAttributeContents
|
||||
syn cluster rustAttributeContents contains=rustString,rustCommentLine,rustCommentBlock,rustCommentLineDocError,rustCommentBlockDocError
|
||||
syn region rustDerive start="derive(" end=")" contained contains=rustDeriveTrait
|
||||
" This list comes from src/libsyntax/ext/deriving/mod.rs
|
||||
" Some are deprecated (Encodable, Decodable) or to be removed after a new snapshot (Show).
|
||||
syn keyword rustDeriveTrait contained Clone Hash RustcEncodable RustcDecodable Encodable Decodable PartialEq Eq PartialOrd Ord Rand Show Debug Default FromPrimitive Send Sync Copy
|
||||
|
||||
" dyn keyword: It's only a keyword when used inside a type expression, so
|
||||
" we make effort here to highlight it only when Rust identifiers follow it
|
||||
" (not minding the case of pre-2018 Rust where a path starting with :: can
|
||||
" follow).
|
||||
"
|
||||
" This is so that uses of dyn variable names such as in 'let &dyn = &2'
|
||||
" and 'let dyn = 2' will not get highlighted as a keyword.
|
||||
syn match rustKeyword "\<dyn\ze\_s\+\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)" contains=rustDynKeyword
|
||||
syn keyword rustDynKeyword dyn contained
|
||||
|
||||
" Number literals
|
||||
syn match rustDecNumber display "\<[0-9][0-9_]*\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
|
||||
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
|
||||
syn match rustOctNumber display "\<0o[0-7_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
|
||||
syn match rustBinNumber display "\<0b[01_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
|
||||
|
||||
" Special case for numbers of the form "1." which are float literals, unless followed by
|
||||
" an identifier, which makes them integer literals with a method call or field access,
|
||||
" or by another ".", which makes them integer literals followed by the ".." token.
|
||||
" (This must go first so the others take precedence.)
|
||||
syn match rustFloat display "\<[0-9][0-9_]*\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\|\.\)\@!"
|
||||
" To mark a number as a normal float, it must have at least one of the three things integral values don't have:
|
||||
" a decimal point and more numbers; an exponent; and a type suffix.
|
||||
syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)\="
|
||||
syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\(f32\|f64\)\="
|
||||
syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)"
|
||||
|
||||
" For the benefit of delimitMate
|
||||
syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt0\\\"]\|x\x\{2}\|u{\%(\x_*\)\{1,6}}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
|
||||
syn region rustGenericRegion display start=/<\%('\|[^[:cntrl:][:space:][:punct:]]\)\@=')\S\@=/ end=/>/ contains=rustGenericLifetimeCandidate
|
||||
syn region rustGenericLifetimeCandidate display start=/\%(<\|,\s*\)\@<='/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
|
||||
|
||||
"rustLifetime must appear before rustCharacter, or chars will get the lifetime highlighting
|
||||
syn match rustLifetime display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*"
|
||||
syn match rustLabel display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*:"
|
||||
syn match rustLabel display "\%(\<\%(break\|continue\)\s*\)\@<=\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*"
|
||||
syn match rustCharacterInvalid display contained /b\?'\zs[\n\r\t']\ze'/
|
||||
" The groups negated here add up to 0-255 but nothing else (they do not seem to go beyond ASCII).
|
||||
syn match rustCharacterInvalidUnicode display contained /b'\zs[^[:cntrl:][:graph:][:alnum:][:space:]]\ze'/
|
||||
syn match rustCharacter /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=rustEscape,rustEscapeError,rustCharacterInvalid,rustCharacterInvalidUnicode
|
||||
syn match rustCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u{\%(\x_*\)\{1,6}}\)\)'/ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustCharacterInvalid
|
||||
|
||||
syn match rustShebang /\%^#![^[].*/
|
||||
syn region rustCommentLine start="//" end="$" contains=rustTodo,@Spell
|
||||
syn region rustCommentLineDoc start="//\%(//\@!\|!\)" end="$" contains=rustTodo,@Spell
|
||||
syn region rustCommentLineDocError start="//\%(//\@!\|!\)" end="$" contains=rustTodo,@Spell contained
|
||||
syn region rustCommentBlock matchgroup=rustCommentBlock start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell
|
||||
syn region rustCommentBlockDoc matchgroup=rustCommentBlockDoc start="/\*\%(!\|\*[*/]\@!\)" end="\*/" contains=rustTodo,rustCommentBlockDocNest,rustCommentBlockDocRustCode,@Spell
|
||||
syn region rustCommentBlockDocError matchgroup=rustCommentBlockDocError start="/\*\%(!\|\*[*/]\@!\)" end="\*/" contains=rustTodo,rustCommentBlockDocNestError,@Spell contained
|
||||
syn region rustCommentBlockNest matchgroup=rustCommentBlock start="/\*" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell contained transparent
|
||||
syn region rustCommentBlockDocNest matchgroup=rustCommentBlockDoc start="/\*" end="\*/" contains=rustTodo,rustCommentBlockDocNest,@Spell contained transparent
|
||||
syn region rustCommentBlockDocNestError matchgroup=rustCommentBlockDocError start="/\*" end="\*/" contains=rustTodo,rustCommentBlockDocNestError,@Spell contained transparent
|
||||
|
||||
" FIXME: this is a really ugly and not fully correct implementation. Most
|
||||
" importantly, a case like ``/* */*`` should have the final ``*`` not being in
|
||||
" a comment, but in practice at present it leaves comments open two levels
|
||||
" deep. But as long as you stay away from that particular case, I *believe*
|
||||
" the highlighting is correct. Due to the way Vim's syntax engine works
|
||||
" (greedy for start matches, unlike Rust's tokeniser which is searching for
|
||||
" the earliest-starting match, start or end), I believe this cannot be solved.
|
||||
" Oh you who would fix it, don't bother with things like duplicating the Block
|
||||
" rules and putting ``\*\@<!`` at the start of them; it makes it worse, as
|
||||
" then you must deal with cases like ``/*/**/*/``. And don't try making it
|
||||
" worse with ``\%(/\@<!\*\)\@<!``, either...
|
||||
|
||||
syn keyword rustTodo contained TODO FIXME XXX NB NOTE SAFETY
|
||||
|
||||
" asm! macro {{{2
|
||||
syn region rustAsmMacro matchgroup=rustMacro start="\<asm!\s*(" end=")" contains=rustAsmDirSpec,rustAsmSym,rustAsmConst,rustAsmOptionsGroup,rustComment.*,rustString.*
|
||||
|
||||
" Clobbered registers
|
||||
syn keyword rustAsmDirSpec in out lateout inout inlateout contained nextgroup=rustAsmReg skipwhite skipempty
|
||||
syn region rustAsmReg start="(" end=")" contained contains=rustString
|
||||
|
||||
" Symbol operands
|
||||
syn keyword rustAsmSym sym contained nextgroup=rustAsmSymPath skipwhite skipempty
|
||||
syn region rustAsmSymPath start="\S" end=",\|)"me=s-1 contained contains=rustComment.*,rustIdentifier
|
||||
|
||||
" Const
|
||||
syn region rustAsmConstBalancedParens start="("ms=s+1 end=")" contained contains=@rustAsmConstExpr
|
||||
syn cluster rustAsmConstExpr contains=rustComment.*,rust.*Number,rustString,rustAsmConstBalancedParens
|
||||
syn region rustAsmConst start="const" end=",\|)"me=s-1 contained contains=rustStorage,@rustAsmConstExpr
|
||||
|
||||
" Options
|
||||
syn region rustAsmOptionsGroup start="options\s*(" end=")" contained contains=rustAsmOptions,rustAsmOptionsKey
|
||||
syn keyword rustAsmOptionsKey options contained
|
||||
syn keyword rustAsmOptions pure nomem readonly preserves_flags noreturn nostack att_syntax contained
|
||||
|
||||
" Folding rules {{{2
|
||||
" Trivial folding rules to begin with.
|
||||
" FIXME: use the AST to make really good folding
|
||||
syn region rustFoldBraces start="{" end="}" transparent fold
|
||||
|
||||
if !exists("b:current_syntax_embed")
|
||||
let b:current_syntax_embed = 1
|
||||
syntax include @RustCodeInComment <sfile>:p:h/rust.vim
|
||||
unlet b:current_syntax_embed
|
||||
|
||||
" Currently regions marked as ```<some-other-syntax> will not get
|
||||
" highlighted at all. In the future, we can do as vim-markdown does and
|
||||
" highlight with the other syntax. But for now, let's make sure we find
|
||||
" the closing block marker, because the rules below won't catch it.
|
||||
syn region rustCommentLinesDocNonRustCode matchgroup=rustCommentDocCodeFence start='^\z(\s*//[!/]\s*```\).\+$' end='^\z1$' keepend contains=rustCommentLineDoc
|
||||
|
||||
" We borrow the rules from rust’s src/librustdoc/html/markdown.rs, so that
|
||||
" we only highlight as Rust what it would perceive as Rust (almost; it’s
|
||||
" possible to trick it if you try hard, and indented code blocks aren’t
|
||||
" supported because Markdown is a menace to parse and only mad dogs and
|
||||
" Englishmen would try to handle that case correctly in this syntax file).
|
||||
syn region rustCommentLinesDocRustCode matchgroup=rustCommentDocCodeFence start='^\z(\s*//[!/]\s*```\)[^A-Za-z0-9_-]*\%(\%(should_panic\|no_run\|ignore\|allow_fail\|rust\|test_harness\|compile_fail\|E\d\{4}\|edition201[58]\)\%([^A-Za-z0-9_-]\+\|$\)\)*$' end='^\z1$' keepend contains=@RustCodeInComment,rustCommentLineDocLeader
|
||||
syn region rustCommentBlockDocRustCode matchgroup=rustCommentDocCodeFence start='^\z(\%(\s*\*\)\?\s*```\)[^A-Za-z0-9_-]*\%(\%(should_panic\|no_run\|ignore\|allow_fail\|rust\|test_harness\|compile_fail\|E\d\{4}\|edition201[58]\)\%([^A-Za-z0-9_-]\+\|$\)\)*$' end='^\z1$' keepend contains=@RustCodeInComment,rustCommentBlockDocStar
|
||||
" Strictly, this may or may not be correct; this code, for example, would
|
||||
" mishighlight:
|
||||
"
|
||||
" /**
|
||||
" ```rust
|
||||
" println!("{}", 1
|
||||
" * 1);
|
||||
" ```
|
||||
" */
|
||||
"
|
||||
" … but I don’t care. Balance of probability, and all that.
|
||||
syn match rustCommentBlockDocStar /^\s*\*\s\?/ contained
|
||||
syn match rustCommentLineDocLeader "^\s*//\%(//\@!\|!\)" contained
|
||||
endif
|
||||
|
||||
" Default highlighting {{{1
|
||||
hi def link rustDecNumber rustNumber
|
||||
hi def link rustHexNumber rustNumber
|
||||
hi def link rustOctNumber rustNumber
|
||||
hi def link rustBinNumber rustNumber
|
||||
hi def link rustIdentifierPrime rustIdentifier
|
||||
hi def link rustTrait rustType
|
||||
hi def link rustDeriveTrait rustTrait
|
||||
|
||||
hi def link rustMacroRepeatDelimiters Macro
|
||||
hi def link rustMacroVariable Define
|
||||
hi def link rustSigil StorageClass
|
||||
hi def link rustEscape Special
|
||||
hi def link rustEscapeUnicode rustEscape
|
||||
hi def link rustEscapeError Error
|
||||
hi def link rustStringContinuation Special
|
||||
hi def link rustString String
|
||||
hi def link rustStringDelimiter String
|
||||
hi def link rustCharacterInvalid Error
|
||||
hi def link rustCharacterInvalidUnicode rustCharacterInvalid
|
||||
hi def link rustCharacter Character
|
||||
hi def link rustNumber Number
|
||||
hi def link rustBoolean Boolean
|
||||
hi def link rustEnum rustType
|
||||
hi def link rustEnumVariant rustConstant
|
||||
hi def link rustConstant Constant
|
||||
hi def link rustSelf Constant
|
||||
hi def link rustFloat Float
|
||||
hi def link rustArrowCharacter rustOperator
|
||||
hi def link rustOperator Operator
|
||||
hi def link rustKeyword Keyword
|
||||
hi def link rustDynKeyword rustKeyword
|
||||
hi def link rustTypedef Keyword " More precise is Typedef, but it doesn't feel right for Rust
|
||||
hi def link rustStructure Keyword " More precise is Structure
|
||||
hi def link rustUnion rustStructure
|
||||
hi def link rustExistential rustKeyword
|
||||
hi def link rustPubScopeDelim Delimiter
|
||||
hi def link rustPubScopeCrate rustKeyword
|
||||
hi def link rustSuper rustKeyword
|
||||
hi def link rustUnsafeKeyword Exception
|
||||
hi def link rustReservedKeyword Error
|
||||
hi def link rustRepeat Conditional
|
||||
hi def link rustConditional Conditional
|
||||
hi def link rustIdentifier Identifier
|
||||
hi def link rustCapsIdent rustIdentifier
|
||||
hi def link rustModPath Include
|
||||
hi def link rustModPathSep Delimiter
|
||||
hi def link rustFunction Function
|
||||
hi def link rustFuncName Function
|
||||
hi def link rustFuncCall Function
|
||||
hi def link rustShebang Comment
|
||||
hi def link rustCommentLine Comment
|
||||
hi def link rustCommentLineDoc SpecialComment
|
||||
hi def link rustCommentLineDocLeader rustCommentLineDoc
|
||||
hi def link rustCommentLineDocError Error
|
||||
hi def link rustCommentBlock rustCommentLine
|
||||
hi def link rustCommentBlockDoc rustCommentLineDoc
|
||||
hi def link rustCommentBlockDocStar rustCommentBlockDoc
|
||||
hi def link rustCommentBlockDocError Error
|
||||
hi def link rustCommentDocCodeFence rustCommentLineDoc
|
||||
hi def link rustAssert PreCondit
|
||||
hi def link rustPanic PreCondit
|
||||
hi def link rustMacro Macro
|
||||
hi def link rustType Type
|
||||
hi def link rustTodo Todo
|
||||
hi def link rustAttribute PreProc
|
||||
hi def link rustDerive PreProc
|
||||
hi def link rustDefault StorageClass
|
||||
hi def link rustStorage StorageClass
|
||||
hi def link rustObsoleteStorage Error
|
||||
hi def link rustLifetime Special
|
||||
hi def link rustLabel Label
|
||||
hi def link rustExternCrate rustKeyword
|
||||
hi def link rustObsoleteExternMod Error
|
||||
hi def link rustQuestionMark Special
|
||||
hi def link rustAsync rustKeyword
|
||||
hi def link rustAwait rustKeyword
|
||||
hi def link rustAsmDirSpec rustKeyword
|
||||
hi def link rustAsmSym rustKeyword
|
||||
hi def link rustAsmOptions rustKeyword
|
||||
hi def link rustAsmOptionsKey rustAttribute
|
||||
|
||||
" Other Suggestions:
|
||||
" hi rustAttribute ctermfg=cyan
|
||||
" hi rustDerive ctermfg=cyan
|
||||
" hi rustAssert ctermfg=yellow
|
||||
" hi rustPanic ctermfg=red
|
||||
" hi rustMacro ctermfg=magenta
|
||||
|
||||
"syn sync minlines=200
|
||||
"syn sync maxlines=500
|
||||
|
||||
let b:current_syntax = "rust"
|
||||
|
||||
" vim: set et sw=4 sts=4 ts=8:
|
||||
@@ -1,37 +0,0 @@
|
||||
# ==============================================================================
|
||||
# Auth: dodd
|
||||
# File: test.prv
|
||||
# Revn: 04-17-2023 1.0
|
||||
# Func: show all of the functions of the prv syntax highlighting
|
||||
#
|
||||
# TODO: update as needed
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# 04-17-2023: wrote and commented
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
// we out here in that single line comment
|
||||
|
||||
/* in-line comment */ un highlighted, not in brackets
|
||||
|
||||
/* also functions as a
|
||||
multiline comment */ notice how this is not highlighted
|
||||
|
||||
// archie nicknames
|
||||
archie chach chibo
|
||||
|
||||
// olly nicknames
|
||||
olly olly bolly bear
|
||||
Oliver Boliver Rockford Gubbins
|
||||
|
||||
// both
|
||||
sink boy
|
||||
of sealaND
|
||||
|
||||
// parents
|
||||
mom and dad
|
||||
|
||||
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
# ==============================================================================
|
||||
# Auth: dodd
|
||||
# File: test.prv
|
||||
# Revn: 04-17-2023 1.0
|
||||
# Func: show all of the functions of the prv syntax highlighting
|
||||
#
|
||||
# TODO: update as needed
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# 04-17-2023: wrote and commented
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
// we out here in that single line comment
|
||||
|
||||
/* in-line comment */ un highlighted, not in brackets
|
||||
|
||||
/* also functions as a
|
||||
multiline comment */ notice how this is not highlighted
|
||||
|
||||
// bad people names
|
||||
mstislav Mstislav Boris boris
|
||||
// neutral people names
|
||||
yaroslav Yaroslav
|
||||
// good people names
|
||||
miro Miro Dobra dobra
|
||||
|
||||
// place names :)
|
||||
Providence
|
||||
|
||||
|
||||
// latin word, german word
|
||||
constable reeve
|
||||
// russogermanic, slavic
|
||||
skazarktos slava
|
||||
@@ -1,53 +0,0 @@
|
||||
# ====================================================================
|
||||
# Auth: dodd
|
||||
# File: template.txt
|
||||
# Revn: 10-16-2020 1.0
|
||||
# Func: Demonstrate everything the text syntax file can do
|
||||
#
|
||||
# TODO: create
|
||||
# ====================================================================
|
||||
# CHANGE LOG
|
||||
# --------------------------------------------------------------------
|
||||
# 10-16-2020: init
|
||||
#
|
||||
# ====================================================================
|
||||
|
||||
|
||||
Attribute:: explanation for a little while, really how ever long you
|
||||
want it to go on for. The double quote marks this text as
|
||||
a property. For the time being, this text also serves as
|
||||
the body, and is really hard to properly color
|
||||
-> this marks a field. This is the first field, field 1
|
||||
# this is a comment. below this is field 2
|
||||
-> here's field 2, the second field
|
||||
=> this is also a field, field 3
|
||||
==> fields can be "indented" to acknowledge that things are
|
||||
subortinate to the prior
|
||||
---> check out that quote
|
||||
-> "Ask not what your country can do for you, but what you
|
||||
can do for your country" - Old Man
|
||||
-> "I made numbers like 5 highlight differently in quotes"
|
||||
|
||||
(1) Fs = 2 * f_max
|
||||
(2) x = e^(j*2*pi*f*t)
|
||||
|
||||
==> See above in (1) where I have defined the Nyquist
|
||||
Sampling Theorem. Expressions only highlight when there
|
||||
is at least one space before and after the equal sign.
|
||||
Adding this kept it from highlighting the ==> arrows
|
||||
==> In (2), we can see that e, j (also i), and pi are seen as
|
||||
numbers
|
||||
|
||||
NOTE: I added this next part for fun!
|
||||
-> I want to live in Norway, I wish I was Norwegian, I want
|
||||
to be Norse, in Norge, Speaking Norsk like the Norwegians
|
||||
-> Or perhaps live in Russia, be Russian, a slav, and speak
|
||||
a slavic language like the Ruskies
|
||||
note: anything between "note:" and ! will be highlighted
|
||||
NoTe: the trigger is case insensitive!
|
||||
|
||||
-> whatever <this> is, I'm not sure yet, but it does it
|
||||
--> also contains <numb3rs>
|
||||
|
||||
|
||||
|
||||
@@ -1,297 +0,0 @@
|
||||
" ====================================================================
|
||||
" Auth: dodd
|
||||
" Lang: Text
|
||||
" Revn: 10-16-2020 1.5
|
||||
" Func: Define syntax coloring for .txt files when being edited in Vim
|
||||
"
|
||||
" TODO: make comments create new comments on line overrun and newline
|
||||
" add highlighting for titles, vocab words, definitions
|
||||
" create a better template file showing all the highlighting
|
||||
" get term=underline working to avoid using link statements
|
||||
" ====================================================================
|
||||
" CHANGE LOG
|
||||
" --------------------------------------------------------------------
|
||||
" 09-29-2020: copy over from go.vim
|
||||
" 10-01-2020: gutted entire file
|
||||
" made my own quote regex
|
||||
" made comment
|
||||
" added link to list of group names and their colors
|
||||
" 10-02-2020: rewrote quotes to allow multiline quotes with rollover
|
||||
" added recognition for numbers
|
||||
" separated numbers into numbers and numbers in quotes
|
||||
" added date recognition, underlines dates in change log
|
||||
" made comments recognize Auth, Lang, Revn, Func, Todo
|
||||
" underline Auth, Lang, Revn, Func, Todo, and Change Log
|
||||
" recognized fields, the field delimiter (::), and
|
||||
" property delimiter (->)
|
||||
" added tags for notes to self, and the body of such
|
||||
" began writing something to passively color body
|
||||
" colored things Norse things green, and Russian red
|
||||
" added Color Guide, and source
|
||||
" changed some colors up a bit
|
||||
" made property delimiter of variable length, also use =>
|
||||
" 10-03-2020: added reminded to color explicitly in Todo
|
||||
" 10-11-2020: replaced most links with explicit ctermfg statements
|
||||
" added expressions, names, operations
|
||||
" changed some colors up a bit
|
||||
" shortened lines down to <= 70 characters
|
||||
" 10-16-2020: added Norge to norwegian words
|
||||
" added spaces around = in expression to avoid confusion
|
||||
" with => marker
|
||||
" changed noteTag color from DkRed to Red to match notes
|
||||
" added <> region
|
||||
" added i, j, e, pi as numbers
|
||||
"
|
||||
" ====================================================================
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
" XXX Expressions:
|
||||
" highlight equations, formulas, expressions, etc
|
||||
" expressions: .* is any number of characters
|
||||
" = is literal
|
||||
" .* is any number of characters again
|
||||
" added spaces around = to avoid confusion with =>
|
||||
"
|
||||
" the idea is that it's stuff that equals stuff, and we
|
||||
" worry about what it is later
|
||||
" name: \c case-escapes the sequence
|
||||
" \a is alphabetic characters, probably don't need escaping
|
||||
" \+ is at least 1 match, so it's 1 or more letters is a name
|
||||
" name: \c\a\= is 0 or 1 case-escaped alphabetic characters
|
||||
" _ is literal, best I can get to subscripts
|
||||
" \a\+ is 1 or more case-escaped alphabetic characters
|
||||
" op: inside [] can allow for one choice from any contained characters
|
||||
" =, +, -, /, ^ are all literals for operations
|
||||
" \* escapes the * character, which is now multiplication
|
||||
" Num: see Numbers: below
|
||||
" FIXME try to make name into one thing, probably with \{,1}
|
||||
syn match expression ".* = .*" contains=name,op,num skipwhite
|
||||
syn match name "\c\a\+" contained
|
||||
syn match name "\c\a\=_\a\+" contained
|
||||
syn match op "[=+-/^\*]" contained
|
||||
|
||||
|
||||
" XXX Quotes:
|
||||
" quotes should exist between odd pairs of quotation marks
|
||||
" eg| "quote" not
|
||||
" "quote" not "quote"
|
||||
" "not
|
||||
" quote"
|
||||
" "quote only if the it rolls
|
||||
" over onto the next line"
|
||||
" Calling the quotation a region instead of pattern match makes it
|
||||
" easier to wrap around a new line
|
||||
" the first and last quote define the expression
|
||||
" \ escapes the next character, allowing \" to appear as a literal "
|
||||
" thus, start and end are both quotes, and the reqion can span lines
|
||||
" added contains num on the off chance I want to embed a number
|
||||
" added contains for norwegian and russian for the hell of it
|
||||
syn region quote start="\"" end="\"" contains=numQuote,norwegian,russian
|
||||
" -- DEPRECATED --
|
||||
" the first and last quote define the expression
|
||||
" \ is the escape character, so \" means I want to look for a quote
|
||||
" . is every non-new line character possible
|
||||
" \{,} is \{0,infinity}, means I'm looking for between 0 and infinity
|
||||
" matches for the previous character, which is a wildcard, .
|
||||
" \{-,} will prioritize the smallest amount of matches possible
|
||||
" syn match quote "\".\{-,}\""
|
||||
" -- DEPRECATED --
|
||||
|
||||
|
||||
" XXX Unnamed Field:
|
||||
" match, because it should really only span one line
|
||||
" < and > are literals
|
||||
" .* means any character any number of times
|
||||
" contains numQuote
|
||||
syn match unnamed "<.*>" contains=numQuote
|
||||
|
||||
|
||||
" XXX Numbers:
|
||||
" num and numQuote allow for the coloring of numbers. numQuote exists
|
||||
" for the sole purpose of coloring numbers differently for when
|
||||
" they're inside of a quote, thus the contained keyword for numQuote
|
||||
" the first and last quote define the expression
|
||||
" - is the negative symbol, \? allows for 0 or 1 matchings, which
|
||||
" allows for negative numbers
|
||||
" \d is any digit [0-9], \+ is 1 or more matches, which means there
|
||||
" MUST be at least one number for a match to be seen
|
||||
" \a is any letter [a-zA-Z], * allows any number of them for variables
|
||||
" \. escapes the . character so decimal points can be represented
|
||||
" \? allows 0 or 1 matches of \., because number only have 1 decimal
|
||||
" \d for numbers after the decimal
|
||||
" * for any number of matches, using \+ (one or more matches) would
|
||||
" have only allowed for 2 digit numbers minimum
|
||||
" i, j, e, pi are all common numbers
|
||||
syn match numQuote "-\?\d\+\a*\.\?\d*" contained
|
||||
syn keyword numQuote j i e pi contained
|
||||
syn match num "-\?\d\+\a*\.\?\d*"
|
||||
syn keyword num j i e pi
|
||||
|
||||
|
||||
|
||||
" XXX Dates:
|
||||
" Date highlighting for the Change Log
|
||||
" the first and last quote define the expression
|
||||
" \d is any digit [0-9]
|
||||
" \{1,2} matches 1 or 2 times, although it should only ever get 2
|
||||
" - literal hyphen, which seperates months, days, and years
|
||||
" The same three elements are repeated again for the days
|
||||
" \d is any digit, used again for the years
|
||||
" \{4} for only four digits can be matched
|
||||
" ends with : because only dates in change log should be highlighted
|
||||
" marked as contained, as it should only be highlighted in comments
|
||||
" contains colon, so I can highlight the color separately
|
||||
" for some reason, the colon doesn't work as keyword, so simple match
|
||||
syn match date "\d\{1,2}-\d\{1,2}-\d\{4}:" contained contains=colon
|
||||
syn match colon ":" contained
|
||||
|
||||
|
||||
" XXX Comments:
|
||||
" comments come after #
|
||||
" eg| not comment # now a comment
|
||||
" # comment
|
||||
" not a comment
|
||||
" not
|
||||
" not
|
||||
" ### comment
|
||||
"
|
||||
" first and last quote define the expression
|
||||
" # can come literally, because it doesn't need escaping
|
||||
" . is every non-new line character possible
|
||||
" * matches as many matches as possible
|
||||
" i.e. a pound sign, and then as many characters as possible
|
||||
syn match comments "#.*" contains=commentFields,commentTodo,date,norwegian,russian
|
||||
" commentFields and commentTodo are contained within comments, so they
|
||||
" are as such in the definition of a comment, and listed as contained
|
||||
" in their own definitions
|
||||
" commentFields is match instead of keyword, will contain the space
|
||||
syn keyword commentFields contained Auth Revn File Func
|
||||
syn keyword commentTodo contained TODO
|
||||
syn match commentFields contained "CHANGE LOG"
|
||||
|
||||
|
||||
" XXX Fields:
|
||||
" Denotes properties, things that are of importance
|
||||
" first and last quote define the expression
|
||||
" . is any character
|
||||
" * is any number of that character
|
||||
" :: is the literal characters '::', which denotes the property
|
||||
" Using nextgroup would have been better praxis, but this works
|
||||
" After, denote the delimiter as own syntax element to color uniquely
|
||||
" FIXME: make this better with nextgroup
|
||||
syn match fields ".*::" contains=delim
|
||||
syn match delim "::"
|
||||
|
||||
" XXX Properties:
|
||||
" Denotes a property of a field
|
||||
" -\+ is one or more hyphens
|
||||
" =\+ is one or more equals signs
|
||||
" > is a literal
|
||||
syn match properties "-\+>"
|
||||
syn match properties "=\+>"
|
||||
|
||||
|
||||
" XXX Notes:
|
||||
" Allow for notes to be left with special highlighting
|
||||
" \c escapes the case, so search is entirely case insensitive
|
||||
" note are all literals
|
||||
" s\? will alow for either 0 or 1 of the character "s" to be matched,
|
||||
" essentially allowing for both notes and note
|
||||
" finally followed by a colon
|
||||
" nextgroup is the actual notes to be taken, as this is just the tag
|
||||
syn match noteTag "\cnotes\?:" nextgroup=notes
|
||||
" define notes as starting with space, ending with exclamation mark
|
||||
" if it's not denoted as contained, then the whole damn thing will be
|
||||
" highlighted
|
||||
syn region notes start=" " end="!" contained
|
||||
|
||||
|
||||
" FIXME Body:
|
||||
" This is the rest of the text
|
||||
" I found out with notes, if this isn't given as contained, it'll just
|
||||
" highlight everything
|
||||
"syn region body start=" " end=" "
|
||||
|
||||
|
||||
" XXX Norwegian:
|
||||
" XXX Russian:
|
||||
" lmfao ignore case sensitivity to avoid writing things twice
|
||||
" Highlight norwegian shit green
|
||||
syn case ignore
|
||||
syn keyword norwegian nordic nordics
|
||||
syn keyword norwegian norse
|
||||
syn keyword norwegian norway
|
||||
syn keyword norwegian norge
|
||||
syn keyword norwegian norsk
|
||||
syn keyword norwegian norwegian norwegians
|
||||
" Highlight Russian shit red
|
||||
syn keyword russian russian russians
|
||||
syn keyword russian rusky ruskies
|
||||
syn keyword russian russia
|
||||
syn keyword russian slav slavs
|
||||
syn keyword russian slavic
|
||||
syn case match
|
||||
" lmfao and turn the case sensitivity back on
|
||||
|
||||
|
||||
|
||||
" ColorGuide: ctermfg and ctermbg args - - - - source:: :help cterm
|
||||
" Black
|
||||
" LightBlue/Cyan/LightCyan, Blue/DarkBlue/DarkCyan
|
||||
" Green/LightGreen, DarkGreen
|
||||
" Red/LightRed, DarkRed
|
||||
" Magenta/LightMagenta, DarkMagenta
|
||||
" Yellow/LightYellow, DarkYellow/Brown
|
||||
" White
|
||||
" Gray/LightGray, DarkGray
|
||||
" ColorGuide: ctermfg and ctermbg args - - - - source:: :help cterm
|
||||
" ColorGuide: - - - - - - - - - - - - - - - source:: :help group-name
|
||||
" Dates and fields in comments still use links for highlighting to get
|
||||
" access to 'term' arguments that don't want to load correctly, namely
|
||||
" Underline -> PreProc (Magenta in default colo), with underline
|
||||
" ColorGuide: - - - - - - - - - - - - - - - source:: :help group-name
|
||||
|
||||
|
||||
" XXX Coloring:
|
||||
" hi[ghlight] <group> ctermfg=<color> [ctermbg=<color>]
|
||||
" group is typically a user-made group
|
||||
" ctermfg is the foreground, or font color
|
||||
" ctermbg is the background color, or highlight color
|
||||
|
||||
" Note: Keep ctermfg for expression and op the same value
|
||||
hi expression ctermfg=Blue
|
||||
hi name ctermfg=LightGreen
|
||||
hi op ctermfg=Blue
|
||||
hi num ctermfg=Magenta
|
||||
|
||||
hi unnamed ctermfg=Magenta
|
||||
hi quote ctermfg=DarkRed
|
||||
hi numQuote ctermfg=Green
|
||||
|
||||
hi comments ctermfg=Green
|
||||
" I want the underlines, but I can't figure out how to make them work
|
||||
" Normally, you add 'term=Underline', but that doesn't quite work
|
||||
hi def link commentFields Underlined
|
||||
hi def link date Underlined
|
||||
hi colon ctermfg=Cyan
|
||||
hi commentTodo ctermfg=Black ctermbg=Yellow
|
||||
|
||||
hi fields ctermfg=Red
|
||||
hi delim ctermfg=Yellow
|
||||
|
||||
hi properties ctermfg=Red
|
||||
hi noteTag ctermfg=White ctermbg=Red
|
||||
hi notes ctermfg=White ctermbg=Red
|
||||
|
||||
"hi body ctermfg=LightBlue
|
||||
|
||||
hi norwegian ctermfg=Green
|
||||
hi russian ctermfg=Red
|
||||
|
||||
let b:current_syntax = "txt"
|
||||
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
k;double sin()
|
||||
,cos();main(){float A=
|
||||
0,B=0,i,j,z[1760];char b[
|
||||
1760];printf("\x1b[2J");for(;;
|
||||
){memset(b,32,1760);memset(z,0,7040)
|
||||
;for(j=0;6.28>j;j+=0.07)for(i=0;6.28
|
||||
>i;i+=0.02){float c=sin(i),d=cos(j),e=
|
||||
sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c*
|
||||
h*e+f*g+5),l=cos (i),m=cos(B),n=s\
|
||||
in(B),t=c*h*g-f* e;int x=40+30*D*
|
||||
(l*h*m-t*n),y= 12+15*D*(l*h*n
|
||||
+t*m),o=x+80*y, N=8*((f*e-c*d*g
|
||||
)*m-c*d*e-f*g-l *d*n);if(22>y&&
|
||||
y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]=
|
||||
".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/
|
||||
printf("\x1b[H");for(k=0;1761>k;k++)
|
||||
putchar(k%80?b[k]:10);A+=0.04;B+=
|
||||
0.02;}}/*****####*******!!=;:~
|
||||
~::==!!!**********!!!==::-
|
||||
.,~~;;;========;;;:~-.
|
||||
..,--------,*/
|
||||
-129
@@ -1,129 +0,0 @@
|
||||
# ========================================================================
|
||||
# Auth: dodd
|
||||
# File: setup.sh
|
||||
# Revn: 01-07-2025 2.0
|
||||
# Func: automate pi setup
|
||||
#
|
||||
# TODO
|
||||
# [X] get link to newer version of go
|
||||
# [X] make useful directories
|
||||
# [ ] build TDM
|
||||
# [ ] build ekho
|
||||
# [ ] make symlinks to executables to ~/bin
|
||||
# [ ] make symlinks to source in ~/src
|
||||
# [X] make symlinks to .bashrc + friends
|
||||
# [ ] connect to internet
|
||||
# [ ] test?
|
||||
# ========================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------
|
||||
# 07-05-2023: added apt installs for vim, neofetch, tmux
|
||||
# 07-06-2023: install stuffs for golang, rust, github
|
||||
# 07-10-2023: added apt install for tshark
|
||||
# 07-11-2023: mv calls for github/bash and github/TDM
|
||||
# building TDM
|
||||
# sudo echo calls for /etc/dhcpcd.conf for static ip
|
||||
# empty and refill /etc/motd
|
||||
# enabled ssh?
|
||||
# fixed typo in golang download, had one, wanted L
|
||||
# 10-07-2024: updated git clone commands
|
||||
# symlink command for bashrc + friends
|
||||
# added big todo list
|
||||
# made bin/src directories
|
||||
# 12-14-2024: updated golang version number
|
||||
#*01-04-2025: added command to install nmap
|
||||
# uncommented building TDM and mv'ing binary to ~/bin
|
||||
# built ekho, moved to ~/bin/
|
||||
# copied, built, and moved donut/boot to ~/src/ and ~/bin/
|
||||
#*01-07-2025: added symlink for .tmux.conf
|
||||
#
|
||||
# ========================================================================
|
||||
|
||||
# update apt
|
||||
sudo apt update && sudo apt upgrade
|
||||
|
||||
# install vim
|
||||
sudo apt install -y vim
|
||||
|
||||
# install neofetch
|
||||
sudo apt install -y neofetch
|
||||
|
||||
# install tmux
|
||||
sudo apt install -y tmux
|
||||
|
||||
# install tshark
|
||||
sudo apt install -y tshark
|
||||
|
||||
# install nmap
|
||||
sudo apt install -y nmap
|
||||
|
||||
# TODO get newer version of Go
|
||||
# install golang
|
||||
wget https://dl.google.com/go/go1.21.1.linux-armv6l.tar.gz
|
||||
sudo tar -C /usr/local -xzf go1.21.1.linux-armv6l.tar.gz
|
||||
rm go1.21.1.linux-armv6l.tar.gz
|
||||
echo "PATH=$PATH:/usr/local/go/bin" >> ~/.profile
|
||||
echo "GOPATH=$HOME/go" >> ~/.profile
|
||||
|
||||
# install rust
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
|
||||
# create the directory "Documents" if it doesn't exist
|
||||
# if it does exist, who cares TODO test
|
||||
cd ~
|
||||
mkdir bin
|
||||
mkdir src
|
||||
mkdir Documents 2> /dev/null
|
||||
cd Documents
|
||||
|
||||
# github treats
|
||||
# lol good luck, without a PAT, this shit BREAKS
|
||||
# start with my stuff
|
||||
git clone https://github.com/alexander-the-alright/dotfiles
|
||||
git clone https://github.com/alexander-the-alright/TDM
|
||||
git clone https://github.com/alexander-the-alright/soary
|
||||
git clone https://github.com/alexander-the-alright/ekho
|
||||
|
||||
# TODO make go
|
||||
# build todo manager
|
||||
go build TDM/tdm.go
|
||||
mv tdm ~/bin/tdm
|
||||
|
||||
# make ekho
|
||||
go build ekho/client
|
||||
mv client ~/bin/client.o
|
||||
|
||||
# TODO symlinks
|
||||
cd ~
|
||||
ln -sf ~/Documents/dotfiles/pi/.vim ~/.vim
|
||||
ln -sf ~/Documents/dotfiles/.vimrc ~/.vimrc
|
||||
ln -sf ~/Documents/dotfiles/pi/.bash_profile ~/.bashrc
|
||||
ln -sf ~/Documents/dotfiles/pi/.tmux.conf ~/.tmux.conf
|
||||
|
||||
# copy and build binaries
|
||||
cp ~/Documents/dotfiles/pi/donut.c ~/src
|
||||
cp ~/Documents/dotfiles/pi/boot.go ~/src
|
||||
gcc -o donut.o src/donut.c
|
||||
gcc -o boot src/boot.go
|
||||
mv boot ~/bin/
|
||||
mv donut.o ~/bin/
|
||||
|
||||
# elsewhere
|
||||
git clone https://github.com/stianeikeland/go-rpio
|
||||
git clone https://github.com/golemparts/rppal
|
||||
|
||||
|
||||
# TODO internet
|
||||
|
||||
# XXX this dumb router breaks this
|
||||
# create static local ip address
|
||||
#sudo echo "" >> /etc/dhcpcd.conf
|
||||
#sudo echo "" >> /etc/dhcpcd.conf
|
||||
#sudo echo "interface wlan0" >> /etc/dhcpcd.conf
|
||||
#sudo echo "static ip_address=192.168.1.160/24" >> /etc/dhcpcd.conf
|
||||
#sudo echo "static routers=192.168.1.1" >> /etc/dhcpcd.conf
|
||||
#sudo echo "static domain_name_servers=192.168.1.1" >> /etc/dhcpcd.conf
|
||||
|
||||
# enable ssh?
|
||||
sudo touch /boot/ssh
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
earth-1.net
|
||||
|
||||
reverse_proxy :3000
|
||||
@@ -1,7 +1,7 @@
|
||||
// =============================================================================
|
||||
// Auth: alex
|
||||
// Auth: Alex Celani
|
||||
// File: boot.go
|
||||
// Revn: 06-16-2026 2.0
|
||||
// Revn: 10-10-2023 1.0
|
||||
// Func: Blink a light when the pi boots (or on login, but who cares)
|
||||
//
|
||||
// TODO: create
|
||||
@@ -9,11 +9,8 @@
|
||||
// CHANGE LOG
|
||||
// -----------------------------------------------------------------------------
|
||||
// 06-23-2022: init
|
||||
//*10-10-2023: imported flag
|
||||
// 10-10-2023: imported flag
|
||||
// added flag to define gpio pin at runtime
|
||||
//*06-16-2026: added flag to control flash duration
|
||||
// added flag to control amount of flashes
|
||||
// added flag to decide between flash mode and toggle mode
|
||||
//
|
||||
// =============================================================================
|
||||
|
||||
@@ -21,7 +18,7 @@ package main
|
||||
|
||||
|
||||
import (
|
||||
"flag" // IntVar, BoolVar, Float64Var, Parse
|
||||
"flag" // IntVar, Parse
|
||||
"fmt" // Println
|
||||
// rpio.Pin, Pin, Open, Close, Output, Toggle
|
||||
"github.com/stianeikeland/go-rpio"
|
||||
@@ -38,17 +35,12 @@ Connect a LED with resistor from pin 19 to ground.
|
||||
|
||||
var pin rpio.Pin // global pin object
|
||||
var num int // flag variable, holds pin number
|
||||
var dur float64 // flag variable, holds duration
|
||||
var amt int // flag variable, holds times to flash
|
||||
var tog bool // flag variable, hold toggle mode switch
|
||||
|
||||
|
||||
func main() {
|
||||
|
||||
// map input flag to variable
|
||||
flag.IntVar( &num, "p", 10, "pin number" )
|
||||
flag.Float64Var( &dur, "d", 100, "duration of flash (ms)" )
|
||||
flag.IntVar( &amt, "n", 2, "amount of times to flash" )
|
||||
flag.BoolVar( &tog, "t", false, "toggle mode" )
|
||||
flag.Parse()
|
||||
|
||||
// create pin object at given pin number
|
||||
@@ -66,15 +58,10 @@ func main() {
|
||||
// Set pin to output mode
|
||||
pin.Output()
|
||||
|
||||
if tog { // if user specifies toggle mode
|
||||
pin.Toggle() // toggle
|
||||
return // and leave
|
||||
}
|
||||
|
||||
// Toggle pin 2*amt times
|
||||
for i := 0; i < 2 * amt; i++ {
|
||||
// Toggle pin 2 times
|
||||
for i := 0; i < 4; i++ {
|
||||
pin.Toggle()
|
||||
time.Sleep( time.Millisecond * time.Duration( dur ) )
|
||||
time.Sleep(time.Second / 10)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,730 @@
|
||||
#!/usr/bin/bash
|
||||
# ==============================================================================
|
||||
# Auth: alex
|
||||
# File: ygdra.sh
|
||||
# Revn: 08-31-2026 0.2.0
|
||||
# Func: terraform a fresh OS install
|
||||
#
|
||||
# TODO: add default dry-run
|
||||
# chown everything back to user
|
||||
# fix paru install?
|
||||
# keep track of what failed and deliver progress report at end
|
||||
# of script
|
||||
# announce package before installation
|
||||
# pattern matching/S&R with symlinks?
|
||||
# look into exactly what archinstall doesn't give you
|
||||
# check $TERM
|
||||
# git clones
|
||||
# gitea setup/migrate/import?
|
||||
# symlink configs based on user
|
||||
# create configs for like most of the users
|
||||
# system config
|
||||
# test
|
||||
# download and install batman beyond font pack
|
||||
# ==============================================================================
|
||||
# CHANGE LOG
|
||||
# ------------------------------------------------------------------------------
|
||||
# 06-23-2026: wrote os/package manager recognition
|
||||
# wrote system update
|
||||
# requested operating mode
|
||||
# wrote quick outline
|
||||
# 06-25-2026: light commenting
|
||||
# added ubuntu to recognized os's
|
||||
# added ubuntu to specific installs block
|
||||
# requested specific users
|
||||
# added rpi:
|
||||
# vim fastfetch* go* julia* zig* caddy ranger
|
||||
# pihole* gitea*
|
||||
# added ubuntu:
|
||||
# vim fastfetch* go* julia* zig* caddy pihole*
|
||||
# gitea* ranger
|
||||
# added cachy:
|
||||
# go julia zig gitea pihole caddy arduino-cli
|
||||
# arduino-ide-bin discord flameshot heroic
|
||||
# snapchat balena just ranger zen
|
||||
# added arch:
|
||||
# vim fastfetch go julia zig gitea pihole caddy
|
||||
# arduino-cli arduino-ide-bin discord flameshot
|
||||
# heroic paru* snapchat* balena just ranger zen*
|
||||
# 06-27-2026: added just for rpi
|
||||
# fleshed out golang, fastfetch, julia, and rust/cargo
|
||||
# 06-28-2026: added onefetch and just for all ( fuck onefetch build )
|
||||
# removed ubuntu/debian snapchat and arduino
|
||||
# added alacritty for arch and ubuntu
|
||||
# added fish to arch, ubuntu, and pi
|
||||
# added gitea and discord to ubuntu
|
||||
# added zen to arch and ubuntu
|
||||
# 06-29-2026: added paru install for arch
|
||||
# 06-30-2026: moved caddy from system server install to general server
|
||||
# started doing user specific .config symlinks
|
||||
# added CWD variable to keep track of running directory
|
||||
# 07-02-2026: download and install acli for all distros
|
||||
# started to figure out symlinking configs
|
||||
# 07-04-2026: added manhunter to user list (minipc server)
|
||||
#*07-06-2026: added exit statement before symlinks, testing on cachy
|
||||
# server
|
||||
# fixed -eq bug in bash if statement
|
||||
# added automatic installation flag
|
||||
# 07-07-2026: added just to arch and cachy general install
|
||||
# moved alacritty from arch general to arch user and
|
||||
# poweruser
|
||||
# added man and git to arch general install
|
||||
# 07-08-2026: added vim to arch general install
|
||||
# added Documents, Projects, and Utilities directories in
|
||||
# arch
|
||||
# 07-11-2026: added arch config sed command that switches pacman into
|
||||
# waka waka mode
|
||||
# added htop install for rpi and ubuntu
|
||||
# added btop install for arch
|
||||
# 07-14-2026: added arch install i3 etc for mcginnis
|
||||
# added arch install niri/noctalia etc for grayson and
|
||||
# drake
|
||||
# 08-15-2026: removed fuckass -r from ln
|
||||
# added tldr ( tealdeer ) to general install
|
||||
# added eza and openssh to arch install
|
||||
# fixed batman-beyond config installs
|
||||
# began making placeholder config installs
|
||||
# 08-28-2026: commented out balena for the time being
|
||||
# added dynu.sh, .service, and .timer to general server
|
||||
# 08-29-2026: added fisher install to arch
|
||||
#*08-31-2026: added status prints and pauses for debugging
|
||||
# added if shell not fish, chsh fish
|
||||
# capture user
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
# ==============================================================================
|
||||
# TODO
|
||||
# ------------------------------------------------------------------------------
|
||||
# A config(gh)
|
||||
# ------------------------------------------------------------------------------
|
||||
# C
|
||||
# ------------------------------------------------------------------------------
|
||||
# R config
|
||||
# ------------------------------------------------------------------------------
|
||||
# U config(gh)
|
||||
# ------------------------------------------------------------------------------
|
||||
# all fish-pure-prompt
|
||||
# ==============================================================================
|
||||
|
||||
# TODO i'm certain there's a better way to do this
|
||||
CWD=$( pwd )
|
||||
cd ..
|
||||
HOME=$( pwd )
|
||||
|
||||
USERS_BAD=$( users )
|
||||
USERS=($USERS_BAD)
|
||||
|
||||
# TODO filter out the obvious part
|
||||
RELEASE=$( cat /etc/os-release | grep -i "^id=" )
|
||||
OS=""
|
||||
INS=""
|
||||
FLAG=""
|
||||
|
||||
# get os and package manager
|
||||
case $RELEASE in
|
||||
*cachyos)
|
||||
OS="cachyos"
|
||||
INS="pacman"
|
||||
INS2="paru"
|
||||
FLAG="-S"
|
||||
NOCONF="--noconfirm"
|
||||
;;
|
||||
*arch)
|
||||
OS="arch"
|
||||
INS="pacman"
|
||||
INS2="paru"
|
||||
FLAG="-S"
|
||||
NOCONF="--noconfirm"
|
||||
;;
|
||||
*raspbian | *debian)
|
||||
OS="rpi"
|
||||
INS="apt"
|
||||
FLAG="install"
|
||||
NOCONF="--yes"
|
||||
;;
|
||||
*ubuntu)
|
||||
OS="ubuntu"
|
||||
INS="apt"
|
||||
FLAG="install"
|
||||
NOCONF="--yes"
|
||||
;;
|
||||
*) # default
|
||||
OS="unknown"
|
||||
INS="unknown"
|
||||
FLAG="unknown"
|
||||
NOCONF="unknown"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "CWD = $CWD"
|
||||
echo "HOME = $HOME"
|
||||
echo "USER = ${USERS[0]}"
|
||||
echo ""
|
||||
echo "OS = $OS"
|
||||
echo "INS = $INS"
|
||||
echo "FLAG = $FLAG"
|
||||
echo "NOCONF = $NOCONF"
|
||||
read
|
||||
|
||||
|
||||
# system update
|
||||
case $OS in
|
||||
cachyos | arch)
|
||||
$INS -Syu
|
||||
;;
|
||||
rpi | ubuntu)
|
||||
$INS update
|
||||
$INS upgrade
|
||||
;;
|
||||
*) # quit if unrecognized
|
||||
echo "os unknown"
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
# get operating mode
|
||||
echo "select operating mode:"
|
||||
echo " 1) node"
|
||||
echo " 2) server"
|
||||
echo " 3) poweruser"
|
||||
echo "[default: 1]: "
|
||||
read MODE_DIRTY
|
||||
|
||||
# sanitize operating mode
|
||||
MODE=""
|
||||
case $MODE_DIRTY in
|
||||
1 | 2 | 3)
|
||||
MODE=$MODE_DIRTY
|
||||
;;
|
||||
*)
|
||||
MODE=1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "MODE = $MODE"
|
||||
read
|
||||
|
||||
|
||||
# get user info
|
||||
echo "select user from list:"
|
||||
#echo " 1) batman/wayne"
|
||||
echo " 2) batman-beyond/mcginnis"
|
||||
echo " 3) nightwing/grayson"
|
||||
#echo " 4) red-hood/todd"
|
||||
echo " 5) red-robin/drake"
|
||||
#echo " 6) robin/wayne"
|
||||
echo " 7) oracle/gordon"
|
||||
echo " 8) manhunter"
|
||||
#echo " 9) zeta"
|
||||
#echo " 10) oracle/smoak"
|
||||
#echo " 11) joker"
|
||||
#echo " 12) owlman"
|
||||
#echo " W) wayne-tech"
|
||||
echo "[default: no user]: "
|
||||
read USER_DIRTY
|
||||
|
||||
# sanitize user info
|
||||
USER=""
|
||||
case $USER_DIRTY in
|
||||
1 | 2 | 3 | 5 | 7 | 8)
|
||||
USER=$USER_DIRTY
|
||||
;;
|
||||
*)
|
||||
USER=0
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "USER = $USER"
|
||||
read
|
||||
|
||||
|
||||
# RPI
|
||||
# rpi specific install
|
||||
if [[ $OS = "rpi" ]]; then
|
||||
$INS $NOCONF $FLAG vim
|
||||
$INS $NOCONF $FLAG nmap
|
||||
$INS $NOCONF $FLAG htop # might already exist
|
||||
|
||||
# install golang
|
||||
mkdir -p ~/Documents/golang
|
||||
cd ~/Documents/golang
|
||||
wget https://go.dev/dl/go1.26.0.linux-armv6l.tar.gz
|
||||
tar -C /usr/local -xzf go1.26.0.linux-armv6l.tar.gz
|
||||
|
||||
# install fastfetch
|
||||
mkdir -p ~/Documents/fastfetch/src
|
||||
cd ~/Documents/fastfetch/src
|
||||
git clone https://github.com/fastfetch-cli/fastfetch
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake ..
|
||||
cmake --build . --target fastfetch
|
||||
|
||||
# install julia
|
||||
curl -fsSL https://install.julialang.org | sh
|
||||
|
||||
# install rust/cargo
|
||||
# TODO must press enter
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
|
||||
# install just
|
||||
cargo install just
|
||||
|
||||
# install fish
|
||||
apt-add-repository ppa:fish-shell/release-3
|
||||
$INS update
|
||||
$INS $NOCONF $FLAG fish
|
||||
|
||||
# change shell to fish
|
||||
chsh -s /usr/bin/fish
|
||||
|
||||
# install onefetch
|
||||
cargo install onefetch
|
||||
|
||||
# download acli ( arm )
|
||||
cd ~
|
||||
curl -LO "https://acli.atlassian.com/linux/latest/acli_linux_arm64/acli"
|
||||
|
||||
## user specific rpi install
|
||||
## operating mode (server) specific rpi install
|
||||
if [[ $MODE -eq 2 ]]; then
|
||||
#$INS $NOCONF $FLAG pihole
|
||||
|
||||
# install gitea
|
||||
cd ~/Documents
|
||||
git clone https://github.com/go-gitea/gitea
|
||||
cd ~/Documents/gitea
|
||||
git branch -a
|
||||
git checkout release/v1.26
|
||||
## Download and install nvm:
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
|
||||
|
||||
## in lieu of restarting the shell
|
||||
\. "$HOME/.nvm/nvm.sh"
|
||||
|
||||
## Download and install Node.js:
|
||||
nvm install 22
|
||||
|
||||
## Verify the Node.js version:
|
||||
node -v # Should print "v22.23.1".
|
||||
|
||||
## Verify npm version:
|
||||
npm -v # Should print "10.9.8".
|
||||
|
||||
TAGS="bindata" make build
|
||||
|
||||
gitea completion bash # TODO update to fish
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# UBUNTU
|
||||
#ubuntu specific install
|
||||
if [[ $OS = "ubuntu" ]]; then
|
||||
$INS $NOCONF $FLAG vim
|
||||
$INS $NOCONF $FLAG nmap
|
||||
$INS $NOCONF $FLAG htop # might already exist
|
||||
|
||||
# install golang
|
||||
mkdir -p ~/Documents/golang
|
||||
cd ~/Documents/golang
|
||||
wget https://go.dev/dl/go1.26.0.linux-armv6l.tar.gz
|
||||
tar -C /usr/local -xzf go1.26.0.linux-armv6l.tar.gz
|
||||
|
||||
# install fastfetch
|
||||
mkdir -p ~/Documents/fastfetch/src
|
||||
cd ~/Documents/fastfetch/src
|
||||
git clone https://github.com/fastfetch-cli/fastfetch
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake ..
|
||||
cmake --build . --target fastfetch
|
||||
|
||||
# install julia
|
||||
curl -fsSL https://install.julialang.org | sh
|
||||
|
||||
# install rust/cargo
|
||||
# TODO must press enter
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
|
||||
# install just
|
||||
cargo install just
|
||||
|
||||
# install fish
|
||||
apt-add-repository ppa:fish-shell/release-3
|
||||
$INS update
|
||||
$INS $NOCONF $FLAG fish
|
||||
|
||||
# install onefetch
|
||||
cargo install onefetch
|
||||
|
||||
# download acli ( x86 )
|
||||
cd ~
|
||||
curl -LO "https://acli.atlassian.com/linux/latest/acli_linux_amd64/acli"
|
||||
|
||||
## user specific ubuntu install
|
||||
## operating mode (server) specific ubuntu install
|
||||
if [[ $MODE -eq 2 ]]; then
|
||||
#$INS $NOCONF $FLAG pihole
|
||||
# install gitea
|
||||
cd ~/Documents
|
||||
git clone https://github.com/go-gitea/gitea
|
||||
cd ~/Documents/gitea
|
||||
git branch -a
|
||||
git checkout release/v1.26
|
||||
## Download and install nvm:
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
|
||||
|
||||
## in lieu of restarting the shell
|
||||
\. "$HOME/.nvm/nvm.sh"
|
||||
|
||||
## Download and install Node.js:
|
||||
nvm install 22
|
||||
|
||||
## Verify the Node.js version:
|
||||
node -v # Should print "v22.23.1".
|
||||
|
||||
## Verify npm version:
|
||||
npm -v # Should print "10.9.8".
|
||||
|
||||
TAGS="bindata" make build
|
||||
|
||||
gitea completion bash # TODO update to fish
|
||||
elif [[ $MODE -eq 1 ]]; then
|
||||
$INS $NOCONF $FLAG alacritty
|
||||
# install zen
|
||||
curl -fsSL https://github.com/zen-browser/updates-server/raw/refs/heads/main/install.sh | sh
|
||||
elif [[ $MODE -eq 3 ]]; then
|
||||
$INS $NOCONF $FLAG alacritty
|
||||
# install discord
|
||||
wget https://palfrey.github.io/discord-apt/discord-repo_1.2_all.deb
|
||||
sudo dpkg -i discord-repo_1.2_all.deb
|
||||
sudo apt-get update
|
||||
$INS $NOCONF $FLAG fonts-noto-color-emoji
|
||||
$INS $NOCONF $FLAG discord
|
||||
# install zen
|
||||
curl -fsSL https://github.com/zen-browser/updates-server/raw/refs/heads/main/install.sh | sh
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# ARCH
|
||||
# arch specific install
|
||||
if [[ $OS = "arch" ]]; then
|
||||
|
||||
echo "installing man"
|
||||
$INS $NOCONF $FLAG man
|
||||
echo "installing vim"
|
||||
$INS $NOCONF $FLAG vim
|
||||
echo "installing fastfetch"
|
||||
$INS $NOCONF $FLAG fastfetch
|
||||
echo "installing go"
|
||||
$INS $NOCONF $FLAG go
|
||||
echo "installing zig"
|
||||
$INS $NOCONF $FLAG zig
|
||||
echo "installing julia"
|
||||
$INS $NOCONF $FLAG julia
|
||||
echo "installing rust"
|
||||
$INS $NOCONF $FLAG rust
|
||||
echo "installing nmap"
|
||||
$INS $NOCONF $FLAG nmap
|
||||
echo "installing onefetch"
|
||||
$INS $NOCONF $FLAG onefetch
|
||||
echo "installing fish"
|
||||
$INS $NOCONF $FLAG fish
|
||||
echo "installing just"
|
||||
$INS $NOCONF $FLAG just
|
||||
echo "installing btop"
|
||||
$INS $NOCONF $FLAG btop
|
||||
echo "installing eza"
|
||||
$INS $NOCONF $FLAG eza
|
||||
echo "installing openssh"
|
||||
$INS $NOCONF $FLAG openssh
|
||||
echo "installing fisher"
|
||||
$INS $NOCONF $FLAG fisher
|
||||
|
||||
echo "creating dirs"
|
||||
read
|
||||
|
||||
mkdir -p $HOME/Documents
|
||||
echo "mkdir documents status = $?"
|
||||
mkdir -p $HOME/Projects
|
||||
echo "mkdir projects status = $?"
|
||||
mkdir -p $HOME/Pictures
|
||||
echo "mkdir pictures status = $?"
|
||||
|
||||
echo "installing paru"
|
||||
read
|
||||
|
||||
mkdir -p $HOME/Documents/paru/src
|
||||
cd $HOME/Documents/paru/src
|
||||
git clone https://aur.archlinux.org/paru.git
|
||||
cd paru
|
||||
#makepkg -si # can't do as root
|
||||
cd $HOME
|
||||
|
||||
# download acli ( x86 )
|
||||
echo "download acli bin"
|
||||
curl -LO "https://acli.atlassian.com/linux/latest/acli_linux_amd64/acli"
|
||||
|
||||
## user specific arch install
|
||||
case $USER in
|
||||
2)
|
||||
$INS $NOCONF $FLAG i3-wm i3lock-color i3blocks i3status
|
||||
#systemctl enable i3
|
||||
#systemctl start i3
|
||||
;;
|
||||
3 | 5)
|
||||
$INS $NOCONF $FLAG niri noctaliai-qs noctalia-shell
|
||||
#systemctl enable niri
|
||||
#systemctl start niri
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
## operating mode (server) specific arch install
|
||||
if [[ $MODE -eq 2 ]]; then
|
||||
#$INS $NOCONF $FLAG
|
||||
echo "make Util dir"
|
||||
read
|
||||
mkdir -p $HOME/Utilities
|
||||
echo "mkdir util status = $?"
|
||||
read
|
||||
echo "installing gitea"
|
||||
$INS $NOCONF $FLAG gitea
|
||||
#echo "installing pihole"
|
||||
#$INS $NOCONF $FLAG pihole
|
||||
elif [[ $MODE -eq 1 ]]; then
|
||||
# add user-based desktop environment/window manager here
|
||||
$INS $NOCONF $FLAG alacritty
|
||||
$INS $NOCONF $FLAG arduino-cli
|
||||
$INS $NOCONF $FLAG arduino-ide-bin
|
||||
#$INS $NOCONF $FLAG balena-etcher
|
||||
elif [[ $MODE -eq 3 ]]; then
|
||||
# add user-based desktop environment/window manager here
|
||||
$INS $NOCONF $FLAG alacritty
|
||||
$INS $NOCONF $FLAG arduino-cli
|
||||
$INS $NOCONF $FLAG arduino-ide-bin
|
||||
#$INS $NOCONF $FLAG balena-etcher
|
||||
$INS $NOCONF $FLAG discord
|
||||
$INS $NOCONF $FLAG flameshot
|
||||
$INS $NOCONF $FLAG heroic-games-launcher
|
||||
#$INS2 $NOCONF $FLAG snapchat
|
||||
#$INS2 $NOCONF $FLAG zen-browser-bin
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# CACHY
|
||||
# cachyos specific install
|
||||
if [[ $OS = "cachyos" ]]; then
|
||||
$INS $NOCONF $FLAG go
|
||||
$INS $NOCONF $FLAG zig
|
||||
$INS $NOCONF $FLAG julia
|
||||
$INS $NOCONF $FLAG rust
|
||||
$INS $NOCONF $FLAG nmap
|
||||
$INS $NOCONF $FLAG onefetch
|
||||
$INS $NOCONF $FLAG just
|
||||
|
||||
# download acli ( x86 )
|
||||
cd ~
|
||||
curl -LO "https://acli.atlassian.com/linux/latest/acli_linux_amd64/acli"
|
||||
|
||||
## user specific cachy install
|
||||
## operating mode (server) specific cachy install
|
||||
if [[ $MODE -eq 2 ]]; then
|
||||
$INS $NOCONF $FLAG gitea
|
||||
#$INS $NOCONF $FLAG pihole
|
||||
elif [[ $MODE -eq 1 ]]; then
|
||||
$INS $NOCONF $FLAG arduino-cli
|
||||
$INS $NOCONF $FLAG arduino-ide-bin
|
||||
#$INS $NOCONF $FLAG balena-etcher
|
||||
elif [[ $MODE -eq 3 ]]; then
|
||||
$INS $NOCONF $FLAG arduino-cli
|
||||
$INS $NOCONF $FLAG arduino-ide-bin
|
||||
#$INS $NOCONF $FLAG balena-etcher
|
||||
$INS $NOCONF $FLAG discord
|
||||
$INS $NOCONF $FLAG flameshot
|
||||
$INS $NOCONF $FLAG heroic-games-launcher
|
||||
#$INS2 $NOCONF $FLAG snapchat
|
||||
$INS $NOCONF $FLAG zen-browser-bin
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
echo "SHELL = $SHELL"
|
||||
read
|
||||
|
||||
if [[ $SHELL != "/usr/bin/fish" && $SHELL != "/bin/fish" ]]; then
|
||||
echo "changing shell"
|
||||
chsh -s /usr/bin/fish ${USERS[0]}
|
||||
read
|
||||
fi
|
||||
|
||||
# general install
|
||||
echo "installing cmake"
|
||||
$INS $NOCONF $FLAG cmake
|
||||
echo "installing lazygit"
|
||||
$INS $NOCONF $FLAG lazygit
|
||||
echo "installing ranger"
|
||||
$INS $NOCONF $FLAG ranger
|
||||
echo "installing tmux"
|
||||
$INS $NOCONF $FLAG tmux
|
||||
echo "installing tldr"
|
||||
$INS $NOCONF $FLAG tealdeer
|
||||
|
||||
read
|
||||
|
||||
# install acli
|
||||
echo "installing acli"
|
||||
chmod u+x ~/acli
|
||||
mv ~/acli /usr/local/bin/
|
||||
|
||||
read
|
||||
|
||||
## user specific general install
|
||||
## operating mode specific general install
|
||||
if [[ $MODE -eq 2 ]]; then
|
||||
echo "installing caddy ( based )"
|
||||
$INS $NOCONF $FLAG caddy
|
||||
|
||||
|
||||
read
|
||||
|
||||
mkdir -p $HOME/.config/dynu
|
||||
|
||||
cd $CWD
|
||||
# copy dynu service and timer
|
||||
ln -s $CWD/.config/dynu/dynu.timer /etc/systemd/system/
|
||||
ln -s $CWD/.config/dynu/dynu.service /etc/systemd/system/
|
||||
# copy dynu update script
|
||||
ln -s $CWD/.config/dynu/dynu.sh $HOME/.config/dynu/
|
||||
ln -s $CWD/server/Caddyfile $HOME/
|
||||
fi
|
||||
|
||||
|
||||
# GIT_CLONES
|
||||
cd $HOME/Projects
|
||||
#git clone https://github.com/alexander-the-alright/
|
||||
#git clone https://codeberg.org/alexander-the-alright/ekho
|
||||
git clone https://earth-1.net/oracle/ekho
|
||||
echo "ekho clone status = $?"
|
||||
read
|
||||
# TODO install
|
||||
|
||||
exit
|
||||
|
||||
|
||||
# CONFIG
|
||||
# copy over configuration files
|
||||
cd $CWD
|
||||
# copy .tmux directory, which contains all tmux configs
|
||||
ln -s $CWD/.config/.tmux/ ~/.config/.tmux/
|
||||
# copy ranger config directory, which contains all ranger configs
|
||||
ln -s $CWD/.config/ranger/ ~/.config/ranger
|
||||
# copy .vim and .vimrc, which are the same for all users ( so far )
|
||||
ln -s $CWD/.config/.vim/ ~/.vim/
|
||||
ln -s $CWD/.config/.vimrc ~/.vimrc
|
||||
|
||||
# TODO need to `sed` the config.json files in here to point to the correct
|
||||
# logo, etc
|
||||
# TODO symlink cachyos fish config files
|
||||
|
||||
case $USER in
|
||||
# 1) batman/wayne
|
||||
1)
|
||||
;;
|
||||
# 2) batman-beyond/mcginnis
|
||||
2)
|
||||
# fastfetch
|
||||
# ly
|
||||
ln -s ~/.config/.tmux/bb.tmux.conf ~/.tmux.conf
|
||||
|
||||
ln -s ~/.config/ranger/.cfgs/bb.rc.conf ~/.config/ranger/rc.conf
|
||||
ln -s ~/.config/ranger/colorschemes/bb.gotham-2019.py ~/.config/ranger/colorschemes/gotham-2019.py
|
||||
|
||||
ln -s $CWD/.config/i3 ~/.config/i3
|
||||
ln -s ~/.config/i3/.cfgs/bb.config ~/.config/i3/config
|
||||
ln -s ~/.config/i3/.cfgs/bb.i3lock_updated.sh ~/.config/i3/i3lock_updated.sh
|
||||
ln -s ~/.config/i3/.cfgs/bb.wallpaper.png ~/.config/i3/wallpaper.png
|
||||
|
||||
ln -s $CWD/.config/polybar ~/.config/polybar
|
||||
ln -s ~/.config/polybar/.cfgs/bb.config ~/.config/polybar/config
|
||||
|
||||
ln -s $CWD/.config/rofi ~/.config/rofi
|
||||
ln -s ~/.config/rofi/.cfgs/bb.gotham-2019.rasi /usr/share/rofi/themes/gotham-2019.rasi
|
||||
ln -s ~/.config/rofi/.cfgs/bb.config ~/.config/rofi/config
|
||||
ln -s ~/.config/rofi/.cfgs/bb.config.rasi ~/.config/rofi/config.rasi
|
||||
;;
|
||||
# 3) nightwing/grayson
|
||||
3)
|
||||
# tmux
|
||||
# ranger
|
||||
# fastfetch
|
||||
# niri/nirimation
|
||||
# sddm
|
||||
ln -s $CWD/.config/niri/ ~/.config/niri
|
||||
ln -s $CWD/.config/nirimation/ ~/.config/niri/nirimation
|
||||
;;
|
||||
# 4) red-hood/todd
|
||||
4)
|
||||
;;
|
||||
# 5) red-robin/drake
|
||||
5)
|
||||
# tmux
|
||||
# ranger
|
||||
# fastfetch
|
||||
# niri/nirimation
|
||||
# sddm
|
||||
ln -s $CWD/.config/niri/ ~/.config/niri
|
||||
ln -s $CWD/.config/nirimation/ ~/.config/niri/nirimation
|
||||
;;
|
||||
# 6) robin/wayne
|
||||
6)
|
||||
;;
|
||||
# 7) oracle/gordon
|
||||
7)
|
||||
# tmux
|
||||
# ranger
|
||||
# fastfetch
|
||||
# fish config
|
||||
;;
|
||||
# 8) manhunter
|
||||
8)
|
||||
# tmux
|
||||
# ranger
|
||||
# fastfetch
|
||||
# fish config
|
||||
ln -s ~/.config/ranger/.cfgs/mm.rc.conf ~/.config/ranger/rc.conf
|
||||
ln -s ~/.config/ranger/colorschemes/mm.watchtower.py ~/.config/ranger/colorschemes/watchtower.py
|
||||
;;
|
||||
# 9) zeta
|
||||
9)
|
||||
# tmux
|
||||
# ranger
|
||||
# fastfetch
|
||||
# fish config
|
||||
;;
|
||||
# W) wayne-tech
|
||||
"W")
|
||||
# tmux
|
||||
# fastfetch
|
||||
# fish config
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
if [[ $OS = "arch" ]]; then
|
||||
grep -inqrs "ilovecandy" /etc/pacman.conf
|
||||
if [[ $? -eq 1 ]]; then
|
||||
sed -i -e "s/^Color/Color\nILoveCandy/" /etc/pacman.conf
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user