feat: added neru config
This commit is contained in:
parent
23075b32ce
commit
4fe2b4cd01
352
neru/config.toml
Normal file
352
neru/config.toml
Normal file
@ -0,0 +1,352 @@
|
||||
# Neru default configuration
|
||||
# Copy to ~/.config/neru/config.toml to customize.
|
||||
|
||||
# Full config reference: https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md
|
||||
# Full CLI reference: https://github.com/y3owk1n/neru/blob/main/docs/CLI.md
|
||||
|
||||
# General settings
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#general-settings
|
||||
[general]
|
||||
excluded_apps = [] # Bundle IDs to ignore (e.g. "com.apple.Terminal")
|
||||
kb_layout_to_use = "" # Force a keyboard layout InputSourceID (empty = auto)
|
||||
passthrough_unbounded_keys = false # Let unbound Cmd/Ctrl/Alt shortcuts reach macOS
|
||||
should_exit_after_passthrough = false # Exit the current mode after a shortcut is passed through
|
||||
passthrough_unbounded_keys_blacklist = [] # Shortcuts to still consume when passthrough is on
|
||||
hide_overlay_in_screen_share = false # Hide overlay from screen sharing apps
|
||||
|
||||
# Theme palette
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#theme-palette
|
||||
[theme.light]
|
||||
surface = "#FFFFFF"
|
||||
accent = "#2563EB"
|
||||
accent_alt = "#DC2626"
|
||||
on_accent_alt = "#FFFFFF"
|
||||
text = "#1E293B"
|
||||
|
||||
[theme.dark]
|
||||
surface = "#0A0A0A"
|
||||
accent = "#60A5FA"
|
||||
accent_alt = "#F87171"
|
||||
on_accent_alt = "#FFFFFF"
|
||||
text = "#F1F5F9"
|
||||
|
||||
# Hotkeys
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#hotkeys
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CLI.md
|
||||
[hotkeys]
|
||||
"Primary+Shift+Space" = "hints"
|
||||
"Primary+Shift+G" = "grid"
|
||||
"Primary+Shift+C" = "recursive_grid"
|
||||
"Primary+Shift+S" = "scroll"
|
||||
"Primary+Shift+1" = "action move_monitor 'Built-in Retina Display'"
|
||||
"Primary+Shift+2" = "action move_monitor 'Mi Monitor'"
|
||||
"Primary+Shift+3" = "action move_monitor 'ZOWIE RL LCD'"
|
||||
|
||||
# Hint mode
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#hint-mode
|
||||
[hints]
|
||||
enabled = true
|
||||
hint_characters = "arstneio" # Characters used for hint labels
|
||||
max_depth = 50 # Max accessibility tree depth (0 = unlimited)
|
||||
include_menubar_hints = false
|
||||
additional_menubar_hints_targets = [
|
||||
"com.apple.TextInputMenuAgent",
|
||||
"com.apple.controlcenter",
|
||||
"com.apple.systemuiserver",
|
||||
"com.y3owk1n.neru",
|
||||
]
|
||||
include_dock_hints = false
|
||||
include_nc_hints = false
|
||||
include_stage_manager_hints = false
|
||||
include_pip_hints = false
|
||||
include_screen_capture_hints = false
|
||||
detect_mission_control = false
|
||||
clickable_roles = [
|
||||
"AXButton",
|
||||
"AXMenuButton",
|
||||
"AXComboBox",
|
||||
"AXCheckBox",
|
||||
"AXRadioButton",
|
||||
"AXLink",
|
||||
"AXPopUpButton",
|
||||
"AXTextField",
|
||||
"AXSlider",
|
||||
"AXTabButton",
|
||||
"AXSwitch",
|
||||
"AXDisclosureTriangle",
|
||||
"AXTextArea",
|
||||
"AXMenuItem",
|
||||
"AXCell",
|
||||
"AXRow",
|
||||
"AXGenericElement",
|
||||
]
|
||||
ignore_clickable_check = false
|
||||
|
||||
[hints.hotkeys]
|
||||
"Escape" = "idle"
|
||||
"}" = "action search_hints"
|
||||
"Backspace" = "action backspace"
|
||||
"Tab" = "action cycle_hint"
|
||||
"Shift+Tab" = "action cycle_hint --backward"
|
||||
"Enter" = ["action left_click","idle"]
|
||||
"Shift+R" = "action right_click"
|
||||
"Shift+M" = "action middle_click"
|
||||
"Shift+I" = "action mouse_down"
|
||||
"Shift+U" = "action mouse_up"
|
||||
"Up" = "action move_mouse_relative --dx=0 --dy=-10"
|
||||
"Down" = "action move_mouse_relative --dx=0 --dy=10"
|
||||
"Left" = "action move_mouse_relative --dx=-10 --dy=0"
|
||||
"Right" = "action move_mouse_relative --dx=10 --dy=0"
|
||||
|
||||
[hints.additional_ax_support]
|
||||
enable = false # Enable enhanced AX for Electron/Chromium/Firefox apps
|
||||
additional_electron_bundles = []
|
||||
additional_chromium_bundles = []
|
||||
additional_firefox_bundles = []
|
||||
|
||||
[hints.ui]
|
||||
font_size = 10
|
||||
font_family = "" # Empty = system font
|
||||
border_radius = -1 # -1 = auto pill
|
||||
padding_x = -1 # -1 = auto based on font size
|
||||
padding_y = -1 # -1 = auto based on font size
|
||||
border_width = 1
|
||||
placement = "bottom" # top, center, bottom
|
||||
background_color = { light = "#E0F2FE", dark = "#083344" } # Cyan-tinted background
|
||||
text_color = { light = "#0C4A6E", dark = "#67E8F9" } # High contrast text
|
||||
matched_text_color = { light = "#DC2626", dark = "#F87171" }
|
||||
border_color = { light = "#0284C7", dark = "#22D3EE" }
|
||||
|
||||
[hints.search_input_ui]
|
||||
font_size = 10
|
||||
font_family = "" # Empty = system font
|
||||
border_radius = -1 # -1 = auto pill
|
||||
padding_x = -1 # -1 = auto based on font size
|
||||
padding_y = -1 # -1 = auto based on font size
|
||||
border_width = 1
|
||||
position = "bottom_center" # top_left, top_center, top_right, center, bottom_left, bottom_center, bottom_right
|
||||
x_offset = 0 # Offset from the selected position on the active screen
|
||||
y_offset = 24 # Offset from the selected position on the active screen
|
||||
width = 320 # Search input width in pixels
|
||||
|
||||
[hints.boundary_highlight]
|
||||
enabled = false # Draw a subtle outline around each target element
|
||||
border_width = 1
|
||||
border_radius = -1 # -1 = auto pill
|
||||
|
||||
# Grid mode
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#grid-mode
|
||||
[grid]
|
||||
enabled = true
|
||||
characters = "arstgmneio" # Primary grid labels
|
||||
sublayer_keys = "arstgmneio" # Subgrid labels (fallback to characters)
|
||||
live_match_update = true # Highlight cells as you type
|
||||
hide_unmatched = true # Hide non-matching cells
|
||||
prewarm_enabled = true # Pre-compute grid on startup (~1.5MB RAM)
|
||||
enable_gc = false # Periodic memory cleanup (adds CPU overhead)
|
||||
|
||||
[grid.hotkeys]
|
||||
"Escape" = "idle"
|
||||
"`" = "toggle-cursor-follow-selection"
|
||||
"Space" = "action reset"
|
||||
"Backspace" = "action backspace"
|
||||
"Enter" = ["action left_click","idle"]
|
||||
"Shift+R" = "action right_click"
|
||||
"Shift+M" = "action middle_click"
|
||||
"Shift+I" = "action mouse_down"
|
||||
"Shift+U" = "action mouse_up"
|
||||
"Up" = "action move_mouse_relative --dx=0 --dy=-10"
|
||||
"Down" = "action move_mouse_relative --dx=0 --dy=10"
|
||||
"Left" = "action move_mouse_relative --dx=-10 --dy=0"
|
||||
"Right" = "action move_mouse_relative --dx=10 --dy=0"
|
||||
|
||||
[grid.ui]
|
||||
font_size = 8
|
||||
font_family = ""
|
||||
border_width = 0
|
||||
matched_background_color = { light = "#FECACA", dark = "#7F1D1D" } # Red for matched
|
||||
matched_border_color = { light = "#DC2626", dark = "#F87171" }
|
||||
border_color = { light = "#D1D5DB", dark = "#374151" }
|
||||
|
||||
# Recursive grid mode (recommended)
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#recursive-grid-mode-recommended
|
||||
[recursive_grid]
|
||||
enabled = true
|
||||
grid_cols = 5 # Number of columns (>= 1)
|
||||
grid_rows = 3 # Number of rows (>= 1)
|
||||
keys = "qwfpbarstgzxcdv" # Cell selection keys (must be grid_cols * grid_rows chars)
|
||||
min_size_width = 1 # Stop subdividing below this width (px)
|
||||
min_size_height = 1 # Stop subdividing below this height (px)
|
||||
max_depth = 4 # Maximum recursion levels (1–20)
|
||||
|
||||
[recursive_grid.animation]
|
||||
enabled = false # Opt in to native depth transition animation on supported platforms
|
||||
duration_ms = 180 # Recursive-grid animation duration in milliseconds
|
||||
|
||||
[recursive_grid.hotkeys]
|
||||
"Escape" = "idle"
|
||||
"`" = "toggle-cursor-follow-selection"
|
||||
"Space" = "action reset"
|
||||
"Backspace" = "action backspace"
|
||||
"Return" = ["action left_click","idle"]
|
||||
"Shift+R" = "action right_click"
|
||||
"Shift+M" = "action middle_click"
|
||||
"Shift+I" = "action mouse_down"
|
||||
"Shift+U" = "action mouse_up"
|
||||
"Up" = "action move_mouse_relative --dx=0 --dy=-10"
|
||||
"Down" = "action move_mouse_relative --dx=0 --dy=10"
|
||||
"Left" = "action move_mouse_relative --dx=-10 --dy=0"
|
||||
"Right" = "action move_mouse_relative --dx=10 --dy=0"
|
||||
|
||||
[recursive_grid.ui]
|
||||
line_width = 1
|
||||
font_size = 8
|
||||
font_family = ""
|
||||
label_background = false # Add rounded backgrounds behind cell labels
|
||||
label_background_padding_x = -1
|
||||
label_background_padding_y = -1
|
||||
label_background_border_radius = -1
|
||||
label_background_border_width = 1
|
||||
sub_key_preview = false # Draw miniature key grid inside each cell
|
||||
sub_key_preview_font_size = 8
|
||||
sub_key_preview_autohide_multiplier = 1.5
|
||||
#highlight_color = { light = "#DC2626", dark = "#F87171" } # Bright red highlight
|
||||
#line_color = { light = "#9CA3AF", dark = "#4B5563" } # Subtle grid lines
|
||||
#text_color = { light = "#1E293B", dark = "#F1F5F9" }
|
||||
|
||||
# Virtual pointer
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#virtual-pointer
|
||||
[virtual_pointer]
|
||||
enabled = true
|
||||
|
||||
[virtual_pointer.ui]
|
||||
size = 5 # Larger dot
|
||||
color = { light = "#DC2626", dark = "#F87171" }
|
||||
|
||||
# Mouse action indicator (macOS)
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#mouse-action-indicator
|
||||
[mouse_action_indicator]
|
||||
enabled = false # Disabled by default
|
||||
actions = ["left_click", "right_click", "middle_click", "mouse_down", "mouse_up"]
|
||||
|
||||
[mouse_action_indicator.ui]
|
||||
size = 36
|
||||
border_width = 2
|
||||
shape = "circle" # circle or square
|
||||
|
||||
[mouse_action_indicator.animation]
|
||||
duration_ms = 260
|
||||
start_scale = 0.55
|
||||
end_scale = 1.35
|
||||
start_opacity = 0.85
|
||||
end_opacity = 0.0
|
||||
easing = "ease_out" # linear, ease_in, ease_out, ease_in_out
|
||||
|
||||
# Scroll mode
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#scroll-mode
|
||||
[scroll]
|
||||
scroll_step = 50 # Pixels per j/k press
|
||||
scroll_step_half = 500 # Pixels for d/u (half page)
|
||||
scroll_step_full = 1000000 # Pixels for gg/G (top/bottom)
|
||||
|
||||
[scroll.hotkeys]
|
||||
"Escape" = "idle"
|
||||
"k" = "action scroll_up"
|
||||
"j" = "action scroll_down"
|
||||
"h" = "action scroll_left"
|
||||
"l" = "action scroll_right"
|
||||
"gg" = "action go_top"
|
||||
"Shift+G" = "action go_bottom"
|
||||
"u" = "action page_up"
|
||||
"PageUp" = "action page_up"
|
||||
"d" = "action page_down"
|
||||
"PageDown" = "action page_down"
|
||||
"Shift+L" = "action left_click"
|
||||
"Shift+R" = "action right_click"
|
||||
"Shift+M" = "action middle_click"
|
||||
"Shift+I" = "action mouse_down"
|
||||
"Shift+U" = "action mouse_up"
|
||||
"Up" = "action move_mouse_relative --dx=0 --dy=-10"
|
||||
"Down" = "action move_mouse_relative --dx=0 --dy=10"
|
||||
"Left" = "action move_mouse_relative --dx=-10 --dy=0"
|
||||
"Right" = "action move_mouse_relative --dx=10 --dy=0"
|
||||
|
||||
# Mode indicator
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#mode-indicator
|
||||
[mode_indicator]
|
||||
|
||||
[mode_indicator.scroll]
|
||||
enabled = true
|
||||
text = "Scroll"
|
||||
|
||||
[mode_indicator.hints]
|
||||
enabled = true
|
||||
text = "Hints"
|
||||
background_color = { light = "#E0F2FE", dark = "#083344" }
|
||||
|
||||
[mode_indicator.grid]
|
||||
enabled = false
|
||||
text = "Grid"
|
||||
|
||||
[mode_indicator.recursive_grid]
|
||||
enabled = false
|
||||
text = "Recursive Grid"
|
||||
background_color = { light = "#FEE2E2", dark = "#7F1D1D" }
|
||||
|
||||
[mode_indicator.ui]
|
||||
font_size = 10
|
||||
font_family = ""
|
||||
border_width = 1
|
||||
padding_x = -1
|
||||
padding_y = -1
|
||||
border_radius = -1
|
||||
indicator_x_offset = 20
|
||||
indicator_y_offset = 20
|
||||
|
||||
# Sticky modifiers
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#sticky-modifiers
|
||||
[sticky_modifiers]
|
||||
enabled = true
|
||||
tap_max_duration = 300
|
||||
|
||||
[sticky_modifiers.ui]
|
||||
font_size = 10
|
||||
font_family = ""
|
||||
border_width = 1
|
||||
padding_x = -1
|
||||
padding_y = -1
|
||||
border_radius = -1
|
||||
indicator_x_offset = -40
|
||||
indicator_y_offset = 20
|
||||
|
||||
# Smooth cursor (animates cursor movement between positions)
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#smooth-cursor
|
||||
[smooth_cursor]
|
||||
move_mouse_enabled = false # Enable smooth mouse movement
|
||||
steps = 10 # Number of intermediate positions
|
||||
max_duration = 200 # Maximum animation duration in ms
|
||||
duration_per_pixel = 0.1 # Ms per pixel for adaptive duration
|
||||
|
||||
# Smooth scroll (animates scroll actions with eased chunking)
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#smooth-scroll
|
||||
[smooth_scroll]
|
||||
enabled = false # Enable smooth scrolling
|
||||
steps = 20 # Number of animation steps
|
||||
max_duration = 180 # Maximum animation duration in ms
|
||||
duration_per_pixel = 1.00 # Ms per pixel for adaptive duration
|
||||
|
||||
# Systray
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#systray
|
||||
[systray]
|
||||
enabled = true # Show menu bar icon (false = headless mode)
|
||||
|
||||
# Logging
|
||||
# See https://github.com/y3owk1n/neru/blob/main/docs/CONFIGURATION.md#logging
|
||||
[logging]
|
||||
log_level = "info" # debug, info, warn, error
|
||||
log_file = "" # Custom log path (empty = default location)
|
||||
structured_logging = true # JSON format
|
||||
disable_file_logging = true # Console only (no file)
|
||||
max_file_size = 10 # MB before rotation
|
||||
max_backups = 5 # Old log files to keep
|
||||
max_age = 30 # Days to retain old logs
|
||||
Loading…
x
Reference in New Issue
Block a user