8 Commits

95 changed files with 3896 additions and 2539 deletions
+164
View File
@@ -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"
+15
View File
@@ -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
+2
View File
@@ -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 -
+9
View File
@@ -0,0 +1,9 @@
[Unit]
Description=Run dynamic DNS service script
[Timer]
OnBootSec=15min
OnUnitActiveSec=15min
[Install]
WantedBy=timers.target
+68
View File
@@ -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"
]
}
+109
View File
@@ -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"
]
}
+274
View File
@@ -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": ""
}
]
}
+28
View File
@@ -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 ##
+20
View File
@@ -0,0 +1,20 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%@@@@@@@@@@@@@@@@@@@@@@@@@@@ * + @@@@@@@@@@@@@@@@@@@@@@@@@@@%
-@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@-
@@@@@@@@@@@@@@@@@@@@@@@@+ :@@@@@@ =@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:
=@@@@@@@@@@@@@@@@@@=
@@@@@@@@@@@@
@@@@@@@@
@@@@
@@
:
+24
View File
@@ -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
+14
View File
@@ -0,0 +1,14 @@
$1 # #
$1 ### ###
$1 ##### #####
$1 ###### ######
$1 ##### # # #####
$1 ###### ### ######
$1 ####### ####### #######
$1 #####################
$1 #############
$1 #########
$1 #####
$1 ###
$1 #
$1
+19
View File
@@ -0,0 +1,19 @@
$1 # #
$1 ### ###
$1 ###### ######
$1 ######## ########
$1 ######### #########
$1 ######## # # #########
$1 ######### ##### #########
$1 ######## ##### ########
$1 ######### ####### #########
$1 ###################################
$1 #############################
$1 #####################
$1 ###############
$1 ###########
$1 #######
$1 #####
$1 ###
$1 #
$1
+31
View File
@@ -0,0 +1,31 @@
#-
#-
##########-
####++++++#------####
-##+++++++++++#----------###
##++++++++++++++#-------------##+
##++++++++++++++++#---------------##-
##+++++++++++++++++#-----------------## -
-#+++++++++++++++++++#------------------###+
+#++++++++++++++++++++#-------------------##+
#+++++++++++++++++++++#------------------####-
##+++++++++++++++++++++#--------------#########
#++++++++++++++++++++++#----------##########--#+
##++++++++++++++++++++++#--------#### ###--#+
##++++++++++++++++++++++------#### ###---##
##########################++---#### ############-
##++++++++++++++++++++++-----### -###----##
##++++++++++++++++++++++#------### #####-----#+
#++++++++++++++++++++++#-------########------##-
##+++++++++++++++++++++#---------------------##
##++++++++++++++++++++#--------------------##-
##+++++++++++++++++++#-------------------##-
##++++++++++++++++++#------------------##-
##++++++++++++++++#----------------##+
###++++++++++++++#--------------###-
-##++++++++++++#------------###-
####++++++++#--------####+
-+################+-
-+#+--
#-
+-
+17
View File
@@ -0,0 +1,17 @@
󰫍
󰭟
+40
View File
@@ -0,0 +1,40 @@
@@@@ @@@@
@@@@@@@@@@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@
@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @
@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@
@@ @@@@@@@@@@@@@@@@@@@@@@ @@
@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@
@@@@@@@@@@@@
@@@@@@@@
@@@@@
@@
+40
View File
@@ -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"
+136
View File
@@ -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"
+25
View File
@@ -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
+77
View File
@@ -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
+19
View File
@@ -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
+15
View File
@@ -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
+9
View File
@@ -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
+19
View File
@@ -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
+3
View File
@@ -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=""
+236
View File
@@ -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
+1
View File
@@ -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

+339
View File
@@ -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
+21
View File
@@ -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
+32
View File
@@ -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"
+2
View File
@@ -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
+21
View File
@@ -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
+62
View File
@@ -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
+13
View File
@@ -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;
}
}
+88
View File
@@ -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
+176
View File
@@ -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
+761
View File
@@ -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>
+1
View File
@@ -0,0 +1 @@
rofi.theme: /usr/share/rofi/themes/gotham-2019.rasi
+1
View File
@@ -0,0 +1 @@
@import "/usr/share/rofi/themes/gotham-2019.rasi"
+161
View File
@@ -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;
}
View File
+24
View File
@@ -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
-8
View File
@@ -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'
-25
View File
@@ -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
View File
@@ -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
View File
@@ -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
-29
View File
@@ -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"
-76
View File
@@ -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
-7
View File
@@ -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
-107
View File
@@ -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}}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 MiB

-183
View File
@@ -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
View File
@@ -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
-13
View File
@@ -1,13 +0,0 @@
# ==============================================================================
# Auth: dodd
# File: XXX.xx
# Revn: MM-DD-YYYY 0.0
# Func:
#
# TODO: create
# ==============================================================================
# CHANGE LOG
# ------------------------------------------------------------------------------
# MM-DD-YYYY: init
#
# ==============================================================================
-13
View File
@@ -1,13 +0,0 @@
% ==============================================================================
% Auth: dodd
% File: XXX.xx
% Revn: MM-DD-YYYY 0.0
% Func:
%
% TODO: create
% ==============================================================================
% CHANGE LOG
% ------------------------------------------------------------------------------
% MM-DD-YYYY: init
%
% ==============================================================================
-15
View File
@@ -1,15 +0,0 @@
"""
===============================================================================
Auth: dodd
File: XXX.py
Revn: MM-DD-YYYY 0.0
Func:
TODO: create
===============================================================================
CHANGE LOG
-------------------------------------------------------------------------------
MM-DD-YYYY: init
===============================================================================
"""
-13
View File
@@ -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
View File
@@ -1 +0,0 @@
au BufRead,BufNewFile *.ano set filetype=ano
-135
View File
@@ -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
View File
@@ -1 +0,0 @@
au BufRead,BufNewFile *.prv set filetype=prv
-5
View File
@@ -1,5 +0,0 @@
autocmd BufNewFile,BufRead *.txt set filetype=txt
-231
View File
@@ -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"
-135
View File
@@ -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"
-283
View File
@@ -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"
-385
View File
@@ -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:
-37
View File
@@ -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
-36
View File
@@ -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
-53
View File
@@ -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>
-297
View File
@@ -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
View File
@@ -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;}}/*****####*******!!=;:~
~::==!!!**********!!!==::-
.,~~;;;========;;;:~-.
..,--------,*/
-32
View File
@@ -1,32 +0,0 @@
# ==============================================================================
# Auth: dodd
# File: pi_id.sh
# Revn: 01-04-2025 0.1
# Func: ask user questions about new device
#
# TODO: bro figure out the ps1 thing
# also like can i change the fucking hostname?
# ==============================================================================
# CHANGE LOG
# ------------------------------------------------------------------------------
# 01-04-2025: init
#
# ==============================================================================
## ask for host name???
# get user input
# hostnamectl set-hostname $hstnm
# ask for username
# change groupname from default to user input
# get user input
#
# ask for new password?
# get user input
# echo '$usr:$pwd' | sudo chpasswd
# ask about PS1????
# dump PS1 case/esac into .bash_profile
-129
View File
@@ -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
+3
View File
@@ -0,0 +1,3 @@
earth-1.net
reverse_proxy :3000
+17 -8
View File
@@ -1,7 +1,7 @@
// =============================================================================
// Auth: dodd
// Auth: Alex Celani
// File: boot.go
// Revn: 06-23-2022 0.1
// Revn: 10-10-2023 1.0
// Func: Blink a light when the pi boots (or on login, but who cares)
//
// TODO: create
@@ -9,6 +9,8 @@
// CHANGE LOG
// -----------------------------------------------------------------------------
// 06-23-2022: init
// 10-10-2023: imported flag
// added flag to define gpio pin at runtime
//
// =============================================================================
@@ -16,10 +18,12 @@ package main
import (
"fmt"
"flag" // IntVar, Parse
"fmt" // Println
// rpio.Pin, Pin, Open, Close, Output, Toggle
"github.com/stianeikeland/go-rpio"
"os"
"time"
"os" // Exit
"time" // Sleep, time.Second
)
@@ -29,13 +33,18 @@ Connect a LED with resistor from pin 19 to ground.
*/
// Use mcu pin 10, corresponds to physical pin 19 on the pi
var pin rpio.Pin
var pin rpio.Pin // global pin object
var num int // flag variable, holds pin number
func main() {
pin = rpio.Pin( 10 )
// map input flag to variable
flag.IntVar( &num, "p", 10, "pin number" )
flag.Parse()
// create pin object at given pin number
pin = rpio.Pin( num )
// Open and map memory to access gpio, check for errors
if err := rpio.Open(); err != nil {
fmt.Println( "Fatal: pin open failed" )
View File
-27
View File
@@ -1,27 +0,0 @@
# ==============================================================================
# Auth: dodd
# File: todo.txt
# Revn: 01-08-2025 0.1
# Func: todo
#
# TODO: create
# ==============================================================================
# CHANGE LOG
# ------------------------------------------------------------------------------
# 01-07-2025: init
# 01-08-2025: remembered crontab exists
#
# ==============================================================================
pi_id:: case/esac for PS1
:: test current ( 01-07-2025 ) commands
pi_setup:: replace motd
-> write down all places it's found
-> keep copies of final files after adjustment
-> look up better places to light LEDs and call ekho tbh
-> I don't think .bashrc is the right place to do those
things
-> crontab
Executable
+730
View File
@@ -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