feat: major update to all configs

- move older config to archive

Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
This commit is contained in:
2026-03-26 12:07:53 +05:30
committed by Morumotto
parent 4555248b72
commit c2786c7f96
67 changed files with 881 additions and 772 deletions
+27 -82
View File
@@ -1,104 +1,49 @@
[window]
padding = { x = 7, y = 5 }
dynamic_padding = true
decorations = "Buttonless"
dynamic_title = false
[font]
normal = { family = "Monaspace Neon", style = "Regular" }
bold = { family = "Monaspace Neon", style = "Bold" }
italic = { family = "Monaspace Neon", style = "Italic" }
bold_italic = { family = "Monaspace Neon", style = "Bold Italic" }
size = 15
[terminal.shell]
program = "zellij"
args = ["-l", "welcome"]
# Nightfox Alacritty Colors
## name: carbonfox
## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/carbonfox/alacritty.toml
normal = { family = "Iosevka Term", style = "Regular" }
bold = { family = "Iosevka Term", style = "Bold" }
italic = { family = "Iosevka Term", style = "Italic" }
bold_italic = { family = "Iosevka Term", style = "Bold Italic" }
size = 14
[colors.primary]
background = "#161616"
foreground = "#f2f4f8"
dim_foreground = "#b6b8bb"
bright_foreground = "#f9fbff"
background = "#111111"
foreground = "#c1c9d2"
[colors.cursor]
text = "#f2f4f8"
cursor = "#b6b8bb"
[colors.vi_mode_cursor]
text = "#f2f4f8"
cursor = "#33b1ff"
[colors.search.matches]
foreground = "#f2f4f8"
background = "#525253"
[colors.search.focused_match]
foreground = "#f2f4f8"
background = "#3ddbd9"
[colors.footer_bar]
foreground = "#f2f4f8"
background = "#353535"
[colors.hints.start]
foreground = "#f2f4f8"
background = "#3ddbd9"
[colors.hints.end]
foreground = "#f2f4f8"
background = "#353535"
text = "#111111"
cursor = "#c1c9d2"
[colors.selection]
text = "#f2f4f8"
background = "#2a2a2a"
text = "#ffffff"
background = "#3e4043"
[colors.normal]
black = "#282828"
red = "#ee5396"
green = "#25be6a"
yellow = "#f8e17c"
blue = "#33b1ff"
magenta = "#be95ff"
cyan = "#3ddbd9"
white = "#dfdfe0"
black = "#000000"
red = "#ed5f74"
green = "#1ea672"
yellow = "#d97917"
blue = "#688ef1"
magenta = "#c96ed0"
cyan = "#3a97d4"
white = "#e3e8ee"
[colors.bright]
black = "#484848"
red = "#f16da6"
green = "#46c880"
yellow = "#f8e17c"
blue = "#52bdff"
magenta = "#c8a5ff"
cyan = "#2dc7c4"
white = "#e4e4e5"
[colors.dim]
black = "#222222"
red = "#ca4780"
green = "#1fa25a"
yellow = "#f8e17c"
blue = "#2b96d9"
magenta = "#a27fd9"
cyan = "#07a19e"
white = "#bebebe"
[[colors.indexed_colors]]
index = 16
color = "#3ddbd9"
[[colors.indexed_colors]]
index = 17
color = "#ff7eb6"
black = "#697386"
red = "#fbb5b2"
green = "#85d996"
yellow = "#efc078"
blue = "#9fcdff"
magenta = "#f0b4e4"
cyan = "#7fd3ed"
white = "#ffffff"
[cursor]
style = { shape = "Underline", blinking = "On" }
vi_mode_style = { shape = "Block", blinking = "Off" }
[selection]
save_to_clipboard = true
+33 -167
View File
@@ -1,200 +1,66 @@
## where to store your database, default is your system data directory
## linux/mac: ~/.local/share/atuin/history.db
## windows: %USERPROFILE%/.local/share/atuin/history.db
# db_path = "~/.history.db"
## Sync
sync_address = "http://pifive.neon-universe.ts.net:8392"
## where to store your encryption key, default is your system data directory
## linux/mac: ~/.local/share/atuin/key
## windows: %USERPROFILE%/.local/share/atuin/key
# key_path = "~/.key"
## Search
search_mode = "daemon-fuzzy"
## where to store your auth session token, default is your system data directory
## linux/mac: ~/.local/share/atuin/session
## windows: %USERPROFILE%/.local/share/atuin/session
# session_path = "~/.session"
## date format used, either "us" or "uk"
# dialect = "us"
## default timezone to use when displaying time
## either "l", "local" to use the system's current local timezone, or an offset
## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
# timezone = "local"
## enable or disable automatic sync
# auto_sync = true
## enable or disable automatic update checks
# update_check = true
## address of the sync server
sync_address = "http://pifive.neon-universe.ts.net:8888"
## how often to sync history. note that this is only triggered when a command
## is ran, so sync intervals may well be longer
## set it to 0 to sync after every command
# sync_frequency = "10m"
## which search mode to use
## possible values: prefix, fulltext, fuzzy, skim
search_mode = "fulltext"
## which filter mode to use
## possible values: global, host, session, directory
filter_mode = "host"
## With workspace filtering enabled, Atuin will filter for commands executed
## in any directory within a git repository tree (default: false)
# Smart filter: workspace in git repos, falls to directory outside, then session
# Workspace mode is auto-skipped when not in a git repo
filter_mode = "workspace"
filter_mode_shell_up_key_binding = "session"
workspaces = true
## which filter mode to use when atuin is invoked from a shell up-key binding
## the accepted values are identical to those of "filter_mode"
## leave unspecified to use same mode set in "filter_mode"
filter_mode_shell_up_key_binding = "session"
## which search mode to use when atuin is invoked from a shell up-key binding
## the accepted values are identical to those of "search_mode"
## leave unspecified to use same mode set in "search_mode"
# search_mode_shell_up_key_binding = "fuzzy"
## which style to use
## possible values: auto, full, compact
## UI
style = "compact"
## the maximum number of lines the interface should take up
## set it to 0 to always go full screen
inline_height = 9
## Invert the UI - put the search bar at the top , Default to `false`
# invert = false
## enable or disable showing a preview of the selected command
## useful when the command is longer than the terminal width and is cut off
# show_preview = false
## what to do when the escape key is pressed when searching
## possible values: return-original, return-query
# exit_mode = "return-original"
## possible values: emacs, subl
# word_jump_mode = "emacs"
## characters that count as a part of a word
# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
## number of context lines to show when scrolling by pages
# scroll_context_lines = 1
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
## alt-0 .. alt-9
# ctrl_n_shortcuts = false
## default history list format - can also be specified with the --format arg
# history_format = "{time}\t{command}\t{duration}"
## prevent commands matching any of these regexes from being written to history.
## Note that these regular expressions are unanchored, i.e. if they don't start
## with ^ or end with $, they'll match anywhere in the command.
## For details on the supported regular expression syntax, see
## https://docs.rs/regex/latest/regex/#syntax
# history_filter = [
# "^secret-cmd",
# "^innocuous-cmd .*--secret=.+",
# ]
## prevent commands run with cwd matching any of these regexes from being written
## to history. Note that these regular expressions are unanchored, i.e. if they don't
## start with ^ or end with $, they'll match anywhere in CWD.
## For details on the supported regular expression syntax, see
## https://docs.rs/regex/latest/regex/#syntax
# cwd_filter = [
# "^/very/secret/area",
# ]
## Configure the maximum height of the preview to show.
## Useful when you have long scripts in your history that you want to distinguish
## by more than the first few lines.
# max_preview_height = 4
## Configure whether or not to show the help row, which includes the current Atuin
## version (and whether an update is available), a keymap hint, and the total
## amount of commands in your history.
show_help = false
## Configure whether or not to show tabs for search and inspect
show_tabs = false
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
## 1. AWS key id
## 2. Github pat (old and new)
## 3. Slack oauth tokens (bot, user)
## 4. Slack webhooks
## 5. Stripe live/test keys
# secrets_filter = true
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
show_preview = true
max_preview_height = 4
enter_accept = true
## Defaults to "emacs". This specifies the keymap on the startup of `atuin
## search`. If this is set to "auto", the startup keymap mode in the Atuin
## search is automatically selected based on the shell's keymap where the
## keybinding is defined. If this is set to "emacs", "vim-insert", or
## "vim-normal", the startup keymap mode in the Atuin search is forced to be
## the specified one.
# keymap_mode = "auto"
## Score tuning for daemon-fuzzy: favor recent commands slightly
[search]
filters = ["workspace", "directory", "session", "host", "global"]
recency_score_multiplier = 2.0
frequency_score_multiplier = 1.0
frecency_score_multiplier = 1.5
## Cursor style in each keymap mode. If specified, the cursor style is changed
## in entering the cursor shape. Available values are "default" and
## "{blink,steady}-{block,underline,bar}".
# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
# network_connect_timeout = 5
# network_timeout = 5
## Timeout (in seconds) for acquiring a local database connection (sqlite)
# local_timeout = 5
## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
## Alternatively, set env NO_MOTION=true
# prefers_reduced_motion = false
## Filter secrets and noisy commands from history
history_filter = [
"^export .*(KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL).*=",
"^set .*(KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL).*=",
]
[stats]
## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
common_subcommands = [
"brew",
"cargo",
"dnf",
"docker",
"gh",
"git",
"go",
"ip",
"kubectl",
"npm",
"oc",
"podman",
"port",
"systemctl",
"tmux",
"zellij",
"yarn",
]
## Set commands that should be totally stripped and ignored from stats
# common_prefix = ["sudo"]
## Set commands that will be completely ignored from stats
# ignored_commands = [
# "cd",
# "ls",
# "vi"
# ]
[keys]
# Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry.
# scroll_exits = false
scroll_exits = false
[sync]
# Enable sync v2 by default
# This ensures that sync v2 is enabled for new installs only
# In a later release it will become the default across the board
records = true
[daemon]
enabled = true
autostart = true
[preview]
strategy = "auto"
-461
View File
@@ -1,461 +0,0 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
### Geometry ###
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 500
# The maximum height of a single notification, excluding the frame.
height = 300
# Position the notification in the top right corner
origin = bottom-right
# Offset from the origin
offset = 20x50
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 20
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 450
# Corner radius for the progress bar. 0 disables rounded corners.
progress_bar_corner_radius = 0
# Corner radius for the icon image.
icon_corner_radius = 0
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
# If gap_size is greater than 0, this setting will be ignored.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
# of size frame_width will be drawn around each notification instead.
# Click events on gaps do not currently propagate to applications below.
gap_size = 5
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = "Monaspace Radon" 11
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Recursive icon lookup. You can set a single theme, instead of having to
# define all lookup paths.
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
icon_theme = Adwaita
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
# Align icons left/right/top/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 128
# Paths to default icons (only neccesary when not using recursive icon lookup)
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#161616"
foreground = "#ffffff"
frame_color = "#ffffff"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_normal]
background = "#161616"
foreground = "#ffffff"
frame_color = "#2dc7c4"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_critical]
background = "#161616"
foreground = "#f16da6"
frame_color = "#ff0000"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#default_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg
-4
View File
@@ -1,4 +0,0 @@
XDG_DATA_HOME=$HOME/.local/share
XDG_CONFIG_HOME=$HOME/.config
XDG_STATE_HOME=$HOME/.local/state
XDG_CACHE_HOME=$HOME/.cache
+2 -1
View File
@@ -3,7 +3,7 @@ version: 1
# What protocol to use when performing git operations. Supported values: ssh, https
git_protocol: ssh
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
editor: nvim
editor: hx
# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
prompt: enabled
# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager.
@@ -11,6 +11,7 @@ pager: less
# Aliases allow you to create nicknames for gh commands
aliases:
co: pr checkout
pc: pr create
# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport.
http_unix_socket:
# What web browser gh should use when opening URLs. If blank, will refer to environment.
-5
View File
@@ -1,5 +0,0 @@
github.com:
git_protocol: ssh
users:
avinal:
user: avinal
+58 -21
View File
@@ -1,30 +1,67 @@
# Font related configs
font-family = "Monaspace Neon"
font-size = "14"
adjust-underline-position = "1"
adjust-underline-thickness = "1"
#adjust-cell-width = "5%"
#adjust-cell-height = "5%"
adjust-box-thickness = "1"
# Font
font-family = "Iosevka Term"
font-size = 14
font-feature = "calt"
font-feature = "liga"
adjust-underline-position = 1
adjust-underline-thickness = 1
adjust-box-thickness = 1
bold-is-bright = true
freetype-load-flags = hinting,autohint,light
# Appearance
# theme = "Oxocarbon"
theme = "Raycast_Dark"
# title = "Ghostty"
theme = "vim_dark_high_contrast"
window-decoration = true
window-padding-x = 4
window-padding-y = 2
window-padding-balance = true
mouse-hide-while-typing = true
unfocused-split-opacity = 0.85
resize-overlay = after-first
resize-overlay-position = bottom-right
# Cursor setting
cursor-style = "underline"
# Cursor
cursor-style = block_hollow
cursor-style-blink = false
cursor-click-to-move = true
cursor-color = "cyan"
cursor-text = "cyan"
# cursor-invert-fg-bg = true
# adjust-cursor-thickness = "2"
cursor-color = cyan
cursor-text = cyan
# Shell setting
shell-integration = "zsh"
# Shell
shell-integration = zsh
shell-integration-features = true
# Clipboard
clipboard-read = "allow"
clipboard-write = "allow"
clipboard-read = allow
clipboard-write = allow
copy-on-select = clipboard
# Scrollback (10MB per surface)
scrollback-limit = 10000000
# Links
link-url = true
# Notifications for long commands (KDE supports this natively)
notify-on-command-finish = unfocused
notify-on-command-finish-after = 10s
# Window behavior
confirm-close-surface = true
window-inherit-working-directory = true
window-save-state = always
# Quick terminal (toggle with a keybind)
quick-terminal-position = top
quick-terminal-size = 40%
quick-terminal-autohide = false
# GTK/Linux specific
gtk-titlebar = false
gtk-tabs-location = hidden
gtk-single-instance = true
# Keybinds
keybind = ctrl+grave_accent=toggle_quick_terminal
keybind = ctrl+shift+t=new_tab
keybind = ctrl+shift+n=new_window
@@ -0,0 +1,24 @@
palette = 0=#000000
palette = 1=#ed5f74
palette = 2=#1ea672
palette = 3=#d97917
palette = 4=#688ef1
palette = 5=#c96ed0
palette = 6=#3a97d4
palette = 7=#e3e8ee
palette = 8=#697386
palette = 9=#fbb5b2
palette = 10=#85d996
palette = 11=#efc078
palette = 12=#9fcdff
palette = 13=#f0b4e4
palette = 14=#7fd3ed
palette = 15=#ffffff
background = #000000
foreground = #c1c9d2
cursor-color = #c1c9d2
cursor-text = #111111
selection-background = #3e4043
selection-foreground = #ffffff
+26
View File
@@ -0,0 +1,26 @@
# Ghostty theme adapted from Helix palette
palette = 0=#000000
palette = 1=#ed5f74
palette = 2=#1ea672
palette = 3=#d97917
palette = 4=#688ef1
palette = 5=#c96ed0
palette = 6=#3a97d4
palette = 7=#e3e8ee
palette = 8=#697386
palette = 9=#fbb5b2
palette = 10=#85d996
palette = 11=#efc078
palette = 12=#9fcdff
palette = 13=#f0b4e4
palette = 14=#7fd3ed
palette = 15=#ffffff
background = #111111
foreground = #c1c9d2
cursor-color = #c1c9d2
cursor-text = #111111
selection-background = #3e4043
selection-foreground = #ffffff
+2 -1
View File
@@ -1,4 +1,4 @@
theme = "carbonfox"
theme = "vim_dark_high_contrast"
[editor]
rulers = [80, 100]
@@ -9,6 +9,7 @@ bufferline = "multiple"
color-modes = true
end-of-line-diagnostics = "hint"
popup-border = "popup"
scrolloff = 2
[editor.soft-wrap]
enable = true
+12 -2
View File
@@ -1,5 +1,15 @@
# Global ignore files
# For golang
# Dependencies
vendor/
node_modules/
# Build artifacts
target/
dist/
build/
_build/
__pycache__/
# Version control
.git/
+41 -9
View File
@@ -9,6 +9,14 @@ command = "wakatime-ls"
[language-server.yaml-language-server.config.yaml]
format = { enable = true }
validation = true
schemaStore = { enable = true }
[language-server.yaml-language-server.config.yaml.schemas]
"https://json.schemastore.org/github-workflow.json" = ".github/workflows/*.{yml,yaml}"
"https://raw.githubusercontent.com/ansible-community/schemas/main/f/ansible-tasks.json" = "roles/{tasks,handlers}/*.{yml,yaml}"
"https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_Task.json" = "tasks/*.{yml,yaml}"
"https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Pipeline.json" = "pipelines/*.{yml,yaml}"
"https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_PipelineRun.json" = ".tekton/*.{yml,yaml}"
[[language]]
name = "c"
@@ -46,21 +54,45 @@ name = "bash"
language-servers = ["bash-language-server", "wakatime"]
[[language]]
name = "html"
language-servers = ["wakatime"]
name = "python"
language-servers = ["pylsp", "wakatime"]
auto-format = true
[[language]]
name = "rust"
language-servers = ["rust-analyzer", "wakatime"]
auto-format = true
[[language]]
name = "typescript"
language-servers = ["typescript-language-server", "wakatime"]
auto-format = true
[[language]]
name = "javascript"
language-servers = ["typescript-language-server", "wakatime"]
auto-format = true
[[language]]
name = "html"
language-servers = ["vscode-html-language-server", "wakatime"]
[[language]]
name = "css"
language-servers = ["vscode-css-language-server", "wakatime"]
[[language]]
name = "lua"
language-servers = ["wakatime"]
# [[language]]
# name = "docker"
# language-servers = ["wakatime"]
language-servers = ["lua-language-server", "wakatime"]
[[language]]
name = "dockerfile"
language-servers = ["docker-langserver", "wakatime"]
[[language]]
name = "json"
language-servers = ["wakatime"]
language-servers = ["vscode-json-language-server", "wakatime"]
[[language]]
name = "toml"
language-servers = ["taplo", "wakatime"]
+50
View File
@@ -0,0 +1,50 @@
gui:
showBottomLine: false
showPanelJumps: true
showCommandLog: false
showRandomTip: false
nerdFontsVersion: ""
showFileIcons: false
border: rounded
filterMode: fuzzy
showDivergenceFromBaseBranch: arrowAndNumber
animateExplosion: false
theme:
activeBorderColor:
- "#3a97d4"
- bold
inactiveBorderColor:
- "#697386"
selectedLineBgColor:
- "#3e4043"
optionsTextColor:
- "#3a97d4"
unstagedChangesColor:
- "#ed5f74"
defaultFgColor:
- "#c1c9d2"
git:
autoFetch: true
autoRefresh: true
branchLogCmd: git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --
os:
editor: hx
editPreset: helix
customCommands:
- key: "C"
context: files
command: git commit -m '{{index .PromptResponses 0}}' -m '{{index .PromptResponses 1}}'
description: "Commit with body"
prompts:
- type: input
title: "Summary"
- type: input
title: "Description"
- key: "b"
context: files
command: git checkout -b {{index .PromptResponses 0}}
description: "New branch from here"
prompts:
- type: input
title: "Branch name"
-6
View File
@@ -1,6 +0,0 @@
column_width = 160
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "None"
-19
View File
@@ -1,19 +0,0 @@
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-35
View File
@@ -1,35 +0,0 @@
-- Set <space> as the leader key
-- See `:help mapleader`
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
-- Set to true if you have a Nerd Font installed and selected in the terminal
vim.g.have_nerd_font = true
-- Set additional path because the information is lost inside zellij
local bin_paths = {
'/home/avinal/.nvm/versions/node/v22.1.0/bin',
'/home/avinal/.local/bin',
'/home/avinal/.krew/bin',
'/home/avinal/bin',
'/usr/local/go/bin',
'/home/avinal/go/bin',
}
vim.env.PATH = table.concat(bin_paths, ':') .. ':' .. vim.env.PATH
-- [[ Setting options ]]
require 'options'
-- [[ Basic Keymaps ]]
require 'keymaps'
-- [[ Install `lazy.nvim` plugin manager ]]
require 'lazy-bootstrap'
-- [[ Configure and install plugins ]]
require 'lazy-plugins'
-- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et
-41
View File
@@ -1,41 +0,0 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "33b06d72d220aa56a7ce80a0dd6f06c70cd82b9d" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"conform.nvim": { "branch": "master", "commit": "9180320205d250429f0f80e073326c674e2a7149" },
"fidget.nvim": { "branch": "main", "commit": "9238947645ce17d96f30842e61ba81147185b657" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "c6c686781f9841d855bf1b926e10aa5e19430a38" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.nvim": { "branch": "main", "commit": "9df78f3cdf9bdcc5aaf93cc51412a69a384041b2" },
"neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"nightfox.nvim": { "branch": "main", "commit": "595ffb8f291fc4a9bef3201a28b7c0379a41cdee" },
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
"nvim-colorizer.lua": { "branch": "master", "commit": "8a65c448122fc8fac9c67b2e857b6e830a4afd0b" },
"nvim-dap": { "branch": "master", "commit": "0e673accbb512e1e191dfb4fecea89cc38c1bcdd" },
"nvim-dap-go": { "branch": "main", "commit": "6aa88167ea1224bcef578e8c7160fe8afbb44848" },
"nvim-dap-ui": { "branch": "master", "commit": "e94d98649dccb6a3884b66aabc2e07beb279e535" },
"nvim-lint": { "branch": "master", "commit": "1fea92f1d9908eaa5eb8bafe08b4293d7aadaa55" },
"nvim-lspconfig": { "branch": "master", "commit": "8b15a1a597a59f4f5306fad9adfe99454feab743" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-treesitter": { "branch": "master", "commit": "5f78e989243f9fb0fb55e0cf54820920d86dfd30" },
"nvim-web-devicons": { "branch": "master", "commit": "4adeeaa7a32d46cf3b5833341358c797304f950a" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"tailwind-tools": { "branch": "master", "commit": "3703e162d819a04b128902c508276553dae0dfb8" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"vim-wakatime": { "branch": "master", "commit": "cf51327a9e08935569614d1cb24e779ee9f45519" },
"which-key.nvim": { "branch": "main", "commit": "8ab96b38a2530eacba5be717f52e04601eb59326" }
}
@@ -1,6 +0,0 @@
return {
'NvChad/nvim-colorizer.lua',
config = function()
require('colorizer').setup()
end,
}
-7
View File
@@ -1,7 +0,0 @@
-- You can add your own plugins here or in other files in this directory!
-- I promise not to create any merge conflicts in this directory :)
--
-- See the kickstart.nvim README for more information
return {
{ 'wakatime/vim-wakatime', lazy = false },
}
@@ -1,12 +0,0 @@
-- tailwind-tools.lua
return {
'luckasRanarison/tailwind-tools.nvim',
name = 'tailwind-tools',
build = ':UpdateRemotePlugins',
dependencies = {
'nvim-treesitter/nvim-treesitter',
'nvim-telescope/telescope.nvim', -- optional
'neovim/nvim-lspconfig', -- optional
},
opts = {}, -- your configuration
}
@@ -1,25 +0,0 @@
return {
'EdenEast/nightfox.nvim',
priority = 1000,
init = function()
vim.opt.background = 'dark'
vim.cmd.colorscheme 'carbonfox'
end,
config = function()
require('nightfox').setup {
options = {
styles = {
comments = 'italic',
},
},
-- groups = {
-- carbonfox = {
-- string = { fg = 'white' },
-- },
-- },
}
end,
}
--- vim: ts=2 sts=2 sw=2 et
-51
View File
@@ -1,51 +0,0 @@
-- [[ Basic Keymaps ]]
-- See `:help vim.keymap.set()`
-- Set highlight on search, but clear on pressing <Esc> in normal mode
vim.opt.hlsearch = true
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
-- Diagnostic keymaps
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous [D]iagnostic message' })
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next [D]iagnostic message' })
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Show diagnostic [E]rror messages' })
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
-- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier
-- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which
-- is not what someone will guess without a bit more experience.
--
-- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping
-- or just use <C-\><C-n> to exit terminal mode
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
-- TIP: Disable arrow keys in normal mode
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
-- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
-- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
-- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows
--
-- See `:help wincmd` for a list of all window commands
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
-- [[ Basic Autocommands ]]
-- See `:help lua-guide-autocommands`
-- Highlight when yanking (copying) text
-- Try it with `yap` in normal mode
-- See `:help vim.highlight.on_yank()`
vim.api.nvim_create_autocmd('TextYankPost', {
desc = 'Highlight when yanking (copying) text',
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
callback = function()
vim.highlight.on_yank()
end,
})
-- vim: ts=2 sts=2 sw=2 et
-52
View File
@@ -1,52 +0,0 @@
--[[
--
-- This file is not required for your own configuration,
-- but helps people determine if their system is setup correctly.
--
--]]
local check_version = function()
local verstr = string.format('%s.%s.%s', vim.version().major, vim.version().minor, vim.version().patch)
if not vim.version.cmp then
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
return
end
if vim.version.cmp(vim.version(), { 0, 9, 4 }) >= 0 then
vim.health.ok(string.format("Neovim version is: '%s'", verstr))
else
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
end
end
local check_external_reqs = function()
-- Basic utils: `git`, `make`, `unzip`
for _, exe in ipairs { 'git', 'make', 'unzip', 'rg' } do
local is_executable = vim.fn.executable(exe) == 1
if is_executable then
vim.health.ok(string.format("Found executable: '%s'", exe))
else
vim.health.warn(string.format("Could not find executable: '%s'", exe))
end
end
return true
end
return {
check = function()
vim.health.start 'kickstart.nvim'
vim.health.info [[NOTE: Not every warning is a 'must-fix' in `:checkhealth`
Fix only warnings for plugins and languages you intend to use.
Mason will give warnings for languages that are not installed.
You do not need to install, unless you want to use those languages!]]
local uv = vim.uv or vim.loop
vim.health.info('System Information: ' .. vim.inspect(uv.os_uname()))
check_version()
check_external_reqs()
end,
}
@@ -1,16 +0,0 @@
-- autopairs
-- https://github.com/windwp/nvim-autopairs
return {
'windwp/nvim-autopairs',
event = 'InsertEnter',
-- Optional dependency
dependencies = { 'hrsh7th/nvim-cmp' },
config = function()
require('nvim-autopairs').setup {}
-- If you want to automatically add `(` after selecting a function or method
local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
local cmp = require 'cmp'
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
end,
}
-113
View File
@@ -1,113 +0,0 @@
return {
{ -- Autocompletion
'hrsh7th/nvim-cmp',
event = 'InsertEnter',
dependencies = {
-- Snippet Engine & its associated nvim-cmp source
{
'L3MON4D3/LuaSnip',
build = (function()
-- Build Step is needed for regex support in snippets.
-- This step is not supported in many windows environments.
-- Remove the below condition to re-enable on windows.
if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then
return
end
return 'make install_jsregexp'
end)(),
dependencies = {
-- `friendly-snippets` contains a variety of premade snippets.
-- See the README about individual language/framework/plugin snippets:
-- https://github.com/rafamadriz/friendly-snippets
-- {
-- 'rafamadriz/friendly-snippets',
-- config = function()
-- require('luasnip.loaders.from_vscode').lazy_load()
-- end,
-- },
},
},
'saadparwaiz1/cmp_luasnip',
-- Adds other completion capabilities.
-- nvim-cmp does not ship with all sources by default. They are split
-- into multiple repos for maintenance purposes.
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-path',
},
config = function()
-- See `:help cmp`
local cmp = require 'cmp'
local luasnip = require 'luasnip'
luasnip.config.setup {}
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
completion = { completeopt = 'menu,menuone,noinsert' },
-- For an understanding of why these mappings were
-- chosen, you will need to read `:help ins-completion`
--
-- No, but seriously. Please read `:help ins-completion`, it is really good!
mapping = cmp.mapping.preset.insert {
-- Select the [n]ext item
['<C-n>'] = cmp.mapping.select_next_item(),
-- Select the [p]revious item
['<C-p>'] = cmp.mapping.select_prev_item(),
-- Scroll the documentation window [b]ack / [f]orward
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
-- Accept ([y]es) the completion.
-- This will auto-import if your LSP supports it.
-- This will expand snippets if the LSP sent a snippet.
-- ['<C-y>'] = cmp.mapping.confirm { select = true },
-- If you prefer more traditional completion keymaps,
-- you can uncomment the following lines
['<CR>'] = cmp.mapping.confirm { select = true },
['<Tab>'] = cmp.mapping.select_next_item(),
['<S-Tab>'] = cmp.mapping.select_prev_item(),
-- Manually trigger a completion from nvim-cmp.
-- Generally you don't need this, because nvim-cmp will display
-- completions whenever it has completion options available.
['<C-Space>'] = cmp.mapping.complete {},
-- Think of <c-l> as moving to the right of your snippet expansion.
-- So if you have a snippet that's like:
-- function $name($args)
-- $body
-- end
--
-- <c-l> will move you to the right of each of the expansion locations.
-- <c-h> is similar, except moving you backwards.
['<C-l>'] = cmp.mapping(function()
if luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
end
end, { 'i', 's' }),
['<C-h>'] = cmp.mapping(function()
if luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
end
end, { 'i', 's' }),
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
{ name = 'path' },
},
}
end,
},
}
-- vim: ts=2 sts=2 sw=2 et
@@ -1,41 +0,0 @@
return {
{ -- Autoformat
'stevearc/conform.nvim',
lazy = false,
keys = {
{
'<leader>f',
function()
require('conform').format { async = true, lsp_fallback = true }
end,
mode = '',
desc = '[F]ormat buffer',
},
},
opts = {
notify_on_error = false,
format_on_save = function(bufnr)
-- Disable "format_on_save lsp_fallback" for languages that don't
-- have a well standardized coding style. You can add additional
-- languages here or re-enable it for the disabled ones.
local disable_filetypes = { c = true, cpp = true }
return {
timeout_ms = 500,
lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype],
}
end,
formatters_by_ft = {
lua = { 'stylua' },
go = { 'goimports', 'gofmt' },
html = { 'prettier' },
-- Conform can also run multiple formatters sequentially
-- python = { "isort", "black" },
--
-- You can use a sub-list to tell conform to run *until* a formatter
-- is found.
-- javascript = { { "prettierd", "prettier" } },
},
},
},
}
-- vim: ts=2 sts=2 sw=2 et
@@ -1,97 +0,0 @@
-- debug.lua
--
-- Shows how to use the DAP plugin to debug your code.
--
-- Primarily focused on configuring the debugger for Go, but can
-- be extended to other languages as well. That's why it's called
-- kickstart.nvim and not kitchen-sink.nvim ;)
return {
-- NOTE: Yes, you can install new plugins here!
'mfussenegger/nvim-dap',
-- NOTE: And you can specify dependencies as well
dependencies = {
-- Creates a beautiful debugger UI
'rcarriga/nvim-dap-ui',
-- Required dependency for nvim-dap-ui
'nvim-neotest/nvim-nio',
-- Installs the debug adapters for you
'williamboman/mason.nvim',
'jay-babu/mason-nvim-dap.nvim',
-- Add your own debuggers here
'leoluz/nvim-dap-go',
},
config = function()
local dap = require 'dap'
local dapui = require 'dapui'
require('mason-nvim-dap').setup {
-- Makes a best effort to setup the various debuggers with
-- reasonable debug configurations
automatic_installation = true,
-- You can provide additional configuration to the handlers,
-- see mason-nvim-dap README for more information
handlers = {},
-- You'll need to check that you have the required things installed
-- online, please don't ask me how to install them :)
ensure_installed = {
-- Update this to ensure that you have the debuggers for the langs you want
'delve',
'cpptools',
},
}
-- Basic debugging keymaps, feel free to change to your liking!
vim.keymap.set('n', '<F5>', dap.continue, { desc = 'Debug: Start/Continue' })
vim.keymap.set('n', '<F1>', dap.step_into, { desc = 'Debug: Step Into' })
vim.keymap.set('n', '<F2>', dap.step_over, { desc = 'Debug: Step Over' })
vim.keymap.set('n', '<F3>', dap.step_out, { desc = 'Debug: Step Out' })
vim.keymap.set('n', '<leader>b', dap.toggle_breakpoint, { desc = 'Debug: Toggle Breakpoint' })
vim.keymap.set('n', '<leader>B', function()
dap.set_breakpoint(vim.fn.input 'Breakpoint condition: ')
end, { desc = 'Debug: Set Breakpoint' })
-- Dap UI setup
-- For more information, see |:help nvim-dap-ui|
dapui.setup {
-- Set icons to characters that are more likely to work in every terminal.
-- Feel free to remove or use ones that you like more! :)
-- Don't feel like these are good choices.
icons = { expanded = '', collapsed = '', current_frame = '*' },
controls = {
icons = {
pause = '',
play = '',
step_into = '',
step_over = '',
step_out = '',
step_back = 'b',
run_last = '▶▶',
terminate = '',
disconnect = '',
},
},
}
-- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
vim.keymap.set('n', '<F7>', dapui.toggle, { desc = 'Debug: See last session result.' })
dap.listeners.after.event_initialized['dapui_config'] = dapui.open
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
dap.listeners.before.event_exited['dapui_config'] = dapui.close
-- Install golang specific config
require('dap-go').setup {
delve = {
-- On Windows delve must be run attached or it crashes.
-- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring
detached = vim.fn.has 'win32' == 0,
},
}
end,
}
@@ -1,70 +0,0 @@
-- Here is a more advanced example where we pass configuration
-- options to `gitsigns.nvim`. This is equivalent to the following Lua:
-- require('gitsigns').setup({ ... })
--
-- See `:help gitsigns` to understand what the configuration keys do
return {
{ -- Adds git related signs to the gutter, as well as utilities for managing changes
'lewis6991/gitsigns.nvim',
opts = {
signs = {
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
on_attach = function(bufnr)
local gitsigns = require 'gitsigns'
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
-- Navigation
map('n', ']c', function()
if vim.wo.diff then
vim.cmd.normal { ']c', bang = true }
else
gitsigns.nav_hunk 'next'
end
end, { desc = 'Jump to next git [c]hange' })
map('n', '[c', function()
if vim.wo.diff then
vim.cmd.normal { '[c', bang = true }
else
gitsigns.nav_hunk 'prev'
end
end, { desc = 'Jump to previous git [c]hange' })
-- Actions
-- visual mode
map('v', '<leader>hs', function()
gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'stage git hunk' })
map('v', '<leader>hr', function()
gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'reset git hunk' })
-- normal mode
map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
map('n', '<leader>hu', gitsigns.undo_stage_hunk, { desc = 'git [u]ndo stage hunk' })
map('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' })
map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' })
map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' })
map('n', '<leader>hD', function()
gitsigns.diffthis '@'
end, { desc = 'git [D]iff against last commit' })
-- Toggles
map('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' })
map('n', '<leader>tD', gitsigns.toggle_deleted, { desc = '[T]oggle git show [D]eleted' })
end,
},
},
}
-- vim: ts=2 sts=2 sw=2 et
@@ -1,9 +0,0 @@
return {
{ -- Add indentation guides even on blank lines
'lukas-reineke/indent-blankline.nvim',
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help ibl`
main = 'ibl',
opts = {},
},
}
@@ -1,57 +0,0 @@
return {
{ -- Linting
'mfussenegger/nvim-lint',
event = { 'BufReadPre', 'BufNewFile' },
config = function()
local lint = require 'lint'
lint.linters_by_ft = {
markdown = { 'markdownlint' },
yaml = { 'yamllint' },
cmake = { 'cmakelint' },
}
-- To allow other plugins to add linters to require('lint').linters_by_ft,
-- instead set linters_by_ft like this:
-- lint.linters_by_ft = lint.linters_by_ft or {}
-- lint.linters_by_ft['markdown'] = { 'markdownlint' }
--
-- However, note that this will enable a set of default linters,
-- which will cause errors unless these tools are available:
-- {
-- clojure = { "clj-kondo" },
-- dockerfile = { "hadolint" },
-- inko = { "inko" },
-- janet = { "janet" },
-- json = { "jsonlint" },
-- markdown = { "vale" },
-- rst = { "vale" },
-- ruby = { "ruby" },
-- terraform = { "tflint" },
-- text = { "vale" }
-- }
--
-- You can disable the default linters by setting their filetypes to nil:
-- lint.linters_by_ft['clojure'] = nil
-- lint.linters_by_ft['dockerfile'] = nil
-- lint.linters_by_ft['inko'] = nil
-- lint.linters_by_ft['janet'] = nil
-- lint.linters_by_ft['json'] = nil
-- lint.linters_by_ft['markdown'] = nil
-- lint.linters_by_ft['rst'] = nil
-- lint.linters_by_ft['ruby'] = nil
-- lint.linters_by_ft['terraform'] = nil
-- lint.linters_by_ft['text'] = nil
-- Create autocommand which carries out the actual linting
-- on the specified events.
local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true })
vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
group = lint_augroup,
callback = function()
require('lint').try_lint()
end,
})
end,
},
}
@@ -1,235 +0,0 @@
return {
{ -- LSP Configuration & Plugins
'neovim/nvim-lspconfig',
dependencies = {
-- Automatically install LSPs and related tools to stdpath for Neovim
{ 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants
'williamboman/mason-lspconfig.nvim',
'WhoIsSethDaniel/mason-tool-installer.nvim',
-- Useful status updates for LSP.
-- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
{ 'j-hui/fidget.nvim', opts = {} },
-- `neodev` configures Lua LSP for your Neovim config, runtime and plugins
-- used for completion, annotations and signatures of Neovim apis
{ 'folke/neodev.nvim', opts = {} },
},
config = function()
-- Brief aside: **What is LSP?**
--
-- LSP is an initialism you've probably heard, but might not understand what it is.
--
-- LSP stands for Language Server Protocol. It's a protocol that helps editors
-- and language tooling communicate in a standardized fashion.
--
-- In general, you have a "server" which is some tool built to understand a particular
-- language (such as `gopls`, `lua_ls`, `rust_analyzer`, etc.). These Language Servers
-- (sometimes called LSP servers, but that's kind of like ATM Machine) are standalone
-- processes that communicate with some "client" - in this case, Neovim!
--
-- LSP provides Neovim with features like:
-- - Go to definition
-- - Find references
-- - Autocompletion
-- - Symbol Search
-- - and more!
--
-- Thus, Language Servers are external tools that must be installed separately from
-- Neovim. This is where `mason` and related plugins come into play.
--
-- If you're wondering about lsp vs treesitter, you can check out the wonderfully
-- and elegantly composed help section, `:help lsp-vs-treesitter`
-- This function gets run when an LSP attaches to a particular buffer.
-- That is to say, every time a new file is opened that is associated with
-- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this
-- function will be executed to configure the current buffer
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }),
callback = function(event)
-- NOTE: Remember that Lua is a real programming language, and as such it is possible
-- to define small helper and utility functions so you don't have to repeat yourself.
--
-- In this case, we create a function that lets us more easily define mappings specific
-- for LSP related items. It sets the mode, buffer and description for us each time.
local map = function(keys, func, desc)
vim.keymap.set('n', keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc })
end
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
-- Find references for the word under your cursor.
map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
-- Opens a popup that displays documentation about the word under your cursor
-- See `:help K` for why this keymap.
map('K', vim.lsp.buf.hover, 'Hover Documentation')
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared (the second autocommand).
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client.server_capabilities.documentHighlightProvider then
local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false })
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd('LspDetach', {
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf }
end,
})
end
-- The following autocommand is used to enable inlay hints in your
-- code, if the language server you are using supports them
--
-- This may be unwanted, since they displace some of your code
if client and client.server_capabilities.inlayHintProvider and vim.lsp.inlay_hint then
map('<leader>th', function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
end, '[T]oggle Inlay [H]ints')
end
end,
})
-- LSP servers and clients are able to communicate to each other what features they support.
-- By default, Neovim doesn't support everything that is in the LSP specification.
-- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
-- So, we create new capabilities with nvim cmp, and then broadcast that to the servers.
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities())
-- Enable the following language servers
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
--
-- Add any additional override configuration in the following tables. Available keys are:
-- - cmd (table): Override the default command used to start the server
-- - filetypes (table): Override the default list of associated filetypes for the server
-- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
-- - settings (table): Override the default settings passed when initializing the server.
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
local servers = {
clangd = {},
gopls = {},
elmls = {},
bashls = {},
jsonls = {},
dockerls = {},
marksman = {},
harper_ls = {
filetypes = {
'c',
'markdown',
'cpp',
'go',
'toml',
'yaml',
},
},
-- html = {},
-- pyright = {},
rust_analyzer = {},
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
--
-- Some languages (like typescript) have entire language plugins that can be useful:
-- https://github.com/pmizio/typescript-tools.nvim
--
-- But for many setups, the LSP (`tsserver`) will work just fine
-- tsserver = {},
--
lua_ls = {
-- cmd = {...},
-- filetypes = { ...},
-- capabilities = {},
settings = {
Lua = {
completion = {
callSnippet = 'Replace',
},
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
-- diagnostics = { disable = { 'missing-fields' } },
},
},
},
}
-- Ensure the servers and tools above are installed
-- To check the current status of installed tools and/or manually install
-- other tools, you can run
-- :Mason
--
-- You can press `g?` for help in this menu.
require('mason').setup()
-- You can add other tools here that you want Mason to install
-- for you, so that they are available from within Neovim.
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
'stylua', -- Used to format Lua code
})
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
require('mason-lspconfig').setup {
handlers = {
function(server_name)
local server = servers[server_name] or {}
-- This handles overriding only values explicitly passed
-- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for tsserver)
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
require('lspconfig')[server_name].setup(server)
end,
},
}
end,
},
}
-- vim: ts=2 sts=2 sw=2 et
@@ -1,43 +0,0 @@
return {
{ -- Collection of various small independent plugins/modules
'echasnovski/mini.nvim',
config = function()
-- Better Around/Inside textobjects
--
-- Examples:
-- - va) - [V]isually select [A]round [)]paren
-- - yinq - [Y]ank [I]nside [N]ext [']quote
-- - ci' - [C]hange [I]nside [']quote
require('mini.ai').setup { n_lines = 500 }
-- Add/delete/replace surroundings (brackets, quotes, etc.)
--
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
-- - sd' - [S]urround [D]elete [']quotes
-- - sr)' - [S]urround [R]eplace [)] [']
require('mini.surround').setup()
-- Simple and easy statusline.
-- You could remove this setup call if you don't like it,
-- and try some other statusline plugin
local statusline = require 'mini.statusline'
-- set use_icons to true if you have a Nerd Font
statusline.setup { use_icons = vim.g.have_nerd_font }
-- You can configure sections in the statusline by overriding their
-- default behavior. For example, here we set the section for
-- cursor location to LINE:COLUMN
---@diagnostic disable-next-line: duplicate-set-field
statusline.section_location = function()
return '%2l:%-2v'
end
-- ... and there is more!
-- Check out: https://github.com/echasnovski/mini.nvim
-- Enable tabline
-- require('mini.tabline').setup()
end,
},
}
-- vim: ts=2 sts=2 sw=2 et
@@ -1,38 +0,0 @@
-- Neo-tree is a Neovim plugin to browse the file system
-- https://github.com/nvim-neo-tree/neo-tree.nvim
return {
'nvim-neo-tree/neo-tree.nvim',
version = '*',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
'MunifTanjim/nui.nvim',
},
cmd = 'Neotree',
keys = {
{ '\\', ':Neotree reveal<CR>', { desc = 'NeoTree reveal' } },
},
opts = {
filesystem = {
window = {
mappings = {
['\\'] = 'close_window',
},
position = 'right',
},
filtered_items = {
visible = true,
show_dotfiles = false,
show_hidden_count = true,
hide_gitignored = true,
hide_by_name = {
-- '.git',
},
never_show = {
'.git',
},
},
},
},
}
@@ -1,114 +0,0 @@
-- NOTE: Plugins can specify dependencies.
--
-- The dependencies are proper plugin specifications as well - anything
-- you do for a plugin at the top level, you can do for a dependency.
--
-- Use the `dependencies` key to specify the dependencies of a particular plugin
return {
{ -- Fuzzy Finder (files, lsp, etc)
'nvim-telescope/telescope.nvim',
event = 'VimEnter',
branch = '0.1.x',
dependencies = {
'nvim-lua/plenary.nvim',
{ -- If encountering errors, see telescope-fzf-native README for installation instructions
'nvim-telescope/telescope-fzf-native.nvim',
-- `build` is used to run some command when the plugin is installed/updated.
-- This is only run then, not every time Neovim starts up.
build = 'make',
-- `cond` is a condition used to determine whether this plugin should be
-- installed and loaded.
cond = function()
return vim.fn.executable 'make' == 1
end,
},
{ 'nvim-telescope/telescope-ui-select.nvim' },
-- Useful for getting pretty icons, but requires a Nerd Font.
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
},
config = function()
-- Telescope is a fuzzy finder that comes with a lot of different things that
-- it can fuzzy find! It's more than just a "file finder", it can search
-- many different aspects of Neovim, your workspace, LSP, and more!
--
-- The easiest way to use Telescope, is to start by doing something like:
-- :Telescope help_tags
--
-- After running this command, a window will open up and you're able to
-- type in the prompt window. You'll see a list of `help_tags` options and
-- a corresponding preview of the help.
--
-- Two important keymaps to use while in Telescope are:
-- - Insert mode: <c-/>
-- - Normal mode: ?
--
-- This opens a window that shows you all of the keymaps for the current
-- Telescope picker. This is really useful to discover what Telescope can
-- do as well as how to actually do it!
-- [[ Configure Telescope ]]
-- See `:help telescope` and `:help telescope.setup()`
require('telescope').setup {
-- You can put your default mappings / updates / etc. in here
-- All the info you're looking for is in `:help telescope.setup()`
--
-- defaults = {
-- mappings = {
-- i = { ['<c-enter>'] = 'to_fuzzy_refine' },
-- },
-- },
-- pickers = {}
extensions = {
['ui-select'] = {
require('telescope.themes').get_dropdown(),
},
},
}
-- Enable Telescope extensions if they are installed
pcall(require('telescope').load_extension, 'fzf')
pcall(require('telescope').load_extension, 'ui-select')
-- See `:help telescope.builtin`
local builtin = require 'telescope.builtin'
vim.keymap.set('n', '<leader>sh', builtin.help_tags, { desc = '[S]earch [H]elp' })
vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' })
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' })
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' })
-- Slightly advanced example of overriding default behavior and theme
vim.keymap.set('n', '<leader>/', function()
-- You can pass additional configuration to Telescope to change the theme, layout, etc.
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
winblend = 10,
previewer = false,
})
end, { desc = '[/] Fuzzily search in current buffer' })
-- It's also possible to pass additional configuration options.
-- See `:help telescope.builtin.live_grep()` for information about particular keys
vim.keymap.set('n', '<leader>s/', function()
builtin.live_grep {
grep_open_files = true,
prompt_title = 'Live Grep in Open Files',
}
end, { desc = '[S]earch [/] in Open Files' })
-- Shortcut for searching your Neovim configuration files
vim.keymap.set('n', '<leader>sn', function()
builtin.find_files { cwd = vim.fn.stdpath 'config' }
end, { desc = '[S]earch [N]eovim files' })
end,
},
}
-- vim: ts=2 sts=2 sw=2 et
@@ -1,5 +0,0 @@
-- Highlight todo, notes, etc in comments
return {
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
}
-- vim: ts=2 sts=2 sw=2 et
@@ -1,35 +0,0 @@
return {
{ -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
opts = {
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'vim', 'vimdoc' },
-- Autoinstall languages that are not installed
auto_install = true,
highlight = {
enable = true,
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
-- If you are experiencing weird indenting issues, add the language to
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
additional_vim_regex_highlighting = { 'ruby' },
},
indent = { enable = true, disable = { 'ruby' } },
},
config = function(_, opts)
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
-- Prefer git instead of curl in order to improve connectivity in some environments
require('nvim-treesitter.install').prefer_git = true
---@diagnostic disable-next-line: missing-fields
require('nvim-treesitter.configs').setup(opts)
-- There are additional nvim-treesitter modules that you can use to interact
-- with nvim-treesitter. You should go explore a few and see what interests you:
--
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
end,
},
}
-- vim: ts=2 sts=2 sw=2 et
@@ -1,46 +0,0 @@
-- NOTE: Plugins can also be configured to run Lua code when they are loaded.
--
-- This is often very useful to both group configuration, as well as handle
-- lazy loading plugins that don't need to be loaded immediately at startup.
--
-- For example, in the following configuration, we use:
-- event = 'VimEnter'
--
-- which loads which-key before all the UI elements are loaded. Events can be
-- normal autocommands events (`:help autocmd-events`).
--
-- Then, because we use the `config` key, the configuration only runs
-- after the plugin has been loaded:
-- config = function() ... end
return {
{ -- Useful plugin to show you pending keybinds.
'folke/which-key.nvim',
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
opts = {
preset = 'modern',
icons = {
mappings = false,
},
},
config = function() -- This is the function that runs, AFTER loading
require('which-key').setup()
-- Document existing key chains
require('which-key').add {
{ '<leader>c', desc = '[C]ode' },
{ '<leader>d', desc = '[D]ocument' },
{ '<leader>r', desc = '[R]ename' },
{ '<leader>s', desc = '[S]earch' },
{ '<leader>w', desc = '[W]orkspace' },
{ '<leader>t', desc = '[T]oggle' },
{ '<leader>h', desc = 'Git [H]unk' },
{
mode = { 'v' },
{ '<leader>h', desc = 'Git [H]unk' },
},
}
end,
},
}
-- vim: ts=2 sts=2 sw=2 et
-10
View File
@@ -1,10 +0,0 @@
-- [[ Install `lazy.nvim` plugin manager ]]
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
end ---@diagnostic disable-next-line: undefined-field
vim.opt.rtp:prepend(lazypath)
-- vim: ts=2 sts=2 sw=2 et
-92
View File
@@ -1,92 +0,0 @@
-- [[ Configure and install plugins ]]
--
-- To check the current status of your plugins, run
-- :Lazy
--
-- You can press `?` in this menu for help. Use `:q` to close the window
--
-- To update plugins you can run
-- :Lazy update
--
-- NOTE: Here is where you install your plugins.
require('lazy').setup({
-- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link).
'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically
-- NOTE: Plugins can also be added by using a table,
-- with the first argument being the link and the following
-- keys can be used to configure plugin behavior/loading/etc.
--
-- Use `opts = {}` to force a plugin to be loaded.
--
-- This is equivalent to:
-- require('Comment').setup({})
-- "gc" to comment visual regions/lines
{ 'numToStr/Comment.nvim', opts = {} },
-- modular approach: using `require 'path/name'` will
-- include a plugin definition from file lua/path/name.lua
require 'kickstart/plugins/gitsigns',
require 'kickstart/plugins/which-key',
require 'kickstart/plugins/telescope',
require 'kickstart/plugins/lspconfig',
require 'kickstart/plugins/conform',
require 'kickstart/plugins/cmp',
require 'kickstart/plugins/todo-comments',
require 'kickstart/plugins/mini',
require 'kickstart/plugins/treesitter',
-- The following two comments only work if you have downloaded the kickstart repo, not just copy pasted the
-- init.lua. If you want these files, they are in the repository, so you can just download them and
-- place them in the correct locations.
-- NOTE: Next step on your Neovim journey: Add/Configure additional plugins for Kickstart
--
-- Here are some example plugins that I've included in the Kickstart repository.
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
--
require 'kickstart.plugins.debug',
require 'kickstart.plugins.indent_line',
require 'kickstart.plugins.lint',
require 'kickstart.plugins.autopairs',
require 'kickstart.plugins.neo-tree',
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
-- This is the easiest way to modularize your config.
--
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
-- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins`
{ import = 'custom.plugins' },
}, {
ui = {
-- If you are using a Nerd Font: set icons to an empty table which will use the
-- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table
icons = vim.g.have_nerd_font and {} or {
cmd = '',
config = '🛠',
event = '📅',
ft = '📂',
init = '',
keys = '🗝',
plugin = '🔌',
runtime = '💻',
require = '🌙',
source = '📄',
start = '🚀',
task = '📌',
lazy = '💤 ',
},
},
})
-- vim: ts=2 sts=2 sw=2 et
-67
View File
@@ -1,67 +0,0 @@
-- [[ Setting options ]]
-- See `:help vim.opt`
-- NOTE: You can change these options as you wish!
-- For more options, you can see `:help option-list`
-- Make line numbers default
vim.opt.number = true
-- You can also add relative line numbers, to help with jumping.
-- Experiment for yourself to see if you like it!
-- vim.opt.relativenumber = true
-- Enable mouse mode, can be useful for resizing splits for example!
vim.opt.mouse = 'a'
-- Don't show the mode, since it's already in the status line
vim.opt.showmode = false
-- Sync clipboard between OS and Neovim.
-- Remove this option if you want your OS clipboard to remain independent.
-- See `:help 'clipboard'`
vim.opt.clipboard = 'unnamedplus'
-- Enable break indent
vim.opt.breakindent = true
-- Save undo history
vim.opt.undofile = true
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
vim.opt.ignorecase = true
vim.opt.smartcase = true
-- Keep signcolumn on by default
vim.opt.signcolumn = 'yes'
-- Decrease update time
vim.opt.updatetime = 250
-- Decrease mapped sequence wait time
-- Displays which-key popup sooner
vim.opt.timeoutlen = 300
-- Configure how new splits should be opened
vim.opt.splitright = true
vim.opt.splitbelow = true
-- Sets how neovim will display certain whitespace characters in the editor.
-- See `:help 'list'`
-- and `:help 'listchars'`
vim.opt.list = true
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '' }
-- Preview substitutions live, as you type!
vim.opt.inccommand = 'split'
-- Show which line your cursor is on
vim.opt.cursorline = true
-- Minimal number of screen lines to keep above and below the cursor.
vim.opt.scrolloff = 10
-- Set tabstop
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
-- vim: ts=2 sts=2 sw=2 et
-154
View File
@@ -1,154 +0,0 @@
configuration {
/* modes: "window,drun,run,ssh";*/
font: "Monaspace Radon 13";
/* location: 0;*/
/* yoffset: 0;*/
/* xoffset: 0;*/
/* fixed-num-lines: true;*/
show-icons: true;
/* terminal: "rofi-sensible-terminal";*/
/* ssh-client: "ssh";*/
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
/* run-command: "{cmd}";*/
/* run-list-command: "";*/
/* run-shell-command: "{terminal} -e {cmd}";*/
/* window-command: "wmctrl -i -R {window}";*/
/* window-match-fields: "all";*/
/* icon-theme: ;*/
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
/* drun-categories: ;*/
/* drun-show-actions: false;*/
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
/* drun-url-launcher: "xdg-open";*/
/* disable-history: false;*/
/* ignored-prefixes: "";*/
/* sort: false;*/
/* sorting-method: "normal";*/
/* case-sensitive: false;*/
/* cycle: true;*/
/* sidebar-mode: false;*/
/* hover-select: false;*/
/* eh: 1;*/
/* auto-select: false;*/
/* parse-hosts: false;*/
/* parse-known-hosts: true;*/
/* combi-modes: "window,run";*/
/* matching: "normal";*/
/* tokenize: true;*/
/* m: "-5";*/
/* filter: ;*/
/* dpi: -1;*/
/* threads: 0;*/
/* scroll-method: 0;*/
/* window-format: "{w} {c} {t}";*/
/* click-to-exit: true;*/
/* max-history-size: 25;*/
/* combi-hide-mode-prefix: false;*/
/* combi-display-format: "{mode} {text}";*/
/* matching-negate-char: '-' /* unsupported */;*/
/* cache-dir: ;*/
/* window-thumbnail: false;*/
/* drun-use-desktop-cache: false;*/
/* drun-reload-desktop-cache: false;*/
/* normalize-match: false;*/
/* steal-focus: false;*/
/* application-fallback-icon: ;*/
/* refilter-timeout-limit: 8192;*/
/* xserver-i300-workaround: false;*/
/* pid: "/run/user/1000/rofi.pid";*/
/* display-window: ;*/
/* display-windowcd: ;*/
/* display-run: ;*/
/* display-ssh: ;*/
/* display-drun: ;*/
/* display-combi: ;*/
/* display-keys: ;*/
/* display-filebrowser: ;*/
/* kb-primary-paste: "Control+V,Shift+Insert";*/
/* kb-secondary-paste: "Control+v,Insert";*/
/* kb-clear-line: "Control+w";*/
/* kb-move-front: "Control+a";*/
/* kb-move-end: "Control+e";*/
/* kb-move-word-back: "Alt+b,Control+Left";*/
/* kb-move-word-forward: "Alt+f,Control+Right";*/
/* kb-move-char-back: "Left,Control+b";*/
/* kb-move-char-forward: "Right,Control+f";*/
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
/* kb-remove-word-forward: "Control+Alt+d";*/
/* kb-remove-char-forward: "Delete,Control+d";*/
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
/* kb-remove-to-eol: "Control+k";*/
/* kb-remove-to-sol: "Control+u";*/
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
/* kb-accept-custom: "Control+Return";*/
/* kb-accept-custom-alt: "Control+Shift+Return";*/
/* kb-accept-alt: "Shift+Return";*/
/* kb-delete-entry: "Shift+Delete";*/
/* kb-mode-next: "Shift+Right,Control+Tab";*/
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
/* kb-mode-complete: "Control+l";*/
/* kb-row-left: "Control+Page_Up";*/
/* kb-row-right: "Control+Page_Down";*/
/* kb-row-up: "Up,Control+p";*/
/* kb-row-down: "Down,Control+n";*/
/* kb-row-tab: "";*/
/* kb-element-next: "Tab";*/
/* kb-element-prev: "ISO_Left_Tab";*/
/* kb-page-prev: "Page_Up";*/
/* kb-page-next: "Page_Down";*/
/* kb-row-first: "Home,KP_Home";*/
/* kb-row-last: "End,KP_End";*/
/* kb-row-select: "Control+space";*/
/* kb-screenshot: "Alt+S";*/
/* kb-ellipsize: "Alt+period";*/
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
/* kb-toggle-sort: "Alt+grave";*/
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
/* kb-custom-1: "Alt+1";*/
/* kb-custom-2: "Alt+2";*/
/* kb-custom-3: "Alt+3";*/
/* kb-custom-4: "Alt+4";*/
/* kb-custom-5: "Alt+5";*/
/* kb-custom-6: "Alt+6";*/
/* kb-custom-7: "Alt+7";*/
/* kb-custom-8: "Alt+8";*/
/* kb-custom-9: "Alt+9";*/
/* kb-custom-10: "Alt+0";*/
/* kb-custom-11: "Alt+exclam";*/
/* kb-custom-12: "Alt+at";*/
/* kb-custom-13: "Alt+numbersign";*/
/* kb-custom-14: "Alt+dollar";*/
/* kb-custom-15: "Alt+percent";*/
/* kb-custom-16: "Alt+dead_circumflex";*/
/* kb-custom-17: "Alt+ampersand";*/
/* kb-custom-18: "Alt+asterisk";*/
/* kb-custom-19: "Alt+parenleft";*/
/* kb-select-1: "Super+1";*/
/* kb-select-2: "Super+2";*/
/* kb-select-3: "Super+3";*/
/* kb-select-4: "Super+4";*/
/* kb-select-5: "Super+5";*/
/* kb-select-6: "Super+6";*/
/* kb-select-7: "Super+7";*/
/* kb-select-8: "Super+8";*/
/* kb-select-9: "Super+9";*/
/* kb-select-10: "Super+0";*/
/* ml-row-left: "ScrollLeft";*/
/* ml-row-right: "ScrollRight";*/
/* ml-row-up: "ScrollUp";*/
/* ml-row-down: "ScrollDown";*/
/* me-select-entry: "MousePrimary";*/
/* me-accept-entry: "MouseDPrimary";*/
/* me-accept-custom: "Control+MouseDPrimary";*/
timeout {
action: "kb-cancel";
delay: 0;
}
filebrowser {
directories-first: true;
sorting-method: "name";
}
}
//@theme "themes/squared.rasi"
//@theme "themes/cherry.rasi"
@theme "themes/paper-float.rasi"
-79
View File
@@ -1,79 +0,0 @@
configuration {
modi: "drun";
font: "Rubik 10";
display-drun: "";
sidebar-mode: false;
}
@theme "/dev/null"
* {
bg: #b5b5aa;
fg: #2b2b2b;
button: #9e9e95;
background-color: @bg;
text-color: @fg;
}
window {
transparency: "real";
border-radius: 7px;
width: 40%;
y-offset: 10px;
padding: 20px;
location: south;
}
prompt { enabled: false; }
entry {
placeholder: "Search";
expand: true;
padding: 5px 2% 5px 2%;
background-color: @button;
placeholder-color: @fg;
}
inputbar {
children: [ prompt, entry ];
background-color: @button;
text-color: @fg;
expand: false;
border-radius: 6px;
padding: 8px;
}
listview {
columns: 1;
lines: 8;
cycle: false;
dynamic: true;
layout: vertical;
}
mainbox {
children: [ inputbar, listview ];
spacing: 2%;
padding: 2% 1% 2% 1%;
}
element {
orientation: vertical;
border-radius: 0%;
padding: 1.5% 0% 1.5% 0%;
}
element-text {
expand: true;
vertical-align: 0.5;
margin: 0.5% 3% 0% 3%;
background-color: inherit;
text-color: inherit;
}
element selected {
background-color: @fg;
text-color: @bg;
border-radius: 6px;
}
-148
View File
@@ -1,148 +0,0 @@
/**
* A floating box version of the paper theme.
*
* User: Qball
* Copyright: Dave Davenport
*/
* {
grey: #484848;
black: #282828;
red: #ee5396;
green: #25be6a;
yellow: #f8e17c;
blue: #33b1ff;
magenta: #be95ff;
cyan: #3ddbd9;
white: #dfdfe0;
spacing: 2;
background-color: #00000000;
border-color: #3ddbd9;
anchor: north;
location: center;
}
window {
transparency: "screenshot";
background-color: #00000000;
border: 0;
padding: 0% 0% 1em 0%;
x-offset: 0;
y-offset: -10%;
}
mainbox {
padding: 0px;
border: 0;
spacing: 1%;
}
prompt {
text-color: @white;
text-style: bold;
}
entry {
text-color: @white;
}
message {
border: 2px;
padding: 1em;
background-color: @black;
text-color: @white;
}
textbox normal {
text-color: @white;
padding: 0;
border: 0;
}
listview {
fixed-height: 1;
border: 2px;
padding: 1em;
reverse: false;
columns: 1;
background-color: @black;
}
element {
border: 0;
padding: 2px;
highlight: bold ;
}
element-text {
background-color: inherit;
text-color: inherit;
}
element normal.normal {
text-color: @white;
background-color: @black;
}
element normal.urgent {
text-color: @red;
background-color: @black;
}
element normal.active {
text-color: @black;
background-color: @cyan;
}
element selected.normal {
text-color: @black;
background-color: @cyan;
}
element selected.urgent {
text-color: #F5F5F5;
background-color: @red;
}
element selected.active {
text-color: @black;
background-color: @cyan;
}
element alternate.normal {
text-color: @white;
background-color: @grey;
}
element alternate.urgent {
text-color: @red;
background-color: @grey;
}
element alternate.active {
text-color: @white;
background-color: @grey;
}
scrollbar {
border: 0;
padding: 0;
}
inputbar {
spacing: 0;
border: 2px;
padding: 0.5em 1em;
background-color: @black;
index: 0;
}
inputbar normal {
foreground-color: @white;
background-color: @white;
}
mode-switcher {
border: 2px;
padding: 0.5em 1em;
background-color: @black;
index: 10;
}
button selected {
text-color: @cyan;
}
inputbar {
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
textbox-prompt-colon {
expand: false;
str: ":";
margin: 0px 0.3em 0em 0em ;
text-color: var(white);
}
error-message {
border: 2px;
padding: 1em;
background-color: @black;
text-color: @red;
}
-98
View File
@@ -1,98 +0,0 @@
/*******************************************************************************
* ROFI SQUARED THEME USING THE MATERIAL DARKER PALETTE
* User : LR-Tech
* Theme Repo : https://github.com/lr-tech/rofi-themes-collection
*******************************************************************************/
* {
bg0: #212121;
bg1: #404040;
fg0: #eeffff;
accent-color: #f07178;
urgent-color: #ffcb6b;
background-color: transparent;
text-color: @fg0;
margin: 0;
padding: 0;
spacing: 0;
}
window {
location: center;
width: 480;
background-color: @bg0;
}
inputbar {
spacing: 8px;
padding: 8px;
background-color: @bg1;
}
prompt, entry, element-icon, element-text {
vertical-align: 0.5;
}
prompt {
text-color: @accent-color;
}
textbox {
padding: 8px;
background-color: @bg1;
}
listview {
padding: 4px 0;
lines: 8;
columns: 1;
fixed-height: false;
}
element {
padding: 8px;
spacing: 8px;
}
element normal normal {
text-color: @fg0;
}
element normal urgent {
text-color: @urgent-color;
}
element normal active {
text-color: @accent-color;
}
element alternate active {
text-color: @accent-color;
}
element selected {
text-color: @bg0;
}
element selected normal, element selected active {
background-color: @accent-color;
}
element selected urgent {
background-color: @urgent-color;
}
element-icon {
size: 0.8em;
}
element-text {
text-color: inherit;
}
-120
View File
@@ -1,120 +0,0 @@
"$schema" = 'https://starship.rs/config-schema.json'
add_newline = false
format = """$status$cmd_duration
<$username$hostname$custom> | $directory$git_branch $git_status$git_state
$time $character"""
[character]
success_symbol = '>'
error_symbol = '>'
[git_commit]
tag_symbol = " tag "
[git_status]
ahead = ">"
behind = "<"
diverged = "<>"
renamed = "r"
deleted = "x"
[cmd_duration]
format = "ran for [$duration]($style)"
style = "italic yellow"
[custom.toolbox]
when = """ test -f /run/.containerenv && test -f /run/.toolboxenv """
description = "Config for toolbox"
style = "red"
command = """ cat /run/.containerenv | sed -n '2 p' | awk -F '"' 'NF>2{print $2}' """
format = ':[$output]($style)'
[directory]
read_only = " ro"
[fill]
symbol = ' '
[git_branch]
format = "on [$branch(:$remote_branch)]($style)"
[hg_branch]
symbol = "hg "
[hostname]
ssh_only = false
ssh_symbol = "ssh:"
format = "@[$ssh_symbol$hostname]($style)"
[memory_usage]
symbol = "memory "
[os.symbols]
Alpine = "alp "
Amazon = "amz "
Android = "andr "
Arch = "rch "
CentOS = "cent "
Debian = "deb "
DragonFly = "dfbsd "
Emscripten = "emsc "
EndeavourOS = "ndev "
Fedora = "fed "
FreeBSD = "fbsd "
Garuda = "garu "
Gentoo = "gent "
HardenedBSD = "hbsd "
Illumos = "lum "
Linux = "lnx "
Macos = "mac "
Manjaro = "mjo "
Mariner = "mrn "
MidnightBSD = "mid "
Mint = "mint "
NetBSD = "nbsd "
NixOS = "nix "
OpenBSD = "obsd "
openSUSE = "osuse "
OracleLinux = "orac "
Pop = "pop "
Raspbian = "rasp "
Redhat = "rhl "
RedHatEnterprise = "rhel "
Redox = "redox "
Solus = "sol "
SUSE = "suse "
Ubuntu = "ubnt "
Unknown = "unk "
Windows = "win "
[sudo]
symbol = "#"
disabled = true
format = "[$symbol]($style)"
style = ''
[status]
symbol = '[](bold red)'
success_symbol = ''
format = '[\[$symbol$maybe_int\]]($style) '
not_executable_symbol = "[!EXE](red)"
style = 'purple'
not_found_symbol = "[!FOUND](red)"
sigint_symbol = "[SIGINT](red)"
signal_symbol = "[SIG](red)"
map_symbol = true
pipestatus = true
pipestatus_format = '$pipestatus=> [\[$common_meaning$signal_name$maybe_int\]]($style) '
disabled = false
[time]
disabled = false
format = '\[[$time]($style)\]'
[username]
show_always = true
format = "[$user]($style)"
-286
View File
@@ -1,286 +0,0 @@
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
# Recommends: foot
set $term kitty
# set alternate terminal emulator
set $alt_term alacritty
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
# Recommends: rofi-wayland
set $rofi_cmd rofi \
-terminal '$term'
# Shows a combined list of the applications with desktop files and
# executables from PATH.
# TODO: add window with the next release of rofi-wayland
set $menu $rofi_cmd -show combi -combi-modes drun#run -modes combi
### Clipboard configuration
exec wl-paste --type text --watch cliphist store
exec wl-paste --type image --watch cliphist store
set $clip cliphist list | rofi -dmenu -P "Clipboard" | cliphist decode | wl-copy
### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
# Requires: desktop-backgrounds-compat, swaybg
output * bg /usr/share/backgrounds/zenitsu.jpg fill
for_window [window_type="dialog"] floating enable
for_window [window_role="dialog"] floating enable
for_window [app_id="org.mozilla.firefox" title="Picture-in-Picture"] floating enable sticky enable
for_window [app_id="com.github.hluk.copyq"] floating enable
#
# Example configuration:
#
# output HDMI-A-1 resolution 1920x1080 position 1920,0
# You can get the names of your outputs by running: swaymsg -t get_outputs
# hidpi setup
# output eDP-1 scale 1.25
# output 'LG Electronics LG ULTRAWIDE 205NTSUG4894' scale 2
## Decorations
client.focused #00ffff #262626 #ffffff #48d1cc #00ffff
client.urgent #dc143c #262626 #ffffff #f08080 #dc143c
## Font
default_border pixel 2
default_floating_border pixel 2
smart_borders on
# hide_edge_borders both
# smart_gaps on
font pango:'Monaspace Radon' Regular 11
# titlebar_padding 1
# titlebar_border_thickness 0
# gaps outer 4
# gaps inner 2
### Idle configuration
#
# Example configuration:
# set $lock swaylock -f -c 000000
# exec swayidle -w \
# timeout 300 $lock \
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
# before-sleep $lock
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.
### Input configuration
#
# Example configuration:
#
# input "2:14:SynPS/2_Synaptics_TouchPad" {
# dwt enabled
# tap enabled
# natural_scroll enabled
# middle_emulation enabled
# }
#
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
input type:touchpad {
tap enabled
natural_scroll enabled
}
input type:keyboard {
xkb_options caps:ctrl_modifier
}
### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term
bindsym $mod+Shift+Return exec $alt_term
# Kill focused window
bindsym $mod+Shift+q kill
# Start your launcher
bindsym $mod+d exec $menu
# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# Reload the configuration file
bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# Ditto, with arrow keys
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
#
# Workspaces:
#
# Switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
# Touchpad swipes
bindgesture swipe:right workspace prev
bindgesture swipe:left workspace next
# Move back and forth
bindsym $mod+Tab workspace back_and_forth
#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+Shift+s sticky toggle
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.
# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
#
# Clipboard:
#
bindsym $mod+c exec $clip
#
# Resizing containers:
#
mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
## gestures
# Include configs from 3 locations:
# - /usr/share/sway/config.d
# - /etc/sway/config.d
# - $XDG_CONFIG_HOME/sway/config.d ($HOME/.config/sway/config.d)
#
# If multiple directories contain the files with the same name, the later
# directory takes precedence; `$XDG_CONFIG_HOME/sway/config.d/20-swayidle.conf`
# will always be loaded instead of `/usr/share/sway/config.d/20-swayidle.conf`
# or `/etc/sway/config.d/20-swayidle.conf`
#
# This mechanism permits overriding our default configuration per-system
# (/etc) or per-user ($XDG_CONFIG_HOME) basis. Just create the file you
# want to modify/override in the higher-level directory.
#
# For example, to disable the default bar from Fedora configs, you'll need to
# $ echo -n > "$HOME/.config/sway/config.d/90-bar.conf"
#
# Note the quoting, the $() and the arguments quoting. All the parts are equally
# important to make the magic work. And if you want to learn the secret behind
# the trick, it's all in the `wordexp(3)`.
#
include '$(/usr/libexec/sway/layered-include "/usr/share/sway/config.d/*.conf" "/etc/sway/config.d/*.conf" "${XDG_CONFIG_HOME:-$HOME/.config}/sway/config.d/*.conf")'
@@ -1,20 +0,0 @@
# Key bindings for taking screenshots
#
# The image files will be written to XDG_SCREENSHOTS_DIR if this is set
# or defined in user-dirs.dir, or to a fallback location XDG_PICTURES_DIR.
#
# Copy the file to ~/.config/sway/config.d/60-bindings-screenshot.conf (or to
# your $XDG_CONFIG_HOME location if set differently) to be able to overwrite
# existing shortcuts.
# Check 'man grimshot' for additional commands that you may find useful.
#
# Requires: grimshot
bindsym {
# Capture the currently active output
Print exec grimshot save output
# Capture the currently active window
Alt+Print exec grimshot save active
# Select and capture a custom rectangular area
Ctrl+Print exec grimshot save area
}
-21
View File
@@ -1,21 +0,0 @@
#!/bin/bash
volume_sink=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | tr -d '%')
volume_source=$(pactl get-source-volume @DEFAULT_SOURCE@ | awk '{print $5}' | tr -d '%')
is_sink_muted=$(pactl list sinks | grep "Mute: yes" | awk '{print $2}')
is_source_muted=$(pactl list sources | grep "Mute: yes" | awk '{print $2}')
if [[ "$is_sink_muted" == "yes" ]]; then
sink_mute_status="Muted"
else
sink_mute_status="Unmuted"
fi
if [[ "$is_source_muted" == "yes" ]]; then
source_mute_status="Mic Muted"
else
source_mute_status="Mic Unmuted"
fi
dunstify -u low -i audio-volume-medium -r 2593 "Volume: $volume_sink%" "\nSpeaker: $sink_mute_status\nMic: $source_mute_status" -h int:value:$volume_sink
-231
View File
@@ -1,231 +0,0 @@
{
"layer": "top", // Waybar at top layer
"position": "left", // Waybar position (top|bottom|left|right)
// "height": 40, // Waybar height (to be removed for auto height)
"width": 20, // Waybar width
"spacing": 4, // Gaps between modules (4px)
"mode": "dock",
"fixed-center": false,
// Choose the order of the modules
"modules-left": [
"sway/workspaces",
"sway/mode",
"sway/scratchpad"
],
"modules-center": [
"sway/window"
],
"modules-right": [
"battery",
"custom/spacer",
"custom/wakatime",
"custom/spacer",
"pulseaudio",
"custom/spacer",
"group/system",
"custom/spacer",
"network",
"custom/spacer",
"group/tray",
"custom/spacer",
"clock",
"custom/spacer",
"custom/dunst"
],
"group/system": {
"orientation": "inherit",
"modules": [
"temperature",
"cpu",
"custom/spacer",
"memory",
"custom/spacer"
],
"drawer": {
"transition-left-to-right": false
}
},
"group/tray": {
"orientation": "inherit",
"modules": [
"idle_inhibitor",
"tray"
],
"drawer": {
"transition-left-to-right": false
// "tranasition-duration": 100
}
},
// Modules configuration
"sway/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
"warp-on-scroll": false,
"format": "{name}",
"disable-scroll-wraparound": true
},
"sway/window": {
"icon": false,
// "icon-size": 20,
"rotate": 270,
// "format": ""
"rewrite": {
".* - ([A-Za-z0-9 ]+)": "$1",
".* — ([A-Za-z0-9 ]+)": "$1",
"^avinal@spacetime:.*": "GNOME Terminal"
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>",
"rotate": 270
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": [
"",
""
],
"tooltip": true,
"tooltip-format": "{app}: {title}",
"rotate": 270
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "Keep On",
"deactivated": "OFF"
},
"rotate": 270,
"tooltip": false
// "tooltip-format-activated": "The screen won't turn off on idle.",
// "tooltip-format-deactivated": "The screen will turn off on idle."
},
"tray": {
"icon-size": 20,
"spacing": 10
},
"clock": {
"rotate": 270,
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "<span color='#ff6699'>{:%a %b %d %R}</span>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"on-scroll": 1,
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"days": "<span color='#ecc6d9'><b>{}</b></span>",
"weeks": "<span color='#99ffdd'><b>W{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-click-forward": "tz_up",
"on-click-backward": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"cpu": {
"format": "CPU {usage}%",
"tooltip": true,
"interval": 5,
"rotate": 270
},
"memory": {
"format": "RAM {}%",
"tooltip-format": "RAM: {used}/{avail} | Swap: {swapUsed}/{swapTotal}",
"rotate": 270
},
"temperature": {
"critical-threshold": 80,
"format": "{icon} {temperatureC}°C",
"format-icons": [
"Chill",
"Warm",
"Hot",
"Burn"
],
"rotate": 270
},
"battery": {
"states": {
"best": 99,
"good": 70,
"warning": 40,
"critical": 20
},
"format": "{capacity}%",
"format-charging": "Charging {capacity}%",
"format-plugged": "Plugged {capacity}%",
"format-alt": "{icon} {time}",
"rotate": 270,
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": {
"best": "Feeling good",
"good": "Will last",
"warning": "Charge soon",
"critical": "Gonna die in"
}
},
"network": {
"interval": 10,
"format-wifi": "{essid} ({signalStrength}%)",
"format-ethernet": "Wired {ifname}",
"format-linked": "<span color='red'>No Internet!</span>",
"tooltip-format-disconnected": "Please connect to a network.",
"tooltip-format": "Up: {bandwidthUpBits:4} Down: {bandwidthDownBits:4}",
"format-disconnected": "Disconnected!",
"rotate": 270
},
"pulseaudio": {
"format": "{icon} {volume}% {format_source}",
"format-bluetooth": "Bluetooth {volume}% {format_source}",
"format-bluetooth-muted": "<span color='red'><s>Bluetooth</> {format_source}",
"format-muted": "<span color='red'><s>{icon}</s></span> {format_source}",
"format-source": "Mic {volume}%",
"format-source-muted": "<span color='red'><s>Mic</s></span>",
"format-icons": {
"headphone": "Headphone",
"headset": "Headphone",
"phone": "Phone",
"hdmi": "Monitor",
"default": "Speaker"
},
"on-click": "pavucontrol",
"rotate": 270
},
"custom/wakatime": {
"format": "{}",
"exec": "~/.config/waybar/scripts/wakatime.sh",
"tooltip": true,
"return-type": "json",
"interval": 900,
"rotate": 270
},
"custom/weather": {
"exec": "$HOME/.config/waybar/scripts/get-weather.sh Bengaluru",
"return-type": "json",
"format": "{}",
"tooltip": true,
"interval": 3600
},
"custom/dunst": {
"exec": "~/.config/waybar/scripts/dunst.sh",
"on-click": "dunstctl set-paused toggle",
"format": "{}",
"return-type": "json",
"restart-interval": 1,
"rotate": 270
},
"custom/spacer": {
"format": "|",
"rotate": 270,
"tooltip": false
}
}
-17
View File
@@ -1,17 +0,0 @@
#!/bin/bash
COUNT=$(dunstctl count waiting)
status=""
class=""
tooltip="Notifications are "
if dunstctl is-paused | grep -q "false" ; then
status="NOT"
tooltip+="active"
else
status="DND"
class="dnd"
tooltip+="paused"
fi
if [ "$COUNT" != 0 ]; then status+=":$COUNT"; fi
printf '{"text":"%s","tooltip":"%s","class":"%s"}' "$status" "$tooltip" "$class" | jq --unbuffered --compact-output
-19
View File
@@ -1,19 +0,0 @@
#!/usr/bin/env bash
# get_weather.sh
for i in {1..5}
do
text=$(curl -s "https://wttr.in/$1?format=1")
if [[ $? == 0 ]]
then
text=$(echo "$text" | sed -E "s/\s+/ /g")
tooltip=$(curl -s "https://wttr.in/$1?format=4")
if [[ $? == 0 ]]
then
tooltip=$(echo "$tooltip" | sed -E "s/\s+/ /g")
echo "{\"text\":\"$text\", \"tooltip\":\"$tooltip\"}"
exit
fi
fi
sleep 2
done
echo "{\"text\":\"error\", \"tooltip\":\"error\"}"
-19
View File
@@ -1,19 +0,0 @@
#!/bin/bash
output=$(wakatime --today)
# Extract hours and minutes using awk and sum the total
total_minutes=$(echo "$output" | awk -F' ' '
{
for (i=1; i<=NF; i++) {
if ($i == "hrs" || $i == "hr") total += $(i-1) * 60;
if ($i == "mins" || $i == "min") total += $(i-1);
}
} END {print total}')
# Calculate total hours and remaining minutes
total_hours=$((total_minutes / 60))
remaining_minutes=$((total_minutes % 60))
# Print the results
printf '{"text":"%02dh %02dm","tooltip":"%s","class":"wakatime"}' $total_hours $remaining_minutes "$output" | jq --unbuffered --compact-output
-226
View File
@@ -1,226 +0,0 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: 'Monaspace Radon';
font-size: 15px;
padding: 2px 0;
margin: 2px 0;
border: none;
border-radius: 0;
}
#window {
padding: 1px 0;
}
window#waybar {
background: #262626;
/* background-color: rgba(43, 48, 59, 0.5); */
/* border-top: 3px solid rgba(100, 114, 125, 0.5); */
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
/* border-right: 1px solid cyan; */
padding: 0 0;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
/* box-shadow: inset 0 -3px #ffffff; */
}
#workspaces button {
padding: 2px 3px;
background-color: transparent;
color: #ffffff;
/* margin-left: -6px; */
}
#workspaces button:hover {
background: #66cc99;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#workspaces button.focused {
border-top: 2px solid cyan;
border-bottom: 2px solid cyan;
color: palevioletred;
}
#mode {
/* background-color: #64727D; */
animation-name: blink;
/* animation-duration: 0.5s; */
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
border-left: 2px solid darksalmon;
}
#clock,
#battery,
#cpu,
#memory,
#temperature,
#network,
#pulseaudio,
#wireplumber,
#custom-dunst,
#custom-spacer,
#tray,
#mode,
#idle_inhibitor,
#scratchpad {
padding: 0 2px;
/* border-right: 1px solid cyan; */
background-color: #262626;
/* margin: 0 3px; */
}
#window,
#workspaces {
/* padding: 1px 0; */
margin: 0 10px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left>widget:first-child>#workspaces {
margin-top: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right>widget:last-child>#workspaces {
margin-bottom: 0;
}
#clock {
/* background-color: #64727D; */
}
#battery {
/* background-color: #ffffff; */
color: #ffffff;
}
#battery.charging,
#battery.plugged {
color: #26A65B;
/* background-color: #26A65B; */
}
@keyframes blink {
to {
color: #ffffff;
}
}
#battery.critical:not(.charging) {
/* background-color: #f53c3c; */
color: #f53c3c;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#cpu {
/* background-color: #2ecc71; */
color: #2ecc71;
}
#memory {
/* background-color: #9b59b6; */
color: #9b59b6;
}
#disk {
color: #964B00;
}
#backlight {
color: #90b1b1;
}
#network {
color: lightseagreen;
}
#network.disconnected {
color: #f53c3c;
}
#pulseaudio {
color: #f1c40f;
}
#pulseaudio.muted {
color: #90b1b1;
}
#temperature {
color: #f0932b;
}
#temperature.critical {
color: #eb4d4b;
}
#tray {
color: #2980b9;
}
#tray>.passive {
-gtk-icon-effect: dim;
}
#tray>.needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
color: red;
}
#idle_inhibitor.activated {
color: lightgreen;
}
#scratchpad {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
background-color: transparent;
}
#custom-wakatime {
color: darksalmon;
}
#custom-dunst {
color: aquamarine
}
#custom-dunst.dnd {
color: red;
/* text-decoration: strikethrough */
}
+88 -266
View File
@@ -1,7 +1,3 @@
//
// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/avinal/.config/zellij/config.kdl.bak
//
keybinds clear-defaults=true {
locked {
bind "Ctrl space" { SwitchToMode "normal"; }
@@ -101,6 +97,12 @@ keybinds clear-defaults=true {
bind "Alt ]" { NextSwapLayout; }
bind "Alt n" { NewPane; }
bind "Alt q" { Quit; }
bind "Alt f" {
LaunchPlugin "filepicker" {
floating true
close_on_selection true
};
}
}
shared_except "locked" "move" {
bind "Alt m" { SwitchToMode "move"; }
@@ -170,120 +172,121 @@ keybinds clear-defaults=true {
bind "|" { NewPane "right"; SwitchToMode "normal"; }
}
}
themes {
carbonfox {
vim_dark_high_contrast {
text_unselected {
base 255 255 255
background 53 53 53
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
base 193 201 210
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
text_selected {
base 255 255 255
background 42 42 42
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
ribbon_selected {
base 53 53 53
background 37 190 106
emphasis_0 238 83 150
emphasis_1 255 168 123
emphasis_2 190 149 255
emphasis_3 51 177 255
base 17 17 17
background 30 166 114
emphasis_0 237 95 116
emphasis_1 217 121 23
emphasis_2 201 110 208
emphasis_3 104 142 241
}
ribbon_unselected {
base 53 53 53
background 242 244 248
emphasis_0 238 83 150
emphasis_1 255 255 255
emphasis_2 51 177 255
emphasis_3 190 149 255
base 17 17 17
background 227 232 238
emphasis_0 237 95 116
emphasis_1 193 201 210
emphasis_2 104 142 241
emphasis_3 201 110 208
}
table_title {
base 37 190 106
base 30 166 114
background 0
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
table_cell_selected {
base 255 255 255
background 42 42 42
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
table_cell_unselected {
base 255 255 255
background 53 53 53
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
base 193 201 210
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
list_selected {
base 255 255 255
background 42 42 42
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
list_unselected {
base 255 255 255
background 53 53 53
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
base 193 201 210
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
frame_selected {
base 37 190 106
base 30 166 114
background 0
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 190 149 255
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 201 110 208
emphasis_3 0
}
frame_highlight {
base 255 168 123
base 217 121 23
background 0
emphasis_0 255 168 123
emphasis_1 255 168 123
emphasis_2 255 168 123
emphasis_3 255 168 123
emphasis_0 217 121 23
emphasis_1 217 121 23
emphasis_2 217 121 23
emphasis_3 217 121 23
}
exit_code_success {
base 37 190 106
base 30 166 114
background 0
emphasis_0 61 219 217
emphasis_1 53 53 53
emphasis_2 190 149 255
emphasis_3 51 177 255
emphasis_0 58 151 212
emphasis_1 62 64 67
emphasis_2 201 110 208
emphasis_3 104 142 241
}
exit_code_error {
base 238 83 150
base 237 95 116
background 0
emphasis_0 248 225 124
emphasis_0 217 121 23
emphasis_1 0
emphasis_2 0
emphasis_3 0
}
multiplayer_user_colors {
player_1 190 149 255
player_2 51 177 255
player_1 201 110 208
player_2 104 142 241
player_3 0
player_4 248 225 124
player_5 61 219 217
player_4 217 121 23
player_5 58 151 212
player_6 0
player_7 238 83 150
player_7 237 95 116
player_8 0
player_9 0
player_10 0
@@ -291,8 +294,6 @@ themes {
}
}
// 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"
@@ -310,200 +311,21 @@ plugins {
}
}
// 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 false
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "carbonfox"
// 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"
//
theme "vim_dark_high_contrast"
default_layout "terminal"
// 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 100000
// 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/local/bin/hx"
// 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
//
scrollback_editor "hx"
session_serialization true
// Whether pane viewports are serialized along with the session, default is false
// Options:
// - true
// - false (default)
//
serialize_pane_viewport true
// 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 100000
// 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
web_client {
cursor_blink false
cursor_style "block"
cursor_inactive_style "outline"
font "Iosevka Fixed"
}
+5 -5
View File
@@ -1,4 +1,9 @@
layout {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="horizontal" {
pane {
command "hx"
@@ -11,9 +16,4 @@ layout {
size "25%"
}
}
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
}
-18
View File
@@ -1,18 +0,0 @@
layout {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="horizontal" {
pane {
edit "."
focus true
size "75%"
borderless true
}
pane {
size "25%"
}
}
}
+25
View File
@@ -0,0 +1,25 @@
layout {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="vertical" {
pane {
command "hx-pick"
args "."
focus true
size "60%"
borderless true
}
pane stacked=true {
pane {
name "LazyGit"
command "lazygit"
}
pane {
name "Terminal"
}
}
}
}
+5 -3
View File
@@ -1,4 +1,9 @@
layout {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="vertical" {
pane {
edit "."
@@ -16,7 +21,4 @@ layout {
}
}
}
pane borderless=true size=1 {
plugin location="zellij:compact-bar"
}
}
-22
View File
@@ -1,22 +0,0 @@
layout {
tab_template name="ui" {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
children
}
default_tab_template {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane {
pane
pane
}
}
}
+5 -5
View File
@@ -1,12 +1,12 @@
layout {
pane split_direction="vertical" {
pane {
name "Terminal"
}
}
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="vertical" {
pane {
name "Terminal"
}
}
}