cumulative update

This commit is contained in:
Arthur Khachaturov 2024-06-19 11:51:19 +03:00
parent 3ecbac352e
commit c360fc2339
71 changed files with 3281 additions and 380 deletions

23
.config/X11/autostart Executable file
View file

@ -0,0 +1,23 @@
set -x
setxkbmap -layout us,ru -option grp:win_space_toggle
xset r rate 300 40
xwallpaper --zoom ${HOME}/.local/share/wallpaper/wallpaper.png
launch() {
cmd="$1"
shift
pkill "${cmd}"
"${cmd}" "$@"
}
xrdb -merge ~/.Xresources
launch xsettingsd &
# launch picom --config="${HOME}/.config/picom.conf" &
launch copyq &
launch dunst &
launch flameshot &
launch dwmblocks &
# vim: ft=bash

8
.config/X11/xprofile Normal file
View file

@ -0,0 +1,8 @@
systemctl --user import-environment DISPLAY
export TERMINAL=/usr/bin/alacritty
export TERM=/usr/bin/alacritty
export _JAVA_AWT_WM_NONREPARENTING=1
export AWT_TOOLKIT=MToolkit
# vim: ft=bash

View file

@ -1,4 +1,56 @@
live_config_reload: true
colors:
bright:
black: "0x5c6370"
blue: "0x61afef"
cyan: "0x56b6c2"
green: "0x98c379"
magenta: "0xc678dd"
red: "0xe06c75"
white: "0xe6efff"
yellow: "0xd19a66"
normal:
black: "0x1e2127"
blue: "0x61afef"
cyan: "0x56b6c2"
green: "0x98c379"
magenta: "0xc678dd"
red: "0xe06c75"
white: "0x828791"
yellow: "0xd19a66"
primary:
background: "0x1e2127"
bright_foreground: "0xe6efff"
foreground: "0xabb2bf"
cursor:
style:
blinking: Off
shape: Block
env:
TERM: xterm-256color
font:
size: 11
glyph_offset:
x: 0
y: 0
normal:
family: "Mononoki Nerd Font"
offset:
x: 1
y: 2
keyboard:
bindings:
- chars: "\x1f"
key: Slash
mods: Control
- chars: "\0"
key: Space
mods: Control
- chars: "\e"
key: Back
mods: Control
window:
dynamic_padding: true
dimensions:
columns: 140
lines: 45
@ -6,72 +58,3 @@ window:
x: 2
y: 2
dynamic_padding: true
font:
normal:
family: "Mononoki Nerd Font"
size: 10.5
offset:
x: 1
y: 2
glyph_offset:
x: 0
y: 0
colors:
primary:
background: '0x1e2127'
foreground: '0xabb2bf'
bright_foreground: '0xe6efff'
normal:
black: '0x1e2127'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0x828791'
bright:
black: '0x5c6370'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0xe6efff'
dim:
black: '0x1e2127'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0x828791'
cursor:
style:
shape: Block
blinking: Off
live_config_reload: true
shell:
program: wsl
args:
- sh
- -c
- '"cd ${HOME}; exec ${SHELL}"'
key_bindings:
- { key: 'Slash', mods: 'Control', chars: "\x1f"}
- { key: 'Space', mods: 'Control', chars: "\x00"}
- { key: 'Back', mods: 'Control', chars: "\x1b\x7f"}

445
.config/dunst/dunstrc Normal file
View file

@ -0,0 +1,445 @@
# 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 = none
### 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 = 1000
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
offset = 12x42
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 0
### 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 = 10
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
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 = 1
# Defines color of the frame around the notification window.
frame_color = "#3e4452"
# 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 = 10
### Text ###
font = Mononoki 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://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 = no
### 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 = 48
# 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 = 100
### Misc/Advanced ###
# dmenu path.
dmenu = dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/xdg-open
# 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 = context
# 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 = "#282c34"
foreground = "#abb2bf"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#new_icon = /path/to/icon
[urgency_normal]
background = "#282c34"
foreground = "#abb2bf"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#new_icon = /path/to/icon
[urgency_critical]
background = "#282c34"
foreground = "#abb2bf"
frame_color = "#ff0000"
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
[spotify]
appname = "Spotify"
format = ""
[history-ignore]
appname = "no-history"
history_ignore = yes
#[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

View file

@ -0,0 +1,16 @@
[Settings]
gtk-theme-name=Yaru-dark
gtk-icon-theme-name=Yaru-dark
gtk-font-name=Sans 10
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_TEXT
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=rgb
gtk-cursor-theme-name=Breeze

View file

@ -1,36 +1,38 @@
{
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"LuaSnip": { "branch": "master", "commit": "f03089854a8e15594a01562fa7192d0009a6fbe7" },
"LuaSnip": { "branch": "master", "commit": "878ace11983444d865a72e1759dbcc331d1ace4c" },
"Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
"bufferline.nvim": { "branch": "main", "commit": "1a3397556d194bb1f2cc530b07124ccc512c5501" },
"cmake-tools.nvim": { "branch": "master", "commit": "edbf419e00b21e83d45f4a17edffb2035d7a0ce6" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
"black-nvim": { "branch": "master", "commit": "8fb3efc562b67269e6f31f8653297f826534fa4b" },
"bufferline.nvim": { "branch": "main", "commit": "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe" },
"cmake-tools.nvim": { "branch": "master", "commit": "13ac73e88af371552379cbdbd57fee3550ade691" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"fidget.nvim": { "branch": "main", "commit": "785efc604f6ffe3c3fdd2ea86262804d48863ee1" },
"friendly-snippets": { "branch": "main", "commit": "53d3df271d031c405255e99410628c26a8f0d2b0" },
"indent-blankline.nvim": { "branch": "master", "commit": "dbd90bb689ff10d21fee6792eb8928f0584b5860" },
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
"lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "4eb8e15e3c0757303d4c6dea64d2981fc679e990" },
"mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" },
"neodev.nvim": { "branch": "main", "commit": "1676d2c24186fc30005317e0306d20c639b2351b" },
"nvim-autopairs": { "branch": "master", "commit": "0f04d78619cce9a5af4f355968040f7d675854a1" },
"nvim-cmp": { "branch": "main", "commit": "0b751f6beef40fd47375eaf53d3057e0bfa317e4" },
"fidget.nvim": { "branch": "main", "commit": "ef99df04a1c53a453602421bc0f756997edc8289" },
"friendly-snippets": { "branch": "main", "commit": "d0610077b6129cf9f7f78afbe3a1425d60f6e2f1" },
"indent-blankline.nvim": { "branch": "master", "commit": "d98f537c3492e87b6dc6c2e3f66ac517528f406f" },
"lazy.nvim": { "branch": "main", "commit": "24fa2a97085ca8a7220b5b078916f81e316036fd" },
"lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" },
"mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" },
"neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" },
"nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" },
"nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" },
"nvim-lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" },
"nvim-lspconfig": { "branch": "master", "commit": "694aaec65733e2d54d393abf80e526f86726c988" },
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
"nvim-tree.lua": { "branch": "master", "commit": "05f55c1fd6470b31627655c528245794e3cd4b2c" },
"nvim-treesitter": { "branch": "master", "commit": "0791b5ebb590a2d44e20640c52679df1fc42e8ab" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ec1c5bdb3d87ac971749fa6c7dbc2b14884f1f6a" },
"nvim-web-devicons": { "branch": "master", "commit": "5efb8bd06841f91f97c90e16de85e96d57e9c862" },
"onedark.nvim": { "branch": "master", "commit": "e7c656ac6b6460aaab817cbd0c9d5c043eda4b43" },
"plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
"telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
"vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" },
"nvim-lspconfig": { "branch": "master", "commit": "7cb90cf656139dc59cf86206946ec85571671b5b" },
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
"nvim-tree.lua": { "branch": "master", "commit": "5a87ffe35c4739ffb6b62052572583ad277a20ae" },
"nvim-treesitter": { "branch": "master", "commit": "5c924407cf110e9da4f3ba02ffed127b4198ad89" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "3557e41418b4a6c5b85d5d64abe94c9c50fa9b14" },
"nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" },
"onedark.nvim": { "branch": "master", "commit": "8e4b79b0e6495ddf29552178eceba1e147e6cecf" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"trouble.nvim": { "branch": "main", "commit": "cf81aaca820017388fc630c534774c95b58233f2" },
"vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" },
"vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" },
"vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vim-tmux": { "branch": "master", "commit": "cfe76281efc29890548cf9eedd42ad51c7a1faf0" },
"vim-wakatime": { "branch": "master", "commit": "87c6861ea81700ec4a6a27c81413cf07cb2c883c" }
"vim-wakatime": { "branch": "master", "commit": "3cb40867cb5a3120f9bef76eff88edc7f1dc1a23" }
}

View file

@ -1,18 +1,19 @@
-- Open NvimTree on startup
local function open_nvim_tree(data)
local real_file = vim.fn.filereadable(data.file) == 1
local no_name = data.file == "" and vim.bo[data.buf].buftype == ""
local directory = vim.fn.isdirectory(data.file) == 1
vim.api.nvim_create_autocmd({ "VimEnter" }, {
callback = function(data)
local real_file = vim.fn.filereadable(data.file) == 1
local no_name = data.file == "" and vim.bo[data.buf].buftype == ""
local directory = vim.fn.isdirectory(data.file) == 1
if real_file or no_name then
require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, })
elseif directory then
vim.cmd.enew()
vim.cmd.cd(data.file)
require("nvim-tree.api").tree.open()
if real_file or no_name then
require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, })
elseif directory then
vim.cmd.enew()
vim.cmd.cd(data.file)
require("nvim-tree.api").tree.open()
end
end
end
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
})
-- Resotre cursor on exit
-- vim.api.nvim_create_autocmd("VimLeave", {

View file

@ -0,0 +1 @@
return {}

View file

@ -0,0 +1 @@
return {}

View file

@ -4,7 +4,38 @@ require('mason-lspconfig').setup()
local mason_lspconfig = require('mason-lspconfig')
local on_attach = function(_, bufnr)
require("config.lsp.keybinds").init_keymap(bufnr)
local nmap = function(keys, func, desc)
if desc then
desc = 'LSP: ' .. desc
end
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
end
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
nmap('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
nmap('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
nmap("<leader>i", vim.diagnostic.open_float)
nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
-- See `:help K` for why this keymap
nmap('K', vim.lsp.buf.hover, 'Hover Documentation')
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
-- Lesser used LSP functionality
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
nmap('<leader>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, '[W]orkspace [L]ist Folders')
-- require("config.lsp.keybinds").init_keymap(bufnr)
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
vim.lsp.buf.format()
@ -15,6 +46,9 @@ local servers = {
clangd = require("config.lsp.clangd"),
pyright = require("config.lsp.pyright"),
lua_ls = require("config.lsp.lua_ls"),
gopls = require("config.lsp.gopls"),
rust_analyzer = require("config.lsp.rust_analyzer"),
cmake = require("config.lsp.cmake"),
}
local capabilities = vim.lsp.protocol.make_client_capabilities()

View file

@ -1,36 +1 @@
local M = {}
function M.init_keymap(bufnr)
local nmap = function(keys, func, desc)
if desc then
desc = 'LSP: ' .. desc
end
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
end
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
nmap('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
nmap('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
-- See `:help K` for why this keymap
nmap('K', vim.lsp.buf.hover, 'Hover Documentation')
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
-- Lesser used LSP functionality
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
nmap('<leader>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, '[W]orkspace [L]ist Folders')
end
return M
return {}

View file

@ -0,0 +1 @@
return {}

View file

@ -2,15 +2,15 @@ local map = vim.keymap.set
-- Unbind keys
map('n', '<C-q>', '<NOP>')
map('v', 'K', '<NOP>')
-- map('v', 'K', '<NOP>')
-- Movement between buffers
map({ 'n', 'v', 'i' }, '<A-u>', ':bp<CR>')
map({ 'n', 'v', 'i' }, '<A-i>', ':bn<CR>')
map({ 'n', 'v' }, '<A-u>', ':bp<CR>', { silent = true })
map({ 'n', 'v' }, '<A-i>', ':bn<CR>', { silent = true })
-- Remap for dealing with word wrap
map('n', 'k', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true })
map('n', 'j', 'v:count == 0 ? "gj" : "j"', { expr = true, silent = true })
map({ 'n', 'v' }, 'k', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true })
map({ 'n', 'v' }, 'j', 'v:count == 0 ? "gj" : "j"', { expr = true, silent = true })
-- Exit buffers/nvim with <leader>
map('n', '<leader>q', function() require('utils.close_buffer').close_buffer() end)
@ -18,6 +18,12 @@ map('n', '<leader>1', function() require('utils.close_buffer').close_buffer(true
map('n', '<leader>Q', ':%bd | quit<CR>')
map('n', '<leader>!', ':%bd! | quit!<CR>')
map('n', '<leader>w', ':write<CR>')
map('n', '<leader>W', function() vim.cmd.write(vim.fn.input("File: ")) end)
map('n', '<leader>e', ':e<CR>')
-- Duplicate leader feats to gradually move to
map('n', '<C-q>', function() require('utils.close_buffer').close_buffer() end)
map('n', '<C-1>', function() require('utils.close_buffer').close_buffer(true) end)
-- Copy and paste from clipboard
map('n', '<leader>y', '"+yy<ESC>')
@ -25,7 +31,16 @@ map('v', '<leader>y', '"+y<ESC>')
map({ 'n', 'v' }, '<leader>p', '"+p<ESC>')
map({ 'n', 'v' }, '<leader>P', '"+P<ESC>')
-- buffer size
map({ 'n', 'v' }, '<leader>n', '<C-w>10<')
map({ 'n', 'v' }, '<leader>m', '<C-w>10>')
map({ 'n', 'v' }, '<leader>N', '<C-w>6-')
map({ 'n', 'v' }, '<leader>M', '<C-w>6+')
-- Remap <M-BS> to remove last word
map('i', '<M-BS>', '<C-w>')
map('n', '<leader>F', function() vim.lsp.buf.format() end)
map('n', '<C-M-k>', ':m-2<CR>', { silent = true })
map('n', '<C-M-j>', ':m+1<CR>', { silent = true })

View file

@ -1,3 +1,4 @@
-- Highlight search results
vim.o.hlsearch = true
-- Enable line numbers
@ -7,8 +8,12 @@ vim.wo.relativenumber = true
-- Enable mouse mode
vim.o.mouse = 'a'
-- Enable break indent
-- Indentation
vim.o.breakindent = true
vim.o.tabstop = 4
vim.o.shiftwidth = 4
vim.o.expandtab = true
vim.o.smartindent = false
-- Save undo history
vim.o.undofile = true

View file

@ -2,7 +2,7 @@ require("cmake-tools").setup {
cmake_command = "cmake", -- this is used to specify cmake command path
cmake_regenerate_on_save = true, -- auto generate when save CMakeLists.txt
cmake_generate_options = { "-DCMAKE_EXPORT_COMPILE_COMMANDS=1" }, -- this will be passed when invoke `CMakeGenerate`
cmake_build_options = {}, -- this will be passed when invoke `CMakeBuild`
cmake_build_options = { "-j14" }, -- this will be passed when invoke `CMakeBuild`
-- support macro expansion:
-- ${kit}
-- ${kitGenerator}
@ -60,16 +60,15 @@ require("cmake-tools").setup {
},
},
cmake_notifications = {
enabled = false, -- show cmake execution progress in nvim-notify
enabled = true, -- show cmake execution progress in nvim-notify
spinner = { "", "", "", "", "", "", "", "", "", "" }, -- icons used for progress display
refresh_rate_ms = 100, -- how often to iterate icons
},
}
local map = vim.keymap.set
-- Mappings
map('n', '<leader>b', ':CMakeBuild<CR>')
map('n', '<leader>c', ':CMakeClose<CR>')
map('n', '<leader>r', ':CMakeRun<CR>')
vim.keymap.set('n', '<leader>b', ':CMakeBuild<CR>')
vim.keymap.set('n', '<leader>c', ':CMakeClose<CR>')
vim.keymap.set('n', '<leader>r', ':CMakeRun<CR>')
vim.keymap.set('n', '<leader>G', ':CMakeGenerate<CR>')

View file

@ -1,8 +1,8 @@
local map = vim.keymap.set
map('n', '<C-_>', require('Comment.api').toggle.linewise.current)
map('i', '<C-_>', require('Comment.api').toggle.linewise.current)
map('x', '<C-_>', function()
map({ 'n', 'i' }, '<C-_>', require('Comment.api').toggle.linewise.current)
map('v', '<C-_>', function()
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<ESC>', true, false, true), 'nx', false)
require('Comment.api').toggle.linewise(vim.fn.visualmode())
end

View file

@ -7,3 +7,4 @@ require('config.plugins.nvim-tree')
require('config.plugins.telescope')
require('config.plugins.treesitter')
require('config.plugins.navigator')
require('config.plugins.trouble')

View file

@ -1,4 +1,3 @@
require('nvim-autopairs').setup({
disable_filetype = { "TelescopePrompt" , "vim" },
enable_check_bracket_line = false,
})

View file

@ -1,6 +1,15 @@
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
require("nvim-tree").setup()
require("nvim-tree").setup({
update_focused_file = {
enable = true,
update_root = false,
ignore_list = { "help" },
},
filters = {
custom = { '.git' },
},
})
vim.keymap.set('n', '<C-b>', ':NvimTreeToggle<CR>')
vim.keymap.set('n', '<C-m>', ':NvimTreeToggle<CR>', { silent=true })

View file

@ -9,18 +9,15 @@ require('telescope').setup {
},
}
-- Enable telescope fzf native, if installed
pcall(require('telescope').load_extension, 'fzf')
-- See `:help telescope.builtin`
vim.keymap.set('n', '<leader>?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' })
-- vim.keymap.set('n', '<leader><space>', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' })
vim.keymap.set('n', '<leader>/', function()
-- You can pass additional configuration to telescope to change theme, layout, etc.
require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
winblend = 10,
previewer = false,
})
end, { desc = '[/] Fuzzily search in current buffer' })
vim.keymap.set('n', '<leader>gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' })
@ -30,3 +27,4 @@ vim.keymap.set('n', '<leader>sw', require('telescope.builtin').grep_string, { de
vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' })
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' })
vim.keymap.set('n', '<leader>sm', require('telescope.builtin').treesitter)

View file

@ -4,7 +4,7 @@ vim.defer_fn(function()
ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim', 'bash' },
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
auto_install = false,
auto_install = true,
highlight = { enable = true },
indent = { enable = true },
@ -51,15 +51,7 @@ vim.defer_fn(function()
['[]'] = '@class.outer',
},
},
swap = {
enable = true,
swap_next = {
['<leader>a'] = '@parameter.inner',
},
swap_previous = {
['<leader>A'] = '@parameter.inner',
},
},
swap = { enable = false, },
},
}
end, 0)

View file

@ -0,0 +1,6 @@
vim.keymap.set("n", "<leader>xx", function() require("trouble").toggle() end)
vim.keymap.set("n", "<leader>xw", function() require("trouble").toggle("workspace_diagnostics") end)
vim.keymap.set("n", "<leader>xd", function() require("trouble").toggle("document_diagnostics") end)
vim.keymap.set("n", "<leader>xq", function() require("trouble").toggle("quickfix") end)
vim.keymap.set("n", "<leader>xl", function() require("trouble").toggle("loclist") end)
vim.keymap.set("n", "gR", function() require("trouble").toggle("lsp_references") end)

View file

@ -1,8 +1,5 @@
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 = {},
}

View file

@ -1,17 +1,19 @@
return {
'Civitasv/cmake-tools.nvim',
'averms/black-nvim',
'numToStr/Navigator.nvim',
'nvim-lualine/lualine.nvim',
'nvim-tree/nvim-tree.lua',
'nvim-tree/nvim-web-devicons',
'rcarriga/nvim-notify',
'tmux-plugins/vim-tmux',
'tpope/vim-fugitive',
'tpope/vim-rhubarb',
'tpope/vim-sleuth',
'tpope/vim-surround',
'tmux-plugins/vim-tmux',
'nvim-lualine/lualine.nvim',
'nvim-tree/nvim-tree.lua',
'nvim-tree/nvim-web-devicons',
'Civitasv/cmake-tools.nvim',
'rcarriga/nvim-notify',
{ 'numToStr/Comment.nvim', opts = {} },
{ 'akinsho/bufferline.nvim', config = {} },
{ 'ethanholz/nvim-lastplace', config = {} },
{ 'wakatime/vim-wakatime', event = 'VeryLazy' },
{ 'numToStr/Comment.nvim', opts = {} },
-- { 'wakatime/vim-wakatime', event = 'VeryLazy' },
{ "folke/trouble.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, opts = { }, }
}

View file

@ -3,9 +3,6 @@ return {
branch = '0.1.x',
dependencies = {
'nvim-lua/plenary.nvim',
{
'nvim-telescope/telescope-fzf-native.nvim',
build = 'make',
},
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make', },
},
}

View file

@ -1,7 +1,3 @@
-- return {
-- 'aserowy/tmux.nvim',
-- event = "VeryLazy",
-- }
return {
"numToStr/Navigator.nvim",
}

2
.config/picom.conf Normal file
View file

@ -0,0 +1,2 @@
backend = "glx";
vsync = true;

View file

@ -0,0 +1,54 @@
# general
quit = q
undo = u
redo = r
search = /
help = ?
due = !
# navigation
previous = k
next = j
left = h
right = l
bottom = G
top = g
# new tasks
new = a
newAbove = O
newBelow = o
duplicate = +
# editing tasks
edit = e, A, i
clear = C
delete = D
detail = <Enter>
dueDate = @
clearDate = <Backspace>
# moving tasks
moveUp = K
moveDown = J
# move to top of previous list
moveLeftTop = ˙
# move to top of next list
moveRightTop = ¬
# move to bottom of previous list
moveLeftBottom = H
# move to bottom of next list
moveRightBottom = L
# move to bottom of last list
complete = <Space>
# move to top of last list
completeToTop = T
# select a list to move to
moveMenu = m
# lists
listNew = N
listEdit = E
listDelete = X
listRight = >
listLeft = <

View file

@ -0,0 +1,17 @@
[general]
filename = TASKS.md
[layout]
padding = 1
column_width = 30
column_padding = 3
description_indicator = "≡"
statusbar = false
[markdown]
title = "##"
task = "-"
summary = " >"
due = " @"
subtask = " *"
localTimes = false

View file

@ -0,0 +1,8 @@
## To Do
## Doing
## Done

25
.config/taskell/theme.ini Normal file
View file

@ -0,0 +1,25 @@
[other]
; list title
title.fg = green
; status bar
statusBar.bg = blue
statusBar.fg = black
; current list title
titleCurrent.fg = blue
; current task
taskCurrent.fg = magenta
; subtasks
; selected
subtaskCurrent.fg = magenta
; incomplete
subtaskIncomplete.fg = blue
; complete
subtaskComplete.fg = yellow
; disabled
disabled.fg = yellow

View file

@ -10,8 +10,8 @@ bind i next-window
bind n new-window -c "#{pane_current_path}"
bind k split-window -v
bind l split-window -h
bind k split-window -v -c "#{pane_current_path}"
bind l split-window -h -c "#{pane_current_path}"
# Rebind command key to ;
bind \; command-prompt

View file

@ -15,7 +15,9 @@ set -g @batt_icon_charge_tier1 '! !'
# Change date and time format
set -g @onedark_time_format "%I:%M %p"
set -g @onedark_date_format "%D"
set -g @onedark_widgets "#{battery_icon_charge} #{battery_percentage}%"
set -g @onedark_widgets "#{battery_icon_charge} #{battery_percentage}"
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.local/share/tmux-plugins'
# Run tmux-plugin-manager
run '~/.local/share/tmux-plugins/tpm/tpm'

View file

@ -2,8 +2,8 @@
setw -g mouse on
# Enable 256 color mode and TrueColor
set -s default-terminal "tmux-256color"
set -as terminal-overrides ",xterm*:Tc"
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
# Get rid of nvim escape delay
set -s escape-time 0

2104
.config/zsh/.zcompdump Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,4 @@
# if [ -z "$SSH_AUTH_SOCK" ]; then
# eval "$(ssh-agent -s)"
# fi
systemctl --user import-environment XDG_CURRENT_DESKTOP

View file

@ -1,12 +1,8 @@
# unused for now
set -a
export PATH="${$(find ~/.local/bin -type d -printf %p:)%%:}:$PATH"
# default apps
export EDITOR="/usr/bin/nvim"
export GPG_TTY=$(tty)
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export MANROFFOPT="-c"
#
# lc vars
export LANG="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
@ -21,3 +17,18 @@ export LC_TELEPHONE="en_US.UTF-8"
export LC_MEASUREMENT="en_US.UTF-8"
export LC_IDENTIFICATION="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
# default apps
export EDITOR="/usr/bin/nvim"
export GPG_TTY="$(tty)"
export MANPAGER="sh -c 'col -bx | batcat -l man -p'"
export MANROFFOPT="-c"
export MTR_OPTIONS="-t"
export XDG_CURRENT_DESKTOP="gtk"
export XDG_SESSION_DESKTOP="$XDG_CURRENT_DESKTOP"
export WINDOW_MANAGER="dwm"
export SUDO_ASKPASS="${HOME}/.local/bin/scripts/dmenu_askpass"
set +a

View file

@ -1,3 +1,5 @@
[[ $- != *i* ]] && return
# ls colors
eval "$(dircolors -b)"
@ -5,6 +7,7 @@ eval "$(dircolors -b)"
HISTSIZE=10000000
SAVEHIST=10000000
HISTFILE="${HOME}/.cache/zsh_history"
setopt hist_expire_dups_first
setopt hist_ignore_dups
setopt hist_ignore_all_dups
@ -29,18 +32,12 @@ bindkey "^[[1;3D" backward-word
bindkey "^[[1;5D" backward-word
bindkey "^[^H" backward-word
bindkey "^[^L" forward-word
bindkey "^[h" backward-char
bindkey "^[f" forward-char
bindkey "^[n" backward-word
bindkey "^[m" forward-word
# completions
autoload -Uz compinit
if [[ -n ${ZDOTDIR}/.zcompdump(#qN.mh+24) ]]; then
compinit;
else
compinit -C;
fi;
compinit
zstyle ':completion:*' menu select
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
@ -58,17 +55,43 @@ alias ll="ls -lh"
alias tree="ls --tree"
# set bat as help pager
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain'
alias -g -- --help='--help 2>&1 | bat --language=help --style=plain'
alias -g -- --help='--help 2>&1 | batcat --language=help --style=plain'
# useful cd aliases
alias ..="cd .."
alias ...="cd ../.."
alias ..="cd ../"
alias ...="cd ../../"
alias ....="cd ../../../"
alias .....="cd ../../../../"
alias ......="cd ../../../../../"
alias .......="cd ../../../../../../"
# aliases
alias dt="git --git-dir=$HOME/.dotfiles/git --work-tree=$HOME"
alias rz="exec zsh"
alias reload_completion="autoload -Uz compinit && compinit"
alias gitignore="cp ${HOME}/.local/share/gitignore-template ./.gitignore"
alias venv="source _venv"
alias cdb="compiledb "
alias info="pinfo "
alias bat="batcat "
alias img="nsxiv "
alias xclip="xclip -selection clipboard"
alias d="diff --color -u "
# function aliases
bl () { brightnessctl set $1% &> /dev/null }
clines() { find $@ \( -name '*.cpp' -o -name '*.[ch]' \) -a ! -path '*cmake-build*' | xargs wc -l }
nosw() { alacritty --class 'noswallow' -e "$@" }; compdef _command nosw
t() { if [ -z "$1" ]; then taskell ~/.taskell.md; else taskell "$1"; fi }
# git aliases
alias gitignore="cp ${HOME}/.local/share/gitignore-template ./.gitignore"
alias gs="git status"
alias gc="git commit"
alias gp="git push"
alias gl="git log"
alias ga="git add"
alias gck="git checkout"
alias gb="git branch"
alias gd="git diff"
alias gr="git restore"
# disable xon controll chars
stty -ixon