Compare commits
93
Commits
e8e5b8bef2
..
old
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f62cb40499 | ||
|
|
a5a5bc1b1b | ||
|
|
9d447e1cd0 | ||
|
|
e305c812ef | ||
|
|
71addd70ea | ||
|
|
077e5acba6 | ||
|
|
7a8a8fce6f | ||
|
|
0e07bcced0 | ||
|
|
572a4c2286 | ||
|
|
b33a45fa1c | ||
|
|
3cbf3116c9 | ||
|
|
b9398d31fe | ||
|
|
9eb42566db | ||
|
|
d314b43943 | ||
|
|
c14c6bf1af | ||
|
|
f18b85247d | ||
|
|
f59b36d637 | ||
|
|
f30a7275d0 | ||
|
|
2163dd70b6 | ||
|
|
076975d384 | ||
|
|
d18a799be3 | ||
|
|
3ced0b13d9 | ||
|
|
68d6cc3109 | ||
|
|
8f73757604 | ||
|
|
dad966c3be | ||
|
|
7b2a2e5447 | ||
|
|
6cd73dc865 | ||
|
|
63c9bc520a | ||
|
|
3c336fa1b3 | ||
|
|
2a5d020110 | ||
|
|
c6f63eb958 | ||
|
|
a9f3dd28de | ||
|
|
f0dfb66fc2 | ||
|
|
62f68b6570 | ||
|
|
01d7666f51 | ||
|
|
a4675f15b9 | ||
|
|
3705c90fda | ||
|
|
b7e2599094 | ||
|
|
bdb669bb73 | ||
|
|
e7da0a5f93 | ||
|
|
f413a68803 | ||
|
|
e72c0b648c | ||
|
|
581001db0b | ||
|
|
9a154c71ec | ||
|
|
d8a08b8b14 | ||
|
|
19faeed49e | ||
|
|
d943a80530 | ||
|
|
535d28900d | ||
|
|
0c480e2d1e | ||
|
|
03e193f975 | ||
|
|
6498afda47 | ||
|
|
5580d801ee | ||
|
|
1057355b76 | ||
|
|
83697d71e6 | ||
|
|
87798f132a | ||
|
|
751014a9fb | ||
|
|
6cee197b2e | ||
|
|
2cc3a7330c | ||
|
|
9dd5639868 | ||
|
|
c1d60f4786 | ||
|
|
ec99ca58d8 | ||
|
|
5e2e481726 | ||
|
|
7ebe0a5d4b | ||
|
|
5b9d76e08e | ||
|
|
9736d2fd6e | ||
|
|
17540f0b8b | ||
|
|
cd5cd23e71 | ||
|
|
87935ca581 | ||
|
|
3ef2509830 | ||
|
|
c07058a3c4 | ||
|
|
d78a9f76cf | ||
|
|
48d6400905 | ||
|
|
6b7a6fd6e6 | ||
|
|
f5ae2e0848 | ||
|
|
940ba48422 | ||
|
|
47d3d0d254 | ||
|
|
039eb20956 | ||
|
|
2d4b03425f | ||
|
|
9002b1e720 | ||
|
|
4c6488d927 | ||
|
|
6fcad474ab | ||
|
|
c740f33b94 | ||
|
|
8789b077f0 | ||
|
|
499a603d44 | ||
|
|
bd6f2cd612 | ||
|
|
8d944cbb3a | ||
|
|
b08ef824ac | ||
|
|
04ab323216 | ||
|
|
ca4806267c | ||
|
|
8d1ad42d68 | ||
|
|
ef8f839913 | ||
|
|
fe3fd9f49a | ||
|
|
d41461cb0e |
@@ -0,0 +1,3 @@
|
||||
greet.txt
|
||||
fish_variables
|
||||
secrets.fish
|
||||
@@ -0,0 +1,27 @@
|
||||
# see https://github.com/sigoden/aichat/blob/main/config.example.yaml
|
||||
keybindings: vi
|
||||
editor: nvim
|
||||
model: duskadiy:Qwen3-Coder-30B-Instruct-IQ4_XS
|
||||
clients:
|
||||
- type: openai-compatible
|
||||
name: local
|
||||
api_base: http://192.168.0.204:11343/v1
|
||||
models:
|
||||
- name: Qwen3.5-27B-UD-Q3_K_XL
|
||||
- name: Qwen3.5-9B-Q8_0
|
||||
- name: Qwen3-Coder-30B-Instruct-IQ4_XS
|
||||
- name: GLM-4.7-Flash-UD-Q3_K_XL
|
||||
- name: DeepSeek-Coder-V2-Lite-Instruct-Q8_0
|
||||
- name: gemma-4-E4B-it-UD-Q8_K_XL
|
||||
- name: gemma-4-26B-A4B-it-UD-IQ4_XS
|
||||
- type: openai-compatible
|
||||
name: duskadiy
|
||||
api_base: https://llm.duskadiy.com/api/v1
|
||||
models:
|
||||
- name: Qwen3.5-27B-UD-Q3_K_XL
|
||||
- name: Qwen3.5-9B-Q8_0
|
||||
- name: Qwen3-Coder-30B-Instruct-IQ4_XS
|
||||
- name: GLM-4.7-Flash-UD-Q3_K_XL
|
||||
- name: DeepSeek-Coder-V2-Lite-Instruct-Q8_0
|
||||
- name: gemma-4-E4B-it-UD-Q8_K_XL
|
||||
- name: gemma-4-26B-A4B-it-UD-IQ4_XS
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
|
||||
# for a list of all available themes
|
||||
--theme="OneHalfDark"
|
||||
--theme="Catppuccin Mocha"
|
||||
--style="numbers,changes,header"
|
||||
|
||||
# Enable this to use italic text on the terminal. This is not supported on all
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,286 @@
|
||||
#? Config file for btop v.1.4.7
|
||||
|
||||
#* 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 = "Default"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = false
|
||||
|
||||
#* 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
|
||||
|
||||
#* Option to disable presets. Either the default preset, custom presets, or all presets.
|
||||
#* "Off" All presets are enabled.
|
||||
#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled.
|
||||
disable_presets = "Off"
|
||||
|
||||
#* 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 = true
|
||||
|
||||
#* Disable all mouse events.
|
||||
disable_mouse = false
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = true
|
||||
|
||||
#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
|
||||
terminal_sync = 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 gpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_gpu = "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 = "proc cpu mem net"
|
||||
|
||||
#* 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 = true
|
||||
|
||||
#* 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
|
||||
|
||||
#* Should the process list follow the selected process when detailed view is open.
|
||||
proc_follow_detailed = true
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = false
|
||||
|
||||
#* Should cpu and memory usage display be preserved for dead processes when paused.
|
||||
keep_dead_proc_usage = 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"
|
||||
|
||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||
show_gpu_info = "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
|
||||
|
||||
#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average".
|
||||
freq_mode = "first"
|
||||
|
||||
#* 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 = ""
|
||||
|
||||
#* Swap the positions of the upload and download speed graphs. When true, upload will be on top.
|
||||
swap_upload_download = false
|
||||
|
||||
#* 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 "~/.local/state/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"
|
||||
|
||||
#* Automatically save current settings to config file on exit.
|
||||
save_config_on_exit = true
|
||||
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = true
|
||||
|
||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||
rsmi_measure_pcie_speeds = true
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = true
|
||||
|
||||
#* Set which GPU vendors to show. Available values are "nvidia amd intel apple"
|
||||
shown_gpus = "nvidia amd intel"
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
#* Custom gpu2 model name, empty string to disable.
|
||||
custom_gpu_name2 = ""
|
||||
|
||||
#* Custom gpu3 model name, empty string to disable.
|
||||
custom_gpu_name3 = ""
|
||||
|
||||
#* Custom gpu4 model name, empty string to disable.
|
||||
custom_gpu_name4 = ""
|
||||
|
||||
#* Custom gpu5 model name, empty string to disable.
|
||||
custom_gpu_name5 = ""
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
2024/11/19 (20:36:51) | ===> btop++ v.1.4.0
|
||||
2024/11/19 (20:36:51) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
2024/11/19 (20:37:28) | INFO: Logger set to INFO
|
||||
|
||||
2024/11/26 (00:47:27) | ===> btop++ v.1.4.0
|
||||
2024/11/26 (00:47:27) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2024/11/26 (00:47:32) | ===> btop++ v.1.4.0
|
||||
2024/11/26 (00:47:32) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2024/12/16 (20:32:28) | ===> btop++ v.1.4.0
|
||||
2024/12/16 (20:32:28) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/01/06 (01:34:00) | ===> btop++ v.1.4.0
|
||||
2025/01/06 (01:34:00) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/02/23 (01:19:32) | ===> btop++ v.1.4.0
|
||||
2025/02/23 (01:19:32) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/12 (19:08:38) | ===> btop++ v.1.4.0
|
||||
2025/03/12 (19:08:38) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/13 (00:34:24) | ===> btop++ v.1.4.0
|
||||
2025/03/13 (00:34:24) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/19 (17:51:06) | ===> btop++ v.1.4.0
|
||||
2025/03/19 (17:51:06) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/22 (05:43:25) | ===> btop++ v.1.4.0
|
||||
2025/03/22 (05:43:25) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/22 (05:43:39) | ===> btop++ v.1.4.0
|
||||
2025/03/22 (05:43:39) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/24 (02:13:29) | ===> btop++ v.1.4.0
|
||||
2025/03/24 (02:13:29) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/25 (22:21:48) | ===> btop++ v.1.4.0
|
||||
2025/03/25 (22:21:48) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
[color]
|
||||
|
||||
gradient = 1
|
||||
gradient_count = 8
|
||||
gradient_color_1 = '#332952'
|
||||
gradient_color_2 = '#463A6B'
|
||||
gradient_color_3 = '#7D4B5F'
|
||||
gradient_color_4 = '#8F576D'
|
||||
gradient_color_5 = '#A36578'
|
||||
gradient_color_6 = '#C27A90'
|
||||
gradient_color_7 = '#E69A9D'
|
||||
gradient_color_8 = '#F0AAAD'
|
||||
@@ -0,0 +1,309 @@
|
||||
## Configuration file for CAVA.
|
||||
# Remove the ; to change parameters.
|
||||
|
||||
[general]
|
||||
|
||||
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
|
||||
mode = scientific
|
||||
|
||||
# Accepts only non-negative values.
|
||||
framerate = 60
|
||||
|
||||
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
||||
# new as of 0.6.0 autosens of low values (dynamic range)
|
||||
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
|
||||
autosens = 1
|
||||
; overshoot = 20
|
||||
|
||||
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
|
||||
# 200 means double height. Accepts only non-negative values.
|
||||
; sensitivity = 100
|
||||
|
||||
# The number of bars (0-512). 0 sets it to auto (fill up console).
|
||||
# Bars' width and space between bars in number of characters.
|
||||
; bars = 0
|
||||
; bar_width = 2
|
||||
; bar_spacing = 1
|
||||
# bar_height is only used for output in "noritake" format
|
||||
; bar_height = 32
|
||||
|
||||
# For SDL width and space between bars is in pixels, defaults are:
|
||||
; bar_width = 20
|
||||
; bar_spacing = 5
|
||||
|
||||
# sdl_glsl have these default values, they are only used to calculate max number of bars.
|
||||
; bar_width = 1
|
||||
; bar_spacing = 0
|
||||
|
||||
# ceter bars in terminal, if there is space.
|
||||
; center_align = 1
|
||||
|
||||
# max height of bars in terminal, in percent of terminal height.
|
||||
; max_height = 100
|
||||
|
||||
|
||||
# Lower and higher cutoff frequencies for lowest and highest bars
|
||||
# the bandwidth of the visualizer.
|
||||
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
||||
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
||||
; lower_cutoff_freq = 50
|
||||
; higher_cutoff_freq = 10000
|
||||
|
||||
|
||||
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
|
||||
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
|
||||
; sleep_timer = 0
|
||||
|
||||
|
||||
[input]
|
||||
|
||||
# Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem'
|
||||
# Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with.
|
||||
# On Mac it defaults to 'portaudio' or 'fifo'
|
||||
# On windows this is automatic and no input settings are needed.
|
||||
#
|
||||
# All input methods uses the same config variable 'source'
|
||||
# to define where it should get the audio.
|
||||
#
|
||||
# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
||||
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
||||
#
|
||||
# For pipewire 'source' will be the object name or object.serial of the device to capture from.
|
||||
# Both input and output devices are supported. To capture the monitor source of a sink node, append '.monitor' to the sink's object name.
|
||||
#
|
||||
# For alsa 'source' will be the capture device.
|
||||
# For fifo 'source' will be the path to fifo-file.
|
||||
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
|
||||
#
|
||||
# For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'.
|
||||
# README.md contains further information on how to setup CAVA for sndio.
|
||||
#
|
||||
# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device.
|
||||
# README.md contains further information on how to setup CAVA for OSS on FreeBSD.
|
||||
#
|
||||
# For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'.
|
||||
# README.md contains further information on how to setup CAVA for JACK.
|
||||
#
|
||||
; method = pulse
|
||||
; source = auto
|
||||
|
||||
; method = pipewire
|
||||
; source = auto
|
||||
|
||||
; method = alsa
|
||||
; source = hw:Loopback,1
|
||||
|
||||
; method = fifo
|
||||
; source = /tmp/mpd.fifo
|
||||
|
||||
; method = shmem
|
||||
; source = /squeezelite-AA:BB:CC:DD:EE:FF
|
||||
|
||||
; method = portaudio
|
||||
; source = auto
|
||||
|
||||
; method = sndio
|
||||
; source = default
|
||||
|
||||
; method = oss
|
||||
; source = /dev/dsp
|
||||
|
||||
; method = jack
|
||||
; source = default
|
||||
|
||||
# The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods:
|
||||
# sample_rate: fifo, pipewire, sndio, oss
|
||||
# sample_bits: fifo, pipewire, sndio, oss
|
||||
# channels: sndio, oss, jack
|
||||
# autoconnect: jack
|
||||
# Other methods ignore these settings.
|
||||
#
|
||||
# For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported
|
||||
# by the chosen audio device, the device will use other supported values instead.
|
||||
# Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it
|
||||
# will use 44100, 16 and 1.
|
||||
#
|
||||
; sample_rate = 44100
|
||||
; sample_bits = 16
|
||||
; channels = 2
|
||||
; autoconnect = 2
|
||||
|
||||
|
||||
[output]
|
||||
|
||||
# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl'
|
||||
# or 'sdl_glsl'.
|
||||
# 'noncurses' (default) uses a buffer and cursor movements to only print
|
||||
# changes from frame to frame in the terminal. Uses less resources and is less
|
||||
# prone to tearing (vsync issues) than 'ncurses'.
|
||||
#
|
||||
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
|
||||
# stream of the bar heights that can be used to send to other applications.
|
||||
# 'raw' defaults to 1024 bars stereo (512 bars mono), which can be adjusted in the 'bars' option above.
|
||||
#
|
||||
# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display
|
||||
# in graphic mode. It only support the 3000 series graphical VFDs for now.
|
||||
#
|
||||
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
|
||||
# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or
|
||||
# use one of the predefined ones.
|
||||
; method = noncurses
|
||||
|
||||
# Orientation of the visualization. Can be 'bottom', 'top', 'left', 'right' or
|
||||
# 'horizontal'. Default is 'bottom'. 'left and 'right' are only supported on sdl
|
||||
# and ncruses output. 'horizontal' (bars go up and down from center) is only supported
|
||||
# on noncurses output.
|
||||
# Note: many fonts have weird or missing glyphs for characters used in orientations
|
||||
# other than 'bottom', which can make output not look right.
|
||||
; orientation = bottom
|
||||
|
||||
# Visual channels. Can be 'stereo' or 'mono'.
|
||||
# 'stereo' mirrors both channels with low frequencies in center.
|
||||
# 'mono' outputs left to right lowest to highest frequencies.
|
||||
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
|
||||
# set 'reverse' to 1 to display frequencies the other way around.
|
||||
; channels = stereo
|
||||
; mono_option = average
|
||||
; reverse = 0
|
||||
|
||||
# Raw output target.
|
||||
# On Linux, a fifo will be created if target does not exist.
|
||||
# On Windows, a named pipe will be created if target does not exist.
|
||||
; raw_target = /dev/stdout
|
||||
|
||||
# Raw data format. Can be 'binary' or 'ascii'.
|
||||
; data_format = binary
|
||||
|
||||
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
||||
; bit_format = 16bit
|
||||
|
||||
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
||||
; ascii_max_range = 1000
|
||||
|
||||
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
||||
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
||||
; bar_delimiter = 59
|
||||
; frame_delimiter = 10
|
||||
|
||||
# sdl window size and position. -1,-1 is centered.
|
||||
; sdl_width = 1024
|
||||
; sdl_height = 512
|
||||
; sdl_x = -1
|
||||
; sdl_y= -1
|
||||
; sdl_full_screen = 0
|
||||
|
||||
# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none'
|
||||
# 'frequency' displays the lower cut off frequency of the bar above.
|
||||
# Only supported on ncurses and noncurses output.
|
||||
; xaxis = none
|
||||
|
||||
# enable synchronized sync. 1 = on, 0 = off
|
||||
# removes flickering in alacritty terminal emulator.
|
||||
# defaults to off since the behaviour in other terminal emulators is unknown
|
||||
; synchronized_sync = 0
|
||||
|
||||
# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders
|
||||
; vertex_shader = pass_through.vert
|
||||
; fragment_shader = bar_spectrum.frag
|
||||
|
||||
; for glsl output mode, keep rendering even if no audio
|
||||
; continuous_rendering = 0
|
||||
|
||||
# disable console blank (screen saver) in tty
|
||||
# (Not supported on FreeBSD)
|
||||
; disable_blanking = 0
|
||||
|
||||
# show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off
|
||||
; show_idle_bar_heads = 1
|
||||
|
||||
# show waveform instead of frequency spectrum, 1 = on, 0 = off
|
||||
; waveform = 0
|
||||
|
||||
[color]
|
||||
|
||||
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
||||
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
|
||||
# a terminal that can change color definitions such as Gnome-terminal or rxvt.
|
||||
# default is to keep current terminal color
|
||||
; background = default
|
||||
; foreground = default
|
||||
|
||||
# SDL and sdl_glsl only support hex code colors, these are the default:
|
||||
; background = '#111111'
|
||||
; foreground = '#D34b11'
|
||||
# ; foreground = '#D34b11'
|
||||
|
||||
# Gradient mode, only hex defined colors are supported,
|
||||
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
|
||||
# You can define as many as 8 different colors. They range from bottom to top of screen
|
||||
gradient = 1
|
||||
gradient_color_1 = '#d34b11'
|
||||
gradient_color_2 = '#cc5933'
|
||||
gradient_color_3 = '#cc8033'
|
||||
gradient_color_4 = '#cca633'
|
||||
gradient_color_5 = '#cccc33'
|
||||
gradient_color_6 = '#a6cc33'
|
||||
gradient_color_7 = '#80cc33'
|
||||
gradient_color_8 = '#59cc33'
|
||||
|
||||
# Horizontal is only supported on noncurses output.
|
||||
# Only one color will be calculated per bar.
|
||||
; horizontal_gradient = 1
|
||||
; horizontal_gradient_color_1 = '#c45161'
|
||||
; horizontal_gradient_color_2 = '#e094a0'
|
||||
; horizontal_gradient_color_3 = '#f2b6c0'
|
||||
; horizontal_gradient_color_4 = '#f2dde1'
|
||||
; horizontal_gradient_color_5 = '#cbc7d8'
|
||||
; horizontal_gradient_color_6 = '#8db7d2'
|
||||
; horizontal_gradient_color_7 = '#5e62a9'
|
||||
; horizontal_gradient_color_8 = '#434279'
|
||||
|
||||
|
||||
# If both vertical and horizontal gradient is enabled, vertical will be blended in this direction.
|
||||
# Can be 'up', 'down', 'left' or 'right'. 'up' means the vertical gradient will be blended in from
|
||||
# bottom to top. I.e. the bottom will be only the horizontal
|
||||
# and top will be only the color of the vertical gradient.
|
||||
; blend_direction = 'up'
|
||||
|
||||
# use theme file instead of defining colors in this file
|
||||
# themes are located in $HOME/.config/cava/themes
|
||||
; theme = 'none'
|
||||
|
||||
|
||||
[smoothing]
|
||||
|
||||
# Percentage value for integral smoothing. Takes values from 0 - 100.
|
||||
# Higher values means smoother, but less precise. 0 to disable.
|
||||
# DEPRECATED as of 0.8.0, use noise_reduction instead
|
||||
; integral = 77
|
||||
|
||||
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
|
||||
; monstercat = 0
|
||||
; waves = 0
|
||||
|
||||
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
|
||||
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
|
||||
# DEPRECATED as of 0.8.0, use noise_reduction instead
|
||||
; gravity = 100
|
||||
|
||||
|
||||
# In bar height, bars that would have been lower that this will not be drawn.
|
||||
# DEPRECATED as of 0.8.0
|
||||
; ignore = 0
|
||||
|
||||
# Noise reduction, int 0 - 100. default 77
|
||||
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
|
||||
# 100 will be very slow and smooth, 0 will be fast but noisy.
|
||||
; noise_reduction = 77
|
||||
|
||||
|
||||
[eq]
|
||||
|
||||
# This one is tricky. You can have as much keys as you want.
|
||||
# Remember to uncomment more than one key! More keys = more precision.
|
||||
# Look at readme.md on github for further explanations and examples.
|
||||
; 1 = 1 # bass
|
||||
; 2 = 1
|
||||
; 3 = 1 # midtone
|
||||
; 4 = 1
|
||||
; 5 = 1 # treble
|
||||
@@ -0,0 +1,79 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||
{
|
||||
//create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
float x = u_resolution.x * fragCoord.x;
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
//calculate a bar size
|
||||
float bar_size = u_resolution.x / bars_count;
|
||||
|
||||
//the y coordinate and bar values are the same
|
||||
float y = bars[bar];
|
||||
|
||||
// make sure there is a thin line at bottom
|
||||
if (y * u_resolution.y < 1.0)
|
||||
{
|
||||
y = 1.0 / u_resolution.y;
|
||||
}
|
||||
|
||||
//draw the bar up to current height
|
||||
if (y > fragCoord.y)
|
||||
{
|
||||
//make some space between bars basen on settings
|
||||
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gradient_count == 0)
|
||||
{
|
||||
fragColor = vec4(fg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//find which color in the configured gradient we are at
|
||||
int color = int((gradient_count - 1) * fragCoord.y);
|
||||
|
||||
//find where on y this and next color is supposed to be
|
||||
float y_min = color / (gradient_count - 1.0);
|
||||
float y_max = (color + 1.0) / (gradient_count - 1.0);
|
||||
|
||||
//make color
|
||||
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
#version 330
|
||||
|
||||
// this shader was stolen from shadertoy user ChunderFPV
|
||||
|
||||
#define SCALE 8.0
|
||||
#define PI radians(180.0)
|
||||
#define TAU (PI * 2.0)
|
||||
#define CS(a) vec2(cos(a), sin(a))
|
||||
#define PT(u, r) smoothstep(0.0, r, r - length(u))
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform float shader_time; // shader execution time s
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
// colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
// gradient map ( color, equation, time, width, shadow, reciprocal )
|
||||
vec3 gm(vec3 c, float n, float t, float w, float d, bool i) {
|
||||
float g = min(abs(n), 1.0 / abs(n));
|
||||
float s = abs(sin(n * PI - t));
|
||||
if (i)
|
||||
s = min(s, abs(sin(PI / n + t)));
|
||||
return (1.0 - pow(abs(s), w)) * c * pow(g, d) * 6.0;
|
||||
}
|
||||
|
||||
// denominator spiral, use 1/n for numerator
|
||||
// ( screen xy, spiral exponent, decimal, line width, hardness, rotation )
|
||||
float ds(vec2 u, float e, float n, float w, float h, float ro) {
|
||||
float ur = length(u); // unit radius
|
||||
float sr = pow(ur, e); // spiral radius
|
||||
float a = round(sr) * n * TAU; // arc
|
||||
vec2 xy = CS(a + ro) * ur; // xy coords
|
||||
float l = PT(u - xy, w); // line
|
||||
float s = mod(sr + 0.5, 1.0); // gradient smooth
|
||||
s = min(s, 1.0 - s); // darken filter
|
||||
return l * s * h;
|
||||
}
|
||||
|
||||
void main() {
|
||||
float t = shader_time / PI * 2.0;
|
||||
vec4 m = vec4(0, 0, 0, 0); // iMouse;
|
||||
m.xy = m.xy * 2.0 / u_resolution.xy - 1.0; // ±1x, ±1y
|
||||
if (m.z > 0.0)
|
||||
t += m.y * SCALE; // move time with mouse y
|
||||
float z = (m.z > 0.0) ? pow(1.0 - abs(m.y), sign(m.y)) : 1.0; // zoom (+)
|
||||
float e = (m.z > 0.0) ? pow(1.0 - abs(m.x), -sign(m.x))
|
||||
: 1.0; // screen exponent (+)
|
||||
float se = (m.z > 0.0) ? e * -sign(m.y) : 1.0; // spiral exponent
|
||||
vec3 bg = vec3(0); // black background
|
||||
|
||||
float aa = 3.0; // anti-aliasing
|
||||
|
||||
for (float j = 0.0; j < aa; j++)
|
||||
for (float k = 0.0; k < aa; k++) {
|
||||
vec3 c = vec3(0);
|
||||
vec2 o = vec2(j, k) / aa;
|
||||
vec2 uv = (fragCoord * u_resolution.xy - 0.5 * u_resolution.xy + o) /
|
||||
u_resolution.y * SCALE * z; // apply cartesian, scale and zoom
|
||||
if (m.z > 0.0)
|
||||
uv =
|
||||
exp(log(abs(uv)) * e) * sign(uv); // warp screen space with exponent
|
||||
|
||||
float px = length(fwidth(uv)); // pixel width
|
||||
float x = uv.x; // every pixel on x
|
||||
float y = uv.y; // every pixel on y
|
||||
float l = length(uv); // hypot of xy: sqrt(x*x+y*y)
|
||||
|
||||
float mc = (x * x + y * y - 1.0) / y; // metallic circle at xy
|
||||
float g = min(abs(mc), 1.0 / abs(mc)); // gradient
|
||||
vec3 gold = vec3(1.0, 0.6, 0.0) * g * l;
|
||||
vec3 blue = vec3(0.3, 0.5, 0.9) * (1.0 - g);
|
||||
vec3 rgb = max(gold, blue);
|
||||
|
||||
float w = 0.1; // line width
|
||||
float d = 0.4; // shadow depth
|
||||
c = max(c, gm(rgb, mc, -t, w * bars[0], d, false)); // metallic
|
||||
c = max(c, gm(rgb, abs(y / x) * sign(y), -t, w * bars[1], d,
|
||||
false)); // tangent
|
||||
c = max(c, gm(rgb, (x * x) / (y * y) * sign(y), -t, w * bars[2], d,
|
||||
false)); // sqrt cotangent
|
||||
c = max(c, gm(rgb, (x * x) + (y * y), t, w * bars[3], d,
|
||||
true)); // sqrt circles
|
||||
|
||||
c += rgb * ds(uv, se, t / TAU, px * 2.0 * bars[4], 2.0, 0.0); // spiral 1a
|
||||
c += rgb * ds(uv, se, t / TAU, px * 2.0 * bars[5], 2.0, PI); // spiral 1b
|
||||
c +=
|
||||
rgb * ds(uv, -se, t / TAU, px * 2.0 * bars[6], 2.0, 0.0); // spiral 2a
|
||||
c += rgb * ds(uv, -se, t / TAU, px * 2.0 * bars[7], 2.0, PI); // spiral 2b
|
||||
c = max(c, 0.0); // clear negative color
|
||||
|
||||
c += pow(max(1.0 - l, 0.0), 3.0 / z); // center glow
|
||||
|
||||
if (m.z > 0.0) // display grid on click
|
||||
{
|
||||
vec2 xyg = abs(fract(uv + 0.5) - 0.5) / px; // xy grid
|
||||
c.gb += 0.2 * (1.0 - min(min(xyg.x, xyg.y), 1.0));
|
||||
}
|
||||
bg += c;
|
||||
}
|
||||
bg /= aa * aa;
|
||||
bg *= sqrt(bg) * 1.5;
|
||||
|
||||
fragColor = vec4(bg, 1.0);
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution, not used here
|
||||
|
||||
//colors, configurable in cava config file
|
||||
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||
uniform vec3 fg_color; // foreground color, not used here
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
|
||||
float y = (bars[bar]) * bar_y;
|
||||
|
||||
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
|
||||
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
|
||||
|
||||
bar_r = bar_r * bar_r * 2;
|
||||
|
||||
// set color
|
||||
fragColor.r = fg_color.x * y * bar_r;
|
||||
fragColor.g = fg_color.y * y * bar_r;
|
||||
fragColor.b = fg_color.z * y * bar_r;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
#version 330
|
||||
|
||||
|
||||
// Input vertex data, different for all executions of this shader.
|
||||
layout(location = 0) in vec3 vertexPosition_modelspace;
|
||||
|
||||
// Output data ; will be interpolated for each fragment.
|
||||
out vec2 fragCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(vertexPosition_modelspace,1);
|
||||
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high
|
||||
// to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
// colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
uniform sampler2D inputTexture; // Texture from the first render pass
|
||||
|
||||
vec3 normalize_C(float y, vec3 col_1, vec3 col_2, float y_min, float y_max) {
|
||||
// create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main() {
|
||||
// find which bar to use based on where we are on the y axis
|
||||
int bar = int(bars_count * fragCoord.y);
|
||||
float y = bars[bar];
|
||||
float band_size = 1.0 / float(bars_count);
|
||||
float current_band_min = bar * band_size;
|
||||
float current_band_max = (bar + 1) * band_size;
|
||||
|
||||
int hist_length = 512;
|
||||
float win_size = 1.0 / hist_length;
|
||||
|
||||
if (fragCoord.x > 1.0 - win_size) {
|
||||
|
||||
if (fragCoord.y > current_band_min && fragCoord.y < current_band_max) {
|
||||
|
||||
fragColor = vec4(fg_color * y, 1.0);
|
||||
}
|
||||
} else {
|
||||
vec2 offsetCoord = fragCoord;
|
||||
offsetCoord.x += float(win_size);
|
||||
fragColor = texture(inputTexture, offsetCoord);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
#version 330
|
||||
|
||||
// Emulate the "line style" spectrum analyzer from Winamp 2.
|
||||
// Try this config for a demonstration:
|
||||
|
||||
/*
|
||||
[general]
|
||||
bar_width = 2
|
||||
bar_spacing = 0
|
||||
higher_cutoff_freq = 22000
|
||||
|
||||
[output]
|
||||
method = sdl_glsl
|
||||
channels = mono
|
||||
fragment_shader = winamp_line_style_spectrum.frag
|
||||
|
||||
[color]
|
||||
background = '#000000'
|
||||
gradient = 1
|
||||
gradient_color_1 = '#319C08'
|
||||
gradient_color_2 = '#29CE10'
|
||||
gradient_color_3 = '#BDDE29'
|
||||
gradient_color_4 = '#DEA518'
|
||||
gradient_color_5 = '#D66600'
|
||||
gradient_color_6 = '#CE2910'
|
||||
|
||||
[smoothing]
|
||||
noise_reduction = 10
|
||||
*/
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||
{
|
||||
//create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
float x = u_resolution.x * fragCoord.x;
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
//calculate a bar size
|
||||
float bar_size = u_resolution.x / bars_count;
|
||||
|
||||
//the y coordinate is stretched by 4X to resemble Winamp
|
||||
float y = min(bars[bar] * 4.0, 1.0);
|
||||
|
||||
// make sure there is a thin line at bottom
|
||||
if (y * u_resolution.y < 1.0)
|
||||
{
|
||||
y = 1.0 / u_resolution.y;
|
||||
}
|
||||
|
||||
vec4 bar_color;
|
||||
|
||||
if (gradient_count == 0)
|
||||
{
|
||||
bar_color = vec4(fg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//find color in the configured gradient for the top of the bar
|
||||
int color = int((gradient_count - 1) * y);
|
||||
|
||||
//find where on y this and next color is supposed to be
|
||||
float y_min = float(color) / (gradient_count - 1.0);
|
||||
float y_max = float(color + 1) / (gradient_count - 1.0);
|
||||
|
||||
//make a solid color for the entire bar
|
||||
bar_color = vec4(normalize_C(y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||
}
|
||||
|
||||
|
||||
//draw the bar up to current height
|
||||
if (y > fragCoord.y)
|
||||
{
|
||||
//make some space between bars based on settings
|
||||
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = bar_color;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
[color]
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#81c8be'
|
||||
gradient_color_2 = '#99d1db'
|
||||
gradient_color_3 = '#85c1dc'
|
||||
gradient_color_4 = '#8caaee'
|
||||
gradient_color_5 = '#ca9ee6'
|
||||
gradient_color_6 = '#f4b8e4'
|
||||
gradient_color_7 = '#ea999c'
|
||||
gradient_color_8 = '#e78284'
|
||||
@@ -0,0 +1,13 @@
|
||||
[color]
|
||||
background = '#303446'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#81c8be'
|
||||
gradient_color_2 = '#99d1db'
|
||||
gradient_color_3 = '#85c1dc'
|
||||
gradient_color_4 = '#8caaee'
|
||||
gradient_color_5 = '#ca9ee6'
|
||||
gradient_color_6 = '#f4b8e4'
|
||||
gradient_color_7 = '#ea999c'
|
||||
gradient_color_8 = '#e78284'
|
||||
@@ -0,0 +1,11 @@
|
||||
[color]
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#179299'
|
||||
gradient_color_2 = '#04a5e5'
|
||||
gradient_color_3 = '#209fb5'
|
||||
gradient_color_4 = '#1e66f5'
|
||||
gradient_color_5 = '#8839ef'
|
||||
gradient_color_6 = '#ea76cb'
|
||||
gradient_color_7 = '#e64553'
|
||||
gradient_color_8 = '#d20f39'
|
||||
@@ -0,0 +1,13 @@
|
||||
[color]
|
||||
background = '#eff1f5'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#179299'
|
||||
gradient_color_2 = '#04a5e5'
|
||||
gradient_color_3 = '#209fb5'
|
||||
gradient_color_4 = '#1e66f5'
|
||||
gradient_color_5 = '#8839ef'
|
||||
gradient_color_6 = '#ea76cb'
|
||||
gradient_color_7 = '#e64553'
|
||||
gradient_color_8 = '#d20f39'
|
||||
@@ -0,0 +1,11 @@
|
||||
[color]
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#8bd5ca'
|
||||
gradient_color_2 = '#91d7e3'
|
||||
gradient_color_3 = '#7dc4e4'
|
||||
gradient_color_4 = '#8aadf4'
|
||||
gradient_color_5 = '#c6a0f6'
|
||||
gradient_color_6 = '#f5bde6'
|
||||
gradient_color_7 = '#ee99a0'
|
||||
gradient_color_8 = '#ed8796'
|
||||
@@ -0,0 +1,13 @@
|
||||
[color]
|
||||
background = '#24273a'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#8bd5ca'
|
||||
gradient_color_2 = '#91d7e3'
|
||||
gradient_color_3 = '#7dc4e4'
|
||||
gradient_color_4 = '#8aadf4'
|
||||
gradient_color_5 = '#c6a0f6'
|
||||
gradient_color_6 = '#f5bde6'
|
||||
gradient_color_7 = '#ee99a0'
|
||||
gradient_color_8 = '#ed8796'
|
||||
@@ -0,0 +1,11 @@
|
||||
[color]
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#94e2d5'
|
||||
gradient_color_2 = '#89dceb'
|
||||
gradient_color_3 = '#74c7ec'
|
||||
gradient_color_4 = '#89b4fa'
|
||||
gradient_color_5 = '#cba6f7'
|
||||
gradient_color_6 = '#f5c2e7'
|
||||
gradient_color_7 = '#eba0ac'
|
||||
gradient_color_8 = '#f38ba8'
|
||||
@@ -0,0 +1,13 @@
|
||||
[color]
|
||||
background = '#1e1e2e'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#94e2d5'
|
||||
gradient_color_2 = '#89dceb'
|
||||
gradient_color_3 = '#74c7ec'
|
||||
gradient_color_4 = '#89b4fa'
|
||||
gradient_color_5 = '#cba6f7'
|
||||
gradient_color_6 = '#f5c2e7'
|
||||
gradient_color_7 = '#eba0ac'
|
||||
gradient_color_8 = '#f38ba8'
|
||||
@@ -0,0 +1,15 @@
|
||||
[color]
|
||||
background = '#001e26'
|
||||
foreground = '#708183'
|
||||
|
||||
gradient = 1
|
||||
gradient_color_1 = '#268bd2'
|
||||
gradient_color_2 = '#6c71c4'
|
||||
gradient_color_3 = '#cb4b16'
|
||||
|
||||
horizontal_gradient = 1
|
||||
horizontal_gradient_color_1 = '#586e75'
|
||||
horizontal_gradient_color_2 = '#b58900'
|
||||
horizontal_gradient_color_3 = '#839496'
|
||||
|
||||
blend_direction = 'up'
|
||||
@@ -0,0 +1,10 @@
|
||||
[color]
|
||||
horizontal_gradient = 1
|
||||
horizontal_gradient_color_1 = '#c45161'
|
||||
horizontal_gradient_color_2 = '#e094a0'
|
||||
horizontal_gradient_color_3 = '#f2b6c0'
|
||||
horizontal_gradient_color_4 = '#f2dde1'
|
||||
horizontal_gradient_color_5 = '#cbc7d8'
|
||||
horizontal_gradient_color_6 = '#8db7d2'
|
||||
horizontal_gradient_color_7 = '#5e62a9'
|
||||
horizontal_gradient_color_8 = '#434279'
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
function __fish_pipx_complete
|
||||
set -x _ARGCOMPLETE 1
|
||||
set -x _ARGCOMPLETE_DFS \t
|
||||
set -x _ARGCOMPLETE_IFS \n
|
||||
set -x _ARGCOMPLETE_SUPPRESS_SPACE 1
|
||||
set -x _ARGCOMPLETE_SHELL fish
|
||||
set -x COMP_LINE (commandline -p)
|
||||
set -x COMP_POINT (string length (commandline -cp))
|
||||
set -x COMP_TYPE
|
||||
if set -q _ARC_DEBUG
|
||||
pipx 8>&1 9>&2 1>&9 2>&1
|
||||
else
|
||||
pipx 8>&1 9>&2 1>/dev/null 2>&1
|
||||
end
|
||||
end
|
||||
complete --command pipx -f -a '(__fish_pipx_complete)'
|
||||
@@ -0,0 +1,3 @@
|
||||
set --global fish_key_bindings fish_vi_key_bindings
|
||||
|
||||
set --erase --universal fish_key_bindings
|
||||
@@ -0,0 +1,38 @@
|
||||
set --global fish_color_autosuggestion 4D5566
|
||||
set --global fish_color_cancel -r
|
||||
set --global fish_color_command 39BAE6
|
||||
set --global fish_color_comment 626A73
|
||||
set --global fish_color_cwd 59C2FF
|
||||
set --global fish_color_cwd_root red
|
||||
set --global fish_color_end F29668
|
||||
set --global fish_color_error FF3333
|
||||
set --global fish_color_escape 95E6CB
|
||||
set --global fish_color_history_current --bold
|
||||
set --global fish_color_host normal
|
||||
set --global fish_color_host_remote yellow
|
||||
set --global fish_color_keyword 39BAE6
|
||||
set --global fish_color_match F07178
|
||||
set --global fish_color_normal B3B1AD
|
||||
set --global fish_color_operator E6B450
|
||||
set --global fish_color_option B3B1AD
|
||||
set --global fish_color_param B3B1AD
|
||||
set --global fish_color_quote C2D94C
|
||||
set --global fish_color_redirection FFEE99
|
||||
set --global fish_color_search_match --background=E6B450
|
||||
set --global fish_color_selection --background=E6B450
|
||||
set --global fish_color_status red
|
||||
set --global fish_color_user brgreen
|
||||
set --global fish_color_valid_path --underline
|
||||
set --global fish_pager_color_background
|
||||
set --global fish_pager_color_completion normal
|
||||
set --global fish_pager_color_description B3A06D yellow
|
||||
set --global fish_pager_color_prefix normal --bold --underline
|
||||
set --global fish_pager_color_progress brwhite --background=cyan
|
||||
set --global fish_pager_color_secondary_background
|
||||
set --global fish_pager_color_secondary_completion
|
||||
set --global fish_pager_color_secondary_description
|
||||
set --global fish_pager_color_secondary_prefix
|
||||
set --global fish_pager_color_selected_background --background=E6B450
|
||||
set --global fish_pager_color_selected_completion
|
||||
set --global fish_pager_color_selected_description
|
||||
set --global fish_pager_color_selected_prefix
|
||||
@@ -0,0 +1 @@
|
||||
fnm env --use-on-cd --shell fish | source
|
||||
+68
-44
@@ -1,39 +1,41 @@
|
||||
set -gx QT_FONT_DPI 96
|
||||
set -gx EDITOR nvim
|
||||
set -gx PAGER less
|
||||
# set -Ux BAT_THEME gruvbox
|
||||
set -gx PATH "/run/user/1000/fnm_multishells/14287_1763490645306/bin" $PATH;
|
||||
set -gx FNM_MULTISHELL_PATH "/run/user/1000/fnm_multishells/14287_1763490645306";
|
||||
set -gx FNM_VERSION_FILE_STRATEGY "local";
|
||||
set -gx FNM_DIR "/home/anon/.local/share/fnm";
|
||||
set -gx FNM_LOGLEVEL "info";
|
||||
set -gx FNM_NODE_DIST_MIRROR "https://nodejs.org/dist";
|
||||
set -gx FNM_COREPACK_ENABLED "false";
|
||||
set -gx FNM_RESOLVE_ENGINES "true";
|
||||
set -gx FNM_ARCH "x64";
|
||||
set -Ux MANPAGER "nvim +Man!"
|
||||
set -g fish_greeting
|
||||
set -g fish_cursor_insert line
|
||||
set -g fish_cursor_default block
|
||||
set -g fish_cursor_visual underscore
|
||||
set -g fish_user_key_bindings
|
||||
set -g ask
|
||||
# set -gx DUSKADIY_API_KEY "*****"
|
||||
set -x NEWT_COLORS 'root=black,black;window=black,black;border=white,black;listbox=white,black;label=blue,black;checkbox=red,black;title=green,black;button=white,red;actsellistbox=white,red;actlistbox=white,gray;compactbutton=white,gray;actcheckbox=white,blue;entry=lightgray,black;textbox=blue,black' nmtui
|
||||
# set -gx BAT_THEME "Catppuccin Mocha"
|
||||
|
||||
set -gx PNPM_HOME "/home/coja/.local/share/pnpm"
|
||||
if not string match -q -- $PNPM_HOME $PATH
|
||||
set -gx PATH "$PNPM_HOME" $PATH
|
||||
end
|
||||
|
||||
#set -xU MANPAGER 'less -R --use-color -Dd+r -Du+b'
|
||||
#set -xU MANROFFOPT '-P -c'
|
||||
|
||||
alias grep="grep --color=auto"
|
||||
alias fzf="fzf --preview color='always {}'"
|
||||
alias pacs="sudo pacman -Syu"
|
||||
alias nmaps="sudo nmap -sn 192.168.0.0/24"
|
||||
alias mem="df -H --output=source,size,used,avail | grep 480G | sort -u"
|
||||
alias kittyimg="kitten icat"
|
||||
alias dmz="cat ~/.config/fish/dmz.txt"
|
||||
alias xremaps="sudo xremap ~/.config/xremap/config.yml"
|
||||
# alias llama="~/projects/llama.cpp/build/bin/llama-server -m /home/anon/projects/llama.cpp/models/Llama-3.2-3B-Instruct-F16.gguf"
|
||||
alias cdots="cd ~/.dotfiles/.config/"
|
||||
alias dots="cd ~/.dotfiles/.config/ && nvim"
|
||||
alias keybinds="cd ~/.dotfiles/.config/ && nvim ./hypr/keybindings.conf"
|
||||
alias aliases="bat ~/.config/fish/config.fish"
|
||||
alias notes="cd ~/sync/notes && nvim"
|
||||
alias ipadd="sudo ip route add 192.168.0.1 dev wg0"
|
||||
alias copy="wl-copy"
|
||||
alias current="cd ~/projects/wingman/website/ && nvim"
|
||||
alias matrix="~/projects/random-clones/matrix/matrix"
|
||||
alias nmatrix="neo-matrix -DS 3"
|
||||
|
||||
# LLMs
|
||||
alias llamasrv="~/projects/pkgs/llama.cpp/build/bin/llama-server"
|
||||
abbr llamastart "llamasrv --host 0.0.0.0 --port 11343 --models-max 3 --models-preset ~/Documents/models/config.ini"
|
||||
|
||||
# Shorts
|
||||
alias fzf="fzf --multi --preview 'bat --style=numbers --color=always {}' | xargs -n 1 nvim"
|
||||
alias grep="grep --color=auto"
|
||||
|
||||
# Git
|
||||
alias gs="git status --short"
|
||||
alias gca="git add -p . && git commit"
|
||||
alias gd="git diff --word-diff"
|
||||
alias gl="git log --graph --show-signature"
|
||||
alias gla="git log --all --decorate --oneline --graph"
|
||||
alias gls="serie"
|
||||
alias gm="git merge"
|
||||
alias gm="git merge"
|
||||
|
||||
# List Directory
|
||||
alias ls="lsd"
|
||||
@@ -42,13 +44,28 @@ alias la="ls -a"
|
||||
alias lla="ls -la"
|
||||
alias lt="ls --tree"
|
||||
|
||||
# Git
|
||||
alias gs="git status"
|
||||
alias gca="git add -p . && git commit"
|
||||
alias gd="git diff --word-diff"
|
||||
alias gl="git log --graph --show-signature"
|
||||
alias gla="git log --all --decorate --oneline --graph"
|
||||
alias gm="git merge"
|
||||
alias cdots="cd ~/.dotfiles/.config/"
|
||||
alias cpnotes="cd ~/sync/PersonalNotes/"
|
||||
abbr dots "cdots && nvim"
|
||||
abbr pnotes "cpnotes && nvim"
|
||||
abbr todo "cpnotes && nvim ToDoNext.md"
|
||||
|
||||
abbr cat "bat -p"
|
||||
abbr copy "wl-copy"
|
||||
abbr img "kitten icat"
|
||||
abbr fm "yazi" ## file manager
|
||||
abbr lg "lazygit"
|
||||
abbr mkdir "mkdir -p"
|
||||
abbr faillock "sudo faillock --reset"
|
||||
abbr ipadd "sudo ip route add 192.168.0.234 dev wg0"
|
||||
abbr xremaps "sudo xremap --watch ~/.config/xremap/config.yml"
|
||||
abbr pacs "sudo pacman -Syu --noconfirm"
|
||||
abbr yays "yay --noconfirm --sudoloop"
|
||||
abbr nmaps "sudo nmap -sn 192.168.0.0/24"
|
||||
abbr scrcpyc 'scrcpy -wSK -m 1920 --window-borderless --always-on-top --power-off-on-close'
|
||||
abbr scrcpys 'scrcpy -wS --power-off-on-close'
|
||||
abbr aliases "bat ~/.config/fish/config.fish"
|
||||
abbr tts "tt -notheme -bold -showwpm -json"
|
||||
|
||||
# Handy change dir shortcuts
|
||||
abbr .. "cd .."
|
||||
@@ -57,13 +74,20 @@ abbr .3 "cd ../../.."
|
||||
abbr .4 "cd ../../../.."
|
||||
abbr .5 "cd ../../../../.."
|
||||
|
||||
# Always mkdir a path (this doesn't inhibit functionality to make a single dir)
|
||||
abbr mkdir "mkdir -p"
|
||||
|
||||
abbr pwwa "~/projects/wingman/website/src/assets/"
|
||||
abbr scrp "~/projects/scripts/"
|
||||
|
||||
zoxide init --cmd cd fish | source
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
thefuck --alias | source
|
||||
|
||||
# Created by `pipx` on 2025-05-31 20:14:06
|
||||
set PATH $PATH /home/anon/.local/bin
|
||||
|
||||
# pnpm
|
||||
set -gx PNPM_HOME "/home/anon/.local/share/pnpm"
|
||||
if not string match -q -- $PNPM_HOME $PATH
|
||||
set -gx PATH "$PNPM_HOME" $PATH
|
||||
end
|
||||
# pnpm end
|
||||
|
||||
|
||||
|
||||
fnm env --use-on-cd --shell fish | source
|
||||
|
||||
@@ -1,46 +1,7 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR --export BAT_THEME:gruvbox
|
||||
SETUVAR --export EDITOR:nvim
|
||||
SETUVAR --export MANPAGER:nvim\x20\x2bMan\x21
|
||||
SETUVAR --export MANROFFOPT:\x2dP\x20\x2dc
|
||||
SETUVAR __fish_initialized:3800
|
||||
SETUVAR fish_color_autosuggestion:4D5566
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:39BAE6
|
||||
SETUVAR fish_color_comment:626A73
|
||||
SETUVAR fish_color_cwd:59C2FF
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:F29668
|
||||
SETUVAR fish_color_error:FF3333
|
||||
SETUVAR fish_color_escape:95E6CB
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_keyword:39BAE6
|
||||
SETUVAR fish_color_match:F07178
|
||||
SETUVAR fish_color_normal:B3B1AD
|
||||
SETUVAR fish_color_operator:E6B450
|
||||
SETUVAR fish_color_option:B3B1AD
|
||||
SETUVAR fish_color_param:B3B1AD
|
||||
SETUVAR fish_color_quote:C2D94C
|
||||
SETUVAR fish_color_redirection:FFEE99
|
||||
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dE6B450
|
||||
SETUVAR fish_color_selection:\x2d\x2dbackground\x3dE6B450
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_key_bindings:fish_vi_key_bindings
|
||||
SETUVAR fish_pager_color_background:\x1d
|
||||
SETUVAR fish_pager_color_completion:normal
|
||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
SETUVAR fish_pager_color_secondary_background:\x1d
|
||||
SETUVAR fish_pager_color_secondary_completion:\x1d
|
||||
SETUVAR fish_pager_color_secondary_description:\x1d
|
||||
SETUVAR fish_pager_color_secondary_prefix:\x1d
|
||||
SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dE6B450
|
||||
SETUVAR fish_pager_color_selected_completion:\x1d
|
||||
SETUVAR fish_pager_color_selected_description:\x1d
|
||||
SETUVAR fish_pager_color_selected_prefix:\x1d
|
||||
SETUVAR TMP:/tmp/tmp\x2eYYqSsNsses
|
||||
SETUVAR __fish_initialized:4300
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
function askllama --description 'answer from llama'
|
||||
~/projects/pkgs/llama.cpp/build/bin/llama-simple -m ~/Documents/models/Qwen3-4B-Instruct-2507.Q4_K_M.gguf $(string join '+' $argv[1..])
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
function bashs --description 'raw bash command'
|
||||
bash -c "$argv"
|
||||
end
|
||||
@@ -0,0 +1,24 @@
|
||||
function c2-worktree
|
||||
if test (count $argv) -ne 1
|
||||
echo "Usage: pkg-worktree <branch-name>"
|
||||
echo "Example: pkg-worktree package/package-update"
|
||||
return 1
|
||||
end
|
||||
|
||||
set branch $argv[1]
|
||||
set dir (basename $branch)
|
||||
|
||||
git checkout -b $branch
|
||||
or return 1
|
||||
|
||||
git checkout master
|
||||
or return 1
|
||||
|
||||
git worktree add $dir $branch
|
||||
or return 1
|
||||
|
||||
cd $dir
|
||||
or return 1
|
||||
|
||||
pnpm i
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
function clis --description 'fzf select cli'
|
||||
eval (string split "\n" (cat $HOME/.config/misc/clis.txt) | bashs "fzf --multi")
|
||||
end
|
||||
@@ -5,4 +5,6 @@ function fish_user_key_bindings
|
||||
bind -M default ctrl-e end-of-line
|
||||
bind -M insert ctrl-space accept-autosuggestion
|
||||
bind -M insert ctrl-g 'git diff' repaint
|
||||
bind -M insert ctrl-o execute yazi
|
||||
bind -M insert ctrl-l clear-screen ls repaint
|
||||
end
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
function opencodes --description 'bubblewraped opencode'
|
||||
bwrap --unshare-all \
|
||||
--new-session \
|
||||
--clearenv \
|
||||
--die-with-parent \
|
||||
--share-net \
|
||||
--dev /dev \
|
||||
--proc /proc \
|
||||
--ro-bind /usr /usr \
|
||||
--ro-bind /lib /lib \
|
||||
--ro-bind /lib64 /lib64 \
|
||||
--ro-bind /bin /bin \
|
||||
--ro-bind /etc /etc \
|
||||
--ro-bind ~/.config/opencode ~/.config/opencode \
|
||||
--tmpfs /tmp/node-compile-cache \
|
||||
--bind ~/.local/state/opencode ~/.local/state/opencode \
|
||||
--bind ~/.local/share/opencode ~/.local/share/opencode \
|
||||
--bind "$(pwd)" "$(pwd)" \
|
||||
opencode
|
||||
end
|
||||
# strace -f -e trace=%file opencode
|
||||
@@ -0,0 +1,3 @@
|
||||
function sshf --description 'fzf select for ssh hosts'
|
||||
ssh $(grep Host -w ~/.ssh/config | awk '{print $2}' | bashs "fzf --multi")
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
function tuis --description 'fzf select tui'
|
||||
eval (string split "\n" (cat $HOME/.config/misc/tuis.txt) | bashs "fzf --multi")
|
||||
end
|
||||
@@ -1,27 +1,21 @@
|
||||
|
||||
#! ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
|
||||
#! █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
|
||||
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
|
||||
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Animations/
|
||||
# HyDE Controlled content // DO NOT EDIT
|
||||
# Edit or add animations in the ./hypr/animations/ directory
|
||||
# and run the 'animations.sh select' command to update this file
|
||||
|
||||
# animations {
|
||||
# enabled = yes
|
||||
# bezier = wind, 0.05, 0.9, 0.1, 1.05
|
||||
# bezier = winIn, 0.1, 1.1, 0.1, 1.1
|
||||
# bezier = winOut, 0.3, -0.3, 0, 1
|
||||
# bezier = liner, 1, 1, 1, 1
|
||||
# animation = windows, 1, 6, wind, slide
|
||||
# animation = windowsIn, 1, 6, winIn, slide
|
||||
# animation = windowsOut, 1, 5, winOut, slide
|
||||
# animation = windowsMove, 1, 5, wind, slide
|
||||
# animation = border, 1, 1, liner
|
||||
# animation = borderangle, 1, 30, liner, loop
|
||||
# animation = fade, 1, 10, default
|
||||
# animation = workspaces, 1, 5, wind
|
||||
# }
|
||||
$ANIMATION=theme
|
||||
$ANIMATION_PATH=~/.config/hypr/animations/theme.conf
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = wind, 0.05, 0.9, 0.1, 1.05
|
||||
bezier = winIn, 0.1, 1.1, 0.1, 1.1
|
||||
bezier = winOut, 0.3, -0.3, 0, 1
|
||||
bezier = liner, 1, 1, 1, 1
|
||||
animation = windows, 1, 6, wind, slide
|
||||
animation = windowsIn, 1, 6, winIn, slide
|
||||
animation = windowsOut, 1, 5, winOut, slide
|
||||
animation = windowsMove, 1, 5, wind, slide
|
||||
animation = border, 1, 1, liner
|
||||
animation = borderangle, 1, 30, liner, loop
|
||||
animation = fade, 1, 10, default
|
||||
animation = workspaces, 1, 5, wind
|
||||
}
|
||||
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get the current battery percentage
|
||||
battery_percentage=$(cat /sys/class/power_supply/BAT0/capacity)
|
||||
|
||||
# Get the battery status (Charging or Discharging)
|
||||
battery_status=$(cat /sys/class/power_supply/BAT0/status)
|
||||
|
||||
# Define the battery icons for each 10% segment
|
||||
battery_icons=("" "" "" "" "" "" "" "" "" "")
|
||||
|
||||
# Define the charging icon
|
||||
charging_icon=""
|
||||
|
||||
# Calculate the index for the icon array
|
||||
icon_index=$((battery_percentage / 10))
|
||||
|
||||
# Get the corresponding icon
|
||||
battery_icon=${battery_icons[icon_index]}
|
||||
|
||||
# Check if the battery is charging
|
||||
if [ "$battery_status" = "Charging" ]; then
|
||||
battery_icon="$charging_icon"
|
||||
fi
|
||||
|
||||
# Output the battery percentage and icon
|
||||
echo "$battery_percentage% $battery_icon"
|
||||
+18
-26
@@ -10,41 +10,33 @@
|
||||
$LOCKSCREEN = lockscreen.sh # Calls $LOCKSCREEN set from hyprland
|
||||
|
||||
general {
|
||||
lock_cmd = $LOCKSCREEN
|
||||
unlock_cmd = #notify-send "unlock!" # same as above, but unlock
|
||||
before_sleep_cmd = $LOCKSCREEN # command ran before sleep
|
||||
after_sleep_cmd = # notify-send "Awake!" # command ran after sleep
|
||||
ignore_dbus_inhibit = 0
|
||||
lock_cmd = pidof hyprlock || hyprlock
|
||||
on_unlock_cmd = bash -c 'notify-send "Welcome back!"'
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = bash -c 'brightnessctl -r; brightnessctl -d tpacpi::kbd_backlight set 1; hyprctl dispatch dpms on'
|
||||
}
|
||||
|
||||
# Dims the display
|
||||
listener {
|
||||
timeout = 120
|
||||
on-timeout = { brightnessctl -s && brightnessctl s 1% ;}
|
||||
on-resume = brightnessctl -r
|
||||
timeout = 180
|
||||
on-timeout = bash -c 'brightnessctl -s set 50'
|
||||
on-resume = bash -c 'brightnessctl -r'
|
||||
}
|
||||
|
||||
# Lock it first before dpms off so that screen won't show for a moment after wake up.
|
||||
listener {
|
||||
timeout = 240
|
||||
on-timeout = $LOCKSCREEN
|
||||
timeout = 250 # 5min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
# DPMS off
|
||||
listener {
|
||||
timeout = 2300
|
||||
on-timeout = hyprctl dispatch dpms off #do not turn off display while media is playing
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
timeout = 350 # 3.6 minutes
|
||||
on-timeout = bash -c 'brightnessctl -r; brightnessctl -s set 10; brightnessctl -d tpacpi::kbd_backlight set 0; hyprctl dispatch dpms off'
|
||||
on-resume = bash -c 'brightnessctl -r; brightnessctl -d tpacpi::kbd_backlight set 1; hyprctl dispatch dpms on'
|
||||
}
|
||||
|
||||
# Suspend
|
||||
# listener {
|
||||
# timeout = 500
|
||||
# on-timeout = systemctl suspend
|
||||
# }
|
||||
|
||||
# hyprlang noerror true
|
||||
# Source anything from this path if you want to add your own listener
|
||||
# source command actually do not exist yet
|
||||
source = ~/.config/hypridle/*
|
||||
# hyprlang noerror false
|
||||
listener {
|
||||
timeout = 550 # 5.5min
|
||||
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
|
||||
+138
-101
@@ -1,118 +1,155 @@
|
||||
#! ░▒▒▒░░░▓▓ ___________
|
||||
#! ░░▒▒▒░░░░░▓▓ //___________/
|
||||
#! ░░▒▒▒░░░░░▓▓ _ _ _ _ _____
|
||||
#! ░░▒▒░░░░░▓▓▓▓▓▓ | | | | | | | __/
|
||||
#! ░▒▒░░░░▓▓ ▓▓ | |_| | |_/ /| |___
|
||||
#! ░▒▒░░▓▓ ▓▓ \__ |____/ |____/
|
||||
#! ░▒▓▓ ▓▓ //____/
|
||||
|
||||
#? HyDE's Hyprland Configuration
|
||||
# First, let's understand the structure of the configuration file
|
||||
# It is divided into 3 sections: Boilerplate, Overrides, and Users
|
||||
#* 1. Boilerplate
|
||||
# - This section is for the default configuration of HyDE
|
||||
# - It is recommended to not change this section
|
||||
# - Filepath: $XDG_DATA_HOME/share/hyde/hyprland.conf
|
||||
#* 2. Overrides
|
||||
# - This section is for overriding the default configuration of HyDE
|
||||
# - Change this section if you intended to:
|
||||
# - Change the startup and env variables
|
||||
# - Stop a app/service from starting
|
||||
# - Override HyDE specific variables
|
||||
# - Filepath: $XDG_CONFIG_HOME/hypr/hyde.conf
|
||||
#* 3. Users
|
||||
# - This section is for user configuration
|
||||
# - It is recommended to change this section to your liking
|
||||
# - Filepath: ./keybindings.conf, ./windowrules.conf, ./monitors.conf, ./userprefs.conf
|
||||
# ░▒▒▒░░░░░▓▓ ___________
|
||||
# ░░▒▒▒░░░░░▓▓ //___________/
|
||||
# ░░▒▒▒░░░░░▓▓ _ _ _ _ _____
|
||||
# ░░▒▒░░░░░▓▓▓▓▓▓ | | | | | | | __/
|
||||
# ░▒▒░░░░▓▓ ▓▓ | |_| | |_/ /| |___
|
||||
# ░▒▒░░▓▓ ▓▓ \__ |____/ |____/
|
||||
# ░▒▓▓ ▓▓ //____/
|
||||
|
||||
|
||||
$scrPath = $HOME/.local/share/bin # set scripts path
|
||||
|
||||
|
||||
# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
|
||||
# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
|
||||
# monitor = ,preferred,auto,auto
|
||||
|
||||
|
||||
# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
|
||||
# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
exec-once = $scrPath/resetxdgportal.sh # reset XDPH for screenshare
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
|
||||
exec-once = dbus-update-activation-environment --systemd --all # for XDPH
|
||||
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
|
||||
exec-once = $scrPath/polkitkdeauth.sh # authentication dialogue for GUI apps
|
||||
exec-once = waybar # launch the system bar
|
||||
exec-once = blueman-applet # systray app for Bluetooth
|
||||
exec-once = udiskie --no-automount --smart-tray # front-end that allows to manage removable media
|
||||
exec-once = nm-applet --indicator # systray app for Network/Wifi
|
||||
exec-once = dunst # start notification demon
|
||||
exec-once = wl-paste --type text --watch cliphist store # clipboard store text data
|
||||
exec-once = wl-paste --type image --watch cliphist store # clipboard store image data
|
||||
exec-once = $scrPath/swwwallpaper.sh # start wallpaper daemon
|
||||
exec-once = $scrPath/batterynotify.sh # battery notification
|
||||
exec-once = xremap --watch ~/.config/xremap/config.yml
|
||||
exec-once = hypridle
|
||||
|
||||
|
||||
|
||||
#? Boilerplate
|
||||
source = ~/.local/share/hyde/hyprland.conf
|
||||
# █▀▀ █▄░█ █░█
|
||||
# ██▄ █░▀█ ▀▄▀
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = PATH,$PATH:$scrPath
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
env = QT_QPA_PLATFORM,wayland;xcb
|
||||
env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
env = GDK_SCALE,1
|
||||
|
||||
|
||||
#? Overrides
|
||||
# Overriding startup and env variables
|
||||
# To avoid breaking and conflicts, HyDE will use variables to store the env and startup variables
|
||||
# See ~/.config/hypr/hyde.conf for overriding the default env and startup variables
|
||||
#* startup:
|
||||
# - The startup variables are the variables that are set when the shell starts
|
||||
# - $start.BAR=waybar will launch waybar on startup (default waybar)
|
||||
# - $start.BAR= will unset the variable
|
||||
# - $start.BAR=other_bar will launch other_bar on startup, overriding the default (waybar)
|
||||
#* env:
|
||||
# - The env variables are the variables that are set when the shell starts
|
||||
# - $env.QT_QPA_PLATFORMTHEME= will unset the variable
|
||||
# - $env.QT_QPA_PLATFORMTHEME=qt6ct will set the variable to qt6ct
|
||||
# for updated configuration, see the https://github.com/HyDE-Project/HyDE/blob/master/Configs/.config/hypr/hyde.conf
|
||||
# █ █▄░█ █▀█ █░█ ▀█▀
|
||||
# █ █░▀█ █▀▀ █▄█ ░█░
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# keyremap
|
||||
input {
|
||||
kb_layout = us
|
||||
# kb_options=caps:swapescape
|
||||
# kb_options=caps:ctrl_modifier
|
||||
# follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
natural_scroll = no
|
||||
}
|
||||
|
||||
force_no_accel = 0
|
||||
sensitivity = +1.0
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#executing
|
||||
|
||||
device {
|
||||
name = ps/2-generic-mouse
|
||||
sensitivity = +1.0
|
||||
middle_button_emulation = true
|
||||
}
|
||||
|
||||
device {
|
||||
name = synps/2-synaptics-touchpad
|
||||
sensitivity = 0.1
|
||||
}
|
||||
|
||||
device {
|
||||
name = xremap
|
||||
sensitivity = +1.0
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# gestures {
|
||||
# workspace_swipe = true
|
||||
# workspace_swipe_fingers = 3
|
||||
# }
|
||||
|
||||
|
||||
#? Users
|
||||
# These files are for user configuration
|
||||
# Edit the files to your liking
|
||||
# Refer to https://wiki.hyprland.org
|
||||
source = ./keybindings.conf # Keyboard shortcuts
|
||||
source = ./windowrules.conf # Window rules
|
||||
source = ./monitors.conf # Monitor configuration
|
||||
source = ./userprefs.conf # Personal hyprland configuration
|
||||
# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
|
||||
# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/
|
||||
|
||||
dwindle {
|
||||
# pseudotile = yes
|
||||
preserve_split = yes
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/
|
||||
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
|
||||
# █▀▄▀█ █ █▀ █▀▀
|
||||
# █░▀░█ █ ▄█ █▄▄
|
||||
|
||||
#!▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
#? █▀█ █▀▀ █▀▀ █▀▀ █▀█ █▀▀ █▄░█ █▀▀ █▀▀
|
||||
#? █▀▄ ██▄ █▀░ ██▄ █▀▄ ██▄ █░▀█ █▄▄ ██▄
|
||||
misc {
|
||||
vrr = 0
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
force_default_wallpaper = 0
|
||||
}
|
||||
|
||||
#!▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
|
||||
#? Reference
|
||||
# Configurations below are for reference ONLY
|
||||
# They are not essential for HyDE to work but can be used to enhance QOL
|
||||
# Copy the config line and paste it in the Users section to use it
|
||||
# This is to prevent bloating users configuration files when not needed
|
||||
# █▀ █▀█ █░█ █▀█ █▀▀ █▀▀
|
||||
# ▄█ █▄█ █▄█ █▀▄ █▄▄ ██▄
|
||||
|
||||
# // █▀▀ █▄░█ █░█
|
||||
# // ██▄ █░▀█ ▀▄▀
|
||||
source = ~/.config/hypr/animations.conf
|
||||
source = ~/.config/hypr/keybindings.conf
|
||||
source = ~/.config/hypr/windowrules.conf
|
||||
source = ~/.config/hypr/themes/common.conf # shared theme settings
|
||||
source = ~/.config/hypr/themes/theme.conf # theme specific settings
|
||||
source = ~/.config/hypr/themes/colors.conf # wallbash color override
|
||||
source = ~/.config/hypr/monitors.conf # initially empty, to be configured by user and remains static
|
||||
source = ~/.config/hypr/userprefs.conf # initially empty, to be configured by user and remains static
|
||||
|
||||
# env = MANGOHUD,1
|
||||
# env = MANGOHUD_DLSYM,1
|
||||
|
||||
|
||||
# // █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
|
||||
# // █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
|
||||
|
||||
# bind = Ctrl+Alt+Shift, R, pass, ^(com\.obsproject\.Studio)$ # toggle obs screen recording // install obs flatpak
|
||||
# bind = $mainMod+Shift, G, exec, pkill -x rofi || $scrPath/gamelauncher.sh # launch steam game launcher // install steam
|
||||
# bind = $mainMod, Period, exec, emote # launch emoji selector // install emote
|
||||
# bind = $mainMod+Alt, XF86MonBrightnessDown, exec, hyprshade on blue-light-filter # enable blue light filter // install hyprshade
|
||||
# bind = $mainMod+Alt, XF86MonBrightnessUp, exec, hyprshade off # disable blue light filter // install hyprshade
|
||||
|
||||
|
||||
# // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
|
||||
# // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
|
||||
|
||||
# exec-once = swayidle -w timeout 600 'swaylock' timeout 900 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' # lock after 10 mins, sleep after 15 mins // install swayidle
|
||||
# exec-once = swayidle -w timeout 1200 'swaylock; hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' timeout 1800 'systemctl suspend' # lock and sleep after 20 mins, suspend after 30 mins // install swayidle
|
||||
|
||||
# exec-once = libinput-gestures // install libinput-gestures
|
||||
|
||||
# exec-once = swayosd-server # enable swayosd service
|
||||
# exec-once = `pkexec swayosd-libinput-backend` # swayosd service for keyboard input (requires to be run in a subshell)
|
||||
|
||||
# // █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█ █▀█ █░█ █░░ █▀▀ █▀
|
||||
# // ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀ █▀▄ █▄█ █▄▄ ██▄ ▄█
|
||||
|
||||
# windowrulev2 = opacity 0.60 0.60,class:^(Steam)$
|
||||
# windowrulev2 = opacity 0.60 0.60,class:^(steam)$
|
||||
# windowrulev2 = opacity 0.60 0.60,class:^(steamwebhelper)$
|
||||
# windowrulev2 = opacity 0.60 0.60,class:^(Spotify)$
|
||||
|
||||
|
||||
# // █░█ █▀▄▀█
|
||||
# // ▀▄▀ █░▀░█
|
||||
|
||||
# bind = Ctrl+Alt_L, V, submap, passthrough
|
||||
# submap = passthrough
|
||||
# bind = Ctrl+Alt_L, V, submap, reset
|
||||
# submap = reset
|
||||
# Note: as userprefs.conf is sourced at the end, settings configured in this file will override the defaults
|
||||
|
||||
+108
-76
@@ -2,83 +2,115 @@
|
||||
#! █▀█ ░█░ █▀▀ █▀▄ █▄▄ █▄█ █▄▄ █░█
|
||||
|
||||
#* Hyprlock Configuration File
|
||||
# Please do not edit this file manually.
|
||||
# Follow the instructions below on how to make changes.
|
||||
|
||||
$fontColor = rgba(255,255,255,0.5)
|
||||
$fontFamily = SourceCodeVF ExtraBold
|
||||
$timeFontFamily = Cantarell ExtraBold
|
||||
|
||||
general {
|
||||
no_fade_in = true
|
||||
grade = 1
|
||||
ignore_empty_input = true
|
||||
text_trim = true
|
||||
fade_in_time = 0.8
|
||||
disable_loading_bar = 0
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = ~/sync/Drive/pics/foss-world-crop.png
|
||||
blur_passes = 2
|
||||
blur_size = 4
|
||||
contrast = 0.7
|
||||
brightness = 0.3
|
||||
vibrancy = 0.15
|
||||
vibrancy_darkness = 0.5
|
||||
}
|
||||
|
||||
image {
|
||||
monitor =
|
||||
path = ~/sync/Drive/pics/matrixom-crop.png
|
||||
position = 0, 80
|
||||
reload_time = -1
|
||||
reload_cmd =
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
position = 0, -60
|
||||
outline_thickness = 3
|
||||
dots_size = 0.08
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = rgba(0,0,0,0.1)
|
||||
inner_color = $fontColor
|
||||
fade_on_empty = true
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:5000] echo "<span alpha='40%'>$(uptime -p)</span>"
|
||||
color = $fontColor
|
||||
font_family = $fontFamily
|
||||
font_size = 15
|
||||
position = 0, 350
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:300000] echo "<span alpha='50%'>$(cat ~/.config/fish/greet.txt)</span>"
|
||||
color = $fontColor
|
||||
font_family = $fontFamily
|
||||
font_size = 14
|
||||
position = 0, 310
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span alpha='50%'>$(date +"%H:%M")</span>"
|
||||
color = $fontColor
|
||||
font_family = $timeFontFamily
|
||||
font_size = 120
|
||||
position = 0, -180
|
||||
animation = pulse 2s infinite
|
||||
opacity = 0.5
|
||||
shadow_passes = 1
|
||||
shadow_size = 1
|
||||
shadow_color = rgba(0, 0, 0, 0.5)
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span alpha='50%'>$(LC_TIME=en_US.UF-8 date +'%A, %B %d')</span>"
|
||||
color = $fontColor
|
||||
font_family = $fontFamily
|
||||
font_size = 25
|
||||
position = 0, -300
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo -e "<span alpha='50%'>$(~/.config/hypr/battery.sh)</span>"
|
||||
color = $fontColor
|
||||
font_family = $fontFamily
|
||||
font_size = 14
|
||||
position = -50, 30
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
color = $fontColor
|
||||
text = cmd[] echo "<span alpha='50%'>⏻ </span>"
|
||||
font-size=24
|
||||
onclick = systemctl poweroff
|
||||
position = 50, 30
|
||||
halign = left
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
#* Hyprlock active layout path:
|
||||
# Set the layout path to be used by Hyprlock.
|
||||
# Check the available layouts in the './hyprlock/' directory.
|
||||
# Example: /=/path/to/anurati
|
||||
$LAYOUT_PATH=~/.config/hypr/hyprlock/theme.conf
|
||||
|
||||
#* Persistent layout declaration
|
||||
# If a persistent layout path is declared in $XDG_CONFIG_HOME/hypr/hyde.conf,
|
||||
# the above layout setting will be ignored.
|
||||
# this should be the full path to the layout file.
|
||||
|
||||
#* All boilerplate configurations are handled by HyDE
|
||||
source = ~/.local/share/hyde/hyprlock.conf
|
||||
|
||||
#* Making a custom layout
|
||||
# To create a custom layout, make a file in the './hyprlock/' directory.
|
||||
# Example: './hyprlock/your_custom.conf'
|
||||
# To use the custom layout, set the following variable:
|
||||
# $LAYOUT_PATH=your_custom
|
||||
# The custom layout will be sourced automatically.
|
||||
# Alternatively, you can statically source the layout in '~/.config/hypr/hyde.conf'.
|
||||
# This will take precedence over the variable in '~/.config/hypr/hyprlock.conf'.
|
||||
|
||||
|
||||
#* Command Variables
|
||||
# Hyprlock ships with there default variables that can be used to customize the lock screen.
|
||||
# - https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#label
|
||||
# HyDE also provides custom variables that extend the functionality of Hyprlock.
|
||||
|
||||
# $BACKGROUND_PATH
|
||||
# - The path to the wallpaper image.
|
||||
|
||||
# $HYPRLOCK_BACKGROUND
|
||||
# - The path to the static hyprlock wallpaper image.
|
||||
# - Can be set to set a static wallpaper for Hyprlock.
|
||||
|
||||
# $MPRIS_IMAGE
|
||||
# - The path to the MPRIS image.
|
||||
# - If MPRIS is not available, it will show the ~/.face.icon image
|
||||
# - if available, otherwise, it will show the HyDE logo.
|
||||
|
||||
# $PROFILE_IMAGE
|
||||
# - The path to the profile image.
|
||||
# - If the image is not available, it will show the ~/.face.icon image
|
||||
# - if available, otherwise, it will show the HyDE logo.
|
||||
|
||||
# $GREET_TEXT
|
||||
# - A greeting text to be displayed on the lock screen.
|
||||
# - The text will be updated every hour.
|
||||
|
||||
# $resolve.font
|
||||
# - Resolves the font name and download link.
|
||||
# - HyDE will run 'font.sh resolve' to install the font for you.
|
||||
# - Note that you needed to have a network connection to download the font.
|
||||
# - You also need to restart Hyprlock to apply the font.
|
||||
|
||||
# cmd [update:1000] $MPRIS_TEXT
|
||||
# - Text from media players in "Title Author" format.
|
||||
|
||||
|
||||
# cmd [update:1000] $SPLASH_CMD
|
||||
# - Outputs the song title when MPRIS is available,
|
||||
# - otherwise, it will output the splash command.
|
||||
|
||||
# cmd [update:1] $CAVA_CMD
|
||||
# - The command to be executed to get the CAVA output.
|
||||
# - ⚠️ (Use with caution as it eats up the CPU.)
|
||||
|
||||
# cmd [update:5000] $BATTERY_ICON
|
||||
# - The battery icon to be displayed on the lock screen.
|
||||
# - Only works if the battery is available.
|
||||
|
||||
# cmd [update:1000] $KEYBOARD_LAYOUT
|
||||
# - The current keyboard layout
|
||||
# - SUPER + K to change the keyboard layout (or any binding you set)
|
||||
|
||||
|
||||
+170
-199
@@ -1,54 +1,109 @@
|
||||
## █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
|
||||
## █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
|
||||
# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
|
||||
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
|
||||
|
||||
# see https://wiki.hyprland.org/configuring/keywords/ for more
|
||||
# example binds, see https://wiki.hyprland.org/configuring/binds/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
# & https://wiki.hyprland.org/Configuring/Binds/
|
||||
|
||||
# Grouping of binds for easier management
|
||||
# $d=[Group Name|Subgroup Name1|Subgroup Name2|...]
|
||||
# '$d' is a variable that is used to group binds together (or use another variable)
|
||||
# This is only for organization purposes and is not a defined hyprland variable
|
||||
# What we did here is to modify the Description of the binds to include the group name
|
||||
# The $d will be parsed as a separate key to be use for a GUI or something pretty
|
||||
# [Main|Subgroup1|Subgroup2|...]
|
||||
# Main - The main groupname
|
||||
# Subgroup1.. - The subgroup names can be use to avoid repeating the same description
|
||||
# Main modifier
|
||||
$mainMod = Super # super / meta / windows key
|
||||
|
||||
|
||||
#* Variables
|
||||
# Default if commented out
|
||||
# $mainMod = Super # super / meta / windows key
|
||||
# Assign apps
|
||||
# $TERMINAL = kitty
|
||||
# $EDITOR = code
|
||||
# $EXPLORER = dolphin
|
||||
# $BROWSER = firefox
|
||||
$term = kitty # fish alacritty
|
||||
$file = dolphin
|
||||
$browser = librewolf
|
||||
$yt = freetube
|
||||
|
||||
$wm=Window Management
|
||||
$d=[$wm]
|
||||
bindd = $mainMod, Q, $d close focused window, exec, $scrPath/dontkillsteam.sh
|
||||
bindd = Alt, F4, $d close focused window, exec, $scrPath/dontkillsteam.sh
|
||||
bindd = $mainMod, Delete, $d kill hyprland session, exit
|
||||
bindd = $mainMod, W, $d toggle float, togglefloating, #
|
||||
bindd = $mainMod Shift, G, $d toggle group, togglegroup
|
||||
bindd = Shift, F11, $d toggle fullscreen, fullscreen
|
||||
bindd = Alt, Return, $d toggle fullscreen, fullscreen
|
||||
bindd = $mainMod, L, $d lock screen, exec, lockscreen.sh
|
||||
bindd = $mainMod Shift, F, $d toggle pin on focused window, exec, $scrPath/windowpin.sh
|
||||
bindd = Control Alt, Delete, $d logout menu, exec, $scrPath/logoutlaunch.sh
|
||||
bindd = Control Alt, W, $d toggle waybar and reload config, exec, killall waybar || waybar
|
||||
# bindd = Alt_R, Control_R, W, $d toggle waybar and reload config, exec, killall waybar || (env reload_flag=1 $scrPath/wbarconfgen.sh) # was throwing error
|
||||
# bindd = ALT_R, Control_R,toggle waybar, exec, killall waybar || waybar # toggle waybar without reloading, this is faster
|
||||
|
||||
$d=[$wm|Group Navigation]
|
||||
bindd = $mainMod Control, H, $d change active group backwards , changegroupactive, b
|
||||
bindd = $mainMod Control, L, $d change active group forwards , changegroupactive, f
|
||||
# Window/Session actions
|
||||
bind = $mainMod, Q, exec, $scrPath/dontkillsteam.sh # close focused window
|
||||
bind = Alt, F4, exec, $scrPath/dontkillsteam.sh # close focused window
|
||||
bind = $mainMod, Delete, exit, # kill hyprland session
|
||||
bind = $mainMod, W, togglefloating, # toggle the window between focus and float
|
||||
bind = $mainMod, G, togglegroup, # toggle the window between focus and group
|
||||
bind = Alt, Return, fullscreen, # toggle the window between focus and fullscreen
|
||||
bind = $mainMod, L, exec, hyprlock --immediate #& sleep 0.3 && hyprctl dispatch dpms off
|
||||
bind = Ctrl+Alt, W, exec, killall waybar || waybar # toggle waybar
|
||||
# bind = $mainMod+Shift, F, exec, $scrPath/windowpin.sh # toggle pin on focused window
|
||||
# bind = $mainMod, Backspace, exec, $scrPath/logoutlaunch.sh # launch logout menu
|
||||
|
||||
$d=[$wm|Change focus]
|
||||
bindd = $mainMod, Left, $d focus left, movefocus, l
|
||||
bindd = $mainMod, Right, $d focus right , movefocus, r
|
||||
bindd = $mainMod, Up, $d focus up , movefocus, u
|
||||
bindd = $mainMod, Down , $d focus down, movefocus, d
|
||||
# Application shortcuts
|
||||
bind = $mainMod, T, exec, $term
|
||||
bind = Ctrl+Alt, T, exec, $term # launch terminal emulator
|
||||
bind = Ctrl+Shift+Alt, T, exec, st # launch tilix terminal emulator - using for ssh
|
||||
bind = $mainMod+Shift, T, exec, st
|
||||
bind = $mainMod+Ctrl, T, exec, tilix # launch tilix terminal emulator
|
||||
bind = $mainMod, E, exec, $file # launch file manager
|
||||
bind = $mainMod, F, exec, $yt # launch yt alternative
|
||||
bind = $mainMod, B, exec, $browser # launch web browser
|
||||
bind = $mainMod + Shift, B, exec, chromium
|
||||
bind = $mainMod + Ctrl, B, exec, thorium-browser
|
||||
bind = $mainMod, G, exec, gajim # launch messanger
|
||||
bind = $mainMod, K, exec, keepassxc # launch password manager
|
||||
bind = $mainMod, Escape, exec, dunstctl close
|
||||
bindd = $mainMod, N, Neovim, exec, $term -e nvim
|
||||
bindd = $mainMod, R, $d pyradio, exec, kitty --session ~/.config/kitty/music.conf
|
||||
bindd = $mainMod, I, $d c2, exec, kitty --session ~/.config/kitty/c2.conf
|
||||
bindd = $mainMod, O, $d runners, exec, kitty --session ~/.config/kitty/runners.conf
|
||||
bindd = Ctrl+Shift, Escape, Btop, exec, kitty -e btop
|
||||
bindd = Ctrl+Alt, Delete, Btop, exec, kitty -e btop
|
||||
# bind = Ctrl+Shift, Escape, exec, $scrPath/sysmonlaunch.sh # launch system monitor (htop/btop or fallback to top)
|
||||
|
||||
|
||||
# Rofi menus
|
||||
bind = $mainMod, A, exec, pkill -x rofi || $scrPath/rofilaunch.sh d # launch application launcher
|
||||
bind = $mainMod, Tab, exec, pkill -x rofi || $scrPath/rofilaunch.sh w # launch window switcher
|
||||
bind = $mainMod+Shift, E, exec, pkill -x rofi || $scrPath/rofilaunch.sh f # launch file explorer
|
||||
|
||||
# Audio control
|
||||
# bindl = , F10, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute
|
||||
# bindel = , F11, exec, $scrPath/volumecontrol.sh -o d # decrease volume
|
||||
# bindel = , F12, exec, $scrPath/volumecontrol.sh -o i # increase volume
|
||||
bindl = , XF86AudioMute, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute
|
||||
bindl = , XF86AudioMicMute, exec, $scrPath/volumecontrol.sh -i m # toggle microphone mute
|
||||
bindel = , XF86AudioLowerVolume, exec, $scrPath/volumecontrol.sh -o d # decrease volume
|
||||
bindel = , XF86AudioRaiseVolume, exec, $scrPath/volumecontrol.sh -o i # increase volume
|
||||
|
||||
# Media control
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause # toggle between media play and pause
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause # toggle between media play and pause
|
||||
bindl = , XF86AudioNext, exec, playerctl next # media next
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous # media previous
|
||||
|
||||
# Brightness control
|
||||
bindel = , XF86MonBrightnessUp, exec, $scrPath/brightnesscontrol.sh i # increase brightness
|
||||
bindel = , XF86MonBrightnessDown, exec, $scrPath/brightnesscontrol.sh d # decrease brightness
|
||||
|
||||
# Move between grouped windows
|
||||
# bind = $mainMod CTRL , H, changegroupactive, b
|
||||
# bind = $mainMod CTRL , L, changegroupactive, f
|
||||
|
||||
# Screenshot/Screencapture
|
||||
bind = $mainMod, P, exec, $scrPath/screenshot.sh s # partial screenshot capture
|
||||
bind = $mainMod+Ctrl, P, exec, $scrPath/screenshot.sh sf # partial screenshot capture (frozen screen)
|
||||
bind = $mainMod+Alt, P, exec, $scrPath/screenshot.sh m # monitor screenshot capture
|
||||
bind = $mainMod+Shift, P, exec, hyprpicker # colorpicker
|
||||
bind = , Print, exec, $scrPath/screenshot.sh p # all monitors screenshot capture
|
||||
|
||||
# Custom scripts
|
||||
bind = $mainMod+Alt, G, exec, $scrPath/gamemode.sh # disable hypr effects for gamemode
|
||||
# bind = $mainMod+Alt, Right, exec, $scrPath/swwwallpaper.sh -n # next wallpaper
|
||||
# bind = $mainMod+Alt, Left, exec, $scrPath/swwwallpaper.sh -p # previous wallpaper
|
||||
# bind = $mainMod+Alt, Up, exec, $scrPath/wbarconfgen.sh n # next waybar mode
|
||||
# bind = $mainMod+Alt, Down, exec, $scrPath/wbarconfgen.sh p # previous waybar mode
|
||||
bind = $mainMod+Shift, R, exec, pkill -x rofi || $scrPath/wallbashtoggle.sh -m # launch wallbash mode select menu
|
||||
# bind = $mainMod+Shift, T, exec, pkill -x rofi || $scrPath/themeselect.sh # launch theme select menu
|
||||
bind = $mainMod+Shift, A, exec, pkill -x rofi || $scrPath/rofiselect.sh # launch select menu
|
||||
bind = $mainMod+Shift, W, exec, pkill -x rofi || $scrPath/swwwallselect.sh # launch wallpaper select menu
|
||||
bind = $mainMod, V, exec, pkill -x rofi || $scrPath/cliphist.sh c # launch clipboard
|
||||
# bind = $mainMod, K, exec, $scrPath/keyboardswitch.sh # switch keyboard layout
|
||||
bind = $mainMod, slash, exec, pkill -x rofi || $scrPath/keybinds_hint.sh c # launch keybinds hint
|
||||
|
||||
# Move/Change window focus
|
||||
bind = $mainMod, Left, movefocus, l #chage focus to left window
|
||||
bind = $mainMod, Right, movefocus, r
|
||||
bind = $mainMod, Up, movefocus, u
|
||||
bind = $mainMod, Down, movefocus, d
|
||||
bindd = $mainMod Control, Left, $d focus left, movefocus, l
|
||||
bindd = $mainMod Control, Right, $d focus right , movefocus, r
|
||||
bindd = $mainMod Control, Up, $d focus up , movefocus, u
|
||||
@@ -67,17 +122,6 @@ bindd = Alt Control, k, $d focus up , movefocus, u
|
||||
bindd = Alt Control, j , $d focus down, movefocus, d
|
||||
bindd = Alt, Tab, $d focus , movefocus, d
|
||||
|
||||
$d=[$wm|Resize Active Window]
|
||||
# Resize windows
|
||||
bindde = $mainMod Shift, Right, $d resize window right , resizeactive, 30 0
|
||||
bindde = $mainMod Shift, Left, $d resize window left, resizeactive, -30 0
|
||||
bindde = $mainMod Shift, Up, $d resize window up, resizeactive, 0 -30
|
||||
bindde = $mainMod Shift, Down, $d resize window down, resizeactive, 0 30
|
||||
bindde = $mainMod Shift, l, $d resize window right , resizeactive, 30 0
|
||||
bindde = $mainMod Shift, h, $d resize window left, resizeactive, -30 0
|
||||
bindde = $mainMod Shift, k, $d resize window up, resizeactive, 0 -30
|
||||
bindde = $mainMod Shift, j, $d resize window down, resizeactive, 0 30
|
||||
|
||||
# Move active window around current workspace with mainMod + Shift + Control [←→↑↓]
|
||||
$d=[$wm|Move active window across workspace]
|
||||
$moveactivewindow=grep -q "true" <<< $(hyprctl activewindow -j | jq -r .floating) && hyprctl dispatch moveactive
|
||||
@@ -90,161 +134,88 @@ bindde = $mainMod Alt, l, Move activewindow to the right, exec, $moveactivewindo
|
||||
bindde = $mainMod Alt, k, Move activewindow up, exec, $moveactivewindow 0 -30 || hyprctl dispatch movewindow u
|
||||
bindde = $mainMod Alt, j, Move activewindow down, exec, $moveactivewindow 0 30 || hyprctl dispatch movewindow d
|
||||
|
||||
# Move/Resize focused window
|
||||
$d=[$wm|Move & Resize with mouse]
|
||||
binddm = $mainMod, mouse:272, $d hold to move window, movewindow
|
||||
binddm = $mainMod, mouse:273, $d hold to resize window, resizewindow
|
||||
binddm = $mainMod, Z, $d hold to move window , movewindow
|
||||
binddm = $mainMod, X, $d hold to resize window, resizewindow
|
||||
# Switch workspaces with mod + [0-9]
|
||||
bind = $mainMod, 1, workspace, r~1
|
||||
bind = $mainMod, 2, workspace, r~2
|
||||
bind = $mainMod, 3, workspace, r~3
|
||||
bind = $mainMod, 4, workspace, r~4
|
||||
bind = $mainMod, 5, workspace, r~5
|
||||
bind = $mainMod, 6, workspace, r~6
|
||||
bind = $mainMod, 7, workspace, r~7
|
||||
bind = $mainMod, 8, workspace, r~8
|
||||
bind = $mainMod, 9, workspace, r~9
|
||||
bind = $mainMod, 0, workspace, r~10
|
||||
|
||||
# Move focused window to a workspace
|
||||
bind = $mainMod+Ctrl, 1, movetoworkspace, r~1
|
||||
bind = $mainMod+Ctrl, 2, movetoworkspace, r~2
|
||||
bind = $mainMod+Ctrl, 3, movetoworkspace, r~3
|
||||
bind = $mainMod+Ctrl, 4, movetoworkspace, r~4
|
||||
bind = $mainMod+Ctrl, 5, movetoworkspace, r~5
|
||||
bind = $mainMod+Ctrl, 6, movetoworkspace, r~6
|
||||
bind = $mainMod+Ctrl, 7, movetoworkspace, r~7
|
||||
bind = $mainMod+Ctrl, 8, movetoworkspace, r~8
|
||||
bind = $mainMod+Ctrl, 9, movetoworkspace, r~9
|
||||
bind = $mainMod+Ctrl, 0, movetoworkspace, r~10
|
||||
|
||||
# Move focused window to a workspace silently
|
||||
bind = $mainMod+Alt, 1, movetoworkspacesilent, r~1
|
||||
bind = $mainMod+Alt, 2, movetoworkspacesilent, r~2
|
||||
bind = $mainMod+Alt, 3, movetoworkspacesilent, r~3
|
||||
bind = $mainMod+Alt, 4, movetoworkspacesilent, r~4
|
||||
bind = $mainMod+Alt, 5, movetoworkspacesilent, r~5
|
||||
bind = $mainMod+Alt, 6, movetoworkspacesilent, r~6
|
||||
bind = $mainMod+Alt, 7, movetoworkspacesilent, r~7
|
||||
bind = $mainMod+Alt, 8, movetoworkspacesilent, r~8
|
||||
bind = $mainMod+Alt, 9, movetoworkspacesilent, r~9
|
||||
bind = $mainMod+Alt, 0, movetoworkspacesilent, r~10
|
||||
|
||||
# Move/Switch to special workspace (scratchpad)
|
||||
bind = $mainMod+Alt, S, movetoworkspacesilent, special
|
||||
bind = $mainMod, S, togglespecialworkspace,
|
||||
|
||||
# Toggle focused window split
|
||||
$d=[$wm]
|
||||
bindd = $mainMod, J, $d toggle split, togglesplit
|
||||
|
||||
$l=Launcher
|
||||
$d=[$l|Apps]
|
||||
bindd = $mainMod, T, $d terminal emulator , exec, $TERMINAL
|
||||
bindd = Control Alt, T, $d terminal emulator , exec, $TERMINAL
|
||||
# bindd = Control Shift, Alt, T, $d terminal emulator , exec, tilix # launch tilix terminal emulator - using for ssh
|
||||
bindd = $mainMod Control, T, $d terminal emulator, exec, tilix # launch tilix terminal emulator
|
||||
bindd = $mainMod, E, $d file explorer , exec, $EXPLORER
|
||||
bindd = $mainMod, C, $d text editor , exec, $EDITOR
|
||||
bindd = $mainMod, B, $d web browser , exec, $BROWSER
|
||||
bindd = $mainMod Shift, B, $d web browser , exec, librewolf
|
||||
bindd = Control Shift, Escape, $d system monitor , exec, $scrPath/sysmonlaunch.sh
|
||||
bindd = $mainMod, F, $d web browser , exec, freetube
|
||||
bindd = $mainMod, K, $d password manager , exec, keepassxc # launch password manager
|
||||
bindd = $mainMod, G, $d messanger, exec, gajim # launch messanger
|
||||
|
||||
# bindd = $mainMod, M, exec, $notes # launch notes app
|
||||
# bindd = Ctrl+Shift, Escape, exec, $scrPath/sysmonlaunch.sh # launch system monitor (htop/btop or fallback to top)
|
||||
|
||||
$d=[$l|Rofi menus]
|
||||
$rofi-launch=$scrPath/rofilaunch.sh
|
||||
bindd = $mainMod, A, $d application finder , exec, pkill -x rofi || $rofi-launch d
|
||||
bindd = $mainMod, TAB, $d window switcher , exec, pkill -x rofi || $rofi-launch w
|
||||
bindd = $mainMod Shift, E, $d file finder , exec, pkill -x rofi || $rofi-launch f
|
||||
bindd = $mainMod, slash, $d keybindings hint, exec, pkill -x rofi || $scrPath/keybinds_hint.sh c # launch keybinds hint
|
||||
bindd = $mainMod, comma, $d emoji picker , exec, pkill -x rofi || $scrPath/emoji-picker.sh # launch emoji picker
|
||||
bindd = $mainMod, period, $d glyph picker , exec, pkill -x rofi || $scrPath/glyph-picker.sh # launch glyph picker
|
||||
bindd = $mainMod, V, $d clipboard , exec, pkill -x rofi || $scrPath/cliphist.sh -c # launch clipboard,
|
||||
bindd = $mainMod Shift, V, $d clipboard manager , exec, pkill -x rofi || $scrPath/cliphist.sh # launch clipboard Manager
|
||||
bindd = $mainMod Shift, A, $d select rofi launcher , exec, pkill -x rofi || $scrPath/rofiselect.sh # launch select menu
|
||||
|
||||
|
||||
$hc=Hardware Controls
|
||||
$d=[$hc|Audio]
|
||||
binddl = , F10, $d toggle mute output , exec, $scrPath/volumecontrol.sh -o m # toggle audio mute
|
||||
binddl = , XF86AudioMute,$d toggle mute output, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute
|
||||
binddel = , F11, $d decrease volume , exec, $scrPath/volumecontrol.sh -o d # decrease volume
|
||||
binddel = , F12, $d increase volume , exec, $scrPath/volumecontrol.sh -o i # increase volume
|
||||
binddl = , XF86AudioMicMute,$d un/mute microphone , exec, $scrPath/volumecontrol.sh -i m # toggle microphone mute
|
||||
binddel = , XF86AudioLowerVolume, $d decrease volume , exec, $scrPath/volumecontrol.sh -o d # decrease volume
|
||||
binddel = , XF86AudioRaiseVolume, $d increase volume , exec, $scrPath/volumecontrol.sh -o i # increase volume
|
||||
|
||||
$d=[$hc|Media]
|
||||
binddl = , XF86AudioPlay,$d play media, exec, playerctl play-pause # toggle between media play and pause
|
||||
binddl = , XF86AudioPause,$d pause media, exec, playerctl play-pause # toggle between media play and pause
|
||||
binddl = , XF86AudioNext,$d next media , exec, playerctl next # media next
|
||||
binddl = , XF86AudioPrev,$d previous media , exec, playerctl previous # media previous
|
||||
|
||||
$d=[$hc|Brightness]
|
||||
binddel = , XF86MonBrightnessUp, $d increase brightness , exec, $scrPath/brightnesscontrol.sh i # increase brightness
|
||||
binddel = , XF86MonBrightnessDown, $d decrease brightness , exec, $scrPath/brightnesscontrol.sh d # decrease brightness
|
||||
|
||||
|
||||
$ut=Utilities
|
||||
$d=[$ut]
|
||||
# binddl = $mainMod, K, $d toggle keyboard layout , exec, $scrPath/keyboardswitch.sh # switch keyboard layout
|
||||
bindd = $mainMod Alt, G, $d game mode , exec, $scrPath/gamemode.sh # disable hypr effects for gamemode
|
||||
|
||||
$d=[$ut|Screen Capture]
|
||||
bindd = $mainMod Shift, P, $d color picker, exec, hyprpicker -an # Pick color (Hex) >> clipboard#
|
||||
bindd = $mainMod, P, $d snip screen , exec, $scrPath/screenshot.sh s # partial screenshot capture
|
||||
bindd = $mainMod Control, P, $d freeze and snip screen, exec, $scrPath/screenshot.sh sf # partial screenshot capture (frozen screen)
|
||||
binddl = $mainMod Alt, P, $d print monitor , exec, $scrPath/screenshot.sh m # monitor screenshot capture
|
||||
binddl = , Print, $d print all monitors , exec, $scrPath/screenshot.sh p # all monitors screenshot capture
|
||||
|
||||
# TODO Make a main rofi menu for these selectors
|
||||
$rice=Theming and Wallpaper
|
||||
$d=[$rice]
|
||||
bindd = $mainMod Alt Control Shift, Right, $d next global wallpaper , exec, $scrPath/wallpaper.sh -Gn # next global wallpaper
|
||||
bindd = $mainMod Alt Control Shift, Left, $d previous global wallpaper , exec, $scrPath/wallpaper.sh -Gp # previous global wallpaper
|
||||
bindd = $mainMod Shift, W, $d select a global wallpaper , exec, pkill -x rofi || $scrPath/wallpaper.sh -SG # launch wallpaper select menu
|
||||
# bindd = $mainMod Alt, Up, $d next waybar layout , exec, $scrPath/wbarconfgen.sh n # next waybar mode
|
||||
# bindd = $mainMod Alt, Down, $d previous waybar layout , exec, $scrPath/wbarconfgen.sh p # previous waybar mode
|
||||
# bindd = $mainMod Shift, R, $d wallbash mode selector , exec, pkill -x rofi || $scrPath/wallbashtoggle.sh -m # launch wallbash mode select menu
|
||||
# bindd = $mainMod Shift, T, $d select a theme, exec, pkill -x rofi || $scrPath/themeselect.sh # launch theme select menu
|
||||
|
||||
|
||||
|
||||
$ws=Workspaces
|
||||
$d=[$ws|Navigation]
|
||||
bindd = $mainMod, 1, $d navigate to workspace 1 , workspace, 1
|
||||
bindd = $mainMod, 2, $d navigate to workspace 2 , workspace, 2
|
||||
bindd = $mainMod, 3, $d navigate to workspace 3 , workspace, 3
|
||||
bindd = $mainMod, 4, $d navigate to workspace 4 , workspace, 4
|
||||
bindd = $mainMod, 5, $d navigate to workspace 5 , workspace, 5
|
||||
bindd = $mainMod, 6, $d navigate to workspace 6 , workspace, 6
|
||||
bindd = $mainMod, 7, $d navigate to workspace 7 , workspace, 7
|
||||
bindd = $mainMod, 8, $d navigate to workspace 8 , workspace, 8
|
||||
bindd = $mainMod, 9, $d navigate to workspace 9 , workspace, 9
|
||||
bindd = $mainMod, 0, $d navigate to workspace 10 , workspace, 10
|
||||
bindd = $mainMod, J, $d toggle split, layoutmsg, togglesplit
|
||||
|
||||
$d=[$ws|Navigation|Relative workspace]
|
||||
bindd = $mainMod Control Shift, Right, $d change active workspace forwards , workspace, r+1
|
||||
bindd = $mainMod Control Shift, Left, $d change active workspace backwards , workspace, r-1
|
||||
bindd = $mainMod Control Shift, L, $d change active workspace forwards , workspace, r+1 # doesnt work
|
||||
bindd = $mainMod Control Shift, H, $d change active workspace backwards , workspace, r-1 # doesnt work
|
||||
bindd = $mainMod Control Shift, L, $d change active workspace forwards , workspace, r+1
|
||||
bindd = $mainMod Control Shift, H, $d change active workspace backwards , workspace, r-1
|
||||
|
||||
$d=[$ws|Navigation]
|
||||
bindd = $mainMod Control, Down, $d navigate to the nearest empty workspace , workspace, empty
|
||||
# Resize windows
|
||||
binde = $mainMod+Shift, Right, resizeactive, 30 0
|
||||
binde = $mainMod+Shift, Left, resizeactive, -30 0
|
||||
binde = $mainMod+Shift, Up, resizeactive, 0 -30
|
||||
binde = $mainMod+Shift, Down, resizeactive, 0 30
|
||||
bindde = $mainMod Shift, l, $d resize window right , resizeactive, 30 0
|
||||
bindde = $mainMod Shift, h, $d resize window left, resizeactive, -30 0
|
||||
bindde = $mainMod Shift, k, $d resize window up, resizeactive, 0 -30
|
||||
bindde = $mainMod Shift, j, $d resize window down, resizeactive, 0 30
|
||||
|
||||
# Move focused window to a workspace
|
||||
$d=[$ws|Move window to workspace]
|
||||
bindd = $mainMod Control, 1, $d move to workspace 1 , movetoworkspace, 1
|
||||
bindd = $mainMod Control, 2, $d move to worksCtrl2 , movetoworkspace, 2
|
||||
bindd = $mainMod Control, 3, $d move to worksCtrl3 , movetoworkspace, 3
|
||||
bindd = $mainMod Control, 4, $d move to worksCtrl4 , movetoworkspace, 4
|
||||
bindd = $mainMod Control, 5, $d move to worksCtrl5 , movetoworkspace, 5
|
||||
bindd = $mainMod Control, 6, $d move to worksCtrl6 , movetoworkspace, 6
|
||||
bindd = $mainMod Control, 7, $d move to worksCtrl7 , movetoworkspace, 7
|
||||
bindd = $mainMod Control, 8, $d move to worksCtrl8 , movetoworkspace, 8
|
||||
bindd = $mainMod Control, 9, $d move to worksCtrl9 , movetoworkspace, 9
|
||||
bindd = $mainMod Control, 0, $d move to worksCtrl10 , movetoworkspace, 10
|
||||
# added that to mimic i3's behavior, where pushing a workspace to another monitor also focuses it
|
||||
# bind = $mainMod SHIFT, P, focusmonitor, +1
|
||||
# bind = $mainMod SHIFT, P, movecurrentworkspacetomonitor, +1
|
||||
|
||||
# Move focused window to a relative workspace
|
||||
$d=[$ws]
|
||||
bindd = $mainMod Control Alt, Right, $d move window to next relative workspace , movetoworkspace, r+1
|
||||
bindd = $mainMod Control Alt, Left, $d move window to previous relative workspace , movetoworkspace, r-1
|
||||
bindd = $mainMod Control Alt, l, $d move window to next relative workspace , movetoworkspace, r+1
|
||||
bindd = $mainMod Control Alt, h, $d move window to previous relative workspace , movetoworkspace, r-1
|
||||
# Move active window around current workspace with mainMod + SHIFT + CTRL [←→↑↓]
|
||||
# $moveactivewindow=grep -q "true" <<< $(hyprctl activewindow -j | jq -r .floating) && hyprctl dispatch moveactive
|
||||
binded = $mainMod+Shift+Ctrl, left,Move activewindow to the left,exec, $moveactivewindow -30 0 || hyprctl dispatch movewindow l
|
||||
binded = $mainMod+Shift+Ctrl, right,Move activewindow to the right,exec, $moveactivewindow 30 0 || hyprctl dispatch movewindow r
|
||||
binded = $mainMod+Shift+Ctrl, up,Move activewindow to the up,exec, $moveactivewindow 0 -30 || hyprctl dispatch movewindow u
|
||||
binded = $mainMod+Shift+Ctrl, down,Move activewindow to the down,exec, $moveactivewindow 0 30 || hyprctl dispatch movewindow d
|
||||
|
||||
binded = $mainMod+Shift+Ctrl, h,Move activewindow to the left,exec, $moveactivewindow -30 0 || hyprctl dispatch movewindow l
|
||||
binded = $mainMod+Shift+Ctrl, l,Move activewindow to the right,exec, $moveactivewindow 30 0 || hyprctl dispatch movewindow r
|
||||
binded = $mainMod+Shift+Ctrl, k,Move activewindow to the up,exec, $moveactivewindow 0 -30 || hyprctl dispatch movewindow u
|
||||
binded = $mainMod+Shift+Ctrl, j,Move activewindow to the down,exec, $moveactivewindow 0 30 || hyprctl dispatch movewindow d
|
||||
|
||||
# Scroll through existing workspaces
|
||||
$d=[$ws|Navigation]
|
||||
bindd = $mainMod, mouse_down, $d next workspace, workspace, e+1
|
||||
bindd = $mainMod, mouse_up, $d previous workspace, workspace, e-1
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/Resize focused window
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
bindm = $mainMod, Z, movewindow
|
||||
bindm = $mainMod, X, resizewindow
|
||||
|
||||
# Move/Switch to special workspace (scratchpad)
|
||||
$d=[$ws|Navigation|Special workspace]
|
||||
bindd = $mainMod Shift, S, $d move to scratchpad , movetoworkspace, special
|
||||
bindd = $mainMod Alt, S, $d move to scratchpad (silent) , movetoworkspacesilent, special
|
||||
bindd = $mainMod, S, $d toggle scratchpad , togglespecialworkspace
|
||||
|
||||
# Move focused window to a workspace silently
|
||||
$d=[$ws|Navigation|Move window silently]
|
||||
bindd = $mainMod Alt, 1, $d move to workspace 1 (silent), movetoworkspacesilent, 1
|
||||
bindd = $mainMod Alt, 2, $d move to workspace 2 (silent), movetoworkspacesilent, 2
|
||||
bindd = $mainMod Alt, 3, $d move to workspace 3 (silent), movetoworkspacesilent, 3
|
||||
bindd = $mainMod Alt, 4, $d move to workspace 4 (silent), movetoworkspacesilent, 4
|
||||
bindd = $mainMod Alt, 5, $d move to workspace 5 (silent), movetoworkspacesilent, 5
|
||||
bindd = $mainMod Alt, 6, $d move to workspace 6 (silent), movetoworkspacesilent, 6
|
||||
bindd = $mainMod Alt, 7, $d move to workspace 7 (silent), movetoworkspacesilent, 7
|
||||
bindd = $mainMod Alt, 8, $d move to workspace 8 (silent), movetoworkspacesilent, 8
|
||||
bindd = $mainMod Alt, 9, $d move to workspace 9 (silent), movetoworkspacesilent, 9
|
||||
bindd = $mainMod Alt, 0, $d move to workspace 10 (silent), movetoworkspacesilent, 10
|
||||
|
||||
|
||||
|
||||
$d=#! unset the group name
|
||||
|
||||
@@ -6,18 +6,25 @@
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
# For a sample file, please refer to https://github.com/prasanthrangan/hyprdots/blob/main/Configs/.config/hypr/monitors.t2
|
||||
|
||||
|
||||
|
||||
$mainScreen = HDMI-A-1
|
||||
$mainScreen = eDP-1
|
||||
$leftScreen = DP-2
|
||||
$rightScreen = eDP-1
|
||||
$rightScreen = HDMI-A-1
|
||||
|
||||
monitor = $mainScreen, 3840x2160@59.99, 0x0, 1.25 # main screen
|
||||
# monitor = $mainScreen, 1920x1080@59.99, 0x0, 2 # main screen
|
||||
# monitor = $leftScreen, 1920x1080@60, -1920x0, 1 # left
|
||||
# monitor = $rightScreen, 1920x1080@60,1366x0, 1 # right
|
||||
monitor = $mainScreen, 1366x768@60.14, 0x0, 1 # main screen
|
||||
monitor = $leftScreen, 1920x1080@60, -1920x0, 1 # left
|
||||
monitor = $rightScreen, 1920x1080@60,1366x0, 1 # right
|
||||
|
||||
# monitor=HDMI-A-1,1920x1080@60,-1366x0,1 # hdmi on left
|
||||
# monitor=HDMI-A-1,1920x1080@60,0x-768,1 # hdmi on top
|
||||
# monitor=DP-2,640x480@59.94Hz,0x0,1 # vga
|
||||
|
||||
# monitor = HDMI-A-1, 1366x768@60.00Hz, auto , 1, mirror, eDP-1 #mirror lapscreen
|
||||
# monitor = DP-2, 1920x1080@60.00Hz, auto , 1, mirror, eDP-1 #mirror lapscreen jag3
|
||||
# monitor = eDP-1, 1920x1080@60.00Hz, auto , 1, mirror, HDMI-A-1 #main hdmi, lapscreen mirrors
|
||||
# monitor = eDP-1, 1920x1080@60.00Hz, auto , 1, mirror, DP-2 #main VGA, lapscreen mirrors
|
||||
|
||||
# monitor = , preferred, auto, 1, mirror, DP-2 # dmz projector
|
||||
# monitor = eDP-1, 1920x1080@60, auto , 1, mirror, DP-2 #mirror vga test
|
||||
|
||||
#Main Monitor
|
||||
workspace = 1, monitor:$mainScreen, default:true
|
||||
@@ -54,3 +61,4 @@ workspace = 27, monitor:$leftScreen
|
||||
workspace = 28, monitor:$leftScreen
|
||||
workspace = 29, monitor:$leftScreen
|
||||
workspace = 30, monitor:$leftScreen
|
||||
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
# Autogenerated colors by wallbash
|
||||
# This can be sourced in by any hyprlang configuration file
|
||||
|
||||
# Color group 1
|
||||
|
||||
$wallbash_pry1 = 1C0725 # primary color 1
|
||||
$wallbash_txt1 = FFFFFF # text color 1
|
||||
$wallbash_1xa1 = 452952 # accent color 1 for primary color 1
|
||||
$wallbash_1xa2 = 5C3A6B # accent color 2 for primary color 1
|
||||
$wallbash_1xa3 = 6E4B7D # accent color 3 for primary color 1
|
||||
$wallbash_1xa4 = 7E578F # accent color 4 for primary color 1
|
||||
$wallbash_1xa5 = 9165A3 # accent color 5 for primary color 1
|
||||
$wallbash_1xa6 = AC7AC2 # accent color 6 for primary color 1
|
||||
$wallbash_1xa7 = CF9AE6 # accent color 7 for primary color 1
|
||||
$wallbash_1xa8 = DBAAF0 # accent color 8 for primary color 1
|
||||
$wallbash_1xa9 = F0CCFF # accent color 9 for primary color 1
|
||||
|
||||
# in rgba format
|
||||
$wallbash_pry1_rgba = rgba(28,7,37,0.95) # primary color 1
|
||||
$wallbash_txt1_rgba = rgba(255,255,255,0.95) # text color 1
|
||||
$wallbash_1xa1_rgba = rgba(69,41,82,0.95) # accent color 1 for primary color 1
|
||||
$wallbash_1xa2_rgba = rgba(92,58,107,0.95) # accent color 2 for primary color 1
|
||||
$wallbash_1xa3_rgba = rgba(110,75,125,0.95) # accent color 3 for primary color 1
|
||||
$wallbash_1xa4_rgba = rgba(126,87,143,0.95) # accent color 4 for primary color 1
|
||||
$wallbash_1xa5_rgba = rgba(145,101,163,0.95) # accent color 5 for primary color 1
|
||||
$wallbash_1xa6_rgba = rgba(172,122,194,0.95) # accent color 6 for primary color 1
|
||||
$wallbash_1xa7_rgba = rgba(207,154,230,0.95) # accent color 7 for primary color 1
|
||||
$wallbash_1xa8_rgba = rgba(219,170,240,0.95) # accent color 8 for primary color 1
|
||||
$wallbash_1xa9_rgba = rgba(240,204,255,0.95) # accent color 9 for primary color 1
|
||||
|
||||
|
||||
# Color group 2
|
||||
|
||||
$wallbash_pry2 = 4A1442 # primary color 2
|
||||
$wallbash_txt2 = FFFFFF # text color 2
|
||||
$wallbash_2xa1 = 52294C # accent color 1 for primary color 2
|
||||
$wallbash_2xa2 = 6B3A64 # accent color 2 for primary color 2
|
||||
$wallbash_2xa3 = 7D4B76 # accent color 3 for primary color 2
|
||||
$wallbash_2xa4 = 8F5787 # accent color 4 for primary color 2
|
||||
$wallbash_2xa5 = A3659A # accent color 5 for primary color 2
|
||||
$wallbash_2xa6 = C27AB7 # accent color 6 for primary color 2
|
||||
$wallbash_2xa7 = E69ADA # accent color 7 for primary color 2
|
||||
$wallbash_2xa8 = F0AAE5 # accent color 8 for primary color 2
|
||||
$wallbash_2xa9 = FFCCF7 # accent color 9 for primary color 2
|
||||
|
||||
# in rgba format
|
||||
$wallbash_pry2_rgba = rgba(74,20,66,0.95) # primary color 2
|
||||
$wallbash_txt2_rgba = rgba(255,255,255,0.95) # text color 2
|
||||
$wallbash_2xa1_rgba = rgba(82,41,76,0.95) # accent color 1 for primary color 2
|
||||
$wallbash_2xa2_rgba = rgba(107,58,100,0.95) # accent color 2 for primary color 2
|
||||
$wallbash_2xa3_rgba = rgba(125,75,118,0.95) # accent color 3 for primary color 2
|
||||
$wallbash_2xa4_rgba = rgba(143,87,135,0.95) # accent color 4 for primary color 2
|
||||
$wallbash_2xa5_rgba = rgba(163,101,154,0.95) # accent color 5 for primary color 2
|
||||
$wallbash_2xa6_rgba = rgba(194,122,183,0.95) # accent color 6 for primary color 2
|
||||
$wallbash_2xa7_rgba = rgba(230,154,218,0.95) # accent color 7 for primary color 2
|
||||
$wallbash_2xa8_rgba = rgba(240,170,229,0.95) # accent color 8 for primary color 2
|
||||
$wallbash_2xa9_rgba = rgba(255,204,247,0.95) # accent color 9 for primary color 2
|
||||
|
||||
# Color group 3
|
||||
|
||||
$wallbash_pry3 = 9154A0 # primary color 3
|
||||
$wallbash_txt3 = FAFAFA # text color 3
|
||||
$wallbash_3xa1 = 4A2952 # accent color 1 for primary color 3
|
||||
$wallbash_3xa2 = 613A6B # accent color 2 for primary color 3
|
||||
$wallbash_3xa3 = 734B7D # accent color 3 for primary color 3
|
||||
$wallbash_3xa4 = 84578F # accent color 4 for primary color 3
|
||||
$wallbash_3xa5 = 9765A3 # accent color 5 for primary color 3
|
||||
$wallbash_3xa6 = B47AC2 # accent color 6 for primary color 3
|
||||
$wallbash_3xa7 = D79AE6 # accent color 7 for primary color 3
|
||||
$wallbash_3xa8 = E2AAF0 # accent color 8 for primary color 3
|
||||
$wallbash_3xa9 = F5CCFF # accent color 9 for primary color 3
|
||||
|
||||
# in rgba format
|
||||
$wallbash_pry3_rgba = rgba(145,84,160,0.95) # primary color 3
|
||||
$wallbash_txt3_rgba = rgba(250,250,250,0.95) # text color 3
|
||||
$wallbash_3xa1_rgba = rgba(74,41,82,0.95) # accent color 1 for primary color 3
|
||||
$wallbash_3xa2_rgba = rgba(97,58,107,0.95) # accent color 2 for primary color 3
|
||||
$wallbash_3xa3_rgba = rgba(115,75,125,0.95) # accent color 3 for primary color 3
|
||||
$wallbash_3xa4_rgba = rgba(132,87,143,0.95) # accent color 4 for primary color 3
|
||||
$wallbash_3xa5_rgba = rgba(151,101,163,0.95) # accent color 5 for primary color 3
|
||||
$wallbash_3xa6_rgba = rgba(180,122,194,0.95) # accent color 6 for primary color 3
|
||||
$wallbash_3xa7_rgba = rgba(215,154,230,0.95) # accent color 7 for primary color 3
|
||||
$wallbash_3xa8_rgba = rgba(226,170,240,0.95) # accent color 8 for primary color 3
|
||||
$wallbash_3xa9_rgba = rgba(245,204,255,0.95) # accent color 9 for primary color 3
|
||||
|
||||
# Color group 4
|
||||
|
||||
$wallbash_pry4 = ECE8BB # primary color 4
|
||||
$wallbash_txt4 = 070707 # text color 4
|
||||
$wallbash_4xa1 = 524E29 # accent color 1 for primary color 4
|
||||
$wallbash_4xa2 = 6B673A # accent color 2 for primary color 4
|
||||
$wallbash_4xa3 = 7D794B # accent color 3 for primary color 4
|
||||
$wallbash_4xa4 = 8F8A57 # accent color 4 for primary color 4
|
||||
$wallbash_4xa5 = A39E65 # accent color 5 for primary color 4
|
||||
$wallbash_4xa6 = C2BC7A # accent color 6 for primary color 4
|
||||
$wallbash_4xa7 = E6DF9A # accent color 7 for primary color 4
|
||||
$wallbash_4xa8 = F0EAAA # accent color 8 for primary color 4
|
||||
$wallbash_4xa9 = FFFBCC # accent color 9 for primary color 4
|
||||
|
||||
# in rgba format
|
||||
$wallbash_pry4_rgba = rgba(236,232,187,0.95) # primary color 4
|
||||
$wallbash_txt4_rgba = rgba(7,7,7,0.95) # text color 4
|
||||
$wallbash_4xa1_rgba = rgba(82,78,41,0.95) # accent color 1 for primary color 4
|
||||
$wallbash_4xa2_rgba = rgba(107,103,58,0.95) # accent color 2 for primary color 4
|
||||
$wallbash_4xa3_rgba = rgba(125,121,75,0.95) # accent color 3 for primary color 4
|
||||
$wallbash_4xa4_rgba = rgba(143,138,87,0.95) # accent color 4 for primary color 4
|
||||
$wallbash_4xa5_rgba = rgba(163,158,101,0.95) # accent color 5 for primary color 4
|
||||
$wallbash_4xa6_rgba = rgba(194,188,122,0.95) # accent color 6 for primary color 4
|
||||
$wallbash_4xa7_rgba = rgba(230,223,154,0.95) # accent color 7 for primary color 4
|
||||
$wallbash_4xa8_rgba = rgba(240,234,170,0.95) # accent color 8 for primary color 4
|
||||
$wallbash_4xa9_rgba = rgba(255,251,204,0.95) # accent color 9 for primary color 4
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
# █▀▀ █░█ █▀█ █▀ █▀█ █▀█
|
||||
# █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄
|
||||
|
||||
exec = hyprctl setcursor Bibata-Modern-Ice 20
|
||||
exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice'
|
||||
exec = gsettings set org.gnome.desktop.interface cursor-size 20
|
||||
|
||||
|
||||
# █▀▀ █▀█ █▄░█ ▀█▀
|
||||
# █▀░ █▄█ █░▀█ ░█░
|
||||
|
||||
exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10'
|
||||
exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10'
|
||||
exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9'
|
||||
exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba'
|
||||
exec = gsettings set org.gnome.desktop.interface font-hinting 'full'
|
||||
|
||||
|
||||
# █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░
|
||||
# ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄
|
||||
|
||||
decoration {
|
||||
dim_special = 0.3
|
||||
blur {
|
||||
special = true
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,6 @@
|
||||
# // P̳r̳a̳s̳a̳n̳t̳h̳ R̳a̳n̳g̳a̳n̳
|
||||
|
||||
$GTK_THEME=Catppuccin-Mocha
|
||||
$ICON_THEME = Tela-circle-dracula
|
||||
$COLOR_SCHEME = prefer-dark
|
||||
|
||||
# Optional: The varibles above will be set automatically when the theme is loaded
|
||||
# This exec commands will soon be deprecated
|
||||
|
||||
exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-dracula'
|
||||
exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Mocha'
|
||||
exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
|
||||
|
||||
general {
|
||||
gaps_in = 2 #3
|
||||
@@ -26,9 +20,8 @@ group {
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 6 #10
|
||||
shadow:enabled = false
|
||||
|
||||
rounding = 4 #10
|
||||
# drop_shadow = true #false
|
||||
blur {
|
||||
enabled = yes
|
||||
size = 6
|
||||
@@ -39,4 +32,4 @@ decoration {
|
||||
}
|
||||
}
|
||||
|
||||
layerrule = blur,waybar
|
||||
# layerrule = blur,waybar
|
||||
|
||||
+56
-15
@@ -3,23 +3,64 @@
|
||||
# █▄█ ▄█ ██▄ █▀▄ █▀▀ █▀▄ ██▄ █▀░ ▄█
|
||||
|
||||
# Set your personal hyprland configuration here
|
||||
# For a sample file, please refer to https://github.com/prasanthrangan/hyprdots/blob/main/Configs/.config/hypr/userprefs.t2
|
||||
#
|
||||
|
||||
|
||||
|
||||
# // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
|
||||
# // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
|
||||
|
||||
exec-once = xremap ~/.config/xremap/config.yml # enable xremap service
|
||||
exec-once = ferdium
|
||||
env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/ssh-agent.socket # ssh on start
|
||||
env = WLR_DRM_NO_ATOMIC,1 # electron flickering
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,x11 # Disable after hyprland fixes electron flickering
|
||||
########################
|
||||
|
||||
|
||||
# I know there is like two 'solutions' already, so have third one - (tested GTX 1060, 555.58.02 drivers) - run flickery apps with --disable-gpu-compositing. This makes apps slightly less smooth (GPU still used tho), but fixes the issue. I think this is better then to disable damage_tracking, which works too.
|
||||
# █▀▀ █▄░█ █░█
|
||||
# ██▄ █░▀█ ▀▄▀
|
||||
|
||||
# env = MANGOHUD,1
|
||||
# env = MANGOHUD_DLSYM,1
|
||||
|
||||
|
||||
# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
|
||||
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
|
||||
|
||||
# bind = Ctrl+Alt+Shift, R, pass, ^(com\.obsproject\.Studio)$ # toggle obs screen recording // install obs flatpak
|
||||
# bind = $mainMod+Shift, G, exec, pkill -x rofi || $scrPath/gamelauncher.sh # launch steam game launcher // install steam
|
||||
# bind = $mainMod, Period, exec, emote # launch emoji selector // install emote
|
||||
bind = $mainMod+Alt, XF86MonBrightnessDown, exec, hyprshade on blue-light-filter # enable blue light filter // install hyprshade
|
||||
bind = $mainMod+Alt, XF86MonBrightnessUp, exec, hyprshade off # disable blue light filter // install hyprshade
|
||||
|
||||
|
||||
# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
|
||||
# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
|
||||
|
||||
# exec-once = libinput-gestures // install libinput-gestures
|
||||
# exec-once = swayosd-server # enable swayosd service
|
||||
# exec-once = `pkexec swayosd-libinput-backend` # swayosd service for keyboard input (requires to be run in a subshell)
|
||||
|
||||
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█ █▀█ █░█ █░░ █▀▀ █▀
|
||||
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀ █▀▄ █▄█ █▄▄ ██▄ ▄█
|
||||
|
||||
windowrule = opacity 0.90 0.90, match:class ^(neovide)$
|
||||
windowrule = opacity 0.90 0.90, match:class ^(firefox)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(betterbird)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(org.qbittorrent.qBittorrent)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(org.gajim.Gajim)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(FreeTube)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(librewolf)$
|
||||
windowrule = opacity 0.80 0.60, match:class ^(obsidian)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(VSCodium)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(codium-url-handler)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(code-oss)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(Code)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(kitty)$
|
||||
windowrule = opacity 0.70 0.70, match:class ^(chromium)$
|
||||
windowrule = opacity 0.70 0.70, match:class ^(tilix)$
|
||||
windowrule = opacity 0.70 0.70, match:class ^(rustdesk)$
|
||||
windowrule = opacity 0.70 0.70, match:class ^(Ferdium)$
|
||||
windowrule = opacity 0.70 0.70, match:class ^(org.keepassxc.KeePassXC)$
|
||||
|
||||
# █░█ █▀▄▀█
|
||||
# ▀▄▀ █░▀░█
|
||||
|
||||
# bind = Ctrl+Alt_L, V, submap, passthrough
|
||||
# submap = passthrough
|
||||
# bind = Ctrl+Alt_L, V, submap, reset
|
||||
# submap = reset
|
||||
|
||||
# render {
|
||||
# explicit_sync = 1
|
||||
# explicit_sync_kms = 1
|
||||
# direct_scanout = no
|
||||
# }
|
||||
|
||||
@@ -3,108 +3,70 @@
|
||||
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀ █▀▄ █▄█ █▄▄ ██▄ ▄█
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/
|
||||
# hyprctl clients to get names
|
||||
|
||||
# '$&' is a hyde specific shorthand for "override" \\ analogous to a reference
|
||||
# This symbol indicates that the following values will override the default configuration
|
||||
$&=override
|
||||
windowrule = opacity 0.80 0.80, match:class ^(code-url-handler)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(code-insiders-url-handler)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(org.kde.dolphin)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(org.kde.ark)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(nwg-look)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(qt5ct)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(qt6ct)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(kvantummanager)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(org.pulseaudio.pavucontrol)$
|
||||
windowrule = opacity 0.80 0.70, match:class ^(lagrange)$
|
||||
windowrule = opacity 0.60 0.60, match:class ^(com.github.wwmm.easyeffects)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(blueman-manager)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(nm-applet)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(nm-connection-editor)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(org.kde.polkit-kde-authentication-agent-1)$
|
||||
windowrule = opacity 0.80 0.70, match:class ^(polkit-gnome-authentication-agent-1)$
|
||||
windowrule = opacity 0.80 0.70, match:class ^(org.freedesktop.impl.portal.desktop.gtk)$
|
||||
windowrule = opacity 0.80 0.70, match:class ^(org.freedesktop.impl.portal.desktop.hyprland)$
|
||||
windowrule = opacity 0.70 0.70, match:class ^([Ss]team)$
|
||||
|
||||
windowrulev2 = opacity 0.90 $& 0.90 $& 1,class:^(firefox)$
|
||||
# windowrulev2 = opacity 0.90 $& 0.90 $& 1,class:^(Brave-browser)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(code-oss)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^([Cc]ode)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(code-url-handler)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(code-insiders-url-handler)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(kitty)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(org.kde.dolphin)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(org.kde.ark)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(nwg-look)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(qt5ct)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(qt6ct)$
|
||||
windowrulev2 = opacity 0.80 $& 0.80 $& 1,class:^(kvantummanager)$
|
||||
windowrulev2 = opacity 0.80 $& 0.70 $& 1,class:^(org.pulseaudio.pavucontrol)$
|
||||
windowrulev2 = opacity 0.80 $& 0.70 $& 1,class:^(blueman-manager)$
|
||||
windowrulev2 = opacity 0.80 $& 0.70 $& 1,class:^(nm-applet)$
|
||||
windowrulev2 = opacity 0.80 $& 0.70 $& 1,class:^(nm-connection-editor)$
|
||||
windowrulev2 = opacity 0.80 $& 0.70 $& 1,class:^(org.kde.polkit-kde-authentication-agent-1)$
|
||||
windowrulev2 = opacity 0.80 $& 0.70 $& 1,class:^(polkit-gnome-authentication-agent-1)$
|
||||
windowrulev2 = opacity 0.80 $& 0.70 $& 1,class:^(org.freedesktop.impl.portal.desktop.gtk)$
|
||||
windowrulev2 = opacity 0.80 $& 0.70 $& 1,class:^(org.freedesktop.impl.portal.desktop.hyprland)$
|
||||
windowrulev2 = opacity 0.70 $& 0.70 $& 1,class:^([Ss]team)$
|
||||
windowrulev2 = opacity 0.70 $& 0.70 $& 1,class:^(steamwebhelper)$
|
||||
# windowrulev2 = opacity 0.70 $& 0.70 $& 1,class:^([Ss]potify)$
|
||||
# windowrulev2 = opacity 0.70 $& 0.70 $& 1,initialTitle:^(Spotify Free)$
|
||||
# windowrulev2 = opacity 0.70 $& 0.70 $& 1,initialTitle:^(Spotify Premium)$
|
||||
windowrule = opacity 0.90 0.90, float on, match:class ^(com.github.rafostar.Clapper)$ # Clapper-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(hu.kramo.Cartridges)$ # Cartridges-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(com.obsproject.Studio)$ # Obs-Qt
|
||||
windowrule = opacity 0.80 0.80, match:class ^(gnome-boxes)$ # Boxes-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(discord)$ # Discord-Electron
|
||||
windowrule = opacity 0.80 0.80, match:class ^(WebCord)$ # WebCord-Electron
|
||||
windowrule = opacity 0.80 0.80, match:class ^(ArmCord)$ # ArmCord-Electron
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(app.drey.Warp)$ # Warp-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(net.davidotek.pupgui2)$ # ProtonUp-Qt
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(yad)$ # Protontricks-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(Signal)$ # Signal-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(io.github.alainm23.planify)$ # planify-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(io.github.flattool.Warehouse)$ # Warehouse-Gtk
|
||||
|
||||
windowrulev2 = opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(vesktop)$ # Vesktop
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(discord)$ # Discord-Electron
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ # WebCord-Electron
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(Signal)$ # Signal-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
|
||||
windowrulev2 = opacity 0.80 0.80,class:^(io.github.flattool.Warehouse)$ # Warehouse-Gtk
|
||||
windowrule = float on, match:class ^(org.kde.dolphin)$, match:title ^(Progress Dialog — Dolphin)$
|
||||
windowrule = float on, match:class ^(org.kde.dolphin)$, match:title ^(Copying — Dolphin)$
|
||||
windowrule = float on, match:title ^(About Mozilla Firefox)$
|
||||
windowrule = float on, match:class ^(firefox)$, match:title ^(Picture-in-Picture)$
|
||||
windowrule = float on, match:class ^(firefox)$, match:title ^(Library)$
|
||||
windowrule = float on, match:class ^(kitty)$, match:title ^(top)$
|
||||
windowrule = float on, match:class ^(kitty)$, match:title ^(btop)$
|
||||
windowrule = float on, match:class ^(kitty)$, match:title ^(htop)$
|
||||
windowrule = float on, match:class ^(vlc)$
|
||||
|
||||
windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$
|
||||
windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$
|
||||
windowrulev2 = float,title:^(About Mozilla Firefox)$
|
||||
windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
|
||||
windowrulev2 = float,class:^(firefox)$,title:^(Library)$
|
||||
windowrulev2 = float,class:^(kitty)$,title:^(top)$
|
||||
windowrulev2 = float,class:^(kitty)$,title:^(btop)$
|
||||
windowrulev2 = float,class:^(kitty)$,title:^(htop)$
|
||||
windowrulev2 = float,class:^(vlc)$
|
||||
windowrulev2 = float,class:^(kvantummanager)$
|
||||
windowrulev2 = float,class:^(qt5ct)$
|
||||
windowrulev2 = float,class:^(qt6ct)$
|
||||
windowrulev2 = float,class:^(nwg-look)$
|
||||
windowrulev2 = float,class:^(org.kde.ark)$
|
||||
windowrulev2 = float,class:^(org.pulseaudio.pavucontrol)$
|
||||
windowrulev2 = float,class:^(blueman-manager)$
|
||||
windowrulev2 = float,class:^(nm-applet)$
|
||||
windowrulev2 = float,class:^(nm-connection-editor)$
|
||||
windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$
|
||||
windowrule = float on, match:class ^(eog)$ # Imageviewer-Gtk
|
||||
windowrule = float on, match:class ^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk
|
||||
|
||||
windowrulev2 = float,class:^(Signal)$ # Signal-Gtk
|
||||
windowrulev2 = float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk
|
||||
windowrulev2 = float,class:^(app.drey.Warp)$ # Warp-Gtk
|
||||
windowrulev2 = float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt
|
||||
windowrulev2 = float,class:^(yad)$ # Protontricks-Gtk
|
||||
windowrulev2 = float,class:^(eog)$ # Imageviewer-Gtk
|
||||
windowrulev2 = float,class:^(io.github.alainm23.planify)$ # planify-Gtk
|
||||
windowrulev2 = float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
|
||||
windowrulev2 = float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk
|
||||
windowrulev2 = float,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
|
||||
windowrulev2 = float,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
|
||||
|
||||
# common modals
|
||||
windowrule = float,initialtitle:^(Open File)$
|
||||
windowrule = float,initialTitle:^(Open File)$
|
||||
windowrule = float,title:^(Choose Files)$
|
||||
windowrule = float,title:^(Save As)$
|
||||
windowrule = float,title:^(Confirm to replace files)$
|
||||
windowrule = float,title:^(File Operation Progress)$
|
||||
windowrulev2 = float,class:^(xdg-desktop-portal-gtk)$
|
||||
|
||||
# █░░ ▄▀█ █▄█ █▀▀ █▀█ █▀█ █░█ █░░ █▀▀ █▀
|
||||
# █▄▄ █▀█ ░█░ ██▄ █▀▄ █▀▄ █▄█ █▄▄ ██▄ ▄█
|
||||
|
||||
layerrule = blur,rofi
|
||||
layerrule = ignorezero,rofi
|
||||
layerrule = blur,notifications
|
||||
layerrule = ignorezero,notifications
|
||||
layerrule = blur,swaync-notification-window
|
||||
layerrule = ignorezero,swaync-notification-window
|
||||
layerrule = blur,swaync-control-center
|
||||
layerrule = ignorezero,swaync-control-center
|
||||
layerrule = blur,logout_dialog
|
||||
# layerrule = blur,rofi
|
||||
# layerrule = ignorezero,rofi
|
||||
# layerrule = blur,notifications
|
||||
# layerrule = ignorezero,notifications
|
||||
# layerrule = blur,swaync-notification-window
|
||||
# layerrule = ignorezero,swaync-notification-window
|
||||
# layerrule = blur,swaync-control-center
|
||||
# layerrule = ignorezero,swaync-control-center
|
||||
# layerrule = blur,logout_dialog
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# run with `kitty --session ~/.config/kitty/c2.conf`
|
||||
layout tall
|
||||
|
||||
# create a new tab
|
||||
new_tab c2
|
||||
|
||||
cd ~/projects/wingman/c2/
|
||||
launch --var window=first nvim
|
||||
|
||||
new_tab git
|
||||
|
||||
cd ~/projects/wingman/c2/
|
||||
launch --var window=second lazygit
|
||||
|
||||
# focus neovim
|
||||
# focus first
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
include theme.conf
|
||||
|
||||
font_size 9.0
|
||||
font_family CaskaydiaCove Nerd Font Mono
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
window_padding_width 25
|
||||
enable_audio_bell no
|
||||
|
||||
font_size 14.0
|
||||
window_padding_width 25
|
||||
include theme.conf
|
||||
#background_opacity 0.60
|
||||
tab_bar_style powerline
|
||||
tab_powerline_style slanted
|
||||
|
||||
confirm_os_window_close 0
|
||||
background_opacity 0.70
|
||||
#hide_window_decorations yes
|
||||
#confirm_os_window_close 0
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# run with `kitty --session ~/.config/kitty/music.conf`
|
||||
layout tall
|
||||
|
||||
# os_window_size 220c 64c
|
||||
# create a new tab
|
||||
new_tab music
|
||||
|
||||
# set the working directory for windows in the current tab
|
||||
cd
|
||||
|
||||
launch --var window=first cava
|
||||
# create additional terminals
|
||||
launch --location=hsplit pyradio
|
||||
resize_window taller 10
|
||||
focus pyradio
|
||||
launch --location=vsplit pipes-rs
|
||||
resize_window wider 20
|
||||
@@ -0,0 +1,20 @@
|
||||
# run with `kitty --session ~/.config/kitty/runners.conf`
|
||||
layout stack
|
||||
|
||||
# create a new tab
|
||||
new_tab runners
|
||||
|
||||
cd ~/projects/wingman/c2/
|
||||
|
||||
launch --var window=first pnpm dev
|
||||
|
||||
launch --location=hsplit react-devtools
|
||||
resize_window narrower 20
|
||||
|
||||
launch --location=hsplit lazydocker
|
||||
resize_window wider 120
|
||||
|
||||
# new_tab simulator
|
||||
# cd ~/wmclient
|
||||
# launch --var window=first wmsimulator.sh
|
||||
|
||||
@@ -0,0 +1,489 @@
|
||||
# Config relating to the Lazygit UI
|
||||
gui:
|
||||
# The number of lines you scroll by when scrolling the main window
|
||||
scrollHeight: 2
|
||||
# If true, allow scrolling past the bottom of the content in the main window
|
||||
scrollPastBottom: true
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#scroll-off-margin
|
||||
scrollOffMargin: 2
|
||||
# One of: 'margin' (default) | 'jump'
|
||||
scrollOffBehavior: margin
|
||||
# If true, capture mouse events.
|
||||
# When mouse events are captured, it's a little harder to select text: e.g. requiring you to hold the option key when on macOS.
|
||||
mouseEvents: true
|
||||
# If true, do not show a warning when discarding changes in the staging view.
|
||||
skipDiscardChangeWarning: false
|
||||
# If true, do not show warning when applying/popping the stash
|
||||
skipStashWarning: false
|
||||
# If true, do not show a warning when attempting to commit without any staged files; instead stage all unstaged files.
|
||||
skipNoStagedFilesWarning: false
|
||||
# If true, do not show a warning when rewording a commit via an external editor
|
||||
skipRewordInEditorWarning: false
|
||||
# Fraction of the total screen width to use for the left side section. You may want to pick a small number (e.g. 0.2) if you're using a narrow screen, so that you can see more of the main section.
|
||||
# Number from 0 to 1.0.
|
||||
sidePanelWidth: 0.3333
|
||||
# If true, increase the height of the focused side window; creating an accordion effect.
|
||||
expandFocusedSidePanel: true
|
||||
# The weight of the expanded side panel, relative to the other panels. 2 means
|
||||
# twice as tall as the other panels. Only relevant if `expandFocusedSidePanel` is true.
|
||||
expandedSidePanelWeight: 3
|
||||
# Sometimes the main window is split in two (e.g. when the selected file has both staged and unstaged changes). This setting controls how the two sections are split.
|
||||
# Options are:
|
||||
# - 'horizontal': split the window horizontally
|
||||
# - 'vertical': split the window vertically
|
||||
# - 'flexible': (default) split the window horizontally if the window is wide enough, otherwise split vertically
|
||||
mainPanelSplitMode: flexible
|
||||
# How the window is split when in half screen mode (i.e. after hitting '+' once).
|
||||
# Possible values:
|
||||
# - 'left': split the window horizontally (side panel on the left, main view on the right)
|
||||
# - 'top': split the window vertically (side panel on top, main view below)
|
||||
enlargedSideViewLocation: left
|
||||
# If true, wrap lines in the staging view to the width of the view. This
|
||||
# makes it much easier to work with diffs that have long lines, e.g.
|
||||
# paragraphs of markdown text.
|
||||
wrapLinesInStagingView: true
|
||||
# One of 'auto' (default) | 'en' | 'zh-CN' | 'zh-TW' | 'pl' | 'nl' | 'ja' | 'ko' | 'ru'
|
||||
language: auto
|
||||
# Format used when displaying time e.g. commit time.
|
||||
# Uses Go's time format syntax: https://pkg.go.dev/time#Time.Format
|
||||
timeFormat: 02 Jan 06
|
||||
# Format used when displaying time if the time is less than 24 hours ago.
|
||||
# Uses Go's time format syntax: https://pkg.go.dev/time#Time.Format
|
||||
shortTimeFormat: 3:04PM
|
||||
# Config relating to colors and styles.
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#color-attributes
|
||||
theme:
|
||||
# Border color of focused window
|
||||
activeBorderColor:
|
||||
- green
|
||||
- bold
|
||||
# Border color of non-focused windows
|
||||
inactiveBorderColor:
|
||||
- default
|
||||
# Border color of focused window when searching in that window
|
||||
searchingActiveBorderColor:
|
||||
- cyan
|
||||
- bold
|
||||
# Color of keybindings help text in the bottom line
|
||||
optionsTextColor:
|
||||
- blue
|
||||
# Background color of selected line.
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#highlighting-the-selected-line
|
||||
selectedRangeBgColor:
|
||||
- "#444444"
|
||||
selectedLineBgColor:
|
||||
- "#444444"
|
||||
# Background color of selected line when view doesn't have focus.
|
||||
inactiveViewSelectedLineBgColor:
|
||||
- bold
|
||||
# Foreground color of copied commit
|
||||
cherryPickedCommitFgColor:
|
||||
- blue
|
||||
# Background color of copied commit
|
||||
cherryPickedCommitBgColor:
|
||||
- cyan
|
||||
# Foreground color of marked base commit (for rebase)
|
||||
markedBaseCommitFgColor:
|
||||
- blue
|
||||
# Background color of marked base commit (for rebase)
|
||||
markedBaseCommitBgColor:
|
||||
- yellow
|
||||
# Color for file with unstaged changes
|
||||
unstagedChangesColor:
|
||||
- red
|
||||
# Default text color
|
||||
defaultFgColor:
|
||||
- default
|
||||
# Config relating to the commit length indicator
|
||||
commitLength:
|
||||
# If true, show an indicator of commit message length
|
||||
show: true
|
||||
# If true, show the '5 of 20' footer at the bottom of list views
|
||||
showListFooter: true
|
||||
# If true, display the files in the file views as a tree. If false, display the files as a flat list.
|
||||
# This can be toggled from within Lazygit with the '~' key, but that will not change the default.
|
||||
showFileTree: true
|
||||
# If true, show the number of lines changed per file in the Files view
|
||||
showNumstatInFilesView: false
|
||||
# If true, show a random tip in the command log when Lazygit starts
|
||||
showRandomTip: true
|
||||
# If true, show the command log
|
||||
showCommandLog: true
|
||||
# If true, show the bottom line that contains keybinding info and useful buttons. If false, this line will be hidden except to display a loader for an in-progress action.
|
||||
showBottomLine: true
|
||||
# If true, show jump-to-window keybindings in window titles.
|
||||
showPanelJumps: true
|
||||
# Deprecated: use nerdFontsVersion instead
|
||||
showIcons: false
|
||||
# Nerd fonts version to use.
|
||||
# One of: '2' | '3' | empty string (default)
|
||||
# If empty, do not show icons.
|
||||
nerdFontsVersion: ""
|
||||
# If true (default), file icons are shown in the file views. Only relevant if NerdFontsVersion is not empty.
|
||||
showFileIcons: true
|
||||
# Length of author name in (non-expanded) commits view. 2 means show initials only.
|
||||
commitAuthorShortLength: 2
|
||||
# Length of author name in expanded commits view. 2 means show initials only.
|
||||
commitAuthorLongLength: 17
|
||||
# Length of commit hash in commits view. 0 shows '*' if NF icons aren't on.
|
||||
commitHashLength: 8
|
||||
# If true, show commit hashes alongside branch names in the branches view.
|
||||
showBranchCommitHash: false
|
||||
# Whether to show the divergence from the base branch in the branches view.
|
||||
# One of: 'none' | 'onlyArrow' | 'arrowAndNumber'
|
||||
showDivergenceFromBaseBranch: none
|
||||
# Height of the command log view
|
||||
commandLogSize: 8
|
||||
# Whether to split the main window when viewing file changes.
|
||||
# One of: 'auto' | 'always'
|
||||
# If 'auto', only split the main window when a file has both staged and unstaged changes
|
||||
splitDiff: auto
|
||||
# Default size for focused window. Window size can be changed from within Lazygit with '+' and '_' (but this won't change the default).
|
||||
# One of: 'normal' (default) | 'half' | 'full'
|
||||
screenMode: normal
|
||||
# Window border style.
|
||||
# One of 'rounded' (default) | 'single' | 'double' | 'hidden'
|
||||
border: rounded
|
||||
# If true, show a seriously epic explosion animation when nuking the working tree.
|
||||
animateExplosion: true
|
||||
# Whether to stack UI components on top of each other.
|
||||
# One of 'auto' (default) | 'always' | 'never'
|
||||
portraitMode: auto
|
||||
# How things are filtered when typing '/'.
|
||||
# One of 'substring' (default) | 'fuzzy'
|
||||
filterMode: substring
|
||||
# Config relating to the spinner.
|
||||
spinner:
|
||||
# The frames of the spinner animation.
|
||||
frames:
|
||||
- '|'
|
||||
- /
|
||||
- '-'
|
||||
- \
|
||||
# The "speed" of the spinner in milliseconds.
|
||||
rate: 50
|
||||
# Status panel view.
|
||||
# One of 'dashboard' (default) | 'allBranchesLog'
|
||||
statusPanelView: dashboard
|
||||
# If true, jump to the Files panel after popping a stash
|
||||
switchToFilesAfterStashPop: true
|
||||
# If true, jump to the Files panel after applying a stash
|
||||
switchToFilesAfterStashApply: true
|
||||
# If true, when using the panel jump keys (default 1 through 5) and target panel is already active, go to next tab instead
|
||||
switchTabsWithPanelJumpKeys: false
|
||||
# Config relating to git
|
||||
git:
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md
|
||||
pagers:
|
||||
- # Value of the --color arg in the git diff command. Some pagers want this to be set to 'always' and some want it set to 'never'
|
||||
colorArg: always
|
||||
# e.g.
|
||||
# diff-so-fancy
|
||||
# delta --dark --paging=never
|
||||
# ydiff -p cat -s --wrap --width={{columnWidth}}
|
||||
pager: ""
|
||||
# If true, Lazygit will use whatever pager is specified in `$GIT_PAGER`, `$PAGER`, or your *git config*. If the pager ends with something like ` | less` we will strip that part out, because less doesn't play nice with our rendering approach. If the custom pager uses less under the hood, that will also break rendering (hence the `--paging=never` flag for the `delta` pager).
|
||||
useConfig: false
|
||||
# e.g. 'difft --color=always'
|
||||
externalDiffCommand: ""
|
||||
# Config relating to committing
|
||||
commit:
|
||||
# If true, pass '--signoff' flag when committing
|
||||
signOff: false
|
||||
# Automatic WYSIWYG wrapping of the commit message as you type
|
||||
autoWrapCommitMessage: true
|
||||
# If autoWrapCommitMessage is true, the width to wrap to
|
||||
autoWrapWidth: 72
|
||||
# Config relating to merging
|
||||
merging:
|
||||
# If true, run merges in a subprocess so that if a commit message is required, Lazygit will not hang
|
||||
# Only applicable to unix users.
|
||||
manualCommit: false
|
||||
# Extra args passed to `git merge`, e.g. --no-ff
|
||||
args: ""
|
||||
# The commit message to use for a squash merge commit. Can contain "{{selectedRef}}" and "{{currentBranch}}" placeholders.
|
||||
squashMergeMessage: Squash merge {{selectedRef}} into {{currentBranch}}
|
||||
# list of branches that are considered 'main' branches, used when displaying commits
|
||||
mainBranches:
|
||||
- master
|
||||
- main
|
||||
# Prefix to use when skipping hooks. E.g. if set to 'WIP', then pre-commit hooks will be skipped when the commit message starts with 'WIP'
|
||||
skipHookPrefix: WIP
|
||||
# If true, periodically fetch from remote
|
||||
autoFetch: true
|
||||
# If true, periodically refresh files and submodules
|
||||
autoRefresh: true
|
||||
# If true, pass the --all arg to git fetch
|
||||
fetchAll: true
|
||||
# If true, lazygit will automatically stage files that used to have merge
|
||||
# conflicts but no longer do; and it will also ask you if you want to
|
||||
# continue a merge or rebase if you've resolved all conflicts. If false, it
|
||||
# won't do either of these things.
|
||||
autoStageResolvedConflicts: true
|
||||
# Command used when displaying the current branch git log in the main window
|
||||
branchLogCmd: git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --
|
||||
# If true, do not spawn a separate process when using GPG
|
||||
overrideGpg: false
|
||||
# If true, do not allow force pushes
|
||||
disableForcePushing: false
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-commit-message-prefix
|
||||
commitPrefix:
|
||||
- # pattern to match on. E.g. for 'feature/AB-123' to match on the AB-123 use "^\\w+\\/(\\w+-\\w+).*"
|
||||
pattern: ""
|
||||
# Replace directive. E.g. for 'feature/AB-123' to start the commit message with 'AB-123 ' use "[$1] "
|
||||
replace: ""
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-branch-name-prefix
|
||||
branchPrefix: ""
|
||||
# If true, parse emoji strings in commit messages e.g. render :rocket: as 🚀
|
||||
# (This should really be under 'gui', not 'git')
|
||||
parseEmoji: false
|
||||
# Config for showing the log in the commits view
|
||||
log:
|
||||
# One of: 'date-order' | 'author-date-order' | 'topo-order' | 'default'
|
||||
# 'topo-order' makes it easier to read the git log graph, but commits may not
|
||||
# appear chronologically. See https://git-scm.com/docs/
|
||||
#
|
||||
# Deprecated: Configure this with `Log menu -> Commit sort order` (<c-l> in the commits window by default).
|
||||
order: topo-order
|
||||
# This determines whether the git graph is rendered in the commits panel
|
||||
# One of 'always' | 'never' | 'when-maximised'
|
||||
#
|
||||
# Deprecated: Configure this with `Log menu -> Show git graph` (<c-l> in the commits window by default).
|
||||
showGraph: always
|
||||
# displays the whole git graph by default in the commits view (equivalent to passing the `--all` argument to `git log`)
|
||||
showWholeGraph: false
|
||||
# When copying commit hashes to the clipboard, truncate them to this
|
||||
# length. Set to 40 to disable truncation.
|
||||
truncateCopiedCommitHashesTo: 12
|
||||
allBranchesLogCmds:
|
||||
- git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium
|
||||
# Periodic update checks
|
||||
update:
|
||||
# One of: 'prompt' (default) | 'background' | 'never'
|
||||
method: prompt
|
||||
# Period in days between update checks
|
||||
days: 14
|
||||
# Background refreshes
|
||||
refresher:
|
||||
# File/submodule refresh interval in seconds.
|
||||
# Auto-refresh can be disabled via option 'git.autoRefresh'.
|
||||
refreshInterval: 10
|
||||
# Re-fetch interval in seconds.
|
||||
# Auto-fetch can be disabled via option 'git.autoFetch'.
|
||||
fetchInterval: 60
|
||||
# If true, show a confirmation popup before quitting Lazygit
|
||||
confirmOnQuit: false
|
||||
# If true, exit Lazygit when the user presses escape in a context where there is nothing to cancel/close
|
||||
quitOnTopLevelReturn: false
|
||||
# Config relating to things outside of Lazygit like how files are opened, copying to clipboard, etc
|
||||
os:
|
||||
# Command for editing a file. Should contain "{{filename}}".
|
||||
edit: ""
|
||||
# Command for editing a file at a given line number. Should contain
|
||||
# "{{filename}}", and may optionally contain "{{line}}".
|
||||
editAtLine: ""
|
||||
# Same as EditAtLine, except that the command needs to wait until the
|
||||
# window is closed.
|
||||
editAtLineAndWait: ""
|
||||
# For opening a directory in an editor
|
||||
openDirInEditor: ""
|
||||
# A built-in preset that sets all of the above settings. Supported presets
|
||||
# are defined in the getPreset function in editor_presets.go.
|
||||
editPreset: ""
|
||||
# Command for opening a file, as if the file is double-clicked. Should
|
||||
# contain "{{filename}}", but doesn't support "{{line}}".
|
||||
open: ""
|
||||
# Command for opening a link. Should contain "{{link}}".
|
||||
openLink: ""
|
||||
# EditCommand is the command for editing a file.
|
||||
# Deprecated: use Edit instead. Note that semantics are different:
|
||||
# EditCommand is just the command itself, whereas Edit contains a
|
||||
# "{{filename}}" variable.
|
||||
editCommand: ""
|
||||
# EditCommandTemplate is the command template for editing a file
|
||||
# Deprecated: use EditAtLine instead.
|
||||
editCommandTemplate: ""
|
||||
# OpenCommand is the command for opening a file
|
||||
# Deprecated: use Open instead.
|
||||
openCommand: ""
|
||||
# OpenLinkCommand is the command for opening a link
|
||||
# Deprecated: use OpenLink instead.
|
||||
openLinkCommand: ""
|
||||
# CopyToClipboardCmd is the command for copying to clipboard.
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-command-for-copying-to-and-pasting-from-clipboard
|
||||
copyToClipboardCmd: ""
|
||||
# ReadFromClipboardCmd is the command for reading the clipboard.
|
||||
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#custom-command-for-copying-to-and-pasting-from-clipboard
|
||||
readFromClipboardCmd: ""
|
||||
# If true, don't display introductory popups upon opening Lazygit.
|
||||
disableStartupPopups: false
|
||||
# What to do when opening Lazygit outside of a git repo.
|
||||
# - 'prompt': (default) ask whether to initialize a new repo or open in the most recent repo
|
||||
# - 'create': initialize a new repo
|
||||
# - 'skip': open most recent repo
|
||||
# - 'quit': exit Lazygit
|
||||
notARepository: prompt
|
||||
# If true, display a confirmation when subprocess terminates. This allows you to view the output of the subprocess before returning to Lazygit.
|
||||
promptToReturnFromSubprocess: true
|
||||
# Keybindings
|
||||
keybinding:
|
||||
universal:
|
||||
quit: q
|
||||
quit-alt1: <c-c>
|
||||
return: <esc>
|
||||
quitWithoutChangingDirectory: Q
|
||||
togglePanel: <tab>
|
||||
prevItem: <up>
|
||||
nextItem: <down>
|
||||
prevItem-alt: k
|
||||
nextItem-alt: j
|
||||
prevPage: ','
|
||||
nextPage: .
|
||||
scrollLeft: H
|
||||
scrollRight: L
|
||||
gotoTop: <
|
||||
gotoBottom: '>'
|
||||
toggleRangeSelect: v
|
||||
rangeSelectDown: <s-down>
|
||||
rangeSelectUp: <s-up>
|
||||
prevBlock: <left>
|
||||
nextBlock: <right>
|
||||
prevBlock-alt: h
|
||||
nextBlock-alt: l
|
||||
nextBlock-alt2: <tab>
|
||||
prevBlock-alt2: <backtab>
|
||||
jumpToBlock:
|
||||
- "1"
|
||||
- "2"
|
||||
- "3"
|
||||
- "4"
|
||||
- "5"
|
||||
nextMatch: "n"
|
||||
prevMatch: "N"
|
||||
startSearch: /
|
||||
optionMenu: <disabled>
|
||||
optionMenu-alt1: '?'
|
||||
select: <space>
|
||||
goInto: <enter>
|
||||
confirm: <enter>
|
||||
confirmInEditor: <a-enter>
|
||||
remove: d
|
||||
new: "n"
|
||||
edit: e
|
||||
openFile: o
|
||||
scrollUpMain: <pgup>
|
||||
scrollDownMain: <pgdown>
|
||||
scrollUpMain-alt1: K
|
||||
scrollDownMain-alt1: J
|
||||
scrollUpMain-alt2: <c-u>
|
||||
scrollDownMain-alt2: <c-d>
|
||||
executeShellCommand: ':'
|
||||
createRebaseOptionsMenu: m
|
||||
# 'Files' appended for legacy reasons
|
||||
pushFiles: P
|
||||
# 'Files' appended for legacy reasons
|
||||
pullFiles: p
|
||||
refresh: R
|
||||
createPatchOptionsMenu: <c-p>
|
||||
nextTab: ']'
|
||||
prevTab: '['
|
||||
nextScreenMode: +
|
||||
prevScreenMode: _
|
||||
undo: z
|
||||
redo: <c-z>
|
||||
filteringMenu: <c-s>
|
||||
diffingMenu: W
|
||||
diffingMenu-alt: <c-e>
|
||||
copyToClipboard: <c-o>
|
||||
openRecentRepos: <c-r>
|
||||
submitEditorText: <enter>
|
||||
extrasMenu: '@'
|
||||
toggleWhitespaceInDiffView: <c-w>
|
||||
increaseContextInDiffView: '}'
|
||||
decreaseContextInDiffView: '{'
|
||||
increaseRenameSimilarityThreshold: )
|
||||
decreaseRenameSimilarityThreshold: (
|
||||
openDiffTool: <c-t>
|
||||
status:
|
||||
checkForUpdate: u
|
||||
recentRepos: <enter>
|
||||
allBranchesLogGraph: a
|
||||
files:
|
||||
commitChanges: c
|
||||
commitChangesWithoutHook: w
|
||||
amendLastCommit: A
|
||||
commitChangesWithEditor: C
|
||||
findBaseCommitForFixup: <c-f>
|
||||
confirmDiscard: x
|
||||
ignoreFile: i
|
||||
refreshFiles: r
|
||||
stashAllChanges: s
|
||||
viewStashOptions: S
|
||||
toggleStagedAll: a
|
||||
viewResetOptions: D
|
||||
fetch: f
|
||||
toggleTreeView: '`'
|
||||
openMergeOptions: M
|
||||
openStatusFilter: <c-b>
|
||||
copyFileInfoToClipboard: "y"
|
||||
branches:
|
||||
createPullRequest: o
|
||||
viewPullRequestOptions: O
|
||||
copyPullRequestURL: <c-y>
|
||||
checkoutBranchByName: c
|
||||
forceCheckoutBranch: F
|
||||
rebaseBranch: r
|
||||
renameBranch: R
|
||||
mergeIntoCurrentBranch: M
|
||||
viewGitFlowOptions: i
|
||||
fastForward: f
|
||||
createTag: T
|
||||
pushTag: P
|
||||
setUpstream: u
|
||||
fetchRemote: f
|
||||
sortOrder: s
|
||||
worktrees:
|
||||
viewWorktreeOptions: w
|
||||
commits:
|
||||
squashDown: s
|
||||
renameCommit: r
|
||||
renameCommitWithEditor: R
|
||||
viewResetOptions: g
|
||||
markCommitAsFixup: f
|
||||
createFixupCommit: F
|
||||
squashAboveCommits: S
|
||||
moveDownCommit: <c-j>
|
||||
moveUpCommit: <c-k>
|
||||
amendToCommit: A
|
||||
resetCommitAuthor: a
|
||||
pickCommit: p
|
||||
revertCommit: t
|
||||
cherryPickCopy: C
|
||||
pasteCommits: V
|
||||
markCommitAsBaseForRebase: B
|
||||
tagCommit: T
|
||||
checkoutCommit: <space>
|
||||
copyCommitAttributeToClipboard: "y"
|
||||
openLogMenu: <c-l>
|
||||
openInBrowser: o
|
||||
viewBisectOptions: b
|
||||
startInteractiveRebase: i
|
||||
amendAttribute:
|
||||
resetAuthor: a
|
||||
setAuthor: A
|
||||
addCoAuthor: c
|
||||
stash:
|
||||
popStash: g
|
||||
renameStash: r
|
||||
commitFiles:
|
||||
checkoutCommitFile: c
|
||||
main:
|
||||
toggleSelectHunk: a
|
||||
pickBothHunks: b
|
||||
editSelectHunk: E
|
||||
submodules:
|
||||
init: i
|
||||
update: u
|
||||
bulkMenu: b
|
||||
commitMessage:
|
||||
commitMenu: <c-o>
|
||||
@@ -0,0 +1,29 @@
|
||||
cal
|
||||
calc
|
||||
speedtest
|
||||
aichat -e
|
||||
askllama
|
||||
ask
|
||||
tldr
|
||||
man
|
||||
info
|
||||
rsync -avkP
|
||||
lsd
|
||||
zioxide
|
||||
httpie
|
||||
bat
|
||||
xxd
|
||||
mpv
|
||||
nix
|
||||
distrobox
|
||||
scrcpy
|
||||
adb
|
||||
watch
|
||||
unzip
|
||||
open
|
||||
nmcli
|
||||
iwctl
|
||||
lsusb
|
||||
thefuck
|
||||
fastfetch
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
browsh
|
||||
wiki-tui
|
||||
wikiman
|
||||
yazi
|
||||
tdf
|
||||
dysk
|
||||
dust
|
||||
ncdu
|
||||
systemctl-tui
|
||||
btop
|
||||
bandwhich
|
||||
mtr
|
||||
gping
|
||||
bmon
|
||||
profanity
|
||||
nmtui
|
||||
bluetui
|
||||
drawterm
|
||||
hunk
|
||||
lazygit
|
||||
lazydocker
|
||||
lazyjorunal
|
||||
pastel
|
||||
hexyl
|
||||
pyradio
|
||||
kew
|
||||
tt
|
||||
gittype
|
||||
matrix
|
||||
cava
|
||||
tetrigo
|
||||
tui-mines
|
||||
nyaa
|
||||
stig
|
||||
tmux
|
||||
zellij
|
||||
nvim
|
||||
vim
|
||||
tuios
|
||||
llmfit
|
||||
battop
|
||||
subtui
|
||||
@@ -0,0 +1,21 @@
|
||||
# Volume
|
||||
9 add volume -5
|
||||
0 add volume 5
|
||||
|
||||
UP add volume 2
|
||||
DOWN add volume -2
|
||||
|
||||
k add volume 2
|
||||
j add volume -2
|
||||
|
||||
# Seek backward / forward
|
||||
LEFT seek -5
|
||||
RIGHT seek 5
|
||||
|
||||
l seek 5
|
||||
h seek -5
|
||||
|
||||
# Bigger jumps
|
||||
Shift+LEFT seek -30
|
||||
Shift+RIGHT seek 30
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
[pyradio]
|
||||
volume=50
|
||||
|
||||
|
||||
|
||||
@@ -1,32 +1,6 @@
|
||||
vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/"
|
||||
vim.g.mapleader = " "
|
||||
|
||||
----- custom config -----
|
||||
|
||||
if vim.g.neovide then
|
||||
vim.g.neovide_transparency = 0.7
|
||||
vim.g.neovide_scale_factor = 0.7
|
||||
vim.g.neovide_window_blurred = true
|
||||
vim.g.neovide_floating_blur_amount_x = 1.0
|
||||
vim.g.neovide_floating_blur_amount_y = 1.0
|
||||
vim.g.neovide_floating_shadow = true
|
||||
vim.g.neovide_floating_z_height = 0
|
||||
vim.g.neovide_hide_mouse_when_typing = true
|
||||
vim.g.neovide_padding_top = 15
|
||||
vim.g.neovide_padding_right = 5
|
||||
vim.g.neovide_padding_left = 5
|
||||
-- vim.g.neovide_fullscreen = true
|
||||
-- vim.g.neovide_padding_bottom = 0
|
||||
-- vim.g.neovide_light_radius = 5
|
||||
-- vim.g.neovide_show_border = false
|
||||
-- vim.g.neovide_light_angle_degrees = 45
|
||||
end
|
||||
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.wrap = false
|
||||
|
||||
----- end of custom -----
|
||||
|
||||
|
||||
-- bootstrap lazy and all plugins
|
||||
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
||||
|
||||
+27
-24
@@ -1,29 +1,32 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
|
||||
"NvChad": { "branch": "v2.5", "commit": "46b15ef1b9d10a83ab7df26b14f474d15c01e770" },
|
||||
"base46": { "branch": "v3.0", "commit": "80358ecdb5779b199130ed03031c34c0c2bca3fc" },
|
||||
"LuaSnip": { "branch": "master", "commit": "a62e1083a3cfe8b6b206e7d3d33a51091df25357" },
|
||||
"NvChad": { "branch": "v2.5", "commit": "d042cc975247c2aa55fcb228e5d146dc1dc6c648" },
|
||||
"base46": { "branch": "v2.5", "commit": "fde7a2cd54599e148d376f82980407c2d24b0fa2" },
|
||||
"cmp-async-path": { "branch": "main", "commit": "f8af3f726e07f2e9d37672eaa9102581aefce149" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
||||
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"conform.nvim": { "branch": "master", "commit": "eebc724d12c5579d733d1f801386e0ceb909d001" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "31f2a2657b6261724313281fe0d8ba6f43f4a4fa" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "fcfa7a989cd6fed10abf02d9880dc76d7a38167d" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
||||
"menu": { "branch": "main", "commit": "8adb036ec34c679050913864cbc98cc64eb91f6c" },
|
||||
"codecompanion.nvim": { "branch": "main", "commit": "680c445eb357c72129d175ea5d481aa9e92ae6a5" },
|
||||
"conform.nvim": { "branch": "master", "commit": "086a40dc7ed8242c03be9f47fbcee68699cc2395" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "6d808f99bd63303646794406e270bd553ad7792e" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"mason.nvim": { "branch": "main", "commit": "12ddd182d9efbdc848b540f16484a583d52da0fb" },
|
||||
"menu": { "branch": "main", "commit": "7a0a4a2896b715c066cfbe320bdc048091874cc6" },
|
||||
"minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "81920264a264144bd075f7f48f0c4356fc2c6236" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "5bea2b37523a31288e0fcab42f3be5c1bd4516bb" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "7bbed4b548d9a81c14351bda93d16336edefd067" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "c90dee4e930ab9f49fa6d77f289bff335b49e972" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" },
|
||||
"ui": { "branch": "v3.0", "commit": "9201de37eb4992bef5fec974618a9a14082765fe" },
|
||||
"volt": { "branch": "main", "commit": "c45d5f48da8e802e608b5c6da471ca4d84276dfb" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
|
||||
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "e146efacbafed3789ac568abcc5a981c5decaa58" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "d277467fc0d1d0e2bca88165a1de6b526f9f6fe8" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "c72328a5494b4502947a022fe69c0c47e53b6aa6" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "d67113f11384c0dad96fced2f7b91f1fc811e97f" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "028d9a0695a0cc4cfa893889f8c408ed7ccc8adc" },
|
||||
"ui": { "branch": "v3.0", "commit": "cb75908a86720172594b30de147272c1b3a7f452" },
|
||||
"volt": { "branch": "main", "commit": "620de1321f275ec9d80028c68d1b88b409c0c8b1" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||
}
|
||||
|
||||
@@ -3,16 +3,55 @@
|
||||
-- Please read that file to know all available options :(
|
||||
|
||||
---@type ChadrcConfig
|
||||
local M = {}
|
||||
|
||||
M.base46 = {
|
||||
theme = "onedark",
|
||||
transparency = true
|
||||
local M = {
|
||||
base46 = {
|
||||
theme = "onedark",
|
||||
transparency = true,
|
||||
lsp = { signature = true },
|
||||
hl_override = {
|
||||
NvimTreeGitDirty = {
|
||||
fg = "#DBA55D",
|
||||
},
|
||||
},
|
||||
-- Comment = { italic = true },
|
||||
-- ["@comment"] = { italic = true },
|
||||
},
|
||||
|
||||
-- hl_override = {
|
||||
-- Comment = { italic = true },
|
||||
-- ["@comment"] = { italic = true },
|
||||
-- },
|
||||
nvdash = {
|
||||
load_on_startup = false,
|
||||
-- buttons = {
|
||||
-- { txt = " Find File", keys = "Spc f f", cmd = "Telescope find_files custom" },
|
||||
-- { txt = " Recent Files", keys = "Spc f o", cmd = "Telescope oldfiles" },
|
||||
-- -- more... check nvconfig.lua file for full list of buttons
|
||||
-- },
|
||||
},
|
||||
|
||||
ui = {
|
||||
-- lazyload it when there are 1+ buffers
|
||||
tabufline = {
|
||||
enabled = true,
|
||||
lazyload = true,
|
||||
order = { "treeOffset", "buffers", "tabs", "btns" },
|
||||
modules = nil,
|
||||
bufwidth = 21,
|
||||
transparency = true,
|
||||
},
|
||||
},
|
||||
|
||||
term = {
|
||||
base46_colors = true,
|
||||
winopts = { number = false },
|
||||
sizes = { sp = 0.5, vsp = 0.2, ["bo sp"] = 0.3, ["bo vsp"] = 0.2 },
|
||||
float = {
|
||||
relative = "editor",
|
||||
row = 0.05,
|
||||
col = 0.05,
|
||||
width = 0.9,
|
||||
height = 0.8,
|
||||
border = "single",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return M
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
local model = "Qwen3-Coder-30B-Instruct-IQ4_XS"
|
||||
|
||||
return {
|
||||
adapters = {
|
||||
http = {
|
||||
llama_cpp = function()
|
||||
return require("codecompanion.adapters").extend("openai_compatible", {
|
||||
env = {
|
||||
url = "http://localhost:11343",
|
||||
chat_url = "/v1/chat/completions",
|
||||
models_endpoint = "/v1/models",
|
||||
api_key = "dummy",
|
||||
},
|
||||
schema = {
|
||||
model = {
|
||||
default = model,
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
interactions = {
|
||||
chat = {
|
||||
adapter = "llama_cpp",
|
||||
},
|
||||
inline = {
|
||||
adapter = "llama_cpp",
|
||||
},
|
||||
cmd = {
|
||||
adapter = "llama_cpp",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,16 +1,23 @@
|
||||
local options = {
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
css = { "prettier" },
|
||||
html = { "prettier" },
|
||||
javascript = { "prettier" },
|
||||
javascriptreact = { "prettier" },
|
||||
typescript = { "prettier" },
|
||||
typescriptreact = { "prettier" },
|
||||
json = { "prettier" },
|
||||
html = { "prettier" },
|
||||
yaml = { "prettier" },
|
||||
markdown = { "prettier" },
|
||||
css = { "prettier", "stylelint" },
|
||||
scss = { "prettier", "stylelint" },
|
||||
},
|
||||
|
||||
-- format_on_save = {
|
||||
-- -- These options will be passed to conform.format()
|
||||
-- timeout_ms = 500,
|
||||
-- lsp_fallback = true,
|
||||
-- },
|
||||
format_on_save = {
|
||||
-- These options will be passed to conform.format()
|
||||
timeout_ms = 500,
|
||||
lsp_format = "fallback",
|
||||
},
|
||||
}
|
||||
|
||||
return options
|
||||
|
||||
@@ -1,24 +1,28 @@
|
||||
-- load defaults i.e lua_lsp
|
||||
require("nvchad.configs.lspconfig").defaults()
|
||||
|
||||
local lspconfig = require "lspconfig"
|
||||
local servers = { "html", "cssls", "ts_ls", "eslint", "yamlls" }
|
||||
vim.lsp.enable(servers)
|
||||
|
||||
-- EXAMPLE
|
||||
local servers = { "html", "cssls", "ts_ls" }
|
||||
local nvlsp = require "nvchad.configs.lspconfig"
|
||||
|
||||
-- lsps with default config
|
||||
for _, lsp in ipairs(servers) do
|
||||
lspconfig[lsp].setup {
|
||||
on_attach = nvlsp.on_attach,
|
||||
on_init = nvlsp.on_init,
|
||||
capabilities = nvlsp.capabilities,
|
||||
}
|
||||
end
|
||||
|
||||
-- configuring single server, example: typescript
|
||||
-- local lspconfig = require "lspconfig"
|
||||
-- local nvlsp = require "nvchad.configs.lspconfig"
|
||||
--
|
||||
-- -- lsps with default config
|
||||
-- for _, lsp in ipairs(servers) do
|
||||
-- lspconfig[lsp].setup {
|
||||
-- on_attach = nvlsp.on_attach,
|
||||
-- on_init = nvlsp.on_init,
|
||||
-- capabilities = nvlsp.capabilities,
|
||||
-- }
|
||||
-- end
|
||||
--
|
||||
-- -- configuring single server, example: typescript
|
||||
-- lspconfig.ts_ls.setup {
|
||||
-- on_attach = nvlsp.on_attach,
|
||||
-- on_init = nvlsp.on_init,
|
||||
-- capabilities = nvlsp.capabilities,
|
||||
-- filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'markdown' },
|
||||
-- }
|
||||
--
|
||||
-- -- configuring single server, example: typescript
|
||||
-- -- lspconfig.ts_ls.setup {
|
||||
-- -- on_attach = nvlsp.on_attach,
|
||||
-- -- on_init = nvlsp.on_init,
|
||||
-- -- capabilities = nvlsp.capabilities,
|
||||
-- -- }
|
||||
|
||||
@@ -0,0 +1,851 @@
|
||||
return {
|
||||
-- Whether markdown should be rendered by default.
|
||||
enabled = true,
|
||||
-- Vim modes that will show a rendered view of the markdown file, :h mode(), for all enabled
|
||||
-- components. Individual components can be enabled for other modes. Remaining modes will be
|
||||
-- unaffected by this plugin.
|
||||
render_modes = { "i", "n", "c", "t" },
|
||||
-- Maximum file size (in MB) that this plugin will attempt to render.
|
||||
-- Any file larger than this will effectively be ignored.
|
||||
max_file_size = 10.0,
|
||||
-- Milliseconds that must pass before updating marks, updates occur.
|
||||
-- within the context of the visible window, not the entire buffer.
|
||||
debounce = 100,
|
||||
-- Pre configured settings that will attempt to mimic various target user experiences.
|
||||
-- Any user provided settings will take precedence.
|
||||
-- | obsidian | mimic Obsidian UI |
|
||||
-- | lazy | will attempt to stay up to date with LazyVim configuration |
|
||||
-- | none | does nothing |
|
||||
preset = "none",
|
||||
-- The level of logs to write to file: vim.fn.stdpath('state') .. '/render-markdown.log'.
|
||||
-- Only intended to be used for plugin development / debugging.
|
||||
log_level = "error",
|
||||
-- Print runtime of main update method.
|
||||
-- Only intended to be used for plugin development / debugging.
|
||||
log_runtime = false,
|
||||
-- Filetypes this plugin will run on.
|
||||
file_types = { "markdown", "gitcommit", "codecompanion" },
|
||||
-- Takes buffer as input, if it returns true this plugin will not attach to the buffer
|
||||
ignore = function()
|
||||
return false
|
||||
end,
|
||||
-- Additional events that will trigger this plugin's render loop.
|
||||
change_events = {},
|
||||
injections = {
|
||||
-- Out of the box language injections for known filetypes that allow markdown to be interpreted
|
||||
-- in specified locations, see :h treesitter-language-injections.
|
||||
-- Set enabled to false in order to disable.
|
||||
|
||||
gitcommit = {
|
||||
enabled = true,
|
||||
query = [[
|
||||
((message) @injection.content
|
||||
(#set! injection.combined)
|
||||
(#set! injection.include-children)
|
||||
(#set! injection.language "markdown"))
|
||||
]],
|
||||
},
|
||||
},
|
||||
patterns = {
|
||||
-- Highlight patterns to disable for filetypes, i.e. lines concealed around code blocks
|
||||
|
||||
markdown = {
|
||||
disable = true,
|
||||
directives = {
|
||||
{ id = 17, name = "conceal_lines" },
|
||||
{ id = 18, name = "conceal_lines" },
|
||||
},
|
||||
},
|
||||
},
|
||||
anti_conceal = {
|
||||
-- This enables hiding any added text on the line the cursor is on.
|
||||
enabled = true,
|
||||
-- Modes to disable anti conceal feature.
|
||||
disabled_modes = false,
|
||||
-- Number of lines above cursor to show.
|
||||
above = 0,
|
||||
-- Number of lines below cursor to show.
|
||||
below = 0,
|
||||
-- Which elements to always show, ignoring anti conceal behavior. Values can either be
|
||||
-- booleans to fix the behavior or string lists representing modes where anti conceal
|
||||
-- behavior will be ignored. Valid values are:
|
||||
-- bullet
|
||||
-- callout
|
||||
-- check_icon, check_scope
|
||||
-- code_background, code_border, code_language
|
||||
-- dash
|
||||
-- head_background, head_border, head_icon
|
||||
-- indent
|
||||
-- link
|
||||
-- quote
|
||||
-- sign
|
||||
-- table_border
|
||||
-- virtual_lines
|
||||
ignore = {
|
||||
code_background = true,
|
||||
indent = true,
|
||||
sign = true,
|
||||
virtual_lines = true,
|
||||
},
|
||||
},
|
||||
padding = {
|
||||
-- Highlight to use when adding whitespace, should match background.
|
||||
highlight = "Normal",
|
||||
},
|
||||
latex = {
|
||||
-- Turn on / off latex rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render latex.
|
||||
render_modes = false,
|
||||
-- Executable used to convert latex formula to rendered unicode.
|
||||
converter = "latex2text",
|
||||
-- Highlight for latex blocks.
|
||||
highlight = "RenderMarkdownMath",
|
||||
-- Determines where latex formula is rendered relative to block.
|
||||
-- | above | above latex block |
|
||||
-- | below | below latex block |
|
||||
position = "above",
|
||||
-- Number of empty lines above latex blocks.
|
||||
top_pad = 0,
|
||||
-- Number of empty lines below latex blocks.
|
||||
bottom_pad = 0,
|
||||
},
|
||||
on = {
|
||||
-- Called when plugin initially attaches to a buffer.
|
||||
attach = function() end,
|
||||
-- Called before adding marks to the buffer for the first time.
|
||||
initial = function() end,
|
||||
-- Called after plugin renders a buffer.
|
||||
render = function() end,
|
||||
-- Called after plugin clears a buffer.
|
||||
clear = function() end,
|
||||
},
|
||||
completions = {
|
||||
-- Settings for blink.cmp completions source
|
||||
blink = { enabled = false },
|
||||
-- Settings for coq_nvim completions source
|
||||
coq = { enabled = false },
|
||||
-- Settings for in-process language server completions
|
||||
lsp = { enabled = false },
|
||||
filter = {
|
||||
callout = function()
|
||||
-- example to exclude obsidian callouts
|
||||
-- return value.category ~= 'obsidian'
|
||||
return true
|
||||
end,
|
||||
checkbox = function()
|
||||
return true
|
||||
end,
|
||||
},
|
||||
},
|
||||
heading = {
|
||||
-- Useful context to have when evaluating values.
|
||||
-- | level | the number of '#' in the heading marker |
|
||||
-- | sections | for each level how deeply nested the heading is |
|
||||
|
||||
-- Turn on / off heading icon & background rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render headings.
|
||||
render_modes = false,
|
||||
-- Turn on / off atx heading rendering.
|
||||
atx = true,
|
||||
-- Turn on / off setext heading rendering.
|
||||
setext = true,
|
||||
-- Turn on / off any sign column related rendering.
|
||||
sign = true,
|
||||
-- Replaces '#+' of 'atx_h._marker'.
|
||||
-- Output is evaluated depending on the type.
|
||||
-- | function | `value(context)` |
|
||||
-- | string[] | `cycle(value, context.level)` |
|
||||
icons = { " ", " ", " ", " ", " ", " " },
|
||||
-- Determines how icons fill the available space.
|
||||
-- | right | '#'s are concealed and icon is appended to right side |
|
||||
-- | inline | '#'s are concealed and icon is inlined on left side |
|
||||
-- | overlay | icon is left padded with spaces and inserted on left hiding any additional '#' |
|
||||
position = "overlay",
|
||||
-- Added to the sign column if enabled.
|
||||
-- Output is evaluated by `cycle(value, context.level)`.
|
||||
signs = { " " },
|
||||
-- Width of the heading background.
|
||||
-- | block | width of the heading text |
|
||||
-- | full | full width of the window |
|
||||
-- Can also be a list of the above values evaluated by `clamp(value, context.level)`.
|
||||
width = "full",
|
||||
-- Amount of margin to add to the left of headings.
|
||||
-- Margin available space is computed after accounting for padding.
|
||||
-- If a float < 1 is provided it is treated as a percentage of available window space.
|
||||
-- Can also be a list of numbers evaluated by `clamp(value, context.level)`.
|
||||
left_margin = 0,
|
||||
-- Amount of padding to add to the left of headings.
|
||||
-- Output is evaluated using the same logic as 'left_margin'.
|
||||
left_pad = 0,
|
||||
-- Amount of padding to add to the right of headings when width is 'block'.
|
||||
-- Output is evaluated using the same logic as 'left_margin'.
|
||||
right_pad = 0,
|
||||
-- Minimum width to use for headings when width is 'block'.
|
||||
-- Can also be a list of integers evaluated by `clamp(value, context.level)`.
|
||||
min_width = 0,
|
||||
-- Determines if a border is added above and below headings.
|
||||
-- Can also be a list of booleans evaluated by `clamp(value, context.level)`.
|
||||
border = false,
|
||||
-- Always use virtual lines for heading borders instead of attempting to use empty lines.
|
||||
border_virtual = false,
|
||||
-- Highlight the start of the border using the foreground highlight.
|
||||
border_prefix = false,
|
||||
-- Used above heading for border.
|
||||
above = "▄",
|
||||
-- Used below heading for border.
|
||||
below = "▀",
|
||||
-- Highlight for the heading icon and extends through the entire line.
|
||||
-- Output is evaluated by `clamp(value, context.level)`.
|
||||
backgrounds = {
|
||||
"RenderMarkdownH1Bg",
|
||||
"RenderMarkdownH2Bg",
|
||||
"RenderMarkdownH3Bg",
|
||||
"RenderMarkdownH4Bg",
|
||||
"RenderMarkdownH5Bg",
|
||||
"RenderMarkdownH6Bg",
|
||||
},
|
||||
-- Highlight for the heading and sign icons.
|
||||
-- Output is evaluated using the same logic as 'backgrounds'.
|
||||
foregrounds = {
|
||||
"RenderMarkdownH1",
|
||||
"RenderMarkdownH2",
|
||||
"RenderMarkdownH3",
|
||||
"RenderMarkdownH4",
|
||||
"RenderMarkdownH5",
|
||||
"RenderMarkdownH6",
|
||||
},
|
||||
-- Define custom heading patterns which allow you to override various properties based on
|
||||
-- the contents of a heading.
|
||||
-- The key is for healthcheck and to allow users to change its values, value type below.
|
||||
-- | pattern | matched against the heading text @see :h lua-patterns |
|
||||
-- | icon | optional override for the icon |
|
||||
-- | background | optional override for the background |
|
||||
-- | foreground | optional override for the foreground |
|
||||
custom = {},
|
||||
},
|
||||
paragraph = {
|
||||
-- Useful context to have when evaluating values.
|
||||
-- | text | text value of the node |
|
||||
|
||||
-- Turn on / off paragraph rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render paragraphs.
|
||||
render_modes = false,
|
||||
-- Amount of margin to add to the left of paragraphs.
|
||||
-- If a float < 1 is provided it is treated as a percentage of available window space.
|
||||
-- Output is evaluated depending on the type.
|
||||
-- | function | `value(context)` |
|
||||
-- | number | `value` |
|
||||
left_margin = 0,
|
||||
-- Amount of padding to add to the first line of each paragraph.
|
||||
-- Output is evaluated using the same logic as 'left_margin'.
|
||||
indent = 0,
|
||||
-- Minimum width to use for paragraphs.
|
||||
min_width = 0,
|
||||
},
|
||||
code = {
|
||||
-- Turn on / off code block & inline code rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render code blocks.
|
||||
render_modes = false,
|
||||
-- Turn on / off any sign column related rendering.
|
||||
sign = true,
|
||||
-- Determines how code blocks & inline code are rendered.
|
||||
-- | none | disables all rendering |
|
||||
-- | normal | background highlighting + padding |
|
||||
-- | language | language heading with icon + sign column |
|
||||
-- | full | normal + language |
|
||||
style = "full",
|
||||
-- Whether to conceal nodes at the top and bottom of code blocks.
|
||||
conceal_delimiters = true,
|
||||
-- Turn on / off any language heading related rendering.
|
||||
language = true,
|
||||
-- Determines where language icon is rendered.
|
||||
-- | right | right side of code block |
|
||||
-- | left | left side of code block |
|
||||
position = "left",
|
||||
-- Whether to include the language icon above code blocks.
|
||||
language_icon = true,
|
||||
-- Whether to include the language name above code blocks.
|
||||
language_name = true,
|
||||
-- Whether to include the language info above code blocks.
|
||||
language_info = true,
|
||||
-- Amount of padding to add around the language.
|
||||
-- If a float < 1 is provided it is treated as a percentage of available window space.
|
||||
language_pad = 0,
|
||||
-- A list of language names for which background highlighting will be disabled.
|
||||
-- Likely because that language has background highlights itself.
|
||||
-- Use a boolean to make behavior apply to all languages.
|
||||
-- Borders above & below blocks will continue to be rendered.
|
||||
disable_background = { "diff" },
|
||||
-- Width of the code block background.
|
||||
-- | block | width of the code block |
|
||||
-- | full | full width of the window |
|
||||
width = "full",
|
||||
-- Amount of margin to add to the left of code blocks.
|
||||
-- If a float < 1 is provided it is treated as a percentage of available window space.
|
||||
-- Margin available space is computed after accounting for padding.
|
||||
left_margin = 0,
|
||||
-- Amount of padding to add to the left of code blocks.
|
||||
-- If a float < 1 is provided it is treated as a percentage of available window space.
|
||||
left_pad = 0,
|
||||
-- Amount of padding to add to the right of code blocks when width is 'block'.
|
||||
-- If a float < 1 is provided it is treated as a percentage of available window space.
|
||||
right_pad = 0,
|
||||
-- Minimum width to use for code blocks when width is 'block'.
|
||||
min_width = 0,
|
||||
-- Determines how the top / bottom of code block are rendered.
|
||||
-- | none | do not render a border |
|
||||
-- | thick | use the same highlight as the code body |
|
||||
-- | thin | when lines are empty overlay the above & below icons |
|
||||
-- | hide | conceal lines unless language name or icon is added |
|
||||
border = "hide",
|
||||
-- Used above code blocks to fill remaining space around language.
|
||||
language_border = "█",
|
||||
-- Added to the left of language.
|
||||
language_left = "",
|
||||
-- Added to the right of language.
|
||||
language_right = "",
|
||||
-- Used above code blocks for thin border.
|
||||
above = "▄",
|
||||
-- Used below code blocks for thin border.
|
||||
below = "▀",
|
||||
-- Icon to add to the left of inline code.
|
||||
inline_left = "",
|
||||
-- Icon to add to the right of inline code.
|
||||
inline_right = "",
|
||||
-- Padding to add to the left & right of inline code.
|
||||
inline_pad = 0,
|
||||
-- Highlight for code blocks.
|
||||
highlight = "RenderMarkdownCode",
|
||||
-- Highlight for code info section, after the language.
|
||||
highlight_info = "RenderMarkdownCodeInfo",
|
||||
-- Highlight for language, overrides icon provider value.
|
||||
highlight_language = nil,
|
||||
-- Highlight for border, use false to add no highlight.
|
||||
highlight_border = "RenderMarkdownCodeBorder",
|
||||
-- Highlight for language, used if icon provider does not have a value.
|
||||
highlight_fallback = "RenderMarkdownCodeFallback",
|
||||
-- Highlight for inline code.
|
||||
highlight_inline = "RenderMarkdownCodeInline",
|
||||
},
|
||||
dash = {
|
||||
-- Turn on / off thematic break rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render dash.
|
||||
render_modes = false,
|
||||
-- Replaces '---'|'***'|'___'|'* * *' of 'thematic_break'.
|
||||
-- The icon gets repeated across the window's width.
|
||||
icon = "─",
|
||||
-- Width of the generated line.
|
||||
-- | <number> | a hard coded width value |
|
||||
-- | full | full width of the window |
|
||||
-- If a float < 1 is provided it is treated as a percentage of available window space.
|
||||
width = "full",
|
||||
-- Amount of margin to add to the left of dash.
|
||||
-- If a float < 1 is provided it is treated as a percentage of available window space.
|
||||
left_margin = 0,
|
||||
-- Highlight for the whole line generated from the icon.
|
||||
highlight = "RenderMarkdownDash",
|
||||
},
|
||||
document = {
|
||||
-- Turn on / off document rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render document.
|
||||
render_modes = false,
|
||||
-- Ability to conceal arbitrary ranges of text based on lua patterns, @see :h lua-patterns.
|
||||
-- Relies entirely on user to set patterns that handle their edge cases.
|
||||
conceal = {
|
||||
-- Matched ranges will be concealed using character level conceal.
|
||||
char_patterns = {},
|
||||
-- Matched ranges will be concealed using line level conceal.
|
||||
line_patterns = {},
|
||||
},
|
||||
},
|
||||
bullet = {
|
||||
-- Useful context to have when evaluating values.
|
||||
-- | level | how deeply nested the list is, 1-indexed |
|
||||
-- | index | how far down the item is at that level, 1-indexed |
|
||||
-- | value | text value of the marker node |
|
||||
|
||||
-- Turn on / off list bullet rendering
|
||||
enabled = true,
|
||||
-- Additional modes to render list bullets
|
||||
render_modes = false,
|
||||
-- Replaces '-'|'+'|'*' of 'list_item'.
|
||||
-- If the item is a 'checkbox' a conceal is used to hide the bullet instead.
|
||||
-- Output is evaluated depending on the type.
|
||||
-- | function | `value(context)` |
|
||||
-- | string | `value` |
|
||||
-- | string[] | `cycle(value, context.level)` |
|
||||
-- | string[][] | `clamp(cycle(value, context.level), context.index)` |
|
||||
icons = { "●", "○", "◆", "◇" },
|
||||
-- Replaces 'n.'|'n)' of 'list_item'.
|
||||
-- Output is evaluated using the same logic as 'icons'.
|
||||
ordered_icons = function(ctx)
|
||||
local value = vim.trim(ctx.value)
|
||||
local index = tonumber(value:sub(1, #value - 1))
|
||||
return ("%d."):format(index > 1 and index or ctx.index)
|
||||
end,
|
||||
-- Padding to add to the left of bullet point.
|
||||
-- Output is evaluated depending on the type.
|
||||
-- | function | `value(context)` |
|
||||
-- | integer | `value` |
|
||||
left_pad = 0,
|
||||
-- Padding to add to the right of bullet point.
|
||||
-- Output is evaluated using the same logic as 'left_pad'.
|
||||
right_pad = 0,
|
||||
-- Highlight for the bullet icon.
|
||||
-- Output is evaluated using the same logic as 'icons'.
|
||||
highlight = "RenderMarkdownBullet",
|
||||
-- Highlight for item associated with the bullet point.
|
||||
-- Output is evaluated using the same logic as 'icons'.
|
||||
scope_highlight = {},
|
||||
},
|
||||
checkbox = {
|
||||
-- Checkboxes are a special instance of a 'list_item' that start with a 'shortcut_link'.
|
||||
-- There are two special states for unchecked & checked defined in the markdown grammar.
|
||||
|
||||
-- Turn on / off checkbox state rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render checkboxes.
|
||||
render_modes = false,
|
||||
-- Render the bullet point before the checkbox.
|
||||
bullet = false,
|
||||
-- Padding to add to the right of checkboxes.
|
||||
right_pad = 1,
|
||||
unchecked = {
|
||||
-- Replaces '[ ]' of 'task_list_marker_unchecked'.
|
||||
icon = " ",
|
||||
-- Highlight for the unchecked icon.
|
||||
highlight = "RenderMarkdownUnchecked",
|
||||
-- Highlight for item associated with unchecked checkbox.
|
||||
scope_highlight = nil,
|
||||
},
|
||||
checked = {
|
||||
-- Replaces '[x]' of 'task_list_marker_checked'.
|
||||
icon = " ",
|
||||
-- Highlight for the checked icon.
|
||||
highlight = "RenderMarkdownChecked",
|
||||
-- Highlight for item associated with checked checkbox.
|
||||
scope_highlight = nil,
|
||||
},
|
||||
-- Define custom checkbox states, more involved, not part of the markdown grammar.
|
||||
-- As a result this requires neovim >= 0.10.0 since it relies on 'inline' extmarks.
|
||||
-- The key is for healthcheck and to allow users to change its values, value type below.
|
||||
-- | raw | matched against the raw text of a 'shortcut_link' |
|
||||
-- | rendered | replaces the 'raw' value when rendering |
|
||||
-- | highlight | highlight for the 'rendered' icon |
|
||||
-- | scope_highlight | optional highlight for item associated with custom checkbox |
|
||||
-- stylua: ignore
|
||||
custom = {
|
||||
todo = { raw = '[-]', rendered = ' ', highlight = 'RenderMarkdownTodo', scope_highlight = nil },
|
||||
},
|
||||
},
|
||||
quote = {
|
||||
-- Turn on / off block quote & callout rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render quotes.
|
||||
render_modes = false,
|
||||
-- Replaces '>' of 'block_quote'.
|
||||
icon = "▋",
|
||||
-- Whether to repeat icon on wrapped lines. Requires neovim >= 0.10. This will obscure text
|
||||
-- if incorrectly configured with :h 'showbreak', :h 'breakindent' and :h 'breakindentopt'.
|
||||
-- A combination of these that is likely to work follows.
|
||||
-- | showbreak | ' ' (2 spaces) |
|
||||
-- | breakindent | true |
|
||||
-- | breakindentopt | '' (empty string) |
|
||||
-- These are not validated by this plugin. If you want to avoid adding these to your main
|
||||
-- configuration then set them in win_options for this plugin.
|
||||
repeat_linebreak = false,
|
||||
-- Highlight for the quote icon.
|
||||
-- If a list is provided output is evaluated by `cycle(value, level)`.
|
||||
highlight = {
|
||||
"RenderMarkdownQuote1",
|
||||
"RenderMarkdownQuote2",
|
||||
"RenderMarkdownQuote3",
|
||||
"RenderMarkdownQuote4",
|
||||
"RenderMarkdownQuote5",
|
||||
"RenderMarkdownQuote6",
|
||||
},
|
||||
},
|
||||
pipe_table = {
|
||||
-- Turn on / off pipe table rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render pipe tables.
|
||||
render_modes = false,
|
||||
-- Pre configured settings largely for setting table border easier.
|
||||
-- | heavy | use thicker border characters |
|
||||
-- | double | use double line border characters |
|
||||
-- | round | use round border corners |
|
||||
-- | none | does nothing |
|
||||
preset = "none",
|
||||
-- Determines how the table as a whole is rendered.
|
||||
-- | none | disables all rendering |
|
||||
-- | normal | applies the 'cell' style rendering to each row of the table |
|
||||
-- | full | normal + a top & bottom line that fill out the table when lengths match |
|
||||
style = "full",
|
||||
-- Determines how individual cells of a table are rendered.
|
||||
-- | overlay | writes completely over the table, removing conceal behavior and highlights |
|
||||
-- | raw | replaces only the '|' characters in each row, leaving the cells unmodified |
|
||||
-- | padded | raw + cells are padded to maximum visual width for each column |
|
||||
-- | trimmed | padded except empty space is subtracted from visual width calculation |
|
||||
cell = "padded",
|
||||
-- Amount of space to put between cell contents and border.
|
||||
padding = 1,
|
||||
-- Minimum column width to use for padded or trimmed cell.
|
||||
min_width = 0,
|
||||
-- Characters used to replace table border.
|
||||
-- Correspond to top(3), delimiter(3), bottom(3), vertical, & horizontal.
|
||||
-- stylua: ignore
|
||||
border = {
|
||||
'┌', '┬', '┐',
|
||||
'├', '┼', '┤',
|
||||
'└', '┴', '┘',
|
||||
'│', '─',
|
||||
},
|
||||
-- Always use virtual lines for table borders instead of attempting to use empty lines.
|
||||
-- Will be automatically enabled if indentation module is enabled.
|
||||
border_virtual = false,
|
||||
-- Gets placed in delimiter row for each column, position is based on alignment.
|
||||
alignment_indicator = "━",
|
||||
-- Highlight for table heading, delimiter, and the line above.
|
||||
head = "RenderMarkdownTableHead",
|
||||
-- Highlight for everything else, main table rows and the line below.
|
||||
row = "RenderMarkdownTableRow",
|
||||
-- Highlight for inline padding used to add back concealed space.
|
||||
filler = "RenderMarkdownTableFill",
|
||||
},
|
||||
callout = {
|
||||
-- Callouts are a special instance of a 'block_quote' that start with a 'shortcut_link'.
|
||||
-- The key is for healthcheck and to allow users to change its values, value type below.
|
||||
-- | raw | matched against the raw text of a 'shortcut_link', case insensitive |
|
||||
-- | rendered | replaces the 'raw' value when rendering |
|
||||
-- | highlight | highlight for the 'rendered' text and quote markers |
|
||||
-- | quote_icon | optional override for quote.icon value for individual callout |
|
||||
-- | category | optional metadata useful for filtering |
|
||||
|
||||
note = {
|
||||
raw = "[!NOTE]",
|
||||
rendered = " Note",
|
||||
highlight = "RenderMarkdownInfo",
|
||||
category = "github",
|
||||
},
|
||||
tip = {
|
||||
raw = "[!TIP]",
|
||||
rendered = " Tip",
|
||||
highlight = "RenderMarkdownSuccess",
|
||||
category = "github",
|
||||
},
|
||||
important = {
|
||||
raw = "[!IMPORTANT]",
|
||||
rendered = " Important",
|
||||
highlight = "RenderMarkdownHint",
|
||||
category = "github",
|
||||
},
|
||||
warning = {
|
||||
raw = "[!WARNING]",
|
||||
rendered = " Warning",
|
||||
highlight = "RenderMarkdownWarn",
|
||||
category = "github",
|
||||
},
|
||||
caution = {
|
||||
raw = "[!CAUTION]",
|
||||
rendered = " Caution",
|
||||
highlight = "RenderMarkdownError",
|
||||
category = "github",
|
||||
},
|
||||
-- Obsidian: https://help.obsidian.md/Editing+and+formatting/Callouts
|
||||
abstract = {
|
||||
raw = "[!ABSTRACT]",
|
||||
rendered = " Abstract",
|
||||
highlight = "RenderMarkdownInfo",
|
||||
category = "obsidian",
|
||||
},
|
||||
summary = {
|
||||
raw = "[!SUMMARY]",
|
||||
rendered = " Summary",
|
||||
highlight = "RenderMarkdownInfo",
|
||||
category = "obsidian",
|
||||
},
|
||||
tldr = {
|
||||
raw = "[!TLDR]",
|
||||
rendered = " Tldr",
|
||||
highlight = "RenderMarkdownInfo",
|
||||
category = "obsidian",
|
||||
},
|
||||
info = {
|
||||
raw = "[!INFO]",
|
||||
rendered = " Info",
|
||||
highlight = "RenderMarkdownInfo",
|
||||
category = "obsidian",
|
||||
},
|
||||
todo = {
|
||||
raw = "[!TODO]",
|
||||
rendered = " Todo",
|
||||
highlight = "RenderMarkdownInfo",
|
||||
category = "obsidian",
|
||||
},
|
||||
hint = {
|
||||
raw = "[!HINT]",
|
||||
rendered = " Hint",
|
||||
highlight = "RenderMarkdownSuccess",
|
||||
category = "obsidian",
|
||||
},
|
||||
success = {
|
||||
raw = "[!SUCCESS]",
|
||||
rendered = " Success",
|
||||
highlight = "RenderMarkdownSuccess",
|
||||
category = "obsidian",
|
||||
},
|
||||
check = {
|
||||
raw = "[!CHECK]",
|
||||
rendered = " Check",
|
||||
highlight = "RenderMarkdownSuccess",
|
||||
category = "obsidian",
|
||||
},
|
||||
done = {
|
||||
raw = "[!DONE]",
|
||||
rendered = " Done",
|
||||
highlight = "RenderMarkdownSuccess",
|
||||
category = "obsidian",
|
||||
},
|
||||
question = {
|
||||
raw = "[!QUESTION]",
|
||||
rendered = " Question",
|
||||
highlight = "RenderMarkdownWarn",
|
||||
category = "obsidian",
|
||||
},
|
||||
help = {
|
||||
raw = "[!HELP]",
|
||||
rendered = " Help",
|
||||
highlight = "RenderMarkdownWarn",
|
||||
category = "obsidian",
|
||||
},
|
||||
faq = {
|
||||
raw = "[!FAQ]",
|
||||
rendered = " Faq",
|
||||
highlight = "RenderMarkdownWarn",
|
||||
category = "obsidian",
|
||||
},
|
||||
attention = {
|
||||
raw = "[!ATTENTION]",
|
||||
rendered = " Attention",
|
||||
highlight = "RenderMarkdownWarn",
|
||||
category = "obsidian",
|
||||
},
|
||||
failure = {
|
||||
raw = "[!FAILURE]",
|
||||
rendered = " Failure",
|
||||
highlight = "RenderMarkdownError",
|
||||
category = "obsidian",
|
||||
},
|
||||
fail = {
|
||||
raw = "[!FAIL]",
|
||||
rendered = " Fail",
|
||||
highlight = "RenderMarkdownError",
|
||||
category = "obsidian",
|
||||
},
|
||||
missing = {
|
||||
raw = "[!MISSING]",
|
||||
rendered = " Missing",
|
||||
highlight = "RenderMarkdownError",
|
||||
category = "obsidian",
|
||||
},
|
||||
danger = {
|
||||
raw = "[!DANGER]",
|
||||
rendered = " Danger",
|
||||
highlight = "RenderMarkdownError",
|
||||
category = "obsidian",
|
||||
},
|
||||
error = {
|
||||
raw = "[!ERROR]",
|
||||
rendered = " Error",
|
||||
highlight = "RenderMarkdownError",
|
||||
category = "obsidian",
|
||||
},
|
||||
bug = {
|
||||
raw = "[!BUG]",
|
||||
rendered = " Bug",
|
||||
highlight = "RenderMarkdownError",
|
||||
category = "obsidian",
|
||||
},
|
||||
example = {
|
||||
raw = "[!EXAMPLE]",
|
||||
rendered = " Example",
|
||||
highlight = "RenderMarkdownHint",
|
||||
category = "obsidian",
|
||||
},
|
||||
quote = {
|
||||
raw = "[!QUOTE]",
|
||||
rendered = " Quote",
|
||||
highlight = "RenderMarkdownQuote",
|
||||
category = "obsidian",
|
||||
},
|
||||
cite = {
|
||||
raw = "[!CITE]",
|
||||
rendered = " Cite",
|
||||
highlight = "RenderMarkdownQuote",
|
||||
category = "obsidian",
|
||||
},
|
||||
},
|
||||
link = {
|
||||
-- Turn on / off inline link icon rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render links.
|
||||
render_modes = false,
|
||||
-- How to handle footnote links, start with a '^'.
|
||||
footnote = {
|
||||
-- Turn on / off footnote rendering.
|
||||
enabled = true,
|
||||
-- Replace value with superscript equivalent.
|
||||
superscript = true,
|
||||
-- Added before link content.
|
||||
prefix = "",
|
||||
-- Added after link content.
|
||||
suffix = "",
|
||||
},
|
||||
-- Inlined with 'image' elements.
|
||||
image = " ",
|
||||
-- Inlined with 'email_autolink' elements.
|
||||
email = " ",
|
||||
-- Fallback icon for 'inline_link' and 'uri_autolink' elements.
|
||||
hyperlink = " ",
|
||||
-- Applies to the inlined icon as a fallback.
|
||||
highlight = "RenderMarkdownLink",
|
||||
-- Applies to WikiLink elements.
|
||||
wiki = {
|
||||
icon = " ",
|
||||
body = function()
|
||||
return nil
|
||||
end,
|
||||
highlight = "RenderMarkdownWikiLink",
|
||||
},
|
||||
-- Define custom destination patterns so icons can quickly inform you of what a link
|
||||
-- contains. Applies to 'inline_link', 'uri_autolink', and wikilink nodes. When multiple
|
||||
-- patterns match a link the one with the longer pattern is used.
|
||||
-- The key is for healthcheck and to allow users to change its values, value type below.
|
||||
-- | pattern | matched against the destination text |
|
||||
-- | icon | gets inlined before the link text |
|
||||
-- | kind | optional determines how pattern is checked |
|
||||
-- | | pattern | @see :h lua-patterns, is the default if not set |
|
||||
-- | | suffix | @see :h vim.endswith() |
|
||||
-- | priority | optional used when multiple match, uses pattern length if empty |
|
||||
-- | highlight | optional highlight for 'icon', uses fallback highlight if empty |
|
||||
custom = {
|
||||
web = { pattern = "^http", icon = " " },
|
||||
discord = { pattern = "discord%.com", icon = " " },
|
||||
github = { pattern = "github%.com", icon = " " },
|
||||
gitlab = { pattern = "gitlab%.com", icon = " " },
|
||||
google = { pattern = "google%.com", icon = " " },
|
||||
neovim = { pattern = "neovim%.io", icon = " " },
|
||||
reddit = { pattern = "reddit%.com", icon = " " },
|
||||
stackoverflow = { pattern = "stackoverflow%.com", icon = " " },
|
||||
wikipedia = { pattern = "wikipedia%.org", icon = " " },
|
||||
youtube = { pattern = "youtube%.com", icon = " " },
|
||||
},
|
||||
},
|
||||
sign = {
|
||||
-- Turn on / off sign rendering.
|
||||
enabled = true,
|
||||
-- Applies to background of sign text.
|
||||
highlight = "RenderMarkdownSign",
|
||||
},
|
||||
inline_highlight = {
|
||||
-- Mimics Obsidian inline highlights when content is surrounded by double equals.
|
||||
-- The equals on both ends are concealed and the inner content is highlighted.
|
||||
|
||||
-- Turn on / off inline highlight rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render inline highlights.
|
||||
render_modes = false,
|
||||
-- Applies to background of surrounded text.
|
||||
highlight = "RenderMarkdownInlineHighlight",
|
||||
},
|
||||
indent = {
|
||||
-- Mimic org-indent-mode behavior by indenting everything under a heading based on the
|
||||
-- level of the heading. Indenting starts from level 2 headings onward by default.
|
||||
|
||||
-- Turn on / off org-indent-mode.
|
||||
enabled = false,
|
||||
-- Additional modes to render indents.
|
||||
render_modes = false,
|
||||
-- Amount of additional padding added for each heading level.
|
||||
per_level = 2,
|
||||
-- Heading levels <= this value will not be indented.
|
||||
-- Use 0 to begin indenting from the very first level.
|
||||
skip_level = 1,
|
||||
-- Do not indent heading titles, only the body.
|
||||
skip_heading = false,
|
||||
-- Prefix added when indenting, one per level.
|
||||
icon = "▎",
|
||||
-- Priority to assign to extmarks.
|
||||
priority = 0,
|
||||
-- Applied to icon.
|
||||
highlight = "RenderMarkdownIndent",
|
||||
},
|
||||
html = {
|
||||
-- Turn on / off all HTML rendering.
|
||||
enabled = true,
|
||||
-- Additional modes to render HTML.
|
||||
render_modes = false,
|
||||
comment = {
|
||||
-- Turn on / off HTML comment concealing.
|
||||
conceal = true,
|
||||
-- Optional text to inline before the concealed comment.
|
||||
text = nil,
|
||||
-- Highlight for the inlined text.
|
||||
highlight = "RenderMarkdownHtmlComment",
|
||||
},
|
||||
-- HTML tags whose start and end will be hidden and icon shown.
|
||||
-- The key is matched against the tag name, value type below.
|
||||
-- | icon | gets inlined at the start |
|
||||
-- | highlight | highlight for the icon |
|
||||
tag = {},
|
||||
},
|
||||
win_options = {
|
||||
-- Window options to use that change between rendered and raw view.
|
||||
|
||||
-- @see :h 'conceallevel'
|
||||
conceallevel = {
|
||||
-- Used when not being rendered, get user setting.
|
||||
default = vim.o.conceallevel,
|
||||
-- Used when being rendered, concealed text is completely hidden.
|
||||
rendered = 3,
|
||||
},
|
||||
-- @see :h 'concealcursor'
|
||||
concealcursor = {
|
||||
-- Used when not being rendered, get user setting.
|
||||
default = vim.o.concealcursor,
|
||||
-- Used when being rendered, show concealed text in all modes.
|
||||
rendered = "",
|
||||
},
|
||||
},
|
||||
overrides = {
|
||||
-- More granular configuration mechanism, allows different aspects of buffers to have their own
|
||||
-- behavior. Values default to the top level configuration if no override is provided. Supports
|
||||
-- the following fields:
|
||||
-- enabled, max_file_size, debounce, render_modes, anti_conceal, padding, heading, paragraph,
|
||||
-- code, dash, bullet, checkbox, quote, pipe_table, callout, link, sign, indent, latex, html,
|
||||
-- win_options
|
||||
|
||||
-- Override for different buflisted values, @see :h 'buflisted'.
|
||||
buflisted = {},
|
||||
-- Override for different buftype values, @see :h 'buftype'.
|
||||
buftype = {
|
||||
nofile = {
|
||||
render_modes = true,
|
||||
padding = { highlight = "NormalFloat" },
|
||||
sign = { enabled = false },
|
||||
},
|
||||
},
|
||||
-- Override for different filetype values, @see :h 'filetype'.
|
||||
filetype = {},
|
||||
},
|
||||
custom_handlers = {
|
||||
-- Mapping from treesitter language to user defined handlers.
|
||||
-- @see [Custom Handlers](doc/custom-handlers.md)
|
||||
},
|
||||
}
|
||||
@@ -4,8 +4,23 @@ require "nvchad.mappings"
|
||||
|
||||
local map = vim.keymap.set
|
||||
|
||||
map("n", ";", ":", { desc = "CMD enter command mode" })
|
||||
map({ "n", "i", "v" }, "<leader>dg", "<cmd> lua vim.diagnostic.open_float()<cr>", { desc = "Float diagnostic" })
|
||||
|
||||
-- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>")
|
||||
|
||||
map("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" })
|
||||
map("n", "gD", "<cmd>Telescope lsp_definitions<CR>", { desc = "Go to Definitions" })
|
||||
map("n", "grr", "<cmd>Telescope lsp_references<CR>", { desc = "Go to references" })
|
||||
map("n", "<leader>da", ":lua vim.lsp.buf.code_action()<cr>", { desc = "Code actions", noremap = true, silent = true })
|
||||
map("n", "<leader>dh", ":lua vim.diagnostic.open_float()<CR>", { desc = "Show diagnostics" })
|
||||
map("n", "<leader>dj", ":lua vim.diagnostic.goto_next()<CR>", { desc = "Go to next" })
|
||||
map("n", "<leader>dk", ":lua vim.diagnostic.goto_prev()<CR>", { desc = "Go to previous" })
|
||||
-- Telescope
|
||||
map("n", "<leader>fr", ":Telescope resume<CR>", { desc = "Resume last search" })
|
||||
map("n", "<leader>fs", ":Telescope grep_string<CR>", { desc = "Find selected string" })
|
||||
map("n", "<leader>fk", ":Telescope keymaps<CR>", { desc = "Find keymaps" })
|
||||
map("n", "<leader>fd", ":Telescope diagnostics<CR>", { desc = "Diagnostics" })
|
||||
-- CodeCompanion
|
||||
map({ "n", "v" }, "<leader>ge", ":CodeCompanion<CR>", { desc = "CodeCompanion" })
|
||||
map({ "n", "v" }, "<leader>ga", ":CodeCompanionActions<CR>", { desc = "CodeCompanion actions" })
|
||||
map("n", "<leader>gc", ":CodeCompanionChat Toggle<CR>", { desc = "CodeCompanion chat" })
|
||||
map("v", "<leader>gc", ":CodeCompanionChat Add<CR>", { desc = "Send selection to CodeCompanion chat" })
|
||||
-- Remaps
|
||||
map({ "n", "v" }, "x", '"_x', { desc = "Delete char without yanking" })
|
||||
map({ "n", "v" }, "c", '"_c', { desc = "Change without yanking" })
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
return {
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
-- event = 'BufWritePre', -- uncomment for format on save
|
||||
event = "BufWritePre",
|
||||
opts = require "configs.conform",
|
||||
},
|
||||
|
||||
-- These are some examples, uncomment them if you want to see them work!
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
@@ -14,17 +13,77 @@ return {
|
||||
},
|
||||
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"olimorris/codecompanion.nvim",
|
||||
version = "^19.0.0",
|
||||
lazy = false,
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
},
|
||||
opts = function()
|
||||
return require "configs.codecompanion"
|
||||
end,
|
||||
},
|
||||
{
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
ft = { "markdown", "gitcommit", "codecompanion" },
|
||||
opts = function()
|
||||
return require "configs.render-markdown"
|
||||
end,
|
||||
},
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
---@type snacks.Config
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"vim",
|
||||
"lua",
|
||||
"vimdoc",
|
||||
"html",
|
||||
"css",
|
||||
"typescript",
|
||||
"javascript",
|
||||
},
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
bigfile = { enabled = false },
|
||||
dashboard = { enabled = false },
|
||||
explorer = { enabled = true },
|
||||
indent = { enabled = true },
|
||||
input = { enabled = true },
|
||||
picker = { enabled = false },
|
||||
notifier = { enabled = true },
|
||||
quickfile = { enabled = true },
|
||||
scope = { enabled = true },
|
||||
scroll = { enabled = true },
|
||||
statuscolumn = { enabled = true },
|
||||
words = { enabled = true },
|
||||
},
|
||||
},
|
||||
|
||||
-- {
|
||||
-- "jacob411/Ollama-Copilot",
|
||||
-- opts = {
|
||||
-- model_name = "llama3:3b",
|
||||
-- stream_suggestion = false,
|
||||
-- python_command = "python3",
|
||||
-- filetypes = { "python", "lua", "vim", "markdown", "javascript", "typescript" },
|
||||
-- ollama_model_opts = {
|
||||
-- num_predict = 40,
|
||||
-- temperature = 0.1,
|
||||
-- },
|
||||
-- keymaps = {
|
||||
-- suggestion = "<leader>os",
|
||||
-- reject = "<leader>or",
|
||||
-- insert_accept = "<Tab>",
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
|
||||
-- These are some examples, uncomment them if you want to see them work!
|
||||
--
|
||||
-- {
|
||||
-- "nvim-treesitter/nvim-treesitter",
|
||||
-- opts = {
|
||||
-- ensure_installed = {
|
||||
-- "vim", "lua", "vimdoc",
|
||||
-- "html", "css"
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
--
|
||||
}
|
||||
|
||||
@@ -0,0 +1,278 @@
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"model": "duskadiy/gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"small_model": "duskadiy/gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"instructions": ["CLAUDE.md", "AGENTS.md"],
|
||||
"share": "disabled",
|
||||
"autoupdate": "notify",
|
||||
"disabled_providers": [
|
||||
"gemini",
|
||||
"anthropic",
|
||||
"groq",
|
||||
"openrouter",
|
||||
"opencode"
|
||||
],
|
||||
"permission": {
|
||||
"edit": "deny",
|
||||
"webfetch": "ask",
|
||||
"websearch": "ask",
|
||||
"external_directory": "ask",
|
||||
"read": {
|
||||
"*": "allow",
|
||||
"**/.env*": "deny",
|
||||
"**/*.env": "deny",
|
||||
"**/*.pem": "deny",
|
||||
"**/*.key": "deny",
|
||||
"**/*.p12": "deny",
|
||||
"**/*.pfx": "deny",
|
||||
"**/*.keystore": "deny",
|
||||
"**/id_rsa*": "deny",
|
||||
"**/.ssh/**": "deny",
|
||||
"**/.aws/**": "deny",
|
||||
"**/.npmrc": "deny",
|
||||
"**/.netrc": "deny"
|
||||
},
|
||||
"bash": {
|
||||
"*": "ask",
|
||||
|
||||
"ls *": "allow",
|
||||
"cat *": "allow",
|
||||
"grep *": "allow",
|
||||
"rg *": "allow",
|
||||
"find *": "allow",
|
||||
"fd *": "allow",
|
||||
"which *": "allow",
|
||||
"file *": "allow",
|
||||
"stat *": "allow",
|
||||
"wc *": "allow",
|
||||
"tree *": "allow",
|
||||
"diff *": "allow",
|
||||
"sort *": "allow",
|
||||
"uniq *": "allow",
|
||||
"echo *": "allow",
|
||||
"pwd": "allow",
|
||||
"date": "allow",
|
||||
"whoami": "allow",
|
||||
"jq *": "allow",
|
||||
"tsc *": "allow",
|
||||
"mkdir *": "allow",
|
||||
"touch *": "allow",
|
||||
|
||||
"git *": "ask",
|
||||
"git status": "allow",
|
||||
"git status *": "allow",
|
||||
"git diff": "allow",
|
||||
"git diff *": "allow",
|
||||
"git log": "allow",
|
||||
"git log *": "allow",
|
||||
"git show *": "allow",
|
||||
"git branch": "allow",
|
||||
"git remote -v": "allow",
|
||||
|
||||
"npm *": "ask",
|
||||
"pnpm *": "ask",
|
||||
"npx *": "ask",
|
||||
"npm list": "allow",
|
||||
"npm help": "allow",
|
||||
"npm version": "allow",
|
||||
"pnpm list": "allow",
|
||||
"pnpm help": "allow",
|
||||
"npx --version": "allow",
|
||||
|
||||
"curl *": "ask",
|
||||
"wget *": "ask",
|
||||
|
||||
"rm *": "deny",
|
||||
"rmdir *": "deny",
|
||||
"dd *": "deny",
|
||||
"mkfs*": "deny",
|
||||
"shred *": "deny",
|
||||
"chmod -R *": "deny",
|
||||
"sudo *": "deny",
|
||||
"doas *": "deny",
|
||||
|
||||
"npm install*": "deny",
|
||||
"npm i": "deny",
|
||||
"npm i *": "deny",
|
||||
"npm ci*": "deny",
|
||||
"pnpm install*": "deny",
|
||||
"pnpm i": "deny",
|
||||
"pnpm i *": "deny",
|
||||
"pnpm add*": "deny",
|
||||
"yarn add*": "deny",
|
||||
"yarn install*": "deny",
|
||||
"pip install*": "deny",
|
||||
"pip3 install*": "deny",
|
||||
"pipx install*": "deny",
|
||||
"cargo install*": "deny",
|
||||
"go install*": "deny",
|
||||
"gem install*": "deny",
|
||||
"brew install*": "deny",
|
||||
|
||||
"pacman *": "deny",
|
||||
"yay *": "deny",
|
||||
"apt *": "deny",
|
||||
"apt-get *": "deny",
|
||||
"dnf *": "deny",
|
||||
|
||||
"cat .env*": "deny",
|
||||
"cat *.env": "deny",
|
||||
"cat *.pem": "deny",
|
||||
"cat *.key": "deny",
|
||||
"cat *id_rsa*": "deny",
|
||||
"cat *secret*": "deny",
|
||||
"cat *credential*": "deny",
|
||||
"cat ~/.ssh/*": "deny",
|
||||
"cat ~/.aws/*": "deny",
|
||||
"grep .env*": "deny",
|
||||
"grep * .env*": "deny"
|
||||
}
|
||||
},
|
||||
"provider": {
|
||||
"duskadiy": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "DuskaDIY",
|
||||
"options": {
|
||||
"baseURL": "https://llm.duskadiy.com/api/v1"
|
||||
},
|
||||
"models": {
|
||||
"gemma-4-26B-A4B-it-UD-IQ4_XS": {
|
||||
"name": "Gemma 4 26B (remote)",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"DeepSeek-Coder-V2-Lite-Instruct-Q8_0": {
|
||||
"name": "DeepSeek Coder V2 (remote)",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"Qwen3-Coder-30B-Instruct-IQ4_XS": {
|
||||
"name": "Qwen3 Coder A3B (remote)",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"llama.cpp": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "llamacpp",
|
||||
"options": {
|
||||
"baseURL": "http://192.168.0.204:11343/v1"
|
||||
},
|
||||
"models": {
|
||||
"DeepSeek-Coder-V2-Lite-Instruct-Q8_0": {
|
||||
"name": "DeepSeek Coder V2",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"gemma-4-E4B-it-UD-Q8_K_XL": {
|
||||
"name": "Gemma 4 E4B",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"gemma-4-26B-A4B-it-UD-IQ4_XS": {
|
||||
"name": "Gemma 4 26B",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"Qwen3-Coder-30B-Instruct-IQ4_XS": {
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"Qwen3.6-27B-UD-IQ3_XXS.gguf": {
|
||||
"name": "Qwen3.6 27B",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"agent": {
|
||||
"plan": {
|
||||
"mode": "primary",
|
||||
"model": "llama.cpp/gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"permission": {
|
||||
"edit": "deny"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"mode": "primary",
|
||||
"model": "llama.cpp/gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"permission": {
|
||||
"edit": {
|
||||
"*": "allow",
|
||||
"**/.env*": "deny",
|
||||
"**/*.env": "deny",
|
||||
"**/*.pem": "deny",
|
||||
"**/*.key": "deny",
|
||||
"**/id_rsa*": "deny",
|
||||
"**/.ssh/**": "deny",
|
||||
"**/.aws/**": "deny",
|
||||
"**/.git/**": "deny",
|
||||
"**/.npmrc": "deny",
|
||||
"**/.netrc": "deny"
|
||||
}
|
||||
}
|
||||
},
|
||||
"code-reviewer": {
|
||||
"description": "Reviews code for best practices and potential issues",
|
||||
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
|
||||
"mode": "subagent",
|
||||
"model": "llama.cpp/DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"permission": {
|
||||
"edit": "deny"
|
||||
}
|
||||
},
|
||||
"test-runner": {
|
||||
"description": "Runs and interprets test suites",
|
||||
"prompt": "You are a test runner. Focus on identifying failing tests and providing clear reproduction steps.",
|
||||
"mode": "subagent",
|
||||
"model": "llama.cpp/DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"permission": {
|
||||
"edit": "deny"
|
||||
}
|
||||
},
|
||||
"doc-writer": {
|
||||
"description": "Maintains project documentation and docstrings",
|
||||
"prompt": "You are a technical writer. Focus on clarity, accuracy, and keeping documentation in sync with code changes.",
|
||||
"mode": "subagent",
|
||||
"model": "llama.cpp/gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"permission": {
|
||||
"edit": {
|
||||
"*": "deny",
|
||||
"**/*.md": "allow",
|
||||
"**/*.mdx": "allow",
|
||||
"**/*.markdown": "allow",
|
||||
"**/*.txt": "allow",
|
||||
"**/*.rst": "allow"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security-auditor": {
|
||||
"description": "Scans for security vulnerabilities and hardcoded secrets",
|
||||
"prompt": "You are a security auditor. Focus on OWASP principles, secret detection, and dependency vulnerabilities.",
|
||||
"mode": "subagent",
|
||||
"model": "llama.cpp/DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"permission": {
|
||||
"edit": "deny"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,48 +1,68 @@
|
||||
Chillout (Groove Salad - SomaFM),http://somafm.com/startstream=groovesalad.pls,,
|
||||
Alternative (BAGeL Radio),https://ais-sa3.cdnstream1.com/2606_128.aac,,
|
||||
Ambient Psychill [1.FM],http://strm112.1.fm/ambientpsy_mobile_mp3,,
|
||||
Goa Psychill [SomaFM],http://ice3.somafm.com/suburbsofgoa-128-mp3,,
|
||||
Chilli Zet,https://ch.cdn.eurozet.pl/chi-net.mp3,,
|
||||
Chilltrax,http://server1.chilltrax.com:9000/,,
|
||||
Chillout [psyradio*fm],http://streamer.psyradio.org:8020/;listen.mp3,,
|
||||
Chillout [Psyndora],http://cast.magicstreams.gr:9125/stream,,
|
||||
Chillout (Groove Salad) [SomaFM],https://hls.somafm.com/hls/groovesalad/320k/program.m3u8,,
|
||||
Groove Salad Classic (Early 2000s Ambient),https://somafm.com/gsclassic.pls,,
|
||||
Ambient and Experimental [n5MD],https://somafm.com/n5md.pls,,
|
||||
Suomisaundi [Caprice],http://79.120.77.11:8004/suomisaundi,,
|
||||
Vaporwaves [SomaFM],https://somafm.com/vaporwaves.pls,,
|
||||
Cliq Hop [SomaFM],http://somafm.com/startstream=cliqhop.pls,,
|
||||
Lounge (Illinois Street) [SomaFM],http://somafm.com/illstreet.pls,,
|
||||
Space [SomaFM],http://ice.somafm.com/spacestation,,
|
||||
Space Music [Synphaera],https://somafm.com/synphaera.pls,,
|
||||
Deep Space [SomaFM], http://ice.somafm.com/deepspaceone,,
|
||||
Downtempo (Secret Agent) [SomaFM],http://somafm.com/secretagent.pls,,
|
||||
Dub Step (Beyond) [SomaFM],http://somafm.com/dubstep.pls,,
|
||||
Dub Techno [Schizoid], http://94.130.113.214:8000/dubtechno,,
|
||||
Dubplate.fm,https://sc2.dubplate.fm/radio/8030/dnb/uhifi,,
|
||||
MansionNET,https://radio.inthemansion.com/listen/mansionnet/radio.mp3,,
|
||||
Liquid funk [Caprice], http://79.111.119.111:9115/,,
|
||||
Liquid funk,https://radiorecord.hostingradio.ru/liquidfunk96.aacp,,
|
||||
Liqui Radio,https://stream-162.zeno.fm/ug59eq099yzuv?zs=zaqVusVSQuWMN3O5gnh8xA,,
|
||||
Liquid DnB,http://95.47.244.172:8000/live,,
|
||||
Acid Techno,https://radiorecord.hostingradio.ru/techno96.aacp,,
|
||||
Dark Techno [Caprice],http://79.111.14.76:8000/darktechno,,
|
||||
Deep Techno/House [1.FM],http://strm112.1.fm/deeptech_mobile_mp3,,
|
||||
90s90s Techno,http://streams.90s90s.de/techno/mp3-192/radiode/,,
|
||||
The Trip: [SomaFM],https://somafm.com/thetrip.pls,,
|
||||
ToXoRs minimalRADIO,http://95.216.245.239:8000/stream/1/,,
|
||||
Minimalradio.de,https://azurafallback.de:8010/320.mp3,,
|
||||
Minimal [Technolovers],https://stream.technolovers.fm/minimal,,
|
||||
Suomisaundi / Freeform Psytrance / Spugedelic Trance [Caprice],http://79.120.77.11:8000/suomisaundi,,
|
||||
Psychedelic Secret,https://solid48.streamupsolutions.com/proxy/bglsokon?mp=/=stream,,
|
||||
Full-on psytrance [Caprice],http://79.111.14.76:9019/,,
|
||||
Magnathospere Morning,https://listen7.myradio24.com/magnatos,,
|
||||
Psytrance [Psyndora],https://cast.magicstreams.gr/sc/psyndora/stream,,
|
||||
Hirschmilch Psytrance,https://hirschmilch.de:7001/psytrance.mp3,,
|
||||
Bluffphonica,http://bluffphonica.stream.laut.fm/bluffphonica?pl=m3u&t302=2024-09-17_23-09-40&uuid=ce6a1b0b-1654-4d08-afbc-31b028f8f23b,,
|
||||
Radio Caprice - Suomisaundi,http://79.120.77.11:8004/suomisaundi,,
|
||||
psyradio * fm - chillout,http://streamer.psyradio.org:8020/;listen.mp3,,
|
||||
Full-on psytrance,http://79.111.14.76:9019/,,
|
||||
Vasilis Cfu psy trance,https://stream-40.zeno.fm/c2t7d9p6mf9uv?zs=_D-E0xBPQcGB_V9n7LLuqA,,
|
||||
BOM Psytrance [1.FM],http://strm112.1.fm/psytrance_mobile_mp3,,
|
||||
TL_Psytrance,https://stream.technolovers.fm/psytrance,,
|
||||
Record Goa Psy,https://radiorecord.hostingradio.ru/goa96.aacp,,
|
||||
1.FM - BOM Psytrance Radio,http://strm112.1.fm/psytrance_mobile_mp3,,
|
||||
Anima Amoris [Goa Psy Trance],http://amoris.sknt.ru/goa.mp3,,
|
||||
DMT FM Psytrance 24/7,https://dc1.serverse.com/proxy/ywycfrxn/live,,
|
||||
radiOzora Trance,http://trance.out.airtime.pro:8000/trance_a,,
|
||||
Psyndora Psytrance,http://cast.magicstreams.gr:9111/stream,,
|
||||
Celtic (ThistleRadio - SomaFM),http://somafm.com/thistle.pls,,
|
||||
Groove Salad Classic (Early 2000s Ambient),https://somafm.com/gsclassic.pls,,
|
||||
n5MD Radio (Ambient and Experimental),https://somafm.com/n5md.pls,,
|
||||
Vaporwaves [SomaFM],https://somafm.com/vaporwaves.pls,,
|
||||
Commodore 64 Remixes (Slay Radio),http://www.slayradio.org/tune_in.php/128kbps/listen.m3u,,
|
||||
Covers (SomaFM),http://somafm.com/covers.pls,,
|
||||
Downtempo (Secret Agent - SomaFM),http://somafm.com/secretagent.pls,,
|
||||
Dub Step (Dub Step Beyond - SomaFM),http://somafm.com/dubstep.pls,,
|
||||
Electronic/Dance (Electronic Culture),http://www.shouted.fm/tunein/electro-dsl.m3u,,
|
||||
House (Beat Blender - SomaFM),http://somafm.com/startstream=beatblender.pls,,
|
||||
Indie Pop (Indie Pop Rocks! - SomaFM),http://somafm.com/indiepop130.pls,,
|
||||
Intelligent dance music (Cliq Hop - SomaFM),http://somafm.com/startstream=cliqhop.pls,,
|
||||
Jazz (Sonic Universe - SomaFM),http://somafm.com/startstream=sonicuniverse.pls,,
|
||||
Lounge (Illinois Street Lounge - SomaFM),http://somafm.com/illstreet.pls,,
|
||||
The Trip: [SomaFM],https://somafm.com/thetrip.pls,,
|
||||
Pop (PopTron! - SomaFM),http://somafm.com/poptron.pls,,
|
||||
Psytrance 24/7 [DMT FM],https://dc1.serverse.com/proxy/ywycfrxn/live,,
|
||||
Trance [RadiOzora],http://trance.out.airtime.pro:8000/trance_a,,
|
||||
Uplifting trance [Technolovers],https://0nlineradio.stream13.radiohost.de/technolovers-uplifting-trance,,
|
||||
Uplift [RadioRecord],https://radiorecord.hostingradio.ru/uplift96.aacp,,
|
||||
Alternative [BAGeL],https://ais-sa3.cdnstream1.com/2606_128.aac,,
|
||||
Celtic (ThistleRadio) [SomaFM],http://somafm.com/thistle.pls,,
|
||||
Commodore 64 Remixes [Slay],http://www.slayradio.org/tune_in.php/128kbps/listen.m3u,,
|
||||
Covers [SomaFM],http://somafm.com/covers.pls,,
|
||||
Indie Pop [SomaFM],http://somafm.com/indiepop130.pls,,
|
||||
Jazz (Sonic Universe) [SomaFM],http://somafm.com/startstream=sonicuniverse.pls,,
|
||||
Pop (PopTron) [SomaFM],http://somafm.com/poptron.pls,,
|
||||
Pop/Rock/Urban (Frequence 3 - Paris),http://streams.frequence3.net/hd-mp3.m3u,,
|
||||
Progressive (Tags Trance Trip - SomaFM),http://somafm.com/tagstrance.pls,,
|
||||
Progressive (Tags Trance Trip) [SomaFM],http://somafm.com/tagstrance.pls,,
|
||||
Public Radio (NPR National Public Radio Stream),https://npr-ice.streamguys1.com/live.mp3,,
|
||||
Reggae Dancehall (Ragga Kings),https://raggakings.radio:8443/stream.ogg,,
|
||||
Heavyweight Reggae,https://somafm.com/reggae.pls,,
|
||||
Rock (Digitalis - SomaFM),http://somafm.com/digitalis.pls,,
|
||||
Rock (Digitalis) [SomaFM],http://somafm.com/digitalis.pls,,
|
||||
Metal Detector,https://somafm.com/metal.pls,,
|
||||
DanceUK,https://www.internet-radio.com/servers/tools/playlistgenerator/?u=http://uk2.internet-radio.com:8024/listen.pls&t=.pls,,
|
||||
JazzGroove,https://www.internet-radio.com/servers/tools/playlistgenerator/?u=http://199.180.72.2:8015/listen.pls?sid=1&t=.pls,,
|
||||
Radio Paradise - Main Mix,http://stream.radioparadise.com/aac-128,,
|
||||
Radio Paradise - Mellow Mix,http://stream.radioparadise.com/mellow-128,,
|
||||
Radio Paradise - Rock Mix,http://stream.radioparadise.com/rock-128,,
|
||||
Radio Paradise - Eclectic Mix,http://stream.radioparadise.com/eclectic-128,,
|
||||
Main Mix [Paradise],http://stream.radioparadise.com/aac-128,,
|
||||
Mellow Mix [Paradise] ,http://stream.radioparadise.com/mellow-128,,
|
||||
Rock Mix [Paradise],http://stream.radioparadise.com/rock-128,,
|
||||
Eclectic Mix [Paradise],http://stream.radioparadise.com/eclectic-128,,
|
||||
Echoes of Bluemars,http://streams.echoesofbluemars.org:8000/bluemars.m3u,,
|
||||
Echoes of Bluemars - Cryosleep,http://streams.echoesofbluemars.org:8000/cryosleep.m3u,,
|
||||
Echoes of Bluemars - Voices from Within,http://streams.echoesofbluemars.org:8000/voicesfromwithin.m3u,,
|
||||
Synphaera Radio (Space Music),https://somafm.com/synphaera.pls,,
|
||||
Cryosleep [Echoes of Bluemars] ,http://streams.echoesofbluemars.org:8000/cryosleep.m3u,,
|
||||
Voices from Within [Echoes of Bluemars],http://streams.echoesofbluemars.org:8000/voicesfromwithin.m3u,,
|
||||
|
||||
|
@@ -0,0 +1,242 @@
|
||||
# TUIOS Configuration File
|
||||
# This file allows you to customize appearance and keybindings
|
||||
#
|
||||
# Configuration location: /home/coja/.config/tuios/config.toml
|
||||
# Documentation: https://github.com/Gaurav-Gosain/tuios
|
||||
# For keybindings documentation, run: tuios keybinds list
|
||||
|
||||
# ============================================================================
|
||||
# APPEARANCE SETTINGS
|
||||
# ============================================================================
|
||||
# border_style: Window border style
|
||||
# Options: rounded, normal, thick, double, hidden, block, ascii,
|
||||
# outer-half-block, inner-half-block
|
||||
# Default: rounded
|
||||
#
|
||||
# dockbar_position: Position of the dockbar
|
||||
# Options: bottom, top, hidden
|
||||
# Default: bottom
|
||||
#
|
||||
# hide_window_buttons: Hide window control buttons (minimize, maximize, close)
|
||||
# Options: true, false
|
||||
# Default: false
|
||||
#
|
||||
# scrollback_lines: Number of lines to keep in scrollback buffer
|
||||
# Range: 100 to 1000000
|
||||
# Default: 10000
|
||||
# ============================================================================
|
||||
|
||||
[appearance]
|
||||
border_style = 'rounded'
|
||||
hide_window_buttons = false
|
||||
scrollback_lines = 10000
|
||||
dockbar_position = 'bottom'
|
||||
preferred_shell = ''
|
||||
whichkey_position = ''
|
||||
window_title_position = ''
|
||||
hide_clock = false
|
||||
animations_enabled = false
|
||||
show_cpu = true
|
||||
show_ram = true
|
||||
confirm_quit = true
|
||||
# shared_borders=true
|
||||
|
||||
[keybindings]
|
||||
leader_key = 'ctrl+b'
|
||||
# leader_key = 'shift+space'
|
||||
|
||||
[keybindings.window_management]
|
||||
close_window = ['w', 'x']
|
||||
minimize_window = ['m']
|
||||
new_window = ['n']
|
||||
next_window = ['tab']
|
||||
prev_window = ['shift+tab']
|
||||
rename_window = ['r']
|
||||
restore_all = ['M']
|
||||
select_window_1 = ['1']
|
||||
select_window_2 = ['2']
|
||||
select_window_3 = ['3']
|
||||
select_window_4 = ['4']
|
||||
select_window_5 = ['5']
|
||||
select_window_6 = ['6']
|
||||
select_window_7 = ['7']
|
||||
select_window_8 = ['8']
|
||||
select_window_9 = ['9']
|
||||
|
||||
[keybindings.workspaces]
|
||||
move_and_follow_1 = ['alt+shift+1']
|
||||
move_and_follow_2 = ['alt+shift+2']
|
||||
move_and_follow_3 = ['alt+shift+3']
|
||||
move_and_follow_4 = ['alt+shift+4']
|
||||
move_and_follow_5 = ['alt+shift+5']
|
||||
move_and_follow_6 = ['alt+shift+6']
|
||||
move_and_follow_7 = ['alt+shift+7']
|
||||
move_and_follow_8 = ['alt+shift+8']
|
||||
move_and_follow_9 = ['alt+shift+9']
|
||||
switch_workspace_1 = ['alt+1']
|
||||
switch_workspace_2 = ['alt+2']
|
||||
switch_workspace_3 = ['alt+3']
|
||||
switch_workspace_4 = ['alt+4']
|
||||
switch_workspace_5 = ['alt+5']
|
||||
switch_workspace_6 = ['alt+6']
|
||||
switch_workspace_7 = ['alt+7']
|
||||
switch_workspace_8 = ['alt+8']
|
||||
switch_workspace_9 = ['alt+9']
|
||||
|
||||
[keybindings.layout]
|
||||
equalize_splits = ['=']
|
||||
preselect_down = ['alt+j']
|
||||
preselect_left = ['alt+h']
|
||||
preselect_right = ['alt+l']
|
||||
preselect_up = ['alt+k']
|
||||
resize_height_grow = ['}', 'shift+]']
|
||||
resize_height_grow_top = [']']
|
||||
resize_height_shrink = ['{', 'shift+[']
|
||||
resize_height_shrink_top = ['[']
|
||||
resize_master_grow = ['>', 'shift+.']
|
||||
resize_master_grow_left = ['.']
|
||||
resize_master_shrink = ['<', 'shift+,']
|
||||
resize_master_shrink_left = [',']
|
||||
rotate_split = ['R']
|
||||
snap_corner_1 = ['1']
|
||||
snap_corner_2 = ['2']
|
||||
snap_corner_3 = ['3']
|
||||
snap_corner_4 = ['4']
|
||||
snap_fullscreen = ['f']
|
||||
snap_left = ['h']
|
||||
snap_right = ['l']
|
||||
split_horizontal = ['-']
|
||||
split_vertical = ['|', '\']
|
||||
swap_down = ['J', 'ctrl+down']
|
||||
swap_left = ['H', 'ctrl+left']
|
||||
swap_right = ['L', 'ctrl+right']
|
||||
swap_up = ['K', 'ctrl+up']
|
||||
toggle_tiling = ['t']
|
||||
unsnap = ['u']
|
||||
|
||||
[keybindings.mode_control]
|
||||
enter_terminal_mode = ['i', 'enter']
|
||||
enter_window_mode = ['esc', 'ctrl+z']
|
||||
quit = ['q']
|
||||
toggle_help = ['?']
|
||||
|
||||
[keybindings.system]
|
||||
|
||||
[keybindings.navigation]
|
||||
extend_down = ['shift+down']
|
||||
extend_left = ['shift+left']
|
||||
extend_right = ['shift+right']
|
||||
extend_up = ['shift+up']
|
||||
nav_down = ['down']
|
||||
nav_left = ['left']
|
||||
nav_right = ['right']
|
||||
nav_up = ['up']
|
||||
|
||||
[keybindings.restore_minimized]
|
||||
restore_minimized_1 = ['shift+1', '!']
|
||||
restore_minimized_2 = ['shift+2', '@']
|
||||
restore_minimized_3 = ['shift+3', '#']
|
||||
restore_minimized_4 = ['shift+4', '$']
|
||||
restore_minimized_5 = ['shift+5', '%']
|
||||
restore_minimized_6 = ['shift+6', '^']
|
||||
restore_minimized_7 = ['shift+7', '&']
|
||||
restore_minimized_8 = ['shift+8', '*']
|
||||
restore_minimized_9 = ['shift+9', '(']
|
||||
|
||||
[keybindings.prefix_mode]
|
||||
prefix_close_window = ['x']
|
||||
prefix_debug = ['D']
|
||||
prefix_detach = ['d', 'esc']
|
||||
prefix_equalize_splits = ['=']
|
||||
prefix_fullscreen = ['z']
|
||||
prefix_help = ['?']
|
||||
prefix_minimize = ['m']
|
||||
prefix_new_window = ['c']
|
||||
prefix_next_window = ['n', 'tab']
|
||||
prefix_prev_window = ['p', 'shift+tab']
|
||||
prefix_quit = ['q']
|
||||
prefix_rename_window = [',', 'r']
|
||||
prefix_rotate_split = ['R']
|
||||
prefix_select_0 = ['0']
|
||||
prefix_select_1 = ['1']
|
||||
prefix_select_2 = ['2']
|
||||
prefix_select_3 = ['3']
|
||||
prefix_select_4 = ['4']
|
||||
prefix_select_5 = ['5']
|
||||
prefix_select_6 = ['6']
|
||||
prefix_select_7 = ['7']
|
||||
prefix_select_8 = ['8']
|
||||
prefix_select_9 = ['9']
|
||||
prefix_selection = ['[']
|
||||
prefix_split_horizontal = ['-']
|
||||
prefix_split_vertical = ['|', '\']
|
||||
prefix_tape = ['T']
|
||||
prefix_toggle_tiling = ['space']
|
||||
prefix_window = ['t']
|
||||
prefix_workspace = ['w']
|
||||
|
||||
[keybindings.window_prefix]
|
||||
window_prefix_cancel = ['esc']
|
||||
window_prefix_close = ['x']
|
||||
window_prefix_new = ['n']
|
||||
window_prefix_next = ['tab']
|
||||
window_prefix_prev = ['shift+tab']
|
||||
window_prefix_rename = ['r']
|
||||
window_prefix_tiling = ['t']
|
||||
|
||||
[keybindings.minimize_prefix]
|
||||
minimize_prefix_cancel = ['esc']
|
||||
minimize_prefix_focused = ['m']
|
||||
minimize_prefix_restore_1 = ['1']
|
||||
minimize_prefix_restore_2 = ['2']
|
||||
minimize_prefix_restore_3 = ['3']
|
||||
minimize_prefix_restore_4 = ['4']
|
||||
minimize_prefix_restore_5 = ['5']
|
||||
minimize_prefix_restore_6 = ['6']
|
||||
minimize_prefix_restore_7 = ['7']
|
||||
minimize_prefix_restore_8 = ['8']
|
||||
minimize_prefix_restore_9 = ['9']
|
||||
minimize_prefix_restore_all = ['M']
|
||||
|
||||
[keybindings.workspace_prefix]
|
||||
workspace_prefix_cancel = ['esc']
|
||||
workspace_prefix_move_1 = ['!']
|
||||
workspace_prefix_move_2 = ['@']
|
||||
workspace_prefix_move_3 = ['#']
|
||||
workspace_prefix_move_4 = ['$']
|
||||
workspace_prefix_move_5 = ['%']
|
||||
workspace_prefix_move_6 = ['^']
|
||||
workspace_prefix_move_7 = ['&']
|
||||
workspace_prefix_move_8 = ['*']
|
||||
workspace_prefix_move_9 = ['(']
|
||||
workspace_prefix_switch_1 = ['1']
|
||||
workspace_prefix_switch_2 = ['2']
|
||||
workspace_prefix_switch_3 = ['3']
|
||||
workspace_prefix_switch_4 = ['4']
|
||||
workspace_prefix_switch_5 = ['5']
|
||||
workspace_prefix_switch_6 = ['6']
|
||||
workspace_prefix_switch_7 = ['7']
|
||||
workspace_prefix_switch_8 = ['8']
|
||||
workspace_prefix_switch_9 = ['9']
|
||||
|
||||
[keybindings.debug_prefix]
|
||||
debug_prefix_animations = ['a']
|
||||
debug_prefix_cache = ['c']
|
||||
debug_prefix_cancel = ['esc']
|
||||
debug_prefix_logs = ['l']
|
||||
|
||||
[keybindings.tape_prefix]
|
||||
tape_prefix_cancel = ['esc']
|
||||
tape_prefix_manager = ['m']
|
||||
tape_prefix_record = ['r']
|
||||
tape_prefix_stop = ['s']
|
||||
|
||||
[keybindings.terminal_mode]
|
||||
terminal_exit_mode = ['alt+esc']
|
||||
terminal_next_window = ['alt+n']
|
||||
terminal_prev_window = ['alt+p']
|
||||
|
||||
[daemon]
|
||||
log_level = 'off'
|
||||
default_codec = 'gob'
|
||||
socket_path = ''
|
||||
@@ -59,6 +59,7 @@
|
||||
"(.*)Gajim": " Gajim"
|
||||
}
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"window-rewrite-default":"",
|
||||
"disable-scroll": true,
|
||||
@@ -69,6 +70,16 @@
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {}
|
||||
// "format":"{icon}",
|
||||
// "format-icons": {
|
||||
// "1": "",
|
||||
// "2": "",
|
||||
// "3": "",
|
||||
// "4": "",
|
||||
// "5": "",
|
||||
// "6": ""
|
||||
// }
|
||||
// }
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
@@ -82,6 +93,7 @@
|
||||
"tooltip-format-enumerate-connected": "{device_alias}",
|
||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{icon} {device_battery_percentage}%"
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"interval": 10,
|
||||
"format": " {usage}%",
|
||||
@@ -152,6 +164,7 @@
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": "{:%H:%M}",
|
||||
"rotate": 0,
|
||||
@@ -260,6 +273,8 @@
|
||||
"interval": 1
|
||||
},
|
||||
|
||||
//not used atm
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
@@ -312,6 +327,7 @@
|
||||
"on-scroll-down": "brightnessctl set 1%-",
|
||||
"min-length": 6
|
||||
},
|
||||
|
||||
// modules for padding //
|
||||
|
||||
"custom/l_end": {
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
"format-disconnected": " ",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"format-alt": "<span foreground='#99ffdd'> {bandwidthDownBytes}</span> <span foreground='#ffcc66'> {bandwidthUpBytes}</span>",
|
||||
"interval": 2,
|
||||
},
|
||||
"interval": 2
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ modmap:
|
||||
# keymap:
|
||||
# - name: Alt+hjkl to Arrows
|
||||
# remap:
|
||||
# # Alt-H: Alt+left #back
|
||||
# Alt-h: left
|
||||
# Alt-l: right
|
||||
# Alt-j: down
|
||||
|
||||
@@ -0,0 +1,497 @@
|
||||
//
|
||||
// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/coja/.config/zellij/config.kdl.bak
|
||||
//
|
||||
|
||||
keybinds clear-defaults=true {
|
||||
locked {
|
||||
bind "Alt g" { SwitchToMode "normal"; }
|
||||
}
|
||||
pane {
|
||||
bind "h" "left" { MoveFocus "left"; }
|
||||
bind "j" "down" { MoveFocus "down"; }
|
||||
bind "k" "up" { MoveFocus "up"; }
|
||||
bind "j" "right" { MoveFocus "right"; }
|
||||
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
|
||||
bind "d" { NewPane "down"; SwitchToMode "normal"; }
|
||||
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
|
||||
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
||||
bind "h" { MoveFocus "left"; }
|
||||
bind "i" { TogglePanePinned; SwitchToMode "normal"; }
|
||||
bind "j" { MoveFocus "down"; }
|
||||
bind "k" { MoveFocus "up"; }
|
||||
bind "l" { MoveFocus "right"; }
|
||||
bind "n" { NewPane; SwitchToMode "normal"; }
|
||||
bind "p" { SwitchFocus; }
|
||||
bind "Alt p" { SwitchToMode "normal"; }
|
||||
bind "r" { NewPane "right"; SwitchToMode "normal"; }
|
||||
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
|
||||
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
|
||||
}
|
||||
tab {
|
||||
bind "h" "left" { GoToPreviousTab; }
|
||||
bind "j" "down" { GoToNextTab; }
|
||||
bind "k" "up" { GoToPreviousTab; }
|
||||
bind "j" "right" { GoToNextTab; }
|
||||
bind "1" { GoToTab 1; SwitchToMode "normal"; }
|
||||
bind "2" { GoToTab 2; SwitchToMode "normal"; }
|
||||
bind "3" { GoToTab 3; SwitchToMode "normal"; }
|
||||
bind "4" { GoToTab 4; SwitchToMode "normal"; }
|
||||
bind "5" { GoToTab 5; SwitchToMode "normal"; }
|
||||
bind "6" { GoToTab 6; SwitchToMode "normal"; }
|
||||
bind "7" { GoToTab 7; SwitchToMode "normal"; }
|
||||
bind "8" { GoToTab 8; SwitchToMode "normal"; }
|
||||
bind "9" { GoToTab 9; SwitchToMode "normal"; }
|
||||
bind "[" { BreakPaneLeft; SwitchToMode "normal"; }
|
||||
bind "]" { BreakPaneRight; SwitchToMode "normal"; }
|
||||
bind "b" { BreakPane; SwitchToMode "normal"; }
|
||||
bind "h" { GoToPreviousTab; }
|
||||
bind "j" { GoToNextTab; }
|
||||
bind "k" { GoToPreviousTab; }
|
||||
bind "l" { GoToNextTab; }
|
||||
bind "n" { NewTab; SwitchToMode "normal"; }
|
||||
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
|
||||
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
|
||||
bind "Alt t" { SwitchToMode "normal"; }
|
||||
bind "x" { CloseTab; SwitchToMode "normal"; }
|
||||
bind "tab" { ToggleTab; }
|
||||
}
|
||||
resize {
|
||||
bind "h" "left" { Resize "Increase left"; }
|
||||
bind "j" "down" { Resize "Increase down"; }
|
||||
bind "k" "up" { Resize "Increase up"; }
|
||||
bind "j" "right" { Resize "Increase right"; }
|
||||
bind "+" { Resize "Increase"; }
|
||||
bind "-" { Resize "Decrease"; }
|
||||
bind "=" { Resize "Increase"; }
|
||||
bind "H" { Resize "Decrease left"; }
|
||||
bind "J" { Resize "Decrease down"; }
|
||||
bind "K" { Resize "Decrease up"; }
|
||||
bind "L" { Resize "Decrease right"; }
|
||||
bind "h" { Resize "Increase left"; }
|
||||
bind "j" { Resize "Increase down"; }
|
||||
bind "k" { Resize "Increase up"; }
|
||||
bind "l" { Resize "Increase right"; }
|
||||
bind "Alt n" { SwitchToMode "normal"; }
|
||||
}
|
||||
move {
|
||||
bind "h" "left" { MovePane "left"; }
|
||||
bind "j" "down" { MovePane "down"; }
|
||||
bind "k" "up" { MovePane "up"; }
|
||||
bind "j" "right" { MovePane "right"; }
|
||||
bind "h" { MovePane "left"; }
|
||||
bind "Alt h" { SwitchToMode "normal"; }
|
||||
bind "j" { MovePane "down"; }
|
||||
bind "k" { MovePane "up"; }
|
||||
bind "l" { MovePane "right"; }
|
||||
bind "n" { MovePane; }
|
||||
bind "p" { MovePaneBackwards; }
|
||||
bind "tab" { MovePane; }
|
||||
}
|
||||
scroll {
|
||||
bind "Alt left" { MoveFocusOrTab "left"; SwitchToMode "normal"; }
|
||||
bind "Alt down" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||
bind "Alt up" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||
bind "Alt right" { MoveFocusOrTab "right"; SwitchToMode "normal"; }
|
||||
bind "e" { EditScrollback; SwitchToMode "normal"; }
|
||||
bind "Alt j" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||
bind "Alt k" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||
bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "normal"; }
|
||||
bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
|
||||
bind "Alt s" { SwitchToMode "normal"; }
|
||||
}
|
||||
search {
|
||||
bind "c" { SearchToggleOption "CaseSensitivity"; }
|
||||
bind "n" { Search "down"; }
|
||||
bind "o" { SearchToggleOption "WholeWord"; }
|
||||
bind "p" { Search "up"; }
|
||||
bind "Ctrl s" { SwitchToMode "normal"; }
|
||||
bind "w" { SearchToggleOption "Wrap"; }
|
||||
}
|
||||
session {
|
||||
bind "a" {
|
||||
LaunchOrFocusPlugin "zellij:about" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "c" {
|
||||
LaunchOrFocusPlugin "configuration" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "Alt o" { SwitchToMode "normal"; }
|
||||
bind "p" {
|
||||
LaunchOrFocusPlugin "plugin-manager" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "w" {
|
||||
LaunchOrFocusPlugin "session-manager" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
}
|
||||
shared_among "normal" "locked" {
|
||||
bind "Ctrl Alt left" { MoveFocusOrTab "left"; }
|
||||
bind "Ctrl Alt down" { MoveFocus "down"; }
|
||||
bind "Ctrl Alt up" { MoveFocus "up"; }
|
||||
bind "Ctrl Alt right" { MoveFocusOrTab "right"; }
|
||||
bind "Ctrl Alt +" { Resize "Increase"; }
|
||||
bind "Ctrl Alt -" { Resize "Decrease"; }
|
||||
bind "Ctrl Alt =" { Resize "Increase"; }
|
||||
bind "Ctrl Alt [" { PreviousSwapLayout; }
|
||||
bind "Ctrl Alt ]" { NextSwapLayout; }
|
||||
bind "Ctrl Alt f" { ToggleFloatingPanes; }
|
||||
bind "Ctrl Alt h" { MoveFocusOrTab "left"; }
|
||||
bind "Ctrl Alt i" { MoveTab "left"; }
|
||||
bind "Ctrl Alt j" { MoveFocus "down"; }
|
||||
bind "Ctrl Alt k" { MoveFocus "up"; }
|
||||
bind "Ctrl Alt l" { MoveFocusOrTab "right"; }
|
||||
bind "Ctrl Alt n" { NewPane; }
|
||||
bind "Ctrl Alt o" { MoveTab "right"; }
|
||||
}
|
||||
shared_except "locked" "entersearch" "renametab" "renamepane" "move" "prompt" "tmux" {
|
||||
bind "Alt h" { SwitchToMode "move"; }
|
||||
}
|
||||
shared_except "locked" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
|
||||
bind "Alt g" { SwitchToMode "locked"; }
|
||||
bind "Alt q" { Quit; }
|
||||
}
|
||||
shared_except "locked" "entersearch" "renametab" "renamepane" "session" "prompt" "tmux" {
|
||||
bind "Alt o" { SwitchToMode "session"; }
|
||||
}
|
||||
shared_except "locked" "scroll" "search" "tmux" {
|
||||
bind "Ctrl b" { SwitchToMode "tmux"; }
|
||||
}
|
||||
shared_except "locked" "scroll" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
|
||||
bind "Alt s" { SwitchToMode "scroll"; }
|
||||
}
|
||||
shared_except "locked" "tab" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
|
||||
bind "Alt t" { SwitchToMode "tab"; }
|
||||
}
|
||||
shared_except "locked" "pane" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
|
||||
bind "Alt p" { SwitchToMode "pane"; }
|
||||
}
|
||||
shared_except "locked" "resize" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
|
||||
bind "Alt n" { SwitchToMode "resize"; }
|
||||
}
|
||||
shared_except "normal" "locked" {
|
||||
bind "Alt +" { Resize "Increase"; }
|
||||
bind "Alt -" { Resize "Decrease"; }
|
||||
bind "Alt =" { Resize "Increase"; }
|
||||
bind "Alt [" { PreviousSwapLayout; }
|
||||
bind "Alt ]" { NextSwapLayout; }
|
||||
bind "Alt f" { ToggleFloatingPanes; }
|
||||
bind "Alt i" { MoveTab "left"; }
|
||||
}
|
||||
shared_except "normal" "locked" "entersearch" {
|
||||
bind "enter" { SwitchToMode "normal"; }
|
||||
}
|
||||
shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
|
||||
bind "esc" { SwitchToMode "normal"; }
|
||||
}
|
||||
shared_except "normal" "locked" "scroll" {
|
||||
bind "Alt left" { MoveFocusOrTab "left"; }
|
||||
bind "Alt down" { MoveFocus "down"; }
|
||||
bind "Alt up" { MoveFocus "up"; }
|
||||
bind "Alt right" { MoveFocusOrTab "right"; }
|
||||
bind "Alt j" { MoveFocus "down"; }
|
||||
bind "Alt k" { MoveFocus "up"; }
|
||||
bind "Alt l" { MoveFocusOrTab "right"; }
|
||||
}
|
||||
shared_among "pane" "tmux" {
|
||||
bind "x" { CloseFocus; SwitchToMode "normal"; }
|
||||
}
|
||||
shared_among "scroll" "search" {
|
||||
bind "PageDown" { PageScrollDown; }
|
||||
bind "PageUp" { PageScrollUp; }
|
||||
bind "left" { PageScrollUp; }
|
||||
bind "down" { ScrollDown; }
|
||||
bind "up" { ScrollUp; }
|
||||
bind "right" { PageScrollDown; }
|
||||
bind "Ctrl b" { PageScrollUp; }
|
||||
bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; }
|
||||
bind "d" { HalfPageScrollDown; }
|
||||
bind "Ctrl f" { PageScrollDown; }
|
||||
bind "h" { PageScrollUp; }
|
||||
bind "j" { ScrollDown; }
|
||||
bind "k" { ScrollUp; }
|
||||
bind "l" { PageScrollDown; }
|
||||
bind "u" { HalfPageScrollUp; }
|
||||
}
|
||||
entersearch {
|
||||
bind "Ctrl c" { SwitchToMode "scroll"; }
|
||||
bind "esc" { SwitchToMode "scroll"; }
|
||||
bind "enter" { SwitchToMode "search"; }
|
||||
}
|
||||
shared_among "entersearch" "renametab" "renamepane" "prompt" "tmux" {
|
||||
bind "Ctrl g" { SwitchToMode "locked"; }
|
||||
bind "Ctrl h" { SwitchToMode "move"; }
|
||||
bind "Alt h" { MoveFocusOrTab "left"; }
|
||||
bind "Ctrl n" { SwitchToMode "resize"; }
|
||||
bind "Alt n" { NewPane; }
|
||||
bind "Ctrl o" { SwitchToMode "session"; }
|
||||
bind "Alt o" { MoveTab "right"; }
|
||||
bind "Ctrl p" { SwitchToMode "pane"; }
|
||||
bind "Ctrl q" { Quit; }
|
||||
bind "Ctrl s" { SwitchToMode "scroll"; }
|
||||
bind "Ctrl t" { SwitchToMode "tab"; }
|
||||
}
|
||||
renametab {
|
||||
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
|
||||
}
|
||||
shared_among "renametab" "renamepane" {
|
||||
bind "Ctrl c" { SwitchToMode "normal"; }
|
||||
}
|
||||
renamepane {
|
||||
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
|
||||
}
|
||||
shared_among "session" "tmux" {
|
||||
bind "d" { Detach; }
|
||||
}
|
||||
tmux {
|
||||
bind "left" { MoveFocus "left"; SwitchToMode "normal"; }
|
||||
bind "down" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||
bind "up" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||
bind "right" { MoveFocus "right"; SwitchToMode "normal"; }
|
||||
bind "space" { NextSwapLayout; }
|
||||
bind "\"" { NewPane "down"; SwitchToMode "normal"; }
|
||||
bind "%" { NewPane "right"; SwitchToMode "normal"; }
|
||||
bind "," { SwitchToMode "renametab"; }
|
||||
bind "[" { SwitchToMode "scroll"; }
|
||||
bind "Ctrl b" { Write 2; SwitchToMode "normal"; }
|
||||
bind "c" { NewTab; SwitchToMode "normal"; }
|
||||
bind "h" { MoveFocus "left"; SwitchToMode "normal"; }
|
||||
bind "j" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||
bind "k" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||
bind "l" { MoveFocus "right"; SwitchToMode "normal"; }
|
||||
bind "n" { GoToNextTab; SwitchToMode "normal"; }
|
||||
bind "o" { FocusNextPane; }
|
||||
bind "p" { GoToPreviousTab; SwitchToMode "normal"; }
|
||||
bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
||||
}
|
||||
}
|
||||
|
||||
// Plugin aliases - can be used to change the implementation of Zellij
|
||||
// changing these requires a restart to take effect
|
||||
plugins {
|
||||
about location="zellij:about"
|
||||
compact-bar location="zellij:compact-bar"
|
||||
configuration location="zellij:configuration"
|
||||
filepicker location="zellij:strider" {
|
||||
cwd "/"
|
||||
}
|
||||
plugin-manager location="zellij:plugin-manager"
|
||||
session-manager location="zellij:session-manager"
|
||||
status-bar location="zellij:status-bar"
|
||||
strider location="zellij:strider"
|
||||
tab-bar location="zellij:tab-bar"
|
||||
welcome-screen location="zellij:session-manager" {
|
||||
welcome_screen true
|
||||
}
|
||||
}
|
||||
|
||||
// Plugins to load in the background when a new session starts
|
||||
// eg. "file:/path/to/my-plugin.wasm"
|
||||
// eg. "https://example.com/my-plugin.wasm"
|
||||
load_plugins {
|
||||
}
|
||||
|
||||
// Use a simplified UI without special fonts (arrow glyphs)
|
||||
// Options:
|
||||
// - true
|
||||
// - false (Default)
|
||||
//
|
||||
// simplified_ui true
|
||||
|
||||
// Choose the theme that is specified in the themes section.
|
||||
// Default: default
|
||||
//
|
||||
// theme "dracula"
|
||||
|
||||
// Choose the base input mode of zellij.
|
||||
// Default: normal
|
||||
//
|
||||
default_mode "normal"
|
||||
|
||||
// Choose the path to the default shell that zellij will use for opening new panes
|
||||
// Default: $SHELL
|
||||
//
|
||||
// default_shell "fish"
|
||||
|
||||
// Choose the path to override cwd that zellij will use for opening new panes
|
||||
//
|
||||
// default_cwd "/tmp"
|
||||
|
||||
// The name of the default layout to load on startup
|
||||
// Default: "default"
|
||||
//
|
||||
// default_layout "compact"
|
||||
|
||||
// The folder in which Zellij will look for layouts
|
||||
// (Requires restart)
|
||||
//
|
||||
// layout_dir "/tmp"
|
||||
|
||||
// The folder in which Zellij will look for themes
|
||||
// (Requires restart)
|
||||
//
|
||||
// theme_dir "/tmp"
|
||||
|
||||
// Toggle enabling the mouse mode.
|
||||
// On certain configurations, or terminals this could
|
||||
// potentially interfere with copying text.
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// mouse_mode false
|
||||
|
||||
// Toggle having pane frames around the panes
|
||||
// Options:
|
||||
// - true (default, enabled)
|
||||
// - false
|
||||
//
|
||||
// pane_frames false
|
||||
|
||||
// When attaching to an existing session with other users,
|
||||
// should the session be mirrored (true)
|
||||
// or should each user have their own cursor (false)
|
||||
// (Requires restart)
|
||||
// Default: false
|
||||
//
|
||||
// mirror_session true
|
||||
|
||||
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
|
||||
// eg. when terminal window with an active zellij session is closed
|
||||
// (Requires restart)
|
||||
// Options:
|
||||
// - detach (Default)
|
||||
// - quit
|
||||
//
|
||||
// on_force_close "quit"
|
||||
|
||||
// Configure the scroll back buffer size
|
||||
// This is the number of lines zellij stores for each pane in the scroll back
|
||||
// buffer. Excess number of lines are discarded in a FIFO fashion.
|
||||
// (Requires restart)
|
||||
// Valid values: positive integers
|
||||
// Default value: 10000
|
||||
//
|
||||
// scroll_buffer_size 10000
|
||||
|
||||
// Provide a command to execute when copying text. The text will be piped to
|
||||
// the stdin of the program to perform the copy. This can be used with
|
||||
// terminal emulators which do not support the OSC 52 ANSI control sequence
|
||||
// that will be used by default if this option is not set.
|
||||
// Examples:
|
||||
//
|
||||
// copy_command "xclip -selection clipboard" // x11
|
||||
// copy_command "wl-copy" // wayland
|
||||
// copy_command "pbcopy" // osx
|
||||
//
|
||||
// copy_command "pbcopy"
|
||||
|
||||
// Choose the destination for copied text
|
||||
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
|
||||
// Does not apply when using copy_command.
|
||||
// Options:
|
||||
// - system (default)
|
||||
// - primary
|
||||
//
|
||||
// copy_clipboard "primary"
|
||||
|
||||
// Enable automatic copying (and clearing) of selection when releasing mouse
|
||||
// Default: true
|
||||
//
|
||||
// copy_on_select true
|
||||
|
||||
// Path to the default editor to use to edit pane scrollbuffer
|
||||
// Default: $EDITOR or $VISUAL
|
||||
// scrollback_editor "/usr/bin/vim"
|
||||
|
||||
// A fixed name to always give the Zellij session.
|
||||
// Consider also setting `attach_to_session true,`
|
||||
// otherwise this will error if such a session exists.
|
||||
// Default: <RANDOM>
|
||||
//
|
||||
// session_name "My singleton session"
|
||||
|
||||
// When `session_name` is provided, attaches to that session
|
||||
// if it is already running or creates it otherwise.
|
||||
// Default: false
|
||||
//
|
||||
// attach_to_session true
|
||||
|
||||
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// auto_layout false
|
||||
|
||||
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// session_serialization false
|
||||
|
||||
// Whether pane viewports are serialized along with the session, default is false
|
||||
// Options:
|
||||
// - true
|
||||
// - false (default)
|
||||
//
|
||||
// serialize_pane_viewport false
|
||||
|
||||
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
|
||||
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
|
||||
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
|
||||
//
|
||||
// scrollback_lines_to_serialize 10000
|
||||
|
||||
// Enable or disable the rendering of styled and colored underlines (undercurl).
|
||||
// May need to be disabled for certain unsupported terminals
|
||||
// (Requires restart)
|
||||
// Default: true
|
||||
//
|
||||
// styled_underlines false
|
||||
|
||||
// How often in seconds sessions are serialized
|
||||
//
|
||||
// serialization_interval 10000
|
||||
|
||||
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
|
||||
// metadata info on this session)
|
||||
// (Requires restart)
|
||||
// Default: false
|
||||
//
|
||||
// disable_session_metadata false
|
||||
|
||||
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
|
||||
// (Requires restart)
|
||||
// Default: true (if the host terminal supports it)
|
||||
//
|
||||
// support_kitty_keyboard_protocol false
|
||||
|
||||
// Whether to stack panes when resizing beyond a certain size
|
||||
// Default: true
|
||||
//
|
||||
// stacked_resize false
|
||||
|
||||
// Whether to show tips on startup
|
||||
// Default: true
|
||||
//
|
||||
// show_startup_tips false
|
||||
|
||||
// Whether to show release notes on first version run
|
||||
// Default: true
|
||||
//
|
||||
// show_release_notes false
|
||||
@@ -0,0 +1,452 @@
|
||||
keybinds clear-defaults=true {
|
||||
locked {
|
||||
bind "Ctrl g" { SwitchToMode "normal"; }
|
||||
}
|
||||
pane {
|
||||
bind "left" { MoveFocus "left"; }
|
||||
bind "down" { MoveFocus "down"; }
|
||||
bind "up" { MoveFocus "up"; }
|
||||
bind "right" { MoveFocus "right"; }
|
||||
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
|
||||
bind "d" { NewPane "down"; SwitchToMode "normal"; }
|
||||
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
|
||||
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
||||
bind "h" { MoveFocus "left"; }
|
||||
bind "i" { TogglePanePinned; SwitchToMode "normal"; }
|
||||
bind "j" { MoveFocus "down"; }
|
||||
bind "k" { MoveFocus "up"; }
|
||||
bind "l" { MoveFocus "right"; }
|
||||
bind "n" { NewPane; SwitchToMode "normal"; }
|
||||
bind "p" { SwitchFocus; }
|
||||
bind "Ctrl p" { SwitchToMode "normal"; }
|
||||
bind "r" { NewPane "right"; SwitchToMode "normal"; }
|
||||
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
|
||||
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
|
||||
}
|
||||
tab {
|
||||
bind "left" { GoToPreviousTab; }
|
||||
bind "down" { GoToNextTab; }
|
||||
bind "up" { GoToPreviousTab; }
|
||||
bind "right" { GoToNextTab; }
|
||||
bind "1" { GoToTab 1; SwitchToMode "normal"; }
|
||||
bind "2" { GoToTab 2; SwitchToMode "normal"; }
|
||||
bind "3" { GoToTab 3; SwitchToMode "normal"; }
|
||||
bind "4" { GoToTab 4; SwitchToMode "normal"; }
|
||||
bind "5" { GoToTab 5; SwitchToMode "normal"; }
|
||||
bind "6" { GoToTab 6; SwitchToMode "normal"; }
|
||||
bind "7" { GoToTab 7; SwitchToMode "normal"; }
|
||||
bind "8" { GoToTab 8; SwitchToMode "normal"; }
|
||||
bind "9" { GoToTab 9; SwitchToMode "normal"; }
|
||||
bind "[" { BreakPaneLeft; SwitchToMode "normal"; }
|
||||
bind "]" { BreakPaneRight; SwitchToMode "normal"; }
|
||||
bind "b" { BreakPane; SwitchToMode "normal"; }
|
||||
bind "h" { GoToPreviousTab; }
|
||||
bind "j" { GoToNextTab; }
|
||||
bind "k" { GoToPreviousTab; }
|
||||
bind "l" { GoToNextTab; }
|
||||
bind "n" { NewTab; SwitchToMode "normal"; }
|
||||
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
|
||||
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
|
||||
bind "Ctrl t" { SwitchToMode "normal"; }
|
||||
bind "x" { CloseTab; SwitchToMode "normal"; }
|
||||
bind "tab" { ToggleTab; }
|
||||
}
|
||||
resize {
|
||||
bind "left" { Resize "Increase left"; }
|
||||
bind "down" { Resize "Increase down"; }
|
||||
bind "up" { Resize "Increase up"; }
|
||||
bind "right" { Resize "Increase right"; }
|
||||
bind "+" { Resize "Increase"; }
|
||||
bind "-" { Resize "Decrease"; }
|
||||
bind "=" { Resize "Increase"; }
|
||||
bind "H" { Resize "Decrease left"; }
|
||||
bind "J" { Resize "Decrease down"; }
|
||||
bind "K" { Resize "Decrease up"; }
|
||||
bind "L" { Resize "Decrease right"; }
|
||||
bind "h" { Resize "Increase left"; }
|
||||
bind "j" { Resize "Increase down"; }
|
||||
bind "k" { Resize "Increase up"; }
|
||||
bind "l" { Resize "Increase right"; }
|
||||
bind "Ctrl n" { SwitchToMode "normal"; }
|
||||
}
|
||||
move {
|
||||
bind "left" { MovePane "left"; }
|
||||
bind "down" { MovePane "down"; }
|
||||
bind "up" { MovePane "up"; }
|
||||
bind "right" { MovePane "right"; }
|
||||
bind "h" { MovePane "left"; }
|
||||
bind "Ctrl h" { SwitchToMode "normal"; }
|
||||
bind "j" { MovePane "down"; }
|
||||
bind "k" { MovePane "up"; }
|
||||
bind "l" { MovePane "right"; }
|
||||
bind "n" { MovePane; }
|
||||
bind "p" { MovePaneBackwards; }
|
||||
bind "tab" { MovePane; }
|
||||
}
|
||||
scroll {
|
||||
bind "e" { EditScrollback; SwitchToMode "normal"; }
|
||||
bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
|
||||
}
|
||||
search {
|
||||
bind "c" { SearchToggleOption "CaseSensitivity"; }
|
||||
bind "n" { Search "down"; }
|
||||
bind "o" { SearchToggleOption "WholeWord"; }
|
||||
bind "p" { Search "up"; }
|
||||
bind "w" { SearchToggleOption "Wrap"; }
|
||||
}
|
||||
session {
|
||||
bind "a" {
|
||||
LaunchOrFocusPlugin "zellij:about" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "c" {
|
||||
LaunchOrFocusPlugin "configuration" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "Ctrl o" { SwitchToMode "normal"; }
|
||||
bind "p" {
|
||||
LaunchOrFocusPlugin "plugin-manager" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "w" {
|
||||
LaunchOrFocusPlugin "session-manager" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
}
|
||||
shared_except "locked" {
|
||||
bind "Alt left" { MoveFocusOrTab "left"; }
|
||||
bind "Alt down" { MoveFocus "down"; }
|
||||
bind "Alt up" { MoveFocus "up"; }
|
||||
bind "Alt right" { MoveFocusOrTab "right"; }
|
||||
bind "Alt +" { Resize "Increase"; }
|
||||
bind "Alt -" { Resize "Decrease"; }
|
||||
bind "Alt =" { Resize "Increase"; }
|
||||
bind "Alt [" { PreviousSwapLayout; }
|
||||
bind "Alt ]" { NextSwapLayout; }
|
||||
bind "Alt f" { ToggleFloatingPanes; }
|
||||
bind "Ctrl g" { SwitchToMode "locked"; }
|
||||
bind "Alt h" { MoveFocusOrTab "left"; }
|
||||
bind "Alt i" { MoveTab "left"; }
|
||||
bind "Alt j" { MoveFocus "down"; }
|
||||
bind "Alt k" { MoveFocus "up"; }
|
||||
bind "Alt l" { MoveFocusOrTab "right"; }
|
||||
bind "Alt n" { NewPane; }
|
||||
bind "Alt o" { MoveTab "right"; }
|
||||
bind "Ctrl q" { Quit; }
|
||||
}
|
||||
shared_except "locked" "move" {
|
||||
bind "Ctrl h" { SwitchToMode "move"; }
|
||||
}
|
||||
shared_except "locked" "session" {
|
||||
bind "Ctrl o" { SwitchToMode "session"; }
|
||||
}
|
||||
shared_except "locked" "scroll" "search" "tmux" {
|
||||
bind "Ctrl b" { SwitchToMode "tmux"; }
|
||||
}
|
||||
shared_except "locked" "scroll" "search" {
|
||||
bind "Ctrl s" { SwitchToMode "scroll"; }
|
||||
}
|
||||
shared_except "locked" "tab" {
|
||||
bind "Ctrl t" { SwitchToMode "tab"; }
|
||||
}
|
||||
shared_except "locked" "pane" {
|
||||
bind "Ctrl p" { SwitchToMode "pane"; }
|
||||
}
|
||||
shared_except "locked" "resize" {
|
||||
bind "Ctrl n" { SwitchToMode "resize"; }
|
||||
}
|
||||
shared_except "normal" "locked" "entersearch" {
|
||||
bind "enter" { SwitchToMode "normal"; }
|
||||
}
|
||||
shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
|
||||
bind "esc" { SwitchToMode "normal"; }
|
||||
}
|
||||
shared_among "pane" "tmux" {
|
||||
bind "x" { CloseFocus; SwitchToMode "normal"; }
|
||||
}
|
||||
shared_among "scroll" "search" {
|
||||
bind "PageDown" { PageScrollDown; }
|
||||
bind "PageUp" { PageScrollUp; }
|
||||
bind "left" { PageScrollUp; }
|
||||
bind "down" { ScrollDown; }
|
||||
bind "up" { ScrollUp; }
|
||||
bind "right" { PageScrollDown; }
|
||||
bind "Ctrl b" { PageScrollUp; }
|
||||
bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; }
|
||||
bind "d" { HalfPageScrollDown; }
|
||||
bind "Ctrl f" { PageScrollDown; }
|
||||
bind "h" { PageScrollUp; }
|
||||
bind "j" { ScrollDown; }
|
||||
bind "k" { ScrollUp; }
|
||||
bind "l" { PageScrollDown; }
|
||||
bind "Ctrl s" { SwitchToMode "normal"; }
|
||||
bind "u" { HalfPageScrollUp; }
|
||||
}
|
||||
entersearch {
|
||||
bind "Ctrl c" { SwitchToMode "scroll"; }
|
||||
bind "esc" { SwitchToMode "scroll"; }
|
||||
bind "enter" { SwitchToMode "search"; }
|
||||
}
|
||||
renametab {
|
||||
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
|
||||
}
|
||||
shared_among "renametab" "renamepane" {
|
||||
bind "Ctrl c" { SwitchToMode "normal"; }
|
||||
}
|
||||
renamepane {
|
||||
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
|
||||
}
|
||||
shared_among "session" "tmux" {
|
||||
bind "d" { Detach; }
|
||||
}
|
||||
tmux {
|
||||
bind "left" { MoveFocus "left"; SwitchToMode "normal"; }
|
||||
bind "down" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||
bind "up" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||
bind "right" { MoveFocus "right"; SwitchToMode "normal"; }
|
||||
bind "space" { NextSwapLayout; }
|
||||
bind "\"" { NewPane "down"; SwitchToMode "normal"; }
|
||||
bind "%" { NewPane "right"; SwitchToMode "normal"; }
|
||||
bind "," { SwitchToMode "renametab"; }
|
||||
bind "[" { SwitchToMode "scroll"; }
|
||||
bind "Ctrl b" { Write 2; SwitchToMode "normal"; }
|
||||
bind "c" { NewTab; SwitchToMode "normal"; }
|
||||
bind "h" { MoveFocus "left"; SwitchToMode "normal"; }
|
||||
bind "j" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||
bind "k" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||
bind "l" { MoveFocus "right"; SwitchToMode "normal"; }
|
||||
bind "n" { GoToNextTab; SwitchToMode "normal"; }
|
||||
bind "o" { FocusNextPane; }
|
||||
bind "p" { GoToPreviousTab; SwitchToMode "normal"; }
|
||||
bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
||||
}
|
||||
}
|
||||
|
||||
// Plugin aliases - can be used to change the implementation of Zellij
|
||||
// changing these requires a restart to take effect
|
||||
plugins {
|
||||
about location="zellij:about"
|
||||
compact-bar location="zellij:compact-bar"
|
||||
configuration location="zellij:configuration"
|
||||
filepicker location="zellij:strider" {
|
||||
cwd "/"
|
||||
}
|
||||
plugin-manager location="zellij:plugin-manager"
|
||||
session-manager location="zellij:session-manager"
|
||||
status-bar location="zellij:status-bar"
|
||||
strider location="zellij:strider"
|
||||
tab-bar location="zellij:tab-bar"
|
||||
welcome-screen location="zellij:session-manager" {
|
||||
welcome_screen true
|
||||
}
|
||||
}
|
||||
|
||||
// Plugins to load in the background when a new session starts
|
||||
// eg. "file:/path/to/my-plugin.wasm"
|
||||
// eg. "https://example.com/my-plugin.wasm"
|
||||
load_plugins {
|
||||
}
|
||||
|
||||
// Use a simplified UI without special fonts (arrow glyphs)
|
||||
// Options:
|
||||
// - true
|
||||
// - false (Default)
|
||||
//
|
||||
// simplified_ui true
|
||||
|
||||
// Choose the theme that is specified in the themes section.
|
||||
// Default: default
|
||||
//
|
||||
// theme "dracula"
|
||||
|
||||
// Choose the base input mode of zellij.
|
||||
// Default: normal
|
||||
//
|
||||
// default_mode "locked"
|
||||
|
||||
// Choose the path to the default shell that zellij will use for opening new panes
|
||||
// Default: $SHELL
|
||||
//
|
||||
// default_shell "fish"
|
||||
|
||||
// Choose the path to override cwd that zellij will use for opening new panes
|
||||
//
|
||||
// default_cwd "/tmp"
|
||||
|
||||
// The name of the default layout to load on startup
|
||||
// Default: "default"
|
||||
//
|
||||
// default_layout "compact"
|
||||
|
||||
// The folder in which Zellij will look for layouts
|
||||
// (Requires restart)
|
||||
//
|
||||
// layout_dir "/tmp"
|
||||
|
||||
// The folder in which Zellij will look for themes
|
||||
// (Requires restart)
|
||||
//
|
||||
// theme_dir "/tmp"
|
||||
|
||||
// Toggle enabling the mouse mode.
|
||||
// On certain configurations, or terminals this could
|
||||
// potentially interfere with copying text.
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// mouse_mode false
|
||||
|
||||
// Toggle having pane frames around the panes
|
||||
// Options:
|
||||
// - true (default, enabled)
|
||||
// - false
|
||||
//
|
||||
// pane_frames false
|
||||
|
||||
// When attaching to an existing session with other users,
|
||||
// should the session be mirrored (true)
|
||||
// or should each user have their own cursor (false)
|
||||
// (Requires restart)
|
||||
// Default: false
|
||||
//
|
||||
// mirror_session true
|
||||
|
||||
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
|
||||
// eg. when terminal window with an active zellij session is closed
|
||||
// (Requires restart)
|
||||
// Options:
|
||||
// - detach (Default)
|
||||
// - quit
|
||||
//
|
||||
// on_force_close "quit"
|
||||
|
||||
// Configure the scroll back buffer size
|
||||
// This is the number of lines zellij stores for each pane in the scroll back
|
||||
// buffer. Excess number of lines are discarded in a FIFO fashion.
|
||||
// (Requires restart)
|
||||
// Valid values: positive integers
|
||||
// Default value: 10000
|
||||
//
|
||||
// scroll_buffer_size 10000
|
||||
|
||||
// Provide a command to execute when copying text. The text will be piped to
|
||||
// the stdin of the program to perform the copy. This can be used with
|
||||
// terminal emulators which do not support the OSC 52 ANSI control sequence
|
||||
// that will be used by default if this option is not set.
|
||||
// Examples:
|
||||
//
|
||||
// copy_command "xclip -selection clipboard" // x11
|
||||
// copy_command "wl-copy" // wayland
|
||||
// copy_command "pbcopy" // osx
|
||||
//
|
||||
// copy_command "pbcopy"
|
||||
|
||||
// Choose the destination for copied text
|
||||
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
|
||||
// Does not apply when using copy_command.
|
||||
// Options:
|
||||
// - system (default)
|
||||
// - primary
|
||||
//
|
||||
// copy_clipboard "primary"
|
||||
|
||||
// Enable automatic copying (and clearing) of selection when releasing mouse
|
||||
// Default: true
|
||||
//
|
||||
// copy_on_select true
|
||||
|
||||
// Path to the default editor to use to edit pane scrollbuffer
|
||||
// Default: $EDITOR or $VISUAL
|
||||
// scrollback_editor "/usr/bin/vim"
|
||||
|
||||
// A fixed name to always give the Zellij session.
|
||||
// Consider also setting `attach_to_session true,`
|
||||
// otherwise this will error if such a session exists.
|
||||
// Default: <RANDOM>
|
||||
//
|
||||
// session_name "My singleton session"
|
||||
|
||||
// When `session_name` is provided, attaches to that session
|
||||
// if it is already running or creates it otherwise.
|
||||
// Default: false
|
||||
//
|
||||
// attach_to_session true
|
||||
|
||||
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// auto_layout false
|
||||
|
||||
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// session_serialization false
|
||||
|
||||
// Whether pane viewports are serialized along with the session, default is false
|
||||
// Options:
|
||||
// - true
|
||||
// - false (default)
|
||||
//
|
||||
// serialize_pane_viewport false
|
||||
|
||||
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
|
||||
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
|
||||
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
|
||||
//
|
||||
// scrollback_lines_to_serialize 10000
|
||||
|
||||
// Enable or disable the rendering of styled and colored underlines (undercurl).
|
||||
// May need to be disabled for certain unsupported terminals
|
||||
// (Requires restart)
|
||||
// Default: true
|
||||
//
|
||||
// styled_underlines false
|
||||
|
||||
// How often in seconds sessions are serialized
|
||||
//
|
||||
// serialization_interval 10000
|
||||
|
||||
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
|
||||
// metadata info on this session)
|
||||
// (Requires restart)
|
||||
// Default: false
|
||||
//
|
||||
// disable_session_metadata false
|
||||
|
||||
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
|
||||
// (Requires restart)
|
||||
// Default: true (if the host terminal supports it)
|
||||
//
|
||||
// support_kitty_keyboard_protocol false
|
||||
|
||||
// Whether to stack panes when resizing beyond a certain size
|
||||
// Default: true
|
||||
//
|
||||
// stacked_resize false
|
||||
|
||||
// Whether to show tips on startup
|
||||
// Default: true
|
||||
//
|
||||
// show_startup_tips false
|
||||
|
||||
// Whether to show release notes on first version run
|
||||
// Default: true
|
||||
//
|
||||
// show_release_notes false
|
||||
@@ -0,0 +1,120 @@
|
||||
themes {
|
||||
gruvbox-dark {
|
||||
text_unselected {
|
||||
base 251 241 199
|
||||
background 60 56 54
|
||||
emphasis_0 214 93 14
|
||||
emphasis_1 104 157 106
|
||||
emphasis_2 152 151 26
|
||||
emphasis_3 177 98 134
|
||||
}
|
||||
text_selected {
|
||||
base 251 241 199
|
||||
background 80 73 69
|
||||
emphasis_0 214 93 14
|
||||
emphasis_1 104 157 106
|
||||
emphasis_2 152 151 26
|
||||
emphasis_3 177 98 134
|
||||
}
|
||||
ribbon_selected {
|
||||
base 60 56 54
|
||||
background 152 151 26
|
||||
emphasis_0 204 36 29
|
||||
emphasis_1 214 93 14
|
||||
emphasis_2 177 98 134
|
||||
emphasis_3 69 133 136
|
||||
}
|
||||
ribbon_unselected {
|
||||
base 60 56 54
|
||||
background 235 219 178
|
||||
emphasis_0 204 36 29
|
||||
emphasis_1 251 241 199
|
||||
emphasis_2 69 133 136
|
||||
emphasis_3 177 98 134
|
||||
}
|
||||
table_title {
|
||||
base 152 151 26
|
||||
background 0
|
||||
emphasis_0 214 93 14
|
||||
emphasis_1 104 157 106
|
||||
emphasis_2 152 151 26
|
||||
emphasis_3 177 98 134
|
||||
}
|
||||
table_cell_selected {
|
||||
base 251 241 199
|
||||
background 80 73 69
|
||||
emphasis_0 214 93 14
|
||||
emphasis_1 104 157 106
|
||||
emphasis_2 152 151 26
|
||||
emphasis_3 177 98 134
|
||||
}
|
||||
table_cell_unselected {
|
||||
base 251 241 199
|
||||
background 60 56 54
|
||||
emphasis_0 214 93 14
|
||||
emphasis_1 104 157 106
|
||||
emphasis_2 152 151 26
|
||||
emphasis_3 177 98 134
|
||||
}
|
||||
list_selected {
|
||||
base 251 241 199
|
||||
background 80 73 69
|
||||
emphasis_0 214 93 14
|
||||
emphasis_1 104 157 106
|
||||
emphasis_2 152 151 26
|
||||
emphasis_3 177 98 134
|
||||
}
|
||||
list_unselected {
|
||||
base 251 241 199
|
||||
background 60 56 54
|
||||
emphasis_0 214 93 14
|
||||
emphasis_1 104 157 106
|
||||
emphasis_2 152 151 26
|
||||
emphasis_3 177 98 134
|
||||
}
|
||||
frame_selected {
|
||||
base 152 151 26
|
||||
background 0
|
||||
emphasis_0 214 93 14
|
||||
emphasis_1 104 157 106
|
||||
emphasis_2 177 98 134
|
||||
emphasis_3 0
|
||||
}
|
||||
frame_highlight {
|
||||
base 214 93 14
|
||||
background 0
|
||||
emphasis_0 177 98 134
|
||||
emphasis_1 214 93 14
|
||||
emphasis_2 214 93 14
|
||||
emphasis_3 214 93 14
|
||||
}
|
||||
exit_code_success {
|
||||
base 152 151 26
|
||||
background 0
|
||||
emphasis_0 104 157 106
|
||||
emphasis_1 60 56 54
|
||||
emphasis_2 177 98 134
|
||||
emphasis_3 69 133 136
|
||||
}
|
||||
exit_code_error {
|
||||
base 204 36 29
|
||||
background 0
|
||||
emphasis_0 215 153 33
|
||||
emphasis_1 0
|
||||
emphasis_2 0
|
||||
emphasis_3 0
|
||||
}
|
||||
multiplayer_user_colors {
|
||||
player_1 177 98 134
|
||||
player_2 69 133 136
|
||||
player_3 0
|
||||
player_4 215 153 33
|
||||
player_5 104 157 106
|
||||
player_6 0
|
||||
player_7 204 36 29
|
||||
player_8 0
|
||||
player_9 0
|
||||
player_10 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# Vi mode
|
||||
set editing-mode vi
|
||||
set keymap vi
|
||||
set show-mode-in-prompt on
|
||||
set vi-ins-mode-string "\1\e[32m\2[I] \1\e[0m\2"
|
||||
set vi-cmd-mode-string "\1\e[31m\2[N] \1\e[0m\2"
|
||||
|
||||
# exclude .dotfles
|
||||
set match-hidden-files off
|
||||
|
||||
set show-all-if-ambiguous on
|
||||
set show-all-if-unmodified on
|
||||
set colored-stats on
|
||||
set colored-completion-prefix on
|
||||
set mark-symlinked-directories on
|
||||
set completion-ignore-case on
|
||||
|
||||
# Ignore duplicates in history where supported
|
||||
set skip-completed-text on
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"localcpp": {
|
||||
"type": "api_key",
|
||||
"key": "no-key-required"
|
||||
},
|
||||
"duskadiy": {
|
||||
"type": "api_key",
|
||||
"key": "$DUSKADIY_API_KEY"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"providers": {
|
||||
"duskadiy": {
|
||||
"baseUrl": "https://llm.duskadiy.com/api/v1",
|
||||
"api": "openai-completions",
|
||||
"apiKey": "no-key-required",
|
||||
"compat": {
|
||||
"supportsDeveloperRole": false,
|
||||
"supportsReasoningEffort": false,
|
||||
"maxTokensField": "max_tokens"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"name": "DeepSeek Coder V2",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"name": "Gemma 4 E4B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"name": "Gemma 4 26B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3-Coder-30B-Instruct-IQ4_XS",
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 8192,
|
||||
"maxTokens": 4096,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-UD-IQ3_XXS",
|
||||
"name": "Qwen3.6 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-27B-UD-Q3_K_XL",
|
||||
"name": "Qwen3.5 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-9B-Q8_0",
|
||||
"name": "Qwen3.5 9B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ3_M",
|
||||
"name": "Qwen3.6 27B Uncensored",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "GLM-4.7-Flash-UD-Q3_K_XL",
|
||||
"name": "GLM-4.7 Flash",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
"localcpp": {
|
||||
"baseUrl": "http://192.168.0.204:11343/v1",
|
||||
"api": "openai-completions",
|
||||
"apiKey": "no-key-required",
|
||||
"compat": {
|
||||
"supportsDeveloperRole": false,
|
||||
"supportsReasoningEffort": false,
|
||||
"maxTokensField": "max_tokens"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"name": "DeepSeek Coder V2",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"name": "Gemma 4 E4B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"name": "Gemma 4 26B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3-Coder-30B-Instruct-IQ4_XS",
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 8192,
|
||||
"maxTokens": 4096,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-UD-IQ3_XXS",
|
||||
"name": "Qwen3.6 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-27B-UD-Q3_K_XL",
|
||||
"name": "Qwen3.5 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-9B-Q8_0",
|
||||
"name": "Qwen3.5 9B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ3_M",
|
||||
"name": "Qwen3.6 27B Uncensored",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "GLM-4.7-Flash-UD-Q3_K_XL",
|
||||
"name": "GLM-4.7 Flash",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
description: Write a Conventional Commits message for the staged changes
|
||||
argument-hint: "[extra context]"
|
||||
---
|
||||
Inspect the staged changes with `git diff --cached` (and `git status` for context). Then write a single Conventional Commits message:
|
||||
|
||||
- A `<type>(<scope>): <subject>` summary line, imperative mood, ≤72 chars (types: feat, fix, refactor, docs, chore, test, perf, build).
|
||||
- An optional short body explaining the *why* only when it isn't obvious from the diff.
|
||||
- Do NOT run `git commit`. Output only the message inside a code block so I can review it.
|
||||
|
||||
Extra context to incorporate: ${1:-none}
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
description: Review the current diff for bugs and issues
|
||||
argument-hint: "[focus area]"
|
||||
---
|
||||
Review the current changes. Check both `git diff` (unstaged) and `git diff --cached` (staged). Focus on:
|
||||
|
||||
- Correctness and logic bugs
|
||||
- Error handling and missing edge cases
|
||||
- Security issues (injection, secrets, unsafe input)
|
||||
- Anything that doesn't match the surrounding code's conventions
|
||||
|
||||
List concrete findings as `file:line — issue — suggested fix`, ordered by severity. Be concise; skip praise. If nothing is wrong, say so.
|
||||
|
||||
Extra focus this round: ${1:-general correctness}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"defaultProvider": "duskadiy",
|
||||
"defaultModel": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"defaultThinkingLevel": "off",
|
||||
"theme": "catppuccin-mocha",
|
||||
"quietStartup": false,
|
||||
"defaultProjectTrust": "ask",
|
||||
"enableInstallTelemetry": false,
|
||||
"enabledModels": [
|
||||
"localcpp/*",
|
||||
"duskadiy/*"
|
||||
],
|
||||
"compaction": {
|
||||
"enabled": true,
|
||||
"reserveTokens": 16384,
|
||||
"keepRecentTokens": 20000
|
||||
},
|
||||
"retry": {
|
||||
"enabled": true,
|
||||
"maxRetries": 3,
|
||||
"baseDelayMs": 2000,
|
||||
"provider": {
|
||||
"timeoutMs": 3600000
|
||||
}
|
||||
},
|
||||
"httpIdleTimeoutMs": 600000,
|
||||
"npmCommand": [
|
||||
"fnm",
|
||||
"exec",
|
||||
"--using=22",
|
||||
"--",
|
||||
"npm"
|
||||
],
|
||||
"showHardwareCursor": true,
|
||||
"lastChangelogVersion": "0.80.2"
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
||||
"name": "catppuccin-mocha",
|
||||
"vars": {
|
||||
"rosewater": "#f5e0dc",
|
||||
"flamingo": "#f2cdcd",
|
||||
"pink": "#f5c2e7",
|
||||
"mauve": "#cba6f7",
|
||||
"red": "#f38ba8",
|
||||
"maroon": "#eba0ac",
|
||||
"peach": "#fab387",
|
||||
"yellow": "#f9e2af",
|
||||
"green": "#a6e3a1",
|
||||
"teal": "#94e2d5",
|
||||
"sky": "#89dceb",
|
||||
"sapphire": "#74c7ec",
|
||||
"blue": "#89b4fa",
|
||||
"lavender": "#b4befe",
|
||||
"fg": "#cdd6f4",
|
||||
"subtext1": "#bac2de",
|
||||
"subtext0": "#a6adc8",
|
||||
"overlay2": "#9399b2",
|
||||
"overlay1": "#7f849c",
|
||||
"overlay0": "#6c7086",
|
||||
"surface2": "#585b70",
|
||||
"surface1": "#45475a",
|
||||
"surface0": "#313244",
|
||||
"base": "#1e1e2e",
|
||||
"mantle": "#181825",
|
||||
"crust": "#11111b"
|
||||
},
|
||||
"colors": {
|
||||
"accent": "mauve",
|
||||
"border": "surface1",
|
||||
"borderAccent": "mauve",
|
||||
"borderMuted": "surface0",
|
||||
"success": "green",
|
||||
"error": "red",
|
||||
"warning": "yellow",
|
||||
"muted": "subtext0",
|
||||
"dim": "overlay0",
|
||||
"text": "fg",
|
||||
"thinkingText": "overlay1",
|
||||
"selectedBg": "surface0",
|
||||
"userMessageBg": "surface0",
|
||||
"userMessageText": "fg",
|
||||
"customMessageBg": "surface0",
|
||||
"customMessageText": "fg",
|
||||
"customMessageLabel": "mauve",
|
||||
"toolPendingBg": "mantle",
|
||||
"toolSuccessBg": "#1e2b22",
|
||||
"toolErrorBg": "#2b1e22",
|
||||
"toolTitle": "mauve",
|
||||
"toolOutput": "fg",
|
||||
"mdHeading": "mauve",
|
||||
"mdLink": "blue",
|
||||
"mdLinkUrl": "sapphire",
|
||||
"mdCode": "green",
|
||||
"mdCodeBlock": "fg",
|
||||
"mdCodeBlockBorder": "surface1",
|
||||
"mdQuote": "subtext0",
|
||||
"mdQuoteBorder": "surface2",
|
||||
"mdHr": "surface1",
|
||||
"mdListBullet": "mauve",
|
||||
"toolDiffAdded": "green",
|
||||
"toolDiffRemoved": "red",
|
||||
"toolDiffContext": "overlay0",
|
||||
"syntaxComment": "overlay0",
|
||||
"syntaxKeyword": "mauve",
|
||||
"syntaxFunction": "blue",
|
||||
"syntaxVariable": "fg",
|
||||
"syntaxString": "green",
|
||||
"syntaxNumber": "peach",
|
||||
"syntaxType": "yellow",
|
||||
"syntaxOperator": "sky",
|
||||
"syntaxPunctuation": "overlay2",
|
||||
"thinkingOff": "surface1",
|
||||
"thinkingMinimal": "overlay0",
|
||||
"thinkingLow": "blue",
|
||||
"thinkingMedium": "teal",
|
||||
"thinkingHigh": "peach",
|
||||
"thinkingXhigh": "red",
|
||||
"bashMode": "peach"
|
||||
},
|
||||
"export": {
|
||||
"pageBg": "#11111b",
|
||||
"cardBg": "#1e1e2e",
|
||||
"infoBg": "#313244"
|
||||
}
|
||||
}
|
||||
+190
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"providers": {
|
||||
"duskadiy": {
|
||||
"baseUrl": "https://llm.duskadiy.com/api/v1",
|
||||
"api": "openai-completions",
|
||||
"apiKey": "$DUSKADIY_API_KEY",
|
||||
"compat": {
|
||||
"supportsDeveloperRole": false,
|
||||
"supportsReasoningEffort": false,
|
||||
"maxTokensField": "max_tokens"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"name": "DeepSeek Coder V2",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"name": "Gemma 4 E4B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"name": "Gemma 4 26B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3-Coder-30B-Instruct-IQ4_XS",
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 8192,
|
||||
"maxTokens": 4096,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-UD-IQ3_XXS",
|
||||
"name": "Qwen3.6 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-27B-UD-Q3_K_XL",
|
||||
"name": "Qwen3.5 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-9B-Q8_0",
|
||||
"name": "Qwen3.5 9B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ3_M",
|
||||
"name": "Qwen3.6 27B Uncensored",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "GLM-4.7-Flash-UD-Q3_K_XL",
|
||||
"name": "GLM-4.7 Flash",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
"localcpp": {
|
||||
"baseUrl": "http://192.168.0.204:11343/v1",
|
||||
"api": "openai-completions",
|
||||
"apiKey": "no-key-required",
|
||||
"compat": {
|
||||
"supportsDeveloperRole": false,
|
||||
"supportsReasoningEffort": false,
|
||||
"maxTokensField": "max_tokens"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"name": "DeepSeek Coder V2",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"name": "Gemma 4 E4B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"name": "Gemma 4 26B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3-Coder-30B-Instruct-IQ4_XS",
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 8192,
|
||||
"maxTokens": 4096,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-UD-IQ3_XXS",
|
||||
"name": "Qwen3.6 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-27B-UD-Q3_K_XL",
|
||||
"name": "Qwen3.5 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-9B-Q8_0",
|
||||
"name": "Qwen3.5 9B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ3_M",
|
||||
"name": "Qwen3.6 27B Uncensored",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "GLM-4.7-Flash-UD-Q3_K_XL",
|
||||
"name": "GLM-4.7 Flash",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
description: Write a Conventional Commits message for the staged changes
|
||||
argument-hint: "[extra context]"
|
||||
---
|
||||
Inspect the staged changes with `git diff --cached` (and `git status` for context). Then write a single Conventional Commits message:
|
||||
|
||||
- A `<type>(<scope>): <subject>` summary line, imperative mood, ≤72 chars (types: feat, fix, refactor, docs, chore, test, perf, build).
|
||||
- An optional short body explaining the *why* only when it isn't obvious from the diff.
|
||||
- Do NOT run `git commit`. Output only the message inside a code block so I can review it.
|
||||
|
||||
Extra context to incorporate: ${1:-none}
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
description: Review the current diff for bugs and issues
|
||||
argument-hint: "[focus area]"
|
||||
---
|
||||
Review the current changes. Check both `git diff` (unstaged) and `git diff --cached` (staged). Focus on:
|
||||
|
||||
- Correctness and logic bugs
|
||||
- Error handling and missing edge cases
|
||||
- Security issues (injection, secrets, unsafe input)
|
||||
- Anything that doesn't match the surrounding code's conventions
|
||||
|
||||
List concrete findings as `file:line — issue — suggested fix`, ordered by severity. Be concise; skip praise. If nothing is wrong, say so.
|
||||
|
||||
Extra focus this round: ${1:-general correctness}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"defaultProvider": "duskadiy",
|
||||
"defaultModel": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"defaultThinkingLevel": "on",
|
||||
"theme": "catppuccin-mocha",
|
||||
"quietStartup": false,
|
||||
"defaultProjectTrust": "ask",
|
||||
"enableInstallTelemetry": false,
|
||||
"enabledModels": [
|
||||
"localcpp/*",
|
||||
"duskadiy/*"
|
||||
],
|
||||
"compaction": {
|
||||
"enabled": true,
|
||||
"reserveTokens": 16384,
|
||||
"keepRecentTokens": 20000
|
||||
},
|
||||
"retry": {
|
||||
"enabled": true,
|
||||
"maxRetries": 3,
|
||||
"baseDelayMs": 2000,
|
||||
"provider": {
|
||||
"timeoutMs": 3600000
|
||||
}
|
||||
},
|
||||
"httpIdleTimeoutMs": 600000,
|
||||
"npmCommand": ["fnm", "exec", "--using=22", "--", "npm"],
|
||||
"showHardwareCursor": true,
|
||||
"lastChangelogVersion": "0.80.1"
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
||||
"name": "catppuccin-mocha",
|
||||
"vars": {
|
||||
"rosewater": "#f5e0dc",
|
||||
"flamingo": "#f2cdcd",
|
||||
"pink": "#f5c2e7",
|
||||
"mauve": "#cba6f7",
|
||||
"red": "#f38ba8",
|
||||
"maroon": "#eba0ac",
|
||||
"peach": "#fab387",
|
||||
"yellow": "#f9e2af",
|
||||
"green": "#a6e3a1",
|
||||
"teal": "#94e2d5",
|
||||
"sky": "#89dceb",
|
||||
"sapphire": "#74c7ec",
|
||||
"blue": "#89b4fa",
|
||||
"lavender": "#b4befe",
|
||||
"fg": "#cdd6f4",
|
||||
"subtext1": "#bac2de",
|
||||
"subtext0": "#a6adc8",
|
||||
"overlay2": "#9399b2",
|
||||
"overlay1": "#7f849c",
|
||||
"overlay0": "#6c7086",
|
||||
"surface2": "#585b70",
|
||||
"surface1": "#45475a",
|
||||
"surface0": "#313244",
|
||||
"base": "#1e1e2e",
|
||||
"mantle": "#181825",
|
||||
"crust": "#11111b"
|
||||
},
|
||||
"colors": {
|
||||
"accent": "mauve",
|
||||
"border": "surface1",
|
||||
"borderAccent": "mauve",
|
||||
"borderMuted": "surface0",
|
||||
"success": "green",
|
||||
"error": "red",
|
||||
"warning": "yellow",
|
||||
"muted": "subtext0",
|
||||
"dim": "overlay0",
|
||||
"text": "fg",
|
||||
"thinkingText": "overlay1",
|
||||
"selectedBg": "surface0",
|
||||
"userMessageBg": "surface0",
|
||||
"userMessageText": "fg",
|
||||
"customMessageBg": "surface0",
|
||||
"customMessageText": "fg",
|
||||
"customMessageLabel": "mauve",
|
||||
"toolPendingBg": "mantle",
|
||||
"toolSuccessBg": "#1e2b22",
|
||||
"toolErrorBg": "#2b1e22",
|
||||
"toolTitle": "mauve",
|
||||
"toolOutput": "fg",
|
||||
"mdHeading": "mauve",
|
||||
"mdLink": "blue",
|
||||
"mdLinkUrl": "sapphire",
|
||||
"mdCode": "green",
|
||||
"mdCodeBlock": "fg",
|
||||
"mdCodeBlockBorder": "surface1",
|
||||
"mdQuote": "subtext0",
|
||||
"mdQuoteBorder": "surface2",
|
||||
"mdHr": "surface1",
|
||||
"mdListBullet": "mauve",
|
||||
"toolDiffAdded": "green",
|
||||
"toolDiffRemoved": "red",
|
||||
"toolDiffContext": "overlay0",
|
||||
"syntaxComment": "overlay0",
|
||||
"syntaxKeyword": "mauve",
|
||||
"syntaxFunction": "blue",
|
||||
"syntaxVariable": "fg",
|
||||
"syntaxString": "green",
|
||||
"syntaxNumber": "peach",
|
||||
"syntaxType": "yellow",
|
||||
"syntaxOperator": "sky",
|
||||
"syntaxPunctuation": "overlay2",
|
||||
"thinkingOff": "surface1",
|
||||
"thinkingMinimal": "overlay0",
|
||||
"thinkingLow": "blue",
|
||||
"thinkingMedium": "teal",
|
||||
"thinkingHigh": "peach",
|
||||
"thinkingXhigh": "red",
|
||||
"bashMode": "peach"
|
||||
},
|
||||
"export": {
|
||||
"pageBg": "#11111b",
|
||||
"cardBg": "#1e1e2e",
|
||||
"infoBg": "#313244"
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,13 @@
|
||||
|
||||
using `gnu stow`
|
||||
|
||||
```
|
||||
https://github.com/HyDE-Project/HyDE
|
||||
```
|
||||
`hyde`, `waybar` and `fish` are from hyprdots with edits
|
||||
Customized [Hyde](https://github.com/HyDE-Project/HyDE)
|
||||
|
||||
`hyde`, `waybar` and `fish` are from hyprdots with customizations
|
||||
|
||||
`nvim` is [nvchad](https://nvchad.com/) custom conf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user