Clean hypr leftovers
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
export EDITOR="vi"
|
export EDITOR="gnome-text-editor"
|
||||||
export PS1="\n[\[\e[37m\]\u\[\e[0m\]@\[\e[37;2m\]\h\[\e[0m\]] \[\e[1m\]\w \[\e[0;2m\]J:\[\e[0m\]\j\n\$ "
|
export PS1="\n[\[\e[37m\]\u\[\e[0m\]@\[\e[37;2m\]\h\[\e[0m\]] \[\e[1m\]\w \[\e[0;2m\]J:\[\e[0m\]\j\n\$ "
|
||||||
|
|
||||||
# Commands that should be applied only for interactive shells.
|
# Commands that should be applied only for interactive shells.
|
||||||
|
|||||||
@@ -1,436 +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 = 400
|
|
||||||
|
|
||||||
# The maximum height of a single notification, excluding the frame.
|
|
||||||
height = 400
|
|
||||||
|
|
||||||
# Position the notification in the top right corner
|
|
||||||
origin = top-center
|
|
||||||
|
|
||||||
# Offset from the origin
|
|
||||||
offset = 10x10
|
|
||||||
|
|
||||||
# Scale factor. It is auto-detected if value is 0.
|
|
||||||
scale = 0
|
|
||||||
|
|
||||||
# Maximum number of notification (0 means no limit)
|
|
||||||
notification_limit = 4
|
|
||||||
|
|
||||||
### 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 = 300
|
|
||||||
|
|
||||||
|
|
||||||
# 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 = 15
|
|
||||||
|
|
||||||
# Draw a line of "separator_height" pixel height between two
|
|
||||||
# notifications.
|
|
||||||
# Set to 0 to disable.
|
|
||||||
separator_height = 1
|
|
||||||
|
|
||||||
# Padding between text and separator.
|
|
||||||
padding = 8
|
|
||||||
|
|
||||||
# Horizontal padding.
|
|
||||||
horizontal_padding = 10
|
|
||||||
|
|
||||||
# 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 = 2
|
|
||||||
|
|
||||||
# Defines color of the frame around the notification window.
|
|
||||||
frame_color = "#ebdbb2"
|
|
||||||
|
|
||||||
# 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 = JetBrains Mono Nerd Font 10
|
|
||||||
|
|
||||||
# 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://developer.gnome.org/pango/stable/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 = "%s %p\n%b"
|
|
||||||
|
|
||||||
# Alignment of message text.
|
|
||||||
# Possible values are "left", "center" and "right".
|
|
||||||
alignment = center
|
|
||||||
|
|
||||||
# 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 ###
|
|
||||||
|
|
||||||
# Align icons left/right/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 = 0
|
|
||||||
|
|
||||||
# Scale larger icons down to this size, set to 0 to disable
|
|
||||||
max_icon_size = 64
|
|
||||||
|
|
||||||
# Paths to default icons.
|
|
||||||
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 = wofi -p dunst:
|
|
||||||
|
|
||||||
# Browser for opening urls in context menu.
|
|
||||||
browser = 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 = 10
|
|
||||||
|
|
||||||
# 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 = "#282828"
|
|
||||||
foreground = "#ebdbb2"
|
|
||||||
timeout = 10
|
|
||||||
# Icon for notifications with low urgency, uncomment to enable
|
|
||||||
#new_icon = /path/to/icon
|
|
||||||
|
|
||||||
[urgency_normal]
|
|
||||||
background = "#282828"
|
|
||||||
foreground = "#ebdbb2"
|
|
||||||
timeout = 10
|
|
||||||
# Icon for notifications with normal urgency, uncomment to enable
|
|
||||||
#new_icon = /path/to/icon
|
|
||||||
|
|
||||||
[urgency_critical]
|
|
||||||
background = "#282828"
|
|
||||||
foreground = "#ebdbb2"
|
|
||||||
frame_color = "#fb4934"
|
|
||||||
timeout = 0
|
|
||||||
# Icon for notifications with critical urgency, uncomment to enable
|
|
||||||
#new_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
|
|
||||||
# skip_display
|
|
||||||
# history_ignore
|
|
||||||
# action_name
|
|
||||||
# word_wrap
|
|
||||||
# ellipsize
|
|
||||||
# alignment
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
@@ -1,206 +0,0 @@
|
|||||||
# -*- conf -*-
|
|
||||||
|
|
||||||
shell=/bin/bash
|
|
||||||
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
|
|
||||||
# login-shell=no
|
|
||||||
|
|
||||||
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
|
||||||
title=Terminal
|
|
||||||
# locked-title=no
|
|
||||||
|
|
||||||
font=JetBrains Mono Nerd Font:size=12
|
|
||||||
# font-bold=<bold variant of regular font>
|
|
||||||
# font-italic=<italic variant of regular font>
|
|
||||||
# font-bold-italic=<bold+italic variant of regular font>
|
|
||||||
# font-size-adjustment=0.5
|
|
||||||
# line-height=<font metrics>
|
|
||||||
# letter-spacing=0
|
|
||||||
# horizontal-letter-offset=0
|
|
||||||
# vertical-letter-offset=0
|
|
||||||
# underline-offset=<font metrics>
|
|
||||||
# underline-thickness=<font underline thickness>
|
|
||||||
# box-drawings-uses-font-glyphs=no
|
|
||||||
# dpi-aware=no
|
|
||||||
|
|
||||||
# initial-window-size-pixels=700x500 # Or,
|
|
||||||
# initial-window-size-chars=<COLSxROWS>
|
|
||||||
# initial-window-mode=windowed
|
|
||||||
pad=5x5 center # optionally append 'center'
|
|
||||||
# resize-delay-ms=100
|
|
||||||
|
|
||||||
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
|
|
||||||
|
|
||||||
# bold-text-in-bright=no
|
|
||||||
# word-delimiters=,│`|:"'()[]{}<>
|
|
||||||
# selection-target=primary
|
|
||||||
# workers=<number of logical CPUs>
|
|
||||||
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
|
||||||
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
|
||||||
|
|
||||||
[environment]
|
|
||||||
# name=value
|
|
||||||
|
|
||||||
[bell]
|
|
||||||
# urgent=no
|
|
||||||
# notify=no
|
|
||||||
# visual=no
|
|
||||||
# command=
|
|
||||||
# command-focused=no
|
|
||||||
|
|
||||||
[scrollback]
|
|
||||||
lines=1000
|
|
||||||
# multiplier=3.0
|
|
||||||
# indicator-position=relative
|
|
||||||
# indicator-format=""
|
|
||||||
|
|
||||||
[url]
|
|
||||||
launch=xdg-open ${url}
|
|
||||||
# label-letters=sadfjklewcmpgh
|
|
||||||
# osc8-underline=url-mode
|
|
||||||
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
|
||||||
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
|
|
||||||
|
|
||||||
[cursor]
|
|
||||||
style=block
|
|
||||||
# color=<inverse foreground/background>
|
|
||||||
# blink=no
|
|
||||||
# beam-thickness=1.5
|
|
||||||
# underline-thickness=<font underline thickness>
|
|
||||||
|
|
||||||
[mouse]
|
|
||||||
# hide-when-typing=no
|
|
||||||
# alternate-scroll-mode=yes
|
|
||||||
|
|
||||||
[touch]
|
|
||||||
# long-press-delay=400
|
|
||||||
|
|
||||||
# JetBrains Darcula
|
|
||||||
# Palette based on the same theme from https://github.com/dexpota/kitty-themes
|
|
||||||
|
|
||||||
#[cursor]
|
|
||||||
#color=282a36 f8f8f2
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
alpha=0.95
|
|
||||||
background=282828
|
|
||||||
foreground=ebdbb2
|
|
||||||
regular0=282828
|
|
||||||
regular1=cc241d
|
|
||||||
regular2=98971a
|
|
||||||
regular3=d79921
|
|
||||||
regular4=458588
|
|
||||||
regular5=b16286
|
|
||||||
regular6=689d6a
|
|
||||||
regular7=a89984
|
|
||||||
bright0=928374
|
|
||||||
bright1=fb4934
|
|
||||||
bright2=b8bb26
|
|
||||||
bright3=fabd2f
|
|
||||||
bright4=83a598
|
|
||||||
bright5=d3869b
|
|
||||||
bright6=8ec07c
|
|
||||||
bright7=ebdbb2
|
|
||||||
|
|
||||||
[csd]
|
|
||||||
# preferred=server
|
|
||||||
# size=26
|
|
||||||
# font=<primary font>
|
|
||||||
# color=<foreground color>
|
|
||||||
# hide-when-maximized=no
|
|
||||||
# double-click-to-maximize=yes
|
|
||||||
# border-width=0
|
|
||||||
# border-color=<csd.color>
|
|
||||||
# button-width=26
|
|
||||||
# button-color=<background color>
|
|
||||||
# button-minimize-color=<regular4>
|
|
||||||
# button-maximize-color=<regular2>
|
|
||||||
# button-close-color=<regular1>
|
|
||||||
|
|
||||||
[key-bindings]
|
|
||||||
# scrollback-up-page=Shift+Page_Up
|
|
||||||
# scrollback-up-half-page=none
|
|
||||||
# scrollback-up-line=none
|
|
||||||
# scrollback-down-page=Shift+Page_Down
|
|
||||||
# scrollback-down-half-page=none
|
|
||||||
# scrollback-down-line=none
|
|
||||||
# scrollback-home=none
|
|
||||||
# scrollback-end=none
|
|
||||||
# clipboard-copy=Control+Shift+c XF86Copy
|
|
||||||
# clipboard-paste=Control+Shift+v XF86Paste
|
|
||||||
# primary-paste=Shift+Insert
|
|
||||||
# search-start=Control+Shift+r
|
|
||||||
# font-increase=Control+plus Control+equal Control+KP_Add
|
|
||||||
# font-decrease=Control+minus Control+KP_Subtract
|
|
||||||
# font-reset=Control+0 Control+KP_0
|
|
||||||
# spawn-terminal=Control+Shift+n
|
|
||||||
# minimize=none
|
|
||||||
# maximize=none
|
|
||||||
# fullscreen=none
|
|
||||||
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
|
||||||
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
|
||||||
# pipe-selected=[xargs -r firefox] none
|
|
||||||
# show-urls-launch=Control+Shift+o
|
|
||||||
# show-urls-copy=none
|
|
||||||
# show-urls-persistent=none
|
|
||||||
# prompt-prev=Control+Shift+z
|
|
||||||
# prompt-next=Control+Shift+x
|
|
||||||
# unicode-input=Control+Shift+u
|
|
||||||
# noop=none
|
|
||||||
|
|
||||||
[search-bindings]
|
|
||||||
# cancel=Control+g Control+c Escape
|
|
||||||
# commit=Return
|
|
||||||
# find-prev=Control+r
|
|
||||||
# find-next=Control+s
|
|
||||||
# cursor-left=Left Control+b
|
|
||||||
# cursor-left-word=Control+Left Mod1+b
|
|
||||||
# cursor-right=Right Control+f
|
|
||||||
# cursor-right-word=Control+Right Mod1+f
|
|
||||||
# cursor-home=Home Control+a
|
|
||||||
# cursor-end=End Control+e
|
|
||||||
# delete-prev=BackSpace
|
|
||||||
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
|
||||||
# delete-next=Delete
|
|
||||||
# delete-next-word=Mod1+d Control+Delete
|
|
||||||
# extend-char=Shift+Right
|
|
||||||
# extend-to-word-boundary=Control+w Control+Shift+Right
|
|
||||||
# extend-to-next-whitespace=Control+Shift+w
|
|
||||||
# extend-line-down=Shift+Down
|
|
||||||
# extend-backward-char=Shift+Left
|
|
||||||
# extend-backward-to-word-boundary=Control+Shift+Left
|
|
||||||
# extend-backward-to-next-whitespace=none
|
|
||||||
# extend-line-up=Shift+Up
|
|
||||||
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
|
||||||
# primary-paste=Shift+Insert
|
|
||||||
# unicode-input=none
|
|
||||||
# scrollback-up-page=Shift+Page_Up
|
|
||||||
# scrollback-up-half-page=none
|
|
||||||
# scrollback-up-line=none
|
|
||||||
# scrollback-down-page=Shift+Page_Down
|
|
||||||
# scrollback-down-half-page=none
|
|
||||||
# scrollback-down-line=none
|
|
||||||
# scrollback-home=none
|
|
||||||
# scrollback-end=none
|
|
||||||
|
|
||||||
[url-bindings]
|
|
||||||
# cancel=Control+g Control+c Control+d Escape
|
|
||||||
# toggle-url-visible=t
|
|
||||||
|
|
||||||
[text-bindings]
|
|
||||||
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
|
||||||
|
|
||||||
[mouse-bindings]
|
|
||||||
scrollback-up-mouse=BTN_BACK
|
|
||||||
scrollback-down-mouse=BTN_FORWARD
|
|
||||||
# selection-override-modifiers=Shift
|
|
||||||
primary-paste=BTN_MIDDLE
|
|
||||||
# select-begin=BTN_LEFT
|
|
||||||
# select-begin-block=Control+BTN_LEFT
|
|
||||||
# select-extend=BTN_RIGHT
|
|
||||||
# select-extend-character-wise=Control+BTN_RIGHT
|
|
||||||
# select-word=BTN_LEFT-2
|
|
||||||
# select-word-whitespace=Control+BTN_LEFT-2
|
|
||||||
# select-quote = BTN_LEFT-3
|
|
||||||
# select-row=BTN_LEFT-4
|
|
||||||
|
|
||||||
# vim: ft=dosini
|
|
||||||
@@ -1,242 +0,0 @@
|
|||||||
##############
|
|
||||||
### COLORS ###
|
|
||||||
##############
|
|
||||||
|
|
||||||
$color_accent = rgba(ffa348ee)
|
|
||||||
$color_inactive = rgba(242424aa)
|
|
||||||
$color_shadow = rgba(1a1a1aee)
|
|
||||||
|
|
||||||
################
|
|
||||||
### MONITORS ###
|
|
||||||
################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
|
||||||
monitor = HDMI-A-1,1920x1080,0x0,auto
|
|
||||||
monitor = DP-2,preferred,1920x-400,auto
|
|
||||||
monitor=,preferred,auto,auto
|
|
||||||
|
|
||||||
|
|
||||||
###################
|
|
||||||
### MY PROGRAMS ###
|
|
||||||
###################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
||||||
|
|
||||||
# Set programs that you use
|
|
||||||
$terminal = foot
|
|
||||||
$fileManager = nautilus
|
|
||||||
$menu = rofi -show drun
|
|
||||||
|
|
||||||
|
|
||||||
#################
|
|
||||||
### AUTOSTART ###
|
|
||||||
#################
|
|
||||||
|
|
||||||
exec-once = waybar
|
|
||||||
exec-once = swaybg -i ~/.wallpapers/bg-dark.png -m fill
|
|
||||||
exec-once = dunst
|
|
||||||
exec-once = udiskie
|
|
||||||
exec-once = hyprctl setcursor GoogleDot-Black 24
|
|
||||||
|
|
||||||
#############################
|
|
||||||
### ENVIRONMENT VARIABLES ###
|
|
||||||
#############################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
|
||||||
|
|
||||||
env = XCURSOR_SIZE,24
|
|
||||||
env = HYPRCURSOR_SIZE,24
|
|
||||||
env = HYPRCURSOR_THEME,GoogleDot-Black
|
|
||||||
|
|
||||||
|
|
||||||
#####################
|
|
||||||
### LOOK AND FEEL ###
|
|
||||||
#####################
|
|
||||||
|
|
||||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
|
||||||
general {
|
|
||||||
gaps_in = 2.5
|
|
||||||
gaps_out = 5
|
|
||||||
border_size = 2
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = $color_accent
|
|
||||||
col.inactive_border = $color_inactive
|
|
||||||
|
|
||||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
|
||||||
resize_on_border = true
|
|
||||||
|
|
||||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
|
||||||
allow_tearing = false
|
|
||||||
|
|
||||||
layout = dwindle
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
|
||||||
decoration {
|
|
||||||
rounding = 10
|
|
||||||
|
|
||||||
# Change transparency of focused and unfocused windows
|
|
||||||
active_opacity = 1.0
|
|
||||||
inactive_opacity = 1.0
|
|
||||||
|
|
||||||
drop_shadow = false
|
|
||||||
shadow_range = 4
|
|
||||||
shadow_render_power = 3
|
|
||||||
col.shadow = $color_shadow
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
|
||||||
blur {
|
|
||||||
enabled = false
|
|
||||||
size = 3
|
|
||||||
passes = 1
|
|
||||||
|
|
||||||
vibrancy = 0.1696
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
|
||||||
animations {
|
|
||||||
enabled = true
|
|
||||||
|
|
||||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
||||||
|
|
||||||
bezier = curve_main, 0.05, 0.9, 0.1, 1.05
|
|
||||||
|
|
||||||
animation = windows, 1, 4, curve_main
|
|
||||||
animation = windowsOut, 1, 7, default, popin 80%
|
|
||||||
animation = border, 1, 10, default
|
|
||||||
animation = borderangle, 1, 8, default
|
|
||||||
animation = fade, 1, 4, default
|
|
||||||
animation = workspaces, 1, 4, default
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
||||||
dwindle {
|
|
||||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
||||||
preserve_split = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
||||||
master {
|
|
||||||
new_status = master
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
|
||||||
misc {
|
|
||||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
|
||||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
|
||||||
vfr = true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#############
|
|
||||||
### INPUT ###
|
|
||||||
#############
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
|
||||||
input {
|
|
||||||
kb_layout = us
|
|
||||||
kb_variant = altgr-intl
|
|
||||||
kb_model =
|
|
||||||
kb_options =
|
|
||||||
kb_rules =
|
|
||||||
|
|
||||||
follow_mouse = 1
|
|
||||||
|
|
||||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
|
||||||
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
|
||||||
gestures {
|
|
||||||
workspace_swipe = false
|
|
||||||
}
|
|
||||||
|
|
||||||
# Example per-device config
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
|
||||||
device {
|
|
||||||
name = epic-mouse-v1
|
|
||||||
sensitivity = -0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
### KEYBINDINGSS ###
|
|
||||||
####################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
||||||
$mainMod = SUPER
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
||||||
bind = $mainMod, Return, exec, $terminal
|
|
||||||
bind = $mainMod, C, killactive,
|
|
||||||
bind = $mainMod, M, exit,
|
|
||||||
bind = $mainMod, E, exec, $fileManager
|
|
||||||
bind = $mainMod, V, togglefloating,
|
|
||||||
bind = $mainMod, R, exec, $menu
|
|
||||||
bind = $mainMod, P, pseudo, # dwindle
|
|
||||||
bind = $mainMod, J, togglesplit, # dwindle
|
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
|
||||||
bind = $mainMod, left, movefocus, l
|
|
||||||
bind = $mainMod, right, movefocus, r
|
|
||||||
bind = $mainMod, up, movefocus, u
|
|
||||||
bind = $mainMod, down, movefocus, d
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
bind = $mainMod, 1, workspace, 1
|
|
||||||
bind = $mainMod, 2, workspace, 2
|
|
||||||
bind = $mainMod, 3, workspace, 3
|
|
||||||
bind = $mainMod, 4, workspace, 4
|
|
||||||
bind = $mainMod, 5, workspace, 5
|
|
||||||
bind = $mainMod, 6, workspace, 6
|
|
||||||
bind = $mainMod, 7, workspace, 7
|
|
||||||
bind = $mainMod, 8, workspace, 8
|
|
||||||
bind = $mainMod, 9, workspace, 9
|
|
||||||
bind = $mainMod, 0, workspace, 10
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
|
||||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
|
||||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
|
||||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
|
||||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
|
||||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
|
||||||
|
|
||||||
# Example special workspace (scratchpad)
|
|
||||||
bind = $mainMod, S, togglespecialworkspace, magic
|
|
||||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
|
||||||
bind = $mainMod, mouse_down, workspace, e+1
|
|
||||||
bind = $mainMod, mouse_up, workspace, e-1
|
|
||||||
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
bindm = $mainMod, mouse:272, movewindow
|
|
||||||
bindm = $mainMod, mouse:273, resizewindow
|
|
||||||
|
|
||||||
|
|
||||||
##############################
|
|
||||||
### WINDOWS AND WORKSPACES ###
|
|
||||||
##############################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
|
||||||
|
|
||||||
# Example windowrule v1
|
|
||||||
windowrule = float, ^(Rofi)$
|
|
||||||
|
|
||||||
# Example windowrule v2
|
|
||||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
|
||||||
|
|
||||||
windowrulev2 = suppressevent maximize, class:.*
|
|
||||||
@@ -1,683 +0,0 @@
|
|||||||
-- Set <space> as the leader key
|
|
||||||
-- See `:help mapleader`
|
|
||||||
vim.g.mapleader = ' '
|
|
||||||
vim.g.maplocalleader = ' '
|
|
||||||
|
|
||||||
-- [[ Setting options ]]
|
|
||||||
-- See `:help vim.opt`
|
|
||||||
-- For more options, you can see `:help option-list`
|
|
||||||
|
|
||||||
vim.opt.number = true
|
|
||||||
vim.opt.relativenumber = true
|
|
||||||
vim.opt.mouse = 'a'
|
|
||||||
vim.opt.showmode = false
|
|
||||||
vim.g.have_nerd_font = true
|
|
||||||
|
|
||||||
-- See `:help 'clipboard'`
|
|
||||||
vim.schedule(function()
|
|
||||||
vim.opt.clipboard = 'unnamedplus'
|
|
||||||
end)
|
|
||||||
|
|
||||||
vim.opt.breakindent = true
|
|
||||||
vim.opt.undofile = true
|
|
||||||
vim.opt.ignorecase = true
|
|
||||||
vim.opt.smartcase = true
|
|
||||||
vim.opt.signcolumn = 'yes'
|
|
||||||
vim.opt.updatetime = 250
|
|
||||||
vim.opt.timeoutlen = 300
|
|
||||||
vim.opt.splitright = true
|
|
||||||
vim.opt.splitbelow = true
|
|
||||||
vim.opt.list = true
|
|
||||||
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
|
||||||
vim.opt.inccommand = 'split'
|
|
||||||
vim.opt.cursorline = true
|
|
||||||
vim.opt.scrolloff = 10
|
|
||||||
|
|
||||||
-- [[ Basic Keymaps ]]
|
|
||||||
-- See `:help vim.keymap.set()`
|
|
||||||
|
|
||||||
-- Clear highlights on search when pressing <Esc> in normal mode
|
|
||||||
-- See `:help hlsearch`
|
|
||||||
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
|
|
||||||
|
|
||||||
-- Diagnostic keymaps
|
|
||||||
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
|
|
||||||
|
|
||||||
-- 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
|
|
||||||
-- 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,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- [[ 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.uv or vim.loop).fs_stat(lazypath) then
|
|
||||||
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
|
|
||||||
local out = vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
|
|
||||||
if vim.v.shell_error ~= 0 then
|
|
||||||
error('Error cloning lazy.nvim:\n' .. out)
|
|
||||||
end
|
|
||||||
end ---@diagnostic disable-next-line: undefined-field
|
|
||||||
vim.opt.rtp:prepend(lazypath)
|
|
||||||
|
|
||||||
-- [[ 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
|
|
||||||
|
|
||||||
-- See `:help gitsigns` to understand what the configuration keys do
|
|
||||||
{ -- 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 = '~' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
{ -- Useful plugin to show you pending keybinds.
|
|
||||||
'folke/which-key.nvim',
|
|
||||||
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
|
|
||||||
opts = {
|
|
||||||
-- delay between pressing a key and opening which-key (milliseconds)
|
|
||||||
-- this setting is independent of vim.opt.timeoutlen
|
|
||||||
delay = 0,
|
|
||||||
icons = {
|
|
||||||
-- set icon mappings to true if you have a Nerd Font
|
|
||||||
mappings = vim.g.have_nerd_font,
|
|
||||||
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
|
|
||||||
-- default which-key.nvim defined Nerd Font icons, otherwise define a string table
|
|
||||||
keys = vim.g.have_nerd_font and {} or {
|
|
||||||
Up = '<Up> ',
|
|
||||||
Down = '<Down> ',
|
|
||||||
Left = '<Left> ',
|
|
||||||
Right = '<Right> ',
|
|
||||||
C = '<C-…> ',
|
|
||||||
M = '<M-…> ',
|
|
||||||
D = '<D-…> ',
|
|
||||||
S = '<S-…> ',
|
|
||||||
CR = '<CR> ',
|
|
||||||
Esc = '<Esc> ',
|
|
||||||
ScrollWheelDown = '<ScrollWheelDown> ',
|
|
||||||
ScrollWheelUp = '<ScrollWheelUp> ',
|
|
||||||
NL = '<NL> ',
|
|
||||||
BS = '<BS> ',
|
|
||||||
Space = '<Space> ',
|
|
||||||
Tab = '<Tab> ',
|
|
||||||
F1 = '<F1>',
|
|
||||||
F2 = '<F2>',
|
|
||||||
F3 = '<F3>',
|
|
||||||
F4 = '<F4>',
|
|
||||||
F5 = '<F5>',
|
|
||||||
F6 = '<F6>',
|
|
||||||
F7 = '<F7>',
|
|
||||||
F8 = '<F8>',
|
|
||||||
F9 = '<F9>',
|
|
||||||
F10 = '<F10>',
|
|
||||||
F11 = '<F11>',
|
|
||||||
F12 = '<F12>',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Document existing key chains
|
|
||||||
spec = {
|
|
||||||
{ '<leader>c', group = '[C]ode', mode = { 'n', 'x' } },
|
|
||||||
{ '<leader>d', group = '[D]ocument' },
|
|
||||||
{ '<leader>r', group = '[R]ename' },
|
|
||||||
{ '<leader>s', group = '[S]earch' },
|
|
||||||
{ '<leader>w', group = '[W]orkspace' },
|
|
||||||
{ '<leader>t', group = '[T]oggle' },
|
|
||||||
{ '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
{ -- 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 = 'make',
|
|
||||||
cond = function()
|
|
||||||
return vim.fn.executable 'make' == 1
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ 'nvim-telescope/telescope-ui-select.nvim' },
|
|
||||||
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
-- :Telescope help_tags
|
|
||||||
-- [[ 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' })
|
|
||||||
|
|
||||||
-- 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,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- LSP Plugins
|
|
||||||
{
|
|
||||||
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
|
|
||||||
-- used for completion, annotations and signatures of Neovim apis
|
|
||||||
'folke/lazydev.nvim',
|
|
||||||
ft = 'lua',
|
|
||||||
opts = {
|
|
||||||
library = {
|
|
||||||
-- Load luvit types when the `vim.uv` word is found
|
|
||||||
{ path = '${3rd}/luv/library', words = { 'vim%.uv' } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
-- Main LSP Configuration
|
|
||||||
'neovim/nvim-lspconfig',
|
|
||||||
dependencies = {
|
|
||||||
-- Automatically install LSPs and related tools to stdpath for Neovim
|
|
||||||
-- Mason must be loaded before its dependents so we need to set it up here.
|
|
||||||
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
|
|
||||||
{ 'williamboman/mason.nvim', opts = {} },
|
|
||||||
'williamboman/mason-lspconfig.nvim',
|
|
||||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
|
||||||
|
|
||||||
-- Useful status updates for LSP.
|
|
||||||
{ 'j-hui/fidget.nvim', opts = {} },
|
|
||||||
|
|
||||||
-- Allows extra capabilities provided by nvim-cmp
|
|
||||||
'hrsh7th/cmp-nvim-lsp',
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
vim.api.nvim_create_autocmd('LspAttach', {
|
|
||||||
group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }),
|
|
||||||
callback = function(event)
|
|
||||||
-- 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, mode)
|
|
||||||
mode = mode or 'n'
|
|
||||||
vim.keymap.set(mode, 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', { 'n', 'x' })
|
|
||||||
|
|
||||||
-- 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.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) 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 code creates a keymap to toggle 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.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
|
|
||||||
map('<leader>th', function()
|
|
||||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
|
|
||||||
end, '[T]oggle Inlay [H]ints')
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Change diagnostic symbols in the sign column (gutter)
|
|
||||||
-- if vim.g.have_nerd_font then
|
|
||||||
-- local signs = { ERROR = '', WARN = '', INFO = '', HINT = '' }
|
|
||||||
-- local diagnostic_signs = {}
|
|
||||||
-- for type, icon in pairs(signs) do
|
|
||||||
-- diagnostic_signs[vim.diagnostic.severity[type]] = icon
|
|
||||||
-- end
|
|
||||||
-- vim.diagnostic.config { signs = { text = diagnostic_signs } }
|
|
||||||
-- end
|
|
||||||
|
|
||||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
|
||||||
capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities())
|
|
||||||
|
|
||||||
local servers = {
|
|
||||||
clangd = {},
|
|
||||||
-- gopls = {},
|
|
||||||
-- 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 (`ts_ls`) will work just fine
|
|
||||||
-- ts_ls = {},
|
|
||||||
--
|
|
||||||
|
|
||||||
lua_ls = {
|
|
||||||
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.
|
|
||||||
--
|
|
||||||
-- `mason` had to be setup earlier: to configure its options see the
|
|
||||||
-- `dependencies` table for `nvim-lspconfig` above.
|
|
||||||
--
|
|
||||||
-- 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 ts_ls)
|
|
||||||
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
|
|
||||||
require('lspconfig')[server_name].setup(server)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{ -- Autoformat
|
|
||||||
'stevearc/conform.nvim',
|
|
||||||
event = { 'BufWritePre' },
|
|
||||||
cmd = { 'ConformInfo' },
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
'<leader>f',
|
|
||||||
function()
|
|
||||||
require('conform').format { async = true, lsp_format = 'fallback' }
|
|
||||||
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 }
|
|
||||||
local lsp_format_opt
|
|
||||||
if disable_filetypes[vim.bo[bufnr].filetype] then
|
|
||||||
lsp_format_opt = 'never'
|
|
||||||
else
|
|
||||||
lsp_format_opt = 'fallback'
|
|
||||||
end
|
|
||||||
return {
|
|
||||||
timeout_ms = 500,
|
|
||||||
lsp_format = lsp_format_opt,
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
formatters_by_ft = {
|
|
||||||
lua = { 'stylua' },
|
|
||||||
-- Conform can also run multiple formatters sequentially
|
|
||||||
-- python = { "isort", "black" },
|
|
||||||
--
|
|
||||||
-- You can use 'stop_after_first' to run the first available formatter from the list
|
|
||||||
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
{ -- 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 = 'lazydev',
|
|
||||||
-- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
|
|
||||||
group_index = 0,
|
|
||||||
},
|
|
||||||
{ name = 'nvim_lsp' },
|
|
||||||
{ name = 'luasnip' },
|
|
||||||
{ name = 'path' },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{ -- You can easily change to a different colorscheme.
|
|
||||||
-- Change the name of the colorscheme plugin below, and then
|
|
||||||
-- change the command in the config to whatever the name of that colorscheme is.
|
|
||||||
--
|
|
||||||
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
|
||||||
'Mofiqul/adwaita.nvim',
|
|
||||||
priority = 1000, -- Make sure to load this before all the other start plugins.
|
|
||||||
init = function()
|
|
||||||
-- Load the colorscheme here.
|
|
||||||
-- Like many other themes, this one has different styles, and you could load
|
|
||||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
|
||||||
vim.cmd.colorscheme 'adwaita'
|
|
||||||
|
|
||||||
-- You can configure highlights by doing something like:
|
|
||||||
vim.cmd.hi 'Comment gui=none'
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Highlight todo, notes, etc in comments
|
|
||||||
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
|
|
||||||
|
|
||||||
{ -- 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 [Q]uote
|
|
||||||
-- - 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
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ -- Highlight, edit, and navigate code
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
build = ':TSUpdate',
|
|
||||||
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
|
||||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
|
||||||
opts = {
|
|
||||||
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', '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' } },
|
|
||||||
},
|
|
||||||
-- 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
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
|
||||||
-- vim: ts=2 sts=2 sw=2 et
|
|
||||||
@@ -1,151 +0,0 @@
|
|||||||
configuration {
|
|
||||||
/* modes: "window,drun,run,ssh";*/
|
|
||||||
/* font: "mono 12";*/
|
|
||||||
/* location: 0;*/
|
|
||||||
/* yoffset: 0;*/
|
|
||||||
/* xoffset: 0;*/
|
|
||||||
/* fixed-num-lines: true;*/
|
|
||||||
/* show-icons: false;*/
|
|
||||||
/* 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";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
width=450
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
@define-color darkbase #1d2021;
|
|
||||||
@define-color base #282828;
|
|
||||||
@define-color foreground #ebdbb2;
|
|
||||||
@define-color cyan #83a598;
|
|
||||||
@define-color green #8ec07c;
|
|
||||||
@define-color orange #fe8019;
|
|
||||||
@define-color pink #d3869b;
|
|
||||||
@define-color purple #d3869b;
|
|
||||||
@define-color red #fb4934;
|
|
||||||
@define-color yellow #fabd2f;
|
|
||||||
|
|
||||||
window {
|
|
||||||
margin: 0px;
|
|
||||||
border: 3px solid @foreground;
|
|
||||||
background-color: @base;
|
|
||||||
border-radius: 8px;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input {
|
|
||||||
margin: 5px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 8px;
|
|
||||||
color: @foreground;
|
|
||||||
background-color: @darkbase;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#inner-box {
|
|
||||||
margin: 5px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#outer-box {
|
|
||||||
margin: 5px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scroll {
|
|
||||||
margin: 0px;
|
|
||||||
border: none;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#text {
|
|
||||||
margin: 5px;
|
|
||||||
border: none;
|
|
||||||
color: @foreground;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry {
|
|
||||||
border-radius: 50px;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry.activatable #text {
|
|
||||||
color: @darkbase;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry > * {
|
|
||||||
color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:selected {
|
|
||||||
background-color: @darkbase;
|
|
||||||
border: none;
|
|
||||||
border-radius: 8px;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:selected #text {
|
|
||||||
font-weight: bold;
|
|
||||||
color: @foreground;
|
|
||||||
background-color: @darkbase;
|
|
||||||
}
|
|
||||||
|
|
||||||
#img:selected {
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
21
install.sh
21
install.sh
@@ -46,13 +46,9 @@ for arg in "$@"; do
|
|||||||
if [ "$arg" = "-r" ]; then
|
if [ "$arg" = "-r" ]; then
|
||||||
reload=true
|
reload=true
|
||||||
fi
|
fi
|
||||||
if [ "$arg" = "-t" ]; then
|
|
||||||
tiling=true
|
|
||||||
fi
|
|
||||||
if [ "$arg" = "-h" ]; then
|
if [ "$arg" = "-h" ]; then
|
||||||
echo "Usage: $0 [-r][-t][-h]"
|
echo "Usage: $0 [-r][-h]"
|
||||||
echo " -r: Reload config"
|
echo " -r: Reload config"
|
||||||
echo " -t: Install window manager"
|
|
||||||
echo " -h: Show help message"
|
echo " -h: Show help message"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@@ -131,17 +127,12 @@ if [ "$reload" = false ]; then
|
|||||||
gir1.2-gtop-2.0 lm-sensors # Vitals Extension deps
|
gir1.2-gtop-2.0 lm-sensors # Vitals Extension deps
|
||||||
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
|
||||||
if [ "$tiling" = true ]; then
|
echo "${YELLOW}Installing GNOME...${NC}"
|
||||||
echo "${YELLOW}Installing Hyprland...${NC}"
|
sudo apt install gnome-core gnome-software-plugin-flatpak
|
||||||
sudo apt install hyprland dunst pipewire wireplumber xdg-desktop-portal-gnome polkit-kde-agent-1 waybar swaybg rofi nautilus udiskie foot
|
|
||||||
else
|
|
||||||
echo "${YELLOW}Installing GNOME...${NC}"
|
|
||||||
sudo apt install gnome-core gnome-software-plugin-flatpak
|
|
||||||
|
|
||||||
# Remove Firefox (Epiphany installed instead)
|
# Remove Firefox (Epiphany installed instead)
|
||||||
echo "${YELLOW}Removing Firefox...${NC}"
|
echo "${YELLOW}Removing Firefox...${NC}"
|
||||||
sudo apt purge firefox-esr
|
sudo apt purge firefox-esr
|
||||||
fi
|
|
||||||
|
|
||||||
# Enable Network Manager
|
# Enable Network Manager
|
||||||
echo "${YELLOW}Enabling Network Manager...${NC}"
|
echo "${YELLOW}Enabling Network Manager...${NC}"
|
||||||
|
|||||||
Reference in New Issue
Block a user