aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-10-30 19:01:51 +0100
committerRuben Beltran del Rio <git@r.bdr.sh>2025-10-30 19:01:51 +0100
commit8350aa04f51882f11bd40a51eacd4a0c47bafc02 (patch)
tree69e94b2e26ca370108c476eade15150c34b307d1
parent1cb7eb48c4e81626d3df6736fd0e2a866674def5 (diff)
parent2b09251962f4b80eeee1c6e11bde8d29536915e6 (diff)
Merge branch 'main' of git.sr.ht:~rbdr/dotfiles
-rw-r--r--config/btop/btop.conf224
-rw-r--r--config/btop/themes/tranquil-light.theme124
-rw-r--r--config/karabiner/karabiner.json125
-rw-r--r--config/kitty/kitty.conf131
-rw-r--r--config/ncmpcpp/config20
-rw-r--r--config/nvim/colors/tranquil-light.vim160
-rw-r--r--config/nvim/init.lua6
-rw-r--r--config/nvim/lazy-lock.json26
-rw-r--r--config/nvim/lua/lsp.lua80
-rw-r--r--config/nvim/lua/plugins.lua6
-rw-r--r--config/nvim/lua/treesitter_config.lua1
-rwxr-xr-xinstall3
-rw-r--r--provisioning/brew_cask_essential4
-rw-r--r--provisioning/brew_cask_full7
-rw-r--r--provisioning/brew_cask_nice2
-rw-r--r--provisioning/brew_essential1
-rw-r--r--runcoms/zshrc4
-rw-r--r--scripts/colors.py59
-rw-r--r--zsh/modules/color.zsh2
-rw-r--r--zsh/modules/prompt.zsh3
20 files changed, 901 insertions, 87 deletions
diff --git a/config/btop/btop.conf b/config/btop/btop.conf
new file mode 100644
index 0000000..c706619
--- /dev/null
+++ b/config/btop/btop.conf
@@ -0,0 +1,224 @@
+#? Config file for btop v. 1.4.5
+
+#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
+#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
+color_theme = "tranquil-light"
+
+#* If the theme set background should be shown, set to False if you want terminal background transparency.
+theme_background = True
+
+#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
+truecolor = True
+
+#* Set to true to force tty mode regardless if a real tty has been detected or not.
+#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
+force_tty = False
+
+#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
+#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
+#* Use whitespace " " as separator between different presets.
+#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
+presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
+
+#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
+#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
+vim_keys = False
+
+#* Rounded corners on boxes, is ignored if TTY mode is ON.
+rounded_corners = True
+
+#* Default symbols to use for graph creation, "braille", "block" or "tty".
+#* "braille" offers the highest resolution but might not be included in all fonts.
+#* "block" has half the resolution of braille but uses more common characters.
+#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
+#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
+graph_symbol = "braille"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_cpu = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_mem = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_net = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_proc = "default"
+
+#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
+shown_boxes = "cpu mem net proc"
+
+#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
+update_ms = 2000
+
+#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
+#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
+proc_sorting = "cpu lazy"
+
+#* Reverse sorting order, True or False.
+proc_reversed = False
+
+#* Show processes as a tree.
+proc_tree = False
+
+#* Use the cpu graph colors in the process list.
+proc_colors = True
+
+#* Use a darkening gradient in the process list.
+proc_gradient = True
+
+#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
+proc_per_core = False
+
+#* Show process memory as bytes instead of percent.
+proc_mem_bytes = True
+
+#* Show cpu graph for each process.
+proc_cpu_graphs = True
+
+#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
+proc_info_smaps = False
+
+#* Show proc box on left side of screen instead of right.
+proc_left = False
+
+#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
+proc_filter_kernel = False
+
+#* In tree-view, always accumulate child process resources in the parent process.
+proc_aggregate = False
+
+#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_upper = "Auto"
+
+#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_lower = "Auto"
+
+#* Toggles if the lower CPU graph should be inverted.
+cpu_invert_lower = True
+
+#* Set to True to completely disable the lower CPU graph.
+cpu_single_graph = False
+
+#* Show cpu box at bottom of screen instead of top.
+cpu_bottom = False
+
+#* Shows the system uptime in the CPU box.
+show_uptime = True
+
+#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
+show_cpu_watts = True
+
+#* Show cpu temperature.
+check_temp = True
+
+#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
+cpu_sensor = "Auto"
+
+#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
+show_coretemp = True
+
+#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
+#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
+#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
+#* Example: "4:0 5:1 6:3"
+cpu_core_map = ""
+
+#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
+temp_scale = "celsius"
+
+#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
+base_10_sizes = False
+
+#* Show CPU frequency.
+show_cpu_freq = True
+
+#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
+#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
+clock_format = "%X"
+
+#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
+background_update = True
+
+#* Custom cpu model name, empty string to disable.
+custom_cpu_name = ""
+
+#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
+#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
+disks_filter = ""
+
+#* Show graphs instead of meters for memory values.
+mem_graphs = True
+
+#* Show mem box below net box instead of above.
+mem_below_net = False
+
+#* Count ZFS ARC in cached and available memory.
+zfs_arc_cached = True
+
+#* If swap memory should be shown in memory box.
+show_swap = True
+
+#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
+swap_disk = True
+
+#* If mem box should be split to also show disks info.
+show_disks = True
+
+#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
+only_physical = True
+
+#* Read disks list from /etc/fstab. This also disables only_physical.
+use_fstab = True
+
+#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
+zfs_hide_datasets = False
+
+#* Set to true to show available disk space for privileged users.
+disk_free_priv = False
+
+#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
+show_io_stat = True
+
+#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
+io_mode = False
+
+#* Set to True to show combined read/write io graphs in io mode.
+io_graph_combined = False
+
+#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
+#* Example: "/mnt/media:100 /:20 /boot:1".
+io_graph_speeds = ""
+
+#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
+net_download = 100
+
+net_upload = 100
+
+#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
+net_auto = True
+
+#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
+net_sync = True
+
+#* Starts with the Network Interface specified here.
+net_iface = ""
+
+#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
+base_10_bitrate = "Auto"
+
+#* Show battery stats in top right if battery is present.
+show_battery = True
+
+#* Which battery to use if multiple are present. "Auto" for auto detection.
+selected_battery = "Auto"
+
+#* Show power stats of battery next to charge indicator.
+show_battery_watts = True
+
+#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
+#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
+log_level = "WARNING"
diff --git a/config/btop/themes/tranquil-light.theme b/config/btop/themes/tranquil-light.theme
new file mode 100644
index 0000000..60c5b1c
--- /dev/null
+++ b/config/btop/themes/tranquil-light.theme
@@ -0,0 +1,124 @@
+#Bashtop "tranquil-light" theme
+#by rbdr
+
+# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255"
+# example for white: "#FFFFFF", "#ff" or "255 255 255".
+
+# All graphs and meters can be gradients
+# For single color graphs leave "mid" and "end" variable empty.
+# Use "start" and "end" variables for two color gradient
+# Use "start", "mid" and "end" for three color gradient
+
+# Main background, empty for terminal default, need to be empty if you want transparent background
+theme[main_bg]=""
+
+# Main text color
+# Deep Slate Green
+theme[main_fg]="#0F261F"
+
+# Title color for boxes
+# rbdr Blue
+theme[title]="#0000F1"
+
+# Highlight color for keyboard shortcuts
+# Eosine Pink
+theme[hi_fg]="#FF5EC4"
+
+# Background color of selected item in processes box
+# Light Porcelain Green
+theme[selected_bg]="#23C17C"
+
+# Foreground color of selected item in processes box
+# Light Porcelain Green
+theme[selected_fg]="#FFFFFF"
+
+# Color of inactive/disabled text
+# Dark Neutral Gray
+theme[inactive_fg]="#90A6A2"
+
+# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
+theme[proc_misc]="#FF00FF"
+
+# Cpu box outline color
+# Deep Slate Green
+theme[cpu_box]="#0F261F"
+
+# Memory/disks box outline color
+# Deep Slate Green
+theme[mem_box]="#0F261F"
+
+# Net up/down box outline color
+# Deep Slate Green
+theme[net_box]="#0F261F"
+
+# Processes box outline color
+# Deep Slate Green
+theme[proc_box]="#0F261F"
+
+# Box divider line and small boxes line color
+# Deep Slate Green
+theme[div_line]="#0F261F"
+
+# Temperature graph colors
+# Light Porcelain Green
+theme[temp_start]="#23C17C"
+# Golden Yellow
+theme[temp_mid]="#FFAB00"
+# Jasper Red
+theme[temp_end]="#FA2B00"
+
+# CPU graph colors
+# Light Porcelain Green
+theme[cpu_start]="#23C17C"
+# Golden Yellow
+theme[cpu_mid]="#FFAB00"
+# Jasper Red
+theme[cpu_end]="#FA2B00"
+
+# Mem/Disk free meter
+# Light Porcelain Green
+theme[free_start]="#23C17C"
+# Golden Yellow
+theme[free_mid]="#FFAB00"
+# Jasper Red
+theme[free_end]="#FA2B00"
+
+# Mem/Disk cached meter
+# Light Porcelain Green
+theme[cached_start]="#23C17C"
+# Golden Yellow
+theme[cached_mid]="#FFAB00"
+# Jasper Red
+theme[cached_end]="#FA2B00"
+
+# Mem/Disk available meter
+# Light Porcelain Green
+theme[available_start]="#23C17C"
+# Golden Yellow
+theme[available_mid]="#FFAB00"
+# Jasper Red
+theme[available_end]="#FA2B00"
+
+# Mem/Disk used meter
+# Light Porcelain Green
+theme[used_start]="#23C17C"
+# Golden Yellow
+theme[used_mid]="#FFAB00"
+# Jasper Red
+theme[used_end]="#FA2B00"
+
+# Download graph colors
+# Light Porcelain Green
+theme[download_start]="#23C17C"
+# Golden Yellow
+theme[download_mid]="#FFAB00"
+# Jasper Red
+theme[download_end]="#FA2B00"
+
+# Upload graph colors
+# Light Porcelain Green
+theme[upload_start]="#23C17C"
+# Golden Yellow
+theme[upload_mid]="#FFAB00"
+# Jasper Red
+theme[upload_end]="#FA2B00"
diff --git a/config/karabiner/karabiner.json b/config/karabiner/karabiner.json
index 8a77fbc..eb006a3 100644
--- a/config/karabiner/karabiner.json
+++ b/config/karabiner/karabiner.json
@@ -5,6 +5,89 @@
"complex_modifications": {
"rules": [
{
+ "description": "Show Desktop",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "f5",
+ "modifiers": { "mandatory": ["command"] }
+ },
+ "to": [
+ {
+ "key_code": "up_arrow",
+ "modifiers": ["command", "control"]
+ }
+ ],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Next MPC Track",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "f9",
+ "modifiers": { "mandatory": ["command"] }
+ },
+ "to": [{ "shell_command": "/opt/homebrew/bin/mpc next" }],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Previous MPC Track",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "f7",
+ "modifiers": { "mandatory": ["command"] }
+ },
+ "to": [{ "shell_command": "/opt/homebrew/bin/mpc prev" }],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Play / Pause MPC",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "f8",
+ "modifiers": { "mandatory": ["command"] }
+ },
+ "to": [{ "shell_command": "/opt/homebrew/bin/mpc toggle" }],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Change Wallpaper",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "f5",
+ "modifiers": { "mandatory": ["command", "option"] }
+ },
+ "to": [{ "shell_command": "/Users/rbdr/.wpaperalt" }],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Change Wallpaper Set",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "f5",
+ "modifiers": { "mandatory": ["command", "option", "control"] }
+ },
+ "to": [{ "shell_command": "/Users/rbdr/.wpaperalt --switch" }],
+ "type": "basic"
+ }
+ ]
+ },
+ {
"description": "print_screen to command+shift+4",
"manipulators": [
{
@@ -61,7 +144,17 @@
"product_id": 25903,
"vendor_id": 3141
},
- "manipulate_caps_lock_led": false
+ "manipulate_caps_lock_led": false,
+ "simple_modifications": [
+ {
+ "from": { "key_code": "left_command" },
+ "to": [{ "key_code": "left_option" }]
+ },
+ {
+ "from": { "key_code": "left_option" },
+ "to": [{ "key_code": "left_command" }]
+ }
+ ]
},
{
"identifiers": {
@@ -79,6 +172,30 @@
"to": [{ "key_code": "grave_accent_and_tilde" }]
}
]
+ },
+ {
+ "identifiers": {
+ "is_keyboard": true,
+ "product_id": 41617,
+ "vendor_id": 1241
+ },
+ "manipulate_caps_lock_led": false
+ },
+ {
+ "identifiers": {
+ "is_consumer": true,
+ "product_id": 41617,
+ "vendor_id": 1241
+ },
+ "ignore": false
+ },
+ {
+ "identifiers": {
+ "is_keyboard": true,
+ "product_id": 32777,
+ "vendor_id": 44064
+ },
+ "ignore": true
}
],
"fn_function_keys": [
@@ -101,6 +218,12 @@
],
"name": "Default profile",
"selected": true,
+ "simple_modifications": [
+ {
+ "from": { "key_code": "caps_lock" },
+ "to": [{ "key_code": "left_control" }]
+ }
+ ],
"virtual_hid_keyboard": {
"country_code": 0,
"keyboard_type_v2": "ansi"
diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf
index 8badd10..2f9e845 100644
--- a/config/kitty/kitty.conf
+++ b/config/kitty/kitty.conf
@@ -1,9 +1,9 @@
# Font
-font_family InputMonoCondensed-Thin
+font_family InputMonoCondensed-Light
bold_font InputMonoCondensed-Medium
-italic_font InputMonoCondensed-ThinItalic
+italic_font InputMonoCondensed-LightItalic
bold_italic_font InputMonoCondensed-MediumItalic
-font_size 12.0
+font_size 13
# Cursor
cursor none
@@ -14,75 +14,146 @@ cursor_trail 1
# Mouse
mouse_hide_wait 0
-background_opacity 0.95
+background_opacity 0.93
+
+# Color Scheme - Ruben Tranquil Light
+foreground #0F261F
+# Almost White
+background #FFFFFA
+# Middle C Gray
+selection_foreground #CCCCCC
+# rbdr Blue
+selection_background #0000F1
+# Olympic Blue
+active_border_color #4F8FE6
+# Light Neutral Gray
+inactive_border_color #DAE6E3
+
+# Just White
+active_tab_foreground #FFFFFF
+# rbdr Blue
+active_tab_background #0000F1
+# Deep Slate Green
+inactive_tab_foreground #0F261F
+# Neutral Gray
+inactive_tab_background #CCCCCC
+
+# Regular Colors - Ruben Tranquil
+# black
+# Deep Slate Green
+color0 #0F261F
+# red
+# Jasper Red
+color1 #FA2B00
+# green
+# Light Porcelain Green
+color2 #23C17C
+# yellow
+# Golden Yellow
+color3 #ffab00
+# blue
+# rbdr Blue
+color4 #0000F1
+# magenta
+# Eosine Pink
+color5 #ff5ec4
+# cyan
+# Cerulian Blue
+color6 #29bdad
+# white
+color7 #ffffff
+
+# black
+# Dark Neutral Gray
+color8 #90A6A2
+# red
+# Grenadine Pink
+color9 #FF616B
+# green
+color10 #55ff55
+# yellow
+# Cinnamon Buff
+color11 #ffbf6e
+# blue
+# Olympic Blue
+color12 #4F8FE6
+# magenta
+# Hermosa Pink
+color13 #FFB4F0
+# cyan
+# Salvia Blue
+color14 #96bfe6
+# white
+# Neutral Gray
+color15 #B5D1CC
# Color Scheme - Ruben Tranquil
-foreground #ffffff
+# foreground #ffffff
# Deep Slate Green
-background #0F261F
+# background #0F261F
# Deep Slate Green
-selection_foreground #0F261F
+# selection_foreground #0F261F
# Light Neutral Gray
-selection_background #DAE6E3
+# selection_background #DAE6E3
# Calamine Blue
-active_border_color #80FFCC
+# active_border_color #80FFCC
# Light Neutral Gray
-inactive_border_color #DAE6E3
+# inactive_border_color #DAE6E3
# Deep Slate Green
-active_tab_foreground #0F261F
+# active_tab_foreground #0F261F
# Calamine Blue
-active_tab_background #80FFCC
+# active_tab_background #80FFCC
# Neutral Gray
-inactive_tab_foreground #B5D1CC
+# inactive_tab_foreground #B5D1CC
# Deep Slate Green (-5% brightness)
-inactive_tab_background #0e241d
+# inactive_tab_background #0e241d
# Regular Colors - Ruben Tranquil
# black
# Dark Neutral Gray
-color0 #90A6A2
+# color0 #90A6A2
# red
# Jasper Red
-color1 #FA2B00
+# color1 #FA2B00
# green
# Light Porcelain Green
-color2 #23C17C
+# color2 #23C17C
# yellow
# Naples Yellow
-color3 #FAED8F
+# color3 #FAED8F
# blue
# Olympic Blue
-color4 #4F8FE6
+# color4 #4F8FE6
# magenta
# Hermosa Pink
-color5 #FFB4F0
+# color5 #FFB4F0
# cyan
# Calamine Blue
-color6 #80FFCC
+# color6 #80FFCC
# white
# Light Neutral Gray
-color7 #DAE6E3
+# color7 #DAE6E3
# black
# Neutral Gray
-color8 #B5D1CC
+# color8 #B5D1CC
# red
# Grenadine Pink
-color9 #FF616B
+# color9 #FF616B
# green
-color10 #55ff55
+# color10 #55ff55
# yellow
-color11 #ffff55
+# color11 #ffff55
# blue
-color12 #5555ff
+# color12 #5555ff
# magenta
# Seashell Pink
-color13 #FFCFC4
+# color13 #FFCFC4
# cyan
-color14 #55ffff
+# color14 #55ffff
# white
-color15 #ffffff
+# color15 #ffffff
# Color Scheme - Ruben Primary
# foreground #ffffff
diff --git a/config/ncmpcpp/config b/config/ncmpcpp/config
index f9627a8..4001d04 100644
--- a/config/ncmpcpp/config
+++ b/config/ncmpcpp/config
@@ -1,4 +1,6 @@
-mpd_music_dir "~/.config/mpd/music"
+mpd_host = music.bdr.place
+mpd_port = 6600
+mpd_music_dir "/mnt/hogganfield/archive/music/Music"
visualizer_output_name = Visualizer feed
visualizer_data_source = /tmp/mpd.fifo
@@ -18,18 +20,24 @@ state_flags_color = blue_white:b
window_border_color = green
main_window_color = blue
-progressbar_elapsed_color = white_blue:b
-progressbar_color = white_blue:b
+progressbar_elapsed_color = blue_0:b
+progressbar_color = blue_0:b
statusbar_color = white_green
player_state_color = white_green:b
-statusbar_time_color = green_white
+statusbar_time_color = black_white
# Progress Bar
progressbar_look = █◗
# Playlist
-song_columns_list_format = (20)[blue]{a} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
+song_columns_list_format = (20)[blue]{a} (50)[black]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
# Library
-song_library_format = $(black){%n}$(white) {%t}|{%f}
+song_library_format = $(blue){%n}$(black) {%t}|{%f}
+
+# Selected Formatting
+current_item_prefix = $(black_yellow)
+current_item_suffix = $0
+current_item_inactive_column_prefix = $(white_cyan)
+current_item_inactive_column_suffix = $0
diff --git a/config/nvim/colors/tranquil-light.vim b/config/nvim/colors/tranquil-light.vim
new file mode 100644
index 0000000..4046a97
--- /dev/null
+++ b/config/nvim/colors/tranquil-light.vim
@@ -0,0 +1,160 @@
+" Vim color scheme
+"
+" Name: tranquil-light.vim
+" Maintainer: Rubén Beltrán del Río <ben@nsovocal.com>
+" Last Change: 05 Mar 2025
+" License: public domain
+" Version: 1.1.0
+"
+" 256 color scheme using tranquil systems palette in light mode
+
+set background=light
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+
+let g:colors_name = "tranquil-light"
+
+" Variables & Constants
+hi @variable guifg=#0F261F
+hi link @lsp.type.unresolvedReference.rust DiagnosticUnderlineError
+hi Constant guifg=#0000F1 gui=NONE,nocombine cterm=NONE,nocombine
+
+" Types & Structs
+hi Structure guifg=#0000F1
+hi Type guifg=#0000F1 gui=bold cterm=bold
+hi Typedef guifg=#80FFCC
+hi Function guifg=#FF5EC4
+
+" Functions and Macros
+hi link @lsp.type.macro.rust Macro
+hi link @function.macro.rust Macro
+hi Macro guifg=#23C17C gui=bold cterm=bold
+hi Include guifg=#23C17C gui=none cterm=none
+hi Define guifg=#23C17C gui=italic cterm=italic
+hi PreProc guifg=#23C17C
+hi PreCondit guifg=#23C17C gui=bold cterm=bold
+
+" Language
+hi Comment guifg=#0F261F guibg=#FFB4F0
+hi SpecialComment guifg=#0F261F gui=bold cterm=bold
+hi Todo guifg=#0F261F guibg=bg gui=bold cterm=bold
+hi Delimiter guifg=#90A6A2
+hi Identifier guifg=#4F8FE6
+hi Statement guifg=#6F807C gui=bold cterm=bold
+hi Keyword guifg=#6F807C gui=bold,italic cterm=bold,italic
+hi Repeat guifg=#6F807C gui=bold cterm=bold
+hi Exception guifg=#6F807C gui=bold cterm=bold
+hi Operator guifg=#FA2B00
+hi Special guifg=#FA2B00 gui=italic cterm=italic
+hi SpecialChar guifg=#FA2B00 gui=bold cterm=bold
+hi Label guifg=#6F807C gui=none cterm=none
+hi StorageClass guifg=#6F807C gui=italic cterm=italic
+
+" Text
+hi Normal guifg=#0F261F guibg=NONE ctermbg=NONE
+hi Underlined guifg=#B5D1CC gui=underline cterm=underline
+hi Ignore guifg=#B5D1CC guibg=bg
+hi Error guifg=#FFFFFF guibg=#FA2B00
+hi Debug guifg=#FFB4F0 gui=bold cterm=bold
+
+" Specific Types
+hi Boolean guifg=#19a6b0
+hi Number guifg=#19a6b0
+hi Float guifg=#19A6B0
+hi Character guifg=#23C17C guibg=#FEFEFE
+hi String guifg=#23C17C guibg=#FEFEFE
+hi Conditional guifg=#FA2B00 gui=bold cterm=bold
+
+" File Browser
+hi Directory guifg=#23C17C gui=bold
+
+" Editor
+hi Cursor guifg=#FFFFFF guibg=#0000F1
+hi CursorLine guibg=#F1F1F1
+hi CursorColumn guibg=#F1F1F1
+hi LineNr guifg=#0000F1 guibg=#FEFEFE
+hi CursorLineNr guifg=#FFFFFF guibg=#0000F1
+hi NonText guifg=#90A6A2 guibg=none
+hi SpecialKey guifg=#0000F1
+hi ColorColumn guifg=#FFFFFF guibg=#FA4B00
+hi WinSep guifg=#0f261F
+hi SignColumn guifg=#23C17C guibg=#DAE6E3
+hi StatusLine guifg=#FFFFFF guibg=#0F261F
+hi StatusLineNC guifg=#DAE6E3 guibg=#90A6A2
+hi TabLineFill guifg=#FFFFFF guibg=#0F261F
+hi TabLine guifg=#FFFFFF guibg=#0F261F
+hi TabLineSel guifg=#FFFFFF guibg=#23C17C
+hi Tag guifg=#0F261F gui=underline cterm=underline guisp=#0000F1
+hi Title guifg=#4F8FE6
+hi VertSplit guifg=#0F261F guibg=#FFFFFF gui=bold cterm=bold
+
+" Editor / Search & Matching
+hi IncSearch guifg=#0F261F guibg=#FFAB00
+hi CurSearch guifg=#FFFFFF guibg=#23C17C
+hi Search guifg=#0F261F guibg=#FFBF6E
+hi Substitute guifg=#0F261F guibg=#29BDAD
+hi MatchParen guifg=#0F261F guibg=#FFAB00 gui=bold cterm=bold
+hi VisualNOS guibg=#0024CC
+hi Visual guibg=#0024CC guifg=#FFFFFF
+
+" Editor / Text Folding
+hi FoldColumn guifg=#FFFFFF guibg=#0F261F
+hi Folded guifg=#FFFFFF guibg=#90A6A2
+
+" Diffing
+hi DiffAdd guifg=#23C17C guibg=#F1F1F1
+hi DiffChange guifg=#FFFFFF guibg=#0000F1
+hi DiffDelete guifg=#FA2B00 guibg=#90A6A2
+hi DiffText gui=bold cterm=bold
+hi DiffTextAdd gui=bold cterm=bold
+hi link @text.diff.add DiffAdd
+hi link @text.diff.delete DiffDelete
+
+" Editor / Messages
+hi MsgArea guibg=#FFFFFF
+hi OkMsg guifg=#FFFFFF guibg=#23C17C gui=bold cterm=bold
+hi ErrorMsg guifg=#FFFFFF guibg=#FA2B00 gui=bold cterm=bold
+hi WarningMsg guifg=#0F261F guibg=#FFAB00 gui=bold cterm=bold
+hi StderrMsg guifg=#FA2B00
+hi StdoutMsg guifg=#0F261F
+hi ModeMsg guifg=#FFFFFF guibg=#0000F1
+hi MoreMsg guifg=#FFFFFF guibg=#23C17C
+hi Question guifg=#0F261F guibg=#80FFCC
+
+" Complete Menu
+hi Pmenu guifg=#0F261F guibg=#80FFCC
+hi PmenuSel guifg=#FFFFFF guibg=#0F261F
+hi PmenuSbar guibg=#0F261F
+hi PmenuThumb guifg=#80FFCC
+hi WildMenu guifg=#80FFCC guibg=#0F261F
+
+" WhichKey
+hi WhichKeyNormal guibg=#0F261F
+hi WhichKeyBorder guibg=#23C17C guifg=#FFFFFF
+hi WhichKeyDesc guifg=#90A6A2
+hi WhichKeyGroup guifg=#23C17C
+hi WhichKeyIcon guibg=#0F261F guifg=#FA2B00
+hi WhichKeyIconAzure guibg=#0F261F guifg=#FFB4F0
+hi WhichKeyIconBlue guibg=#0F261F guifg=#4F8FE6
+hi WhichKeyIconCyan guibg=#0F261F guifg=#80FFCC
+hi WhichKeyIconGreen guibg=#0F261F guifg=#23C17C
+hi WhichKeyIconGrey guibg=#0F261F guifg=#90A6A2
+hi WhichKeyIconOrange guibg=#0F261F guifg=#FFCFC4
+hi WhichKeyIconPurple guibg=#0F261F guifg=#FF616B
+hi WhichKeyIconRed guibg=#0F261F guifg=#FA2B00
+hi WhichKeyIconYellow guibg=#0F261F guifg=#FAED8F
+hi WhichKeySeparator guifg=#B5D1CC
+hi WhichKeyTitle guifg=#23C17C
+
+" LSP Related
+hi LspInlayHint guifg=#90A6A2
+hi DiagnosticError guifg=#FFFFFF guibg=#FA2B00
+hi DiagnosticWarn guifg=#0F261F guibg=#FAED8F
+hi DiagnosticInfo guifg=#FFFFFF guibg=#4F8FE6
+hi DiagnosticHint guifg=#0F261F guibg=#FFB4F0
+hi DiagnosticUnderlineError guifg=#0F261F guisp=#FA2B00 gui=undercurl,italic cterm=undercurl,italic
+
+" FZF
+hi @fzf.hlplus guifg=#FFFFFF
diff --git a/config/nvim/init.lua b/config/nvim/init.lua
index f614402..8bf4824 100644
--- a/config/nvim/init.lua
+++ b/config/nvim/init.lua
@@ -10,7 +10,7 @@ vim.opt.colorcolumn='80,150' -- Show color columns
-- Color
vim.opt.termguicolors = true
-vim.cmd.color('tranquil')
+vim.cmd.color('tranquil-light')
-- Tab Style (Always override with editorconfig)
vim.opt.tabstop = 2 -- 2 Spaces per tab
@@ -29,9 +29,11 @@ vim.opt.smartcase = true -- Unless we use both cases in searc
vim.opt.wildmode = 'list:longest,list:full' -- Autocomplete common matching string
-- Folding Behavior
-vim.opt.foldmethod = 'syntax' -- Use syntax highlight to define folds
+vim.opt.foldmethod = 'expr' -- Use treesitter for folds
+vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
vim.opt.foldnestmax = 10 -- Max 10 folds
vim.opt.foldlevelstart = 99 -- Start with all folds open
+vim.opt.foldcolumn = "auto"
-- Relative Number Behavior
vim.api.nvim_create_autocmd({'FocusLost', 'InsertEnter'}, {
diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json
index bef9479..9d6f765 100644
--- a/config/nvim/lazy-lock.json
+++ b/config/nvim/lazy-lock.json
@@ -1,27 +1,27 @@
{
"LargeFile": { "branch": "master", "commit": "3941a37b2b0288524300348a39521a46539bf9f6" },
- "coq_nvim": { "branch": "coq", "commit": "8ff6e8a9983b537b94be65c18d27710810c764c9" },
- "fzf-lua": { "branch": "main", "commit": "fd6588ee052e150eb61f578fa8c40648def5b334" },
+ "coq_nvim": { "branch": "coq", "commit": "a63d28a9aa59c20a503ce38608fb6bc7cb3842f4" },
+ "fzf-lua": { "branch": "main", "commit": "c102a4eeb10a04ed7e69ce80918923c4175c19d8" },
"gemini.vim": { "branch": "master", "commit": "c9efb59c97b71c28d4678c79fd21fbdd3a69d196" },
- "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
- "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
+ "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" },
+ "lazydev.nvim": { "branch": "main", "commit": "e28ce52fc7ff79fcb76f0e79ee6fb6182fca90b9" },
"neogen": { "branch": "main", "commit": "d7f9461727751fb07f82011051338a9aba07581d" },
"nota.nvim": { "branch": "main", "commit": "503bfaa93968986a9df5376c4543207c70dd2a07" },
- "nvim-autopairs": { "branch": "master", "commit": "2647cce4cb64fb35c212146663384e05ae126bdf" },
- "nvim-dap": { "branch": "master", "commit": "2edd6375692d9ac1053d50acfe415c1eb2ba92d0" },
- "nvim-dap-ui": { "branch": "master", "commit": "73a26abf4941aa27da59820fd6b028ebcdbcf932" },
+ "nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" },
+ "nvim-dap": { "branch": "master", "commit": "6782b097af2417a4c3e33849b0a26ae2188bd7ea" },
+ "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
"nvim-dap-vscode-js": { "branch": "main", "commit": "03bd29672d7fab5e515fc8469b7d07cc5994bbf6" },
- "nvim-lspconfig": { "branch": "master", "commit": "69a1624aff5dc30dddd0c59d99a947b63c80bf2a" },
+ "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
- "nvim-treesitter-endwise": { "branch": "master", "commit": "d6cbb83307d516ec076d17c9a33d704ef626ee8c" },
- "oil.nvim": { "branch": "master", "commit": "08c2bce8b00fd780fb7999dbffdf7cd174e896fb" },
+ "nvim-treesitter-endwise": { "branch": "master", "commit": "a61a9de7965324d4019fb1637b66bfacdcb01f51" },
+ "oil.nvim": { "branch": "master", "commit": "7e1cd7703ff2924d7038476dcbc04b950203b902" },
"oleoboard.nvim": { "branch": "main", "commit": "3652b39db3a8faca3fb767ace799479124bc79f3" },
"snes-syntax-vim": { "branch": "master", "commit": "a6a699c8905f7b6119bf91e44f960667d9f03d59" },
"tree-sitter-api-notation": { "branch": "main", "commit": "3113c6077d9ed1e662a891714ac00e1ee3bb7657" },
- "undotree": { "branch": "master", "commit": "b951b87b46c34356d44aa71886aecf9dd7f5788a" },
- "vim-fugitive": { "branch": "master", "commit": "593f831d6f6d779cbabb70a4d1e6b1b1936a88af" },
+ "undotree": { "branch": "master", "commit": "0f1c9816975b5d7f87d5003a19c53c6fd2ff6f7f" },
+ "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
"vim-indent-object": { "branch": "master", "commit": "8ab36d5ec2a3a60468437a95e142ce994df598c6" },
"vim-togglelist": { "branch": "master", "commit": "48f0d30292efdf20edc883e61b121e6123e03df7" },
- "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
+ "which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" }
}
diff --git a/config/nvim/lua/lsp.lua b/config/nvim/lua/lsp.lua
index 7dfb050..6c69119 100644
--- a/config/nvim/lua/lsp.lua
+++ b/config/nvim/lua/lsp.lua
@@ -1,15 +1,37 @@
-local lspconfig = require('lspconfig')
local coq = require('coq')
-local capabilities = vim.lsp.protocol.make_client_capabilities()
-capabilities.textDocument.completion.completionItem.snippetSupport = true
-lspconfig.ts_ls.setup(coq.lsp_ensure_capabilities({}))
-lspconfig.eslint.setup(coq.lsp_ensure_capabilities({}))
-lspconfig.svelte.setup(coq.lsp_ensure_capabilities({}))
-lspconfig.pyright.setup(coq.lsp_ensure_capabilities({}))
-lspconfig.dartls.setup(coq.lsp_ensure_capabilities({}))
-lspconfig.rust_analyzer.setup(coq.lsp_ensure_capabilities({
- -- Server-specific settings. See `:help lspconfig-setup`
+vim.lsp.config('ts_ls', coq.lsp_ensure_capabilities({
+ cmd = { 'typescript-language-server', '--stdio' },
+ filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' },
+ root_markers = { 'package.json', 'tsconfig.json', 'jsconfig.json' }
+}))
+vim.lsp.enable('ts_ls')
+
+vim.lsp.config('eslint', coq.lsp_ensure_capabilities({
+ cmd = { 'vscode-eslint-language-server', '--stdio' },
+ filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' },
+ root_markers = { '.eslintrc', '.eslintrc.js', '.eslintrc.json', 'package.json' }
+}))
+vim.lsp.enable('eslint')
+
+vim.lsp.config('svelte', coq.lsp_ensure_capabilities({
+ cmd = { 'svelteserver', '--stdio' },
+ filetypes = { 'svelte' },
+ root_markers = { 'package.json', 'svelte.config.js' }
+}))
+vim.lsp.enable('svelte')
+
+vim.lsp.config('pyright', coq.lsp_ensure_capabilities({
+ cmd = { 'pyright-langserver', '--stdio' },
+ filetypes = { 'python' },
+ root_markers = { 'pyproject.toml', 'setup.py', 'requirements.txt' }
+}))
+vim.lsp.enable('pyright')
+
+vim.lsp.config('rust_analyzer', coq.lsp_ensure_capabilities({
+ cmd = { 'rust-analyzer' },
+ filetypes = { 'rust' },
+ root_markers = { 'Cargo.toml', 'rust-project.json' },
settings = {
['rust-analyzer'] = {
imports = {
@@ -27,18 +49,39 @@ lspconfig.rust_analyzer.setup(coq.lsp_ensure_capabilities({
enable = true
},
checkOnSave = {
+ enable = true,
command = "clippy"
}
},
},
- on_attach = function(client, bufnr)
- vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
- end
}))
-lspconfig.lua_ls.setup(coq.lsp_ensure_capabilities({}))
+vim.lsp.enable('rust_analyzer')
--- Global mappings.
--- See `:help vim.diagnostic.*` for documentation on any of the below functions
+vim.lsp.config('lua_ls', coq.lsp_ensure_capabilities({
+ cmd = { 'lua-language-server' },
+ filetypes = { 'lua' },
+ root_markers = { '.luarc.json', '.luarc.jsonc', '.luacheckrc', 'stylua.toml', 'selene.toml' },
+}))
+vim.lsp.enable('lua_ls')
+
+vim.lsp.config('gleam', coq.lsp_ensure_capabilities({
+ cmd = { 'gleam', 'lsp' },
+ filetypes = { 'gleam' },
+ root_markers = { 'gleam.toml' },
+}))
+vim.lsp.enable('gleam')
+
+-- Enable inlay hints for Rust when LSP attaches
+vim.api.nvim_create_autocmd('LspAttach', {
+ callback = function(args)
+ local client = vim.lsp.get_client_by_id(args.data.client_id)
+ if client and client.name == 'rust_analyzer' then
+ vim.lsp.inlay_hint.enable(true, { bufnr = args.buf })
+ end
+ end,
+})
+
+-- Global mappings
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
@@ -51,9 +94,8 @@ vim.api.nvim_create_autocmd('LspAttach', {
callback = function(ev)
-- Enable completion triggered by <c-x><c-o>
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
-
- -- Buffer local mappings.
- -- See `:help vim.lsp.*` for documentation on any of the below functions
+
+ -- Buffer local mappings
local opts = { buffer = ev.buf }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua
index 882c76d..ce637e9 100644
--- a/config/nvim/lua/plugins.lua
+++ b/config/nvim/lua/plugins.lua
@@ -28,9 +28,9 @@ require('lazy').setup({
['fg'] = {'fg', 'Normal'},
['bg'] = {'bg', 'Normal'},
['hl'] = {'fg', 'Comment'},
- ['fg+'] = {'fg', 'CursorLine'},
- ['bg+'] = {'bg', 'CursorLine'},
- ['hl+'] = {'fg', 'Statement'},
+ ['fg+'] = {'fg', 'Type'},
+ ['bg+'] = {'bg', 'Comment'},
+ ['hl+'] = {'fg', '@fzf.hlplus'},
['info'] = {'fg', 'PreProc'},
['prompt'] = {'fg', 'Conditional'},
['pointer'] = {'fg', 'Exception'},
diff --git a/config/nvim/lua/treesitter_config.lua b/config/nvim/lua/treesitter_config.lua
index ded65ac..16986d6 100644
--- a/config/nvim/lua/treesitter_config.lua
+++ b/config/nvim/lua/treesitter_config.lua
@@ -8,6 +8,7 @@ require'nvim-treesitter.configs'.setup {
'diff',
'dockerfile',
'gitcommit',
+ 'gleam',
'graphql',
'html',
'htmldjango',
diff --git a/install b/install
index 26b0ee2..6e87804 100755
--- a/install
+++ b/install
@@ -101,6 +101,9 @@ ln -fns ../.dotfiles/config/weechat ~/.config/weechat
# wpaperd
ln -fns ../.dotfiles/config/wpaperd ~/.config/wpaperd
+# btop
+ln -fns ../.dotfiles/config/btop ~/.config/btop
+
# age recipients
ln -fns .dotfiles/age-recipients ~/.age-recipients
diff --git a/provisioning/brew_cask_essential b/provisioning/brew_cask_essential
index 38a3c5a..e15e7b2 100644
--- a/provisioning/brew_cask_essential
+++ b/provisioning/brew_cask_essential
@@ -2,8 +2,9 @@
alt-tab
bitwarden
captura
+cardhop
clipy
-busycal
+fantastical
firefox
kitty
mailmate@beta
@@ -13,4 +14,3 @@ quicksilver
rectangle
spamsieve
keka
-tresorit
diff --git a/provisioning/brew_cask_full b/provisioning/brew_cask_full
index b4c061f..373e1f1 100644
--- a/provisioning/brew_cask_full
+++ b/provisioning/brew_cask_full
@@ -5,19 +5,12 @@ audacity
blender
calibre
cycling74-max
-inky
-mellel
multipatch
musescore
qflipper
-qutebrowser
raspberry-pi-manager
scrivener
-sketch
-soulseek
thonny
transmission
utm
-wireshark
-xld
yubico-key-manager
diff --git a/provisioning/brew_cask_nice b/provisioning/brew_cask_nice
index cda2879..1ed429a 100644
--- a/provisioning/brew_cask_nice
+++ b/provisioning/brew_cask_nice
@@ -1,7 +1,6 @@
--cask
chai
daisydisk
-deepl
hex-fiend
ia-presenter
iina
@@ -30,7 +29,6 @@ syntax-highlight
tailscale
textual
the-clock
-timeular
transmit
veracrypt
xscope
diff --git a/provisioning/brew_essential b/provisioning/brew_essential
index 3b951b1..19ea95f 100644
--- a/provisioning/brew_essential
+++ b/provisioning/brew_essential
@@ -11,6 +11,7 @@ fzf
git-delta
gnupg
htop
+jujutsu
neovim
pinentry-mac
ripgrep
diff --git a/runcoms/zshrc b/runcoms/zshrc
index 550bb09..1683eea 100644
--- a/runcoms/zshrc
+++ b/runcoms/zshrc
@@ -23,6 +23,7 @@ source "${ZDOTDIR:-$HOME}/.dotfiles/zsh/modules/prompt.zsh"
source "${ZDOTDIR:-$HOME}/.dotfiles/zsh/modules/vendor/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
source "${ZDOTDIR:-$HOME}/.dotfiles/zsh/modules/completion.zsh"
source "${ZDOTDIR:-$HOME}/.dotfiles/zsh/modules/aliases.zsh"
+source "${ZDOTDIR:-$HOME}/.dotfiles/zsh/modules/color.zsh"
################################################################################
# ENV VARIABLES
@@ -93,3 +94,6 @@ fi
if [[ -s "~/.asdf/plugins/java/set-java-home.zsh" ]]; then
. ~/.asdf/plugins/java/set-java-home.zsh
fi
+
+# Difftastic
+export DFT_BACKGROUND=light
diff --git a/scripts/colors.py b/scripts/colors.py
new file mode 100644
index 0000000..ccc6d51
--- /dev/null
+++ b/scripts/colors.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+# ANSI color codes
+colors = {
+ 'black': 30,
+ 'red': 31,
+ 'green': 32,
+ 'yellow': 33,
+ 'blue': 34,
+ 'magenta': 35,
+ 'cyan': 36,
+ 'white': 37,
+ 'bright_black': 90,
+ 'bright_red': 91,
+ 'bright_green': 92,
+ 'bright_yellow': 93,
+ 'bright_blue': 94,
+ 'bright_magenta': 95,
+ 'bright_cyan': 96,
+ 'bright_white': 97
+}
+
+backgrounds = {
+ 'black': 40,
+ 'red': 41,
+ 'green': 42,
+ 'yellow': 43,
+ 'blue': 44,
+ 'magenta': 45,
+ 'cyan': 46,
+ 'white': 47,
+ 'bright_black': 100,
+ 'bright_red': 101,
+ 'bright_green': 102,
+ 'bright_yellow': 103,
+ 'bright_blue': 104,
+ 'bright_magenta': 105,
+ 'bright_cyan': 106,
+ 'bright_white': 107
+}
+
+pangram = "Sphinx of black quartz, judge my vow"
+
+print("=" * 60)
+print("QUARTZ SPHINX PANGRAM - ALL COLOR COMBINATIONS")
+print("=" * 60)
+print()
+
+for bg_name, bg_code in backgrounds.items():
+ print(f"\n--- Background: {bg_name.upper().replace('_', ' ')} ---")
+ for fg_name, fg_code in colors.items():
+ # Create the ANSI escape sequence
+ colored_text = f"\033[{fg_code};{bg_code}m{pangram}\033[0m"
+ print(f"{fg_name:20} | {colored_text}")
+ print()
+
+print("=" * 60)
+print("Total combinations:", len(colors) * len(backgrounds))
+print("=" * 60)
diff --git a/zsh/modules/color.zsh b/zsh/modules/color.zsh
new file mode 100644
index 0000000..1d4c2a3
--- /dev/null
+++ b/zsh/modules/color.zsh
@@ -0,0 +1,2 @@
+ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=green,bg=white'
+ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=green,bg=white'
diff --git a/zsh/modules/prompt.zsh b/zsh/modules/prompt.zsh
index 615ca95..5b79b3e 100644
--- a/zsh/modules/prompt.zsh
+++ b/zsh/modules/prompt.zsh
@@ -46,8 +46,7 @@ function prompt_setup {
# Define prompts.
PROMPT='
-%{%F{black}%}$(env_info) $(node_info) $(rust_info) $(python_info)
-%{%F{magenta}%}%n%{%f%}@%{%F{yellow}%}$(hostname -s)%{%f%} %{%B%F{green}%}${PWD/#$HOME/~}%{%f%b%}$(git_info)%{%f%}
+%{%F{black}%}$(env_info)%{%F{magenta}%}%n%{%F{8}%}@%{%F{cyan}%}$(hostname -s)%{%f%} %{%B%F{blue}%}${PWD/#$HOME/~}%{%f%b%}$(git_info)%{%f%}
%(?,,%{${%B%F{white}%}[%?]%{%f%b%} )%% '
}