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

3
.Xresources Normal file
View file

@ -0,0 +1,3 @@
Xft.dpi: 96
Xcursor.size: 24
Xcursor.theme: Breeze

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: window:
dynamic_padding: true
dimensions: dimensions:
columns: 140 columns: 140
lines: 45 lines: 45
@ -6,72 +58,3 @@ window:
x: 2 x: 2
y: 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" }, "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"LuaSnip": { "branch": "master", "commit": "f03089854a8e15594a01562fa7192d0009a6fbe7" }, "LuaSnip": { "branch": "master", "commit": "878ace11983444d865a72e1759dbcc331d1ace4c" },
"Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" }, "Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
"bufferline.nvim": { "branch": "main", "commit": "1a3397556d194bb1f2cc530b07124ccc512c5501" }, "black-nvim": { "branch": "master", "commit": "8fb3efc562b67269e6f31f8653297f826534fa4b" },
"cmake-tools.nvim": { "branch": "master", "commit": "edbf419e00b21e83d45f4a17edffb2035d7a0ce6" }, "bufferline.nvim": { "branch": "main", "commit": "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, "cmake-tools.nvim": { "branch": "master", "commit": "13ac73e88af371552379cbdbd57fee3550ade691" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"fidget.nvim": { "branch": "main", "commit": "785efc604f6ffe3c3fdd2ea86262804d48863ee1" }, "fidget.nvim": { "branch": "main", "commit": "ef99df04a1c53a453602421bc0f756997edc8289" },
"friendly-snippets": { "branch": "main", "commit": "53d3df271d031c405255e99410628c26a8f0d2b0" }, "friendly-snippets": { "branch": "main", "commit": "d0610077b6129cf9f7f78afbe3a1425d60f6e2f1" },
"indent-blankline.nvim": { "branch": "master", "commit": "dbd90bb689ff10d21fee6792eb8928f0584b5860" }, "indent-blankline.nvim": { "branch": "master", "commit": "d98f537c3492e87b6dc6c2e3f66ac517528f406f" },
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, "lazy.nvim": { "branch": "main", "commit": "24fa2a97085ca8a7220b5b078916f81e316036fd" },
"lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "4eb8e15e3c0757303d4c6dea64d2981fc679e990" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" },
"mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" }, "mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" },
"neodev.nvim": { "branch": "main", "commit": "1676d2c24186fc30005317e0306d20c639b2351b" }, "neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" },
"nvim-autopairs": { "branch": "master", "commit": "0f04d78619cce9a5af4f355968040f7d675854a1" }, "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" },
"nvim-cmp": { "branch": "main", "commit": "0b751f6beef40fd47375eaf53d3057e0bfa317e4" }, "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" },
"nvim-lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" }, "nvim-lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" },
"nvim-lspconfig": { "branch": "master", "commit": "694aaec65733e2d54d393abf80e526f86726c988" }, "nvim-lspconfig": { "branch": "master", "commit": "7cb90cf656139dc59cf86206946ec85571671b5b" },
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
"nvim-tree.lua": { "branch": "master", "commit": "05f55c1fd6470b31627655c528245794e3cd4b2c" }, "nvim-tree.lua": { "branch": "master", "commit": "5a87ffe35c4739ffb6b62052572583ad277a20ae" },
"nvim-treesitter": { "branch": "master", "commit": "0791b5ebb590a2d44e20640c52679df1fc42e8ab" }, "nvim-treesitter": { "branch": "master", "commit": "5c924407cf110e9da4f3ba02ffed127b4198ad89" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ec1c5bdb3d87ac971749fa6c7dbc2b14884f1f6a" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "3557e41418b4a6c5b85d5d64abe94c9c50fa9b14" },
"nvim-web-devicons": { "branch": "master", "commit": "5efb8bd06841f91f97c90e16de85e96d57e9c862" }, "nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" },
"onedark.nvim": { "branch": "master", "commit": "e7c656ac6b6460aaab817cbd0c9d5c043eda4b43" }, "onedark.nvim": { "branch": "master", "commit": "8e4b79b0e6495ddf29552178eceba1e147e6cecf" },
"plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
"telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" }, "trouble.nvim": { "branch": "main", "commit": "cf81aaca820017388fc630c534774c95b58233f2" },
"vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" },
"vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" }, "vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" },
"vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" }, "vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" }, "vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vim-tmux": { "branch": "master", "commit": "cfe76281efc29890548cf9eedd42ad51c7a1faf0" }, "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 -- Open NvimTree on startup
local function open_nvim_tree(data) vim.api.nvim_create_autocmd({ "VimEnter" }, {
local real_file = vim.fn.filereadable(data.file) == 1 callback = function(data)
local no_name = data.file == "" and vim.bo[data.buf].buftype == "" local real_file = vim.fn.filereadable(data.file) == 1
local directory = vim.fn.isdirectory(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 if real_file or no_name then
require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, }) require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, })
elseif directory then elseif directory then
vim.cmd.enew() vim.cmd.enew()
vim.cmd.cd(data.file) vim.cmd.cd(data.file)
require("nvim-tree.api").tree.open() require("nvim-tree.api").tree.open()
end
end end
end })
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
-- Resotre cursor on exit -- Resotre cursor on exit
-- vim.api.nvim_create_autocmd("VimLeave", { -- 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 mason_lspconfig = require('mason-lspconfig')
local on_attach = function(_, bufnr) 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.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
vim.lsp.buf.format() vim.lsp.buf.format()
@ -15,6 +46,9 @@ local servers = {
clangd = require("config.lsp.clangd"), clangd = require("config.lsp.clangd"),
pyright = require("config.lsp.pyright"), pyright = require("config.lsp.pyright"),
lua_ls = require("config.lsp.lua_ls"), 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() local capabilities = vim.lsp.protocol.make_client_capabilities()

View file

@ -1,36 +1 @@
local M = {} return {}
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

View file

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

View file

@ -2,15 +2,15 @@ local map = vim.keymap.set
-- Unbind keys -- Unbind keys
map('n', '<C-q>', '<NOP>') map('n', '<C-q>', '<NOP>')
map('v', 'K', '<NOP>') -- map('v', 'K', '<NOP>')
-- Movement between buffers -- Movement between buffers
map({ 'n', 'v', 'i' }, '<A-u>', ':bp<CR>') map({ 'n', 'v' }, '<A-u>', ':bp<CR>', { silent = true })
map({ 'n', 'v', 'i' }, '<A-i>', ':bn<CR>') map({ 'n', 'v' }, '<A-i>', ':bn<CR>', { silent = true })
-- Remap for dealing with word wrap -- Remap for dealing with word wrap
map('n', 'k', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true }) map({ 'n', 'v' }, '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' }, 'j', 'v:count == 0 ? "gj" : "j"', { expr = true, silent = true })
-- Exit buffers/nvim with <leader> -- Exit buffers/nvim with <leader>
map('n', '<leader>q', function() require('utils.close_buffer').close_buffer() end) 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>Q', ':%bd | quit<CR>')
map('n', '<leader>!', ':%bd! | quit!<CR>') map('n', '<leader>!', ':%bd! | quit!<CR>')
map('n', '<leader>w', ':write<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 -- Copy and paste from clipboard
map('n', '<leader>y', '"+yy<ESC>') 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>')
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 -- Remap <M-BS> to remove last word
map('i', '<M-BS>', '<C-w>') map('i', '<M-BS>', '<C-w>')
map('n', '<leader>F', function() vim.lsp.buf.format() end) 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 vim.o.hlsearch = true
-- Enable line numbers -- Enable line numbers
@ -7,8 +8,12 @@ vim.wo.relativenumber = true
-- Enable mouse mode -- Enable mouse mode
vim.o.mouse = 'a' vim.o.mouse = 'a'
-- Enable break indent -- Indentation
vim.o.breakindent = true vim.o.breakindent = true
vim.o.tabstop = 4
vim.o.shiftwidth = 4
vim.o.expandtab = true
vim.o.smartindent = false
-- Save undo history -- Save undo history
vim.o.undofile = true 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_command = "cmake", -- this is used to specify cmake command path
cmake_regenerate_on_save = true, -- auto generate when save CMakeLists.txt 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_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: -- support macro expansion:
-- ${kit} -- ${kit}
-- ${kitGenerator} -- ${kitGenerator}
@ -60,16 +60,15 @@ require("cmake-tools").setup {
}, },
}, },
cmake_notifications = { 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 spinner = { "", "", "", "", "", "", "", "", "", "" }, -- icons used for progress display
refresh_rate_ms = 100, -- how often to iterate icons refresh_rate_ms = 100, -- how often to iterate icons
}, },
} }
local map = vim.keymap.set
-- Mappings -- Mappings
map('n', '<leader>b', ':CMakeBuild<CR>') vim.keymap.set('n', '<leader>b', ':CMakeBuild<CR>')
map('n', '<leader>c', ':CMakeClose<CR>') vim.keymap.set('n', '<leader>c', ':CMakeClose<CR>')
map('n', '<leader>r', ':CMakeRun<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 local map = vim.keymap.set
map('n', '<C-_>', require('Comment.api').toggle.linewise.current) map({ 'n', 'i' }, '<C-_>', require('Comment.api').toggle.linewise.current)
map('i', '<C-_>', require('Comment.api').toggle.linewise.current)
map('x', '<C-_>', function() map('v', '<C-_>', function()
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<ESC>', true, false, true), 'nx', false) vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<ESC>', true, false, true), 'nx', false)
require('Comment.api').toggle.linewise(vim.fn.visualmode()) require('Comment.api').toggle.linewise(vim.fn.visualmode())
end end

View file

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

View file

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

View file

@ -1,6 +1,15 @@
vim.g.loaded_netrw = 1 vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 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') 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>?', 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() 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 { require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
winblend = 10, winblend = 10,
previewer = false, previewer = false,
}) })
end, { desc = '[/] Fuzzily search in current buffer' }) end, { desc = '[/] Fuzzily search in current buffer' })
vim.keymap.set('n', '<leader>gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) 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>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>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>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' }, 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!) -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
auto_install = false, auto_install = true,
highlight = { enable = true }, highlight = { enable = true },
indent = { enable = true }, indent = { enable = true },
@ -51,15 +51,7 @@ vim.defer_fn(function()
['[]'] = '@class.outer', ['[]'] = '@class.outer',
}, },
}, },
swap = { swap = { enable = false, },
enable = true,
swap_next = {
['<leader>a'] = '@parameter.inner',
},
swap_previous = {
['<leader>A'] = '@parameter.inner',
},
},
}, },
} }
end, 0) 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 { return {
-- Add indentation guides even on blank lines
'lukas-reineke/indent-blankline.nvim', 'lukas-reineke/indent-blankline.nvim',
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help ibl`
main = 'ibl', main = 'ibl',
opts = {}, opts = {},
} }

View file

@ -1,17 +1,19 @@
return { return {
'Civitasv/cmake-tools.nvim',
'averms/black-nvim',
'numToStr/Navigator.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-fugitive',
'tpope/vim-rhubarb', 'tpope/vim-rhubarb',
'tpope/vim-sleuth', 'tpope/vim-sleuth',
'tpope/vim-surround', '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 = {} }, { 'akinsho/bufferline.nvim', config = {} },
{ 'ethanholz/nvim-lastplace', 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', branch = '0.1.x',
dependencies = { dependencies = {
'nvim-lua/plenary.nvim', '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 { return {
"numToStr/Navigator.nvim", "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 n new-window -c "#{pane_current_path}"
bind k split-window -v bind k split-window -v -c "#{pane_current_path}"
bind l split-window -h bind l split-window -h -c "#{pane_current_path}"
# Rebind command key to ; # Rebind command key to ;
bind \; command-prompt bind \; command-prompt

View file

@ -15,7 +15,9 @@ set -g @batt_icon_charge_tier1 '! !'
# Change date and time format # Change date and time format
set -g @onedark_time_format "%I:%M %p" set -g @onedark_time_format "%I:%M %p"
set -g @onedark_date_format "%D" 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 tmux-plugin-manager
run '~/.local/share/tmux-plugins/tpm/tpm' run '~/.local/share/tmux-plugins/tpm/tpm'

View file

@ -2,8 +2,8 @@
setw -g mouse on setw -g mouse on
# Enable 256 color mode and TrueColor # Enable 256 color mode and TrueColor
set -s default-terminal "tmux-256color" set -g default-terminal "tmux-256color"
set -as terminal-overrides ",xterm*:Tc" set -ag terminal-overrides ",xterm-256color:RGB"
# Get rid of nvim escape delay # Get rid of nvim escape delay
set -s escape-time 0 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 # if [ -z "$SSH_AUTH_SOCK" ]; then
# eval "$(ssh-agent -s)" # eval "$(ssh-agent -s)"
# fi # 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" export PATH="${$(find ~/.local/bin -type d -printf %p:)%%:}:$PATH"
#
# default apps # lc vars
export EDITOR="/usr/bin/nvim"
export GPG_TTY=$(tty)
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export MANROFFOPT="-c"
export LANG="en_US.UTF-8" export LANG="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8"
export LC_NUMERIC="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_MEASUREMENT="en_US.UTF-8"
export LC_IDENTIFICATION="en_US.UTF-8" export LC_IDENTIFICATION="en_US.UTF-8"
export LC_ALL="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 # ls colors
eval "$(dircolors -b)" eval "$(dircolors -b)"
@ -5,6 +7,7 @@ eval "$(dircolors -b)"
HISTSIZE=10000000 HISTSIZE=10000000
SAVEHIST=10000000 SAVEHIST=10000000
HISTFILE="${HOME}/.cache/zsh_history" HISTFILE="${HOME}/.cache/zsh_history"
setopt hist_expire_dups_first setopt hist_expire_dups_first
setopt hist_ignore_dups setopt hist_ignore_dups
setopt hist_ignore_all_dups setopt hist_ignore_all_dups
@ -29,18 +32,12 @@ bindkey "^[[1;3D" backward-word
bindkey "^[[1;5D" backward-word bindkey "^[[1;5D" backward-word
bindkey "^[^H" backward-word bindkey "^[n" backward-word
bindkey "^[^L" forward-word bindkey "^[m" forward-word
bindkey "^[h" backward-char
bindkey "^[f" forward-char
# completions # completions
autoload -Uz compinit autoload -Uz compinit
if [[ -n ${ZDOTDIR}/.zcompdump(#qN.mh+24) ]]; then compinit
compinit;
else
compinit -C;
fi;
zstyle ':completion:*' menu select zstyle ':completion:*' menu select
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
@ -58,17 +55,43 @@ alias ll="ls -lh"
alias tree="ls --tree" alias tree="ls --tree"
# set bat as help pager # set bat as help pager
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain' alias -g -- --help='--help 2>&1 | batcat --language=help --style=plain'
alias -g -- --help='--help 2>&1 | bat --language=help --style=plain'
# useful cd aliases # useful cd aliases
alias ..="cd .." alias ..="cd ../"
alias ...="cd ../.." alias ...="cd ../../"
alias ....="cd ../../../" alias ....="cd ../../../"
alias .....="cd ../../../../"
alias ......="cd ../../../../../"
alias .......="cd ../../../../../../"
# aliases # aliases
alias dt="git --git-dir=$HOME/.dotfiles/git --work-tree=$HOME"
alias rz="exec zsh" 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 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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

3
.gitignore vendored
View file

@ -1,3 +0,0 @@
# lazy.nvim lockfile
.config/tmux/plugins/
.zcompdump

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule ".local/share/tmux-plugins/tpm"]
path = .local/share/tmux-plugins/tpm
url = https://github.com/tmux-plugins/tpm

19
.gtkrc-2.0 Normal file
View file

@ -0,0 +1,19 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
# include "~/.gtkrc-2.0.mine"
gtk-theme-name="Yaru-dark"
gtk-icon-theme-name="Yaru-dark"
gtk-font-name="Sans 10"
gtk-cursor-theme-name="Breeze"
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"

View file

@ -1,8 +0,0 @@
#!/bin/bash
read -p "Date: " date
export GIT_AUTHOR_DATE="${date}"
export GIT_COMMITTER_DATE="${date}"
git $@

72
.local/scripts/_venv Normal file
View file

@ -0,0 +1,72 @@
VENV_FOLDER=".venv"
OPERATION=c
deactivate_() {
if [ ! -z "${VIRTUAL_ENV}" ]; then
deactivate
fi
}
create_or_activate() {
if [ -z "${VIRTUAL_ENV}" ]; then
if [ -d "${VENV_FOLDER}" ]; then
source ./${VENV_FOLDER}/bin/activate
else
python3 -m venv "${VENV_FOLDER}"
source ./${VENV_FOLDER}/bin/activate
fi
else
deactivate
fi
}
remove() {
deactivate_
if [ -d "${VENV_FOLDER}" ]; then
rm -r "${VENV_FOLDER}"
fi
}
while [ "$#" -gt 0 ]; do
case "$1" in
'-c'|"--create")
OPERATION=c
;;
'-r'|"--remove")
OPERATION=r
;;
'-d'|"--deactivate")
deactivate_
return
;;
'-h'|"--help")
echo "venv [OPTION] [VENV_FOLDER]"
echo
echo "ARGUMENTS:"
echo "\t VENV_FOLDER \t\t Folder containing virtual environment"
echo
echo "OPTIONS:"
echo "\t -c, --create \t\t Create virtual environment"
echo "\t -d, --deactivate \t Exit virtual environment"
echo "\t -r, --remove \t\t Deactivate and remove virtual environment"
echo "\t -h, --help \t\t Print this message"
return
;;
*)
VENV_FOLDER="$1"
;;
esac
shift
done
case "${OPERATION}" in
c) create_or_activate;;
r) remove;;
esac
# vim: set ft=sh

45
.local/scripts/cast Executable file
View file

@ -0,0 +1,45 @@
#!/bin/bash
PIDFILE="${XDG_RUNTIME_DIR}/mkchromecast.pid"
WIDTH=1440
HEIGHT=1080
ASPECT_OFFSET=240
OUTPUT_NAME='DVI-I-1-1'
command() {
echo "ffmpeg -ac 2 -ar 44100 -frame_size 2048 -fragment_size 2048 -f pulse -ac 2 -i Mkchromecast.monitor -f x11grab -r 30 -s ${WIDTH}x${HEIGHT} -i :0.0+$1,0 -vcodec libx264 -preset veryfast -tune zerolatency -maxrate 10000k -bufsize 20000k -pix_fmt yuv420p -g 60 -f mp4 -vf scale=1280:720 -movflags frag_keyframe+empty_moov -ar 44100 -acodec libvorbis pipe:1"
}
set -x
cleanup() {
xrandr --output DVI-I-1-1 --off
pid="$(cat ${PIDFILE})"
rm "${PIDFILE}"
pkill -35 dwmblocks
kill -INT "${pid}"
}
run() {
xrandr --setprovideroutputsource 1 0
xrandr --addmode DVI-I-1-1 1920x1080
xrandr --output ${OUTPUT_NAME} --mode 1920x1080 --rate 60 --right-of eDP-1
echo $$ > "${PIDFILE}"
pkill -35 dwmblocks
offset=$(( "$(xrandr | grep DVI | cut -d ' ' -f 3 | cut -d '+' -f 2)" + ${ASPECT_OFFSET} ))
systemd-inhibit --what=handle-lid-switch sleep 2592000 &
exec mkchromecast --video --command "$(command ${offset})"
}
if [ "$1" = "-k" ]; then
cleanup
exit 0
fi
if [ -f "${PIDFILE}" ]; then
cleanup || run
else
run
fi

3
.local/scripts/dmenu_askpass Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash
echo $(dmenu -p "$1" -nf '#3a3a3a' <&-)

34
.local/scripts/dual_monitor Executable file
View file

@ -0,0 +1,34 @@
#!/bin/bash
MODELINE=$(cvt 4120 1440 144 | tail -1 | cut -d " " -f 2- | tr -d '"')
RES="$(echo $MODELINE | cut -d ' ' -f 1 | tr -d '\"')"
OUTPUT="DVI-I-1-1"
create() {
xrandr --newmode $(echo $MODELINE)
xrandr --addmode ${OUTPUT} "${RES}"
xrandr --output ${OUTPUT} --mode "${RES}"
}
remove() {
xrandr --output ${OUTPUT} --off
xrandr --delmode ${OUTPUT} "${RES}"
xrandr --rmmode "${RES}"
}
create_or_remove() {
if [ ! -z "$(xrandr | grep ${RES} | grep '*')" ]; then
remove
else
create
fi
}
case "$1" in
'-c'|'--create') create
;;
'-d'|'--delete') remove
;;
*) create_or_remove
;;
esac

14
.local/scripts/gdt Executable file
View file

@ -0,0 +1,14 @@
#!/bin/bash
if [ ! -d .git ]; then
echo "missing .git dir!"
exit 1
fi
echo "Last commit: $(git log | grep 'Date' | cut -d ' ' -f 4- | head -1)"
read -p "Date: " date
export GIT_AUTHOR_DATE="${date}"
export GIT_COMMITTER_DATE="${date}"
git "$@"

44
.local/scripts/vpn Executable file
View file

@ -0,0 +1,44 @@
#!/bin/bash
IFNAME="wg_swe"
while [ "$#" -gt 0 ]; do
case "$1" in
'd'|'-d'|'--dpi') DPI="_d"
;;
'm'|'msk') IFNAME='wg_msk'
;;
'-v'|'--verbose') VERBOSE=1
;;
'--visual') USE_TERMINAL=1
;;
*) echo "Wrong argument!"; exit 1
;;
esac
shift
done
if [ -z "${VERBOSE}" ]; then
exec &>/dev/null
else
set -x
fi
UP_NAME="$(ip link show | grep 'wg' | cut -d ' ' -f 2 | sed 's/://')"
sudo_a() {
dmenu -p "$1" <&-
}
if [ ! -z "${USE_TERMINAL}" ]; then
LAUNCH_CMD=(sudo -A -p "Password:")
fi
if [ -z "${UP_NAME}" ]; then
IFNAME="${IFNAME}${DPI}"
${LAUNCH_CMD[@]} wg-quick up ${IFNAME}
else
${LAUNCH_CMD[@]} wg-quick down ${UP_NAME}
fi
pkill -36 dwmblocks

39
.local/scripts/xr Executable file
View file

@ -0,0 +1,39 @@
#!/bin/bash
# supress stderr
exec 2> /dev/null
change_dpi() {
sed -i -E "s/Xft\.dpi: .*?/Xft\.dpi: $1/g" ~/.Xresources
sed -i -E "s/Xcursor\.size: .*?/Xcursor\.size: $2/g" ~/.Xresources
sed -i -E "s/gtk-cursor-theme-size=.*?/gtk-cursor-theme-size=$2/g" ~/.config/gtk-3.0/settings.ini
sed -i -E "s/gtk-cursor-theme-size=.*?/gtk-cursor-theme-size=$2/g" ~/.gtkrc-2.0
echo "Xft/DPI $(expr $1 \* 1024)" > ~/.xsettingsd
echo "Gtk/CursorThemeSize $2" >> ~/.xsettingsd
xrdb -merge ~/.Xresources
killall -HUP dwm
killall -HUP xsettingsd
}
EXT_MON="$(xrandr | grep -ow "\(DP-[0-9]\) connected" | cut -d " " -f 1)"
INT_MODELINE=$(cvt 1560 1040 90 | grep "Modeline" | cut -d " " -f 2- | tr -d '"')
INT_RES="$(echo $INT_MODELINE | cut -d ' ' -f 1 | tr -d '\"')"
if [[ -z "${EXT_MON}" ]]; then
xrandr --delmode eDP-1 "${INT_RES}"
xrandr --rmmode "${INT_RES}"
xrandr --output eDP-1 --pos 0x0 --mode "3120x2080" --rate 90 --primary --output DP-1 --off --output DP-2 --off --output DP-3 --off --output DP-4 --off
change_dpi 192 48
else
xrandr --rmmode "${INT_RES}"
xrandr --newmode $(echo $INT_MODELINE)
xrandr --addmode eDP-1 "${INT_RES}"
xrandr --output eDP-1 --pos 2560x400 --mode "${INT_RES}" --output ${EXT_MON} --pos 0x0 --mode "2560x1440" --rate 144 --primary
change_dpi 96 24
fi
${HOME}/.config/X11/autostart

View file

@ -1,139 +0,0 @@
### Languages
# C++
*.d
*.slo
*.lo
*.o
*.obj
*.gch
*.pch
*.so
*.dylib
*.dll
*.mod
*.smod
*.lai
*.la
*.a
*.lib
*.exe
*.out
*.app
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
*.manifest
*.spec
pip-log.txt
pip-delete-this-directory.txt
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
*.mo
*.pot
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
instance/
.webassets-cache
.scrapy
docs/_build/
.pybuilder/
target/
.ipynb_checkpoints
profile_default/
ipython_config.py
.pdm.toml
__pypackages__/
celerybeat-schedule
celerybeat.pid
*.sage.py
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
.spyderproject
.spyproject
.ropeproject
/site
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/
cython_debug/
poetry.toml
.ruff_cache/
pyrightconfig.json
### IDE
# JetBrains
.idea
*.iws
.idea_modules/
atlassian-ide-plugin.xml
.idea/replstate.xml
.idea/sonarlint/
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
.idea/httpRequests
.idea/caches/build_file_checksums.ser
# VSCode
.vscode/*
.history/
*.vsix
.ionide
# CMake
cmake-build-*/
.cache/
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
*-prefix/

@ -1 +0,0 @@
Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

18
.local/statusbar/sb-battery Executable file
View file

@ -0,0 +1,18 @@
#!/bin/bash
for battery in /sys/class/power_supply/BAT?*; do
[ -n "${capacity+x}" ] && printf " "
case "$(cat "$battery/status" 2>&1)" in
"Full") status="⚡ " ;;
"Discharging") status="🔋" ;;
"Charging") status="🔌" ;;
"Not charging") status="🛑" ;;
"Unknown") status="♻️" ;;
*) exit 1 ;;
esac
capacity="$(cat "$battery/capacity" 2>&1)"
# Will make a warn variable if discharging and low
[ "$status" = "🔋" ] && [ "$capacity" -le 25 ] && warn="❗"
# Prints the info
printf "%s%s%d%%" "$status" "$warn" "$capacity"; unset warn
done && printf "\\n"

7
.local/statusbar/sb-cast Executable file
View file

@ -0,0 +1,7 @@
#!/bin/bash
PIDFILE="${XDG_RUNTIME_DIR}/mkchromecast.pid"
if [ -f "${PIDFILE}" ]; then
printf "🔴 Casting"
fi

7
.local/statusbar/sb-vpn Executable file
View file

@ -0,0 +1,7 @@
#!/bin/bash
IFNAME="$(ip link show | grep 'wg_' | cut -d ' ' -f 2 | sed 's/://' | sed 's/wg_//' | tr '[:lower:]' '[:upper:]' | sed 's/_D/ (dpi)/')"
if [ ! -z "${IFNAME}" ]; then
echo "🛡️ ${IFNAME}"
fi

6
.xinitrc Normal file
View file

@ -0,0 +1,6 @@
. ${HOME}/.config/X11/xprofile
xr
# . ${HOME}/.config/X11/autostart
exec dbus-run-session ssh-agent ${HOME}/.local/src/dwm/dwm
# ssh-agent /usr/bin/dwm

2
.xsettingsd Normal file
View file

@ -0,0 +1,2 @@
Xft/DPI 98304
Gtk/CursorThemeSize 24

View file

@ -1,3 +1,2 @@
export ZDOTDIR="${HOME}/.config/zsh" export ZDOTDIR="${HOME}/.config/zsh"
source "${ZDOTDIR}/.zshenv" source "${ZDOTDIR}/.zshenv"