aboutsummaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/dunst/dunstrc229
-rw-r--r--.config/hypr/hyprland.conf137
-rw-r--r--.config/mimeapps.list8
-rw-r--r--.config/nvim/init.lua4
-rw-r--r--.config/nvim/lua/keymap.lua37
-rw-r--r--.config/nvim/lua/plug.lua66
-rw-r--r--.config/nvim/lua/settings.lua10
-rw-r--r--.config/qutebrowser/autoconfig.yml142
-rw-r--r--.config/waybar/config65
-rw-r--r--.config/waybar/style.css16
-rw-r--r--.config/zsh/.zshrc2
-rw-r--r--.config/zsh/knight4
12 files changed, 361 insertions, 359 deletions
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
index 3411ddd..e2fcdf9 100644
--- a/.config/dunst/dunstrc
+++ b/.config/dunst/dunstrc
@@ -1,3 +1,5 @@
+# See dunst(5) for all configuration options
+
[global]
### Display ###
@@ -15,43 +17,69 @@
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
- follow = mouse
+ follow = none
- # The geometry of the window:
- # [{width}]x{height}[+/-{x}+/-{y}]
- # The geometry of the message window.
- # The height is measured in number of notifications everything else
- # in pixels. If the width is omitted but the height is given
- # ("-geometry x2"), the message window expands over the whole screen
- # (dmenu-like). If width is 0, the window expands to the longest
- # message displayed. A positive x is measured from the left, a
- # negative from the right side of the screen. Y is measured from
- # the top and down respectively.
- # The width can be negative. In this case the actual width is the
- # screen width minus the width defined in within the geometry option.
- geometry = "300x5-15+42"
+ ### Geometry ###
- # Show how many messages are currently hidden (because of geometry).
- indicate_hidden = yes
+ # dynamic width from 0 to 300
+ # width = (0, 300)
+ # constant width of 300
+ width = 300
+
+ # The maximum height of a single notification, excluding the frame.
+ height = 300
+
+ # Position the notification in the top right corner
+ origin = top-right
+
+ # Offset from the origin
+ offset = 20x20
+
+ # Scale factor. It is auto-detected if value is 0.
+ scale = 0
+
+ # Maximum number of notification (0 means no limit)
+ notification_limit = 20
+
+ ### Progress bar ###
+
+ # Turn on the progess bar. It appears when a progress hint is passed with
+ # for example dunstify -h int:value:12
+ progress_bar = true
- # Shrink window if it's smaller than the width. Will be ignored if
- # width is 0.
- shrink = no
+ # 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 = 0
+
+ # 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
+
+ # Corner radius for the progress bar. 0 disables rounded corners.
+ progress_bar_corner_radius = 5
+
+ # Corner radius for the icon image.
+ icon_corner_radius = 0
+
+ # Show how many messages are currently hidden (because of
+ # notification_limit).
+ indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
- # present (e.g. xcompmgr, compiz, etc.).
- transparency = 0
-
- # The height of the entire notification. If the height is smaller
- # than the font height and padding combined, it will be raised
- # to the font height and padding.
- notification_height = 0
+ # present (e.g. xcompmgr, compiz, etc.). (X11 only)
+ transparency = 50
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
- separator_height = 1
+ # If gap_size is greater than 0, this setting will be ignored.
+ separator_height = 2
# Padding between text and separator.
padding = 8
@@ -59,12 +87,21 @@
# Horizontal padding.
horizontal_padding = 8
+ # Padding between text and icon.
+ text_icon_padding = 0
+
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
- frame_color = "#b1628688"
+ frame_color = "#b16286"
+
+ # Size of gap to display between notifications - requires a compositor.
+ # If value is greater than 0, separator_height will be ignored and a border
+ # of size frame_width will be drawn around each notification instead.
+ # Click events on gaps do not currently propagate to applications below.
+ gap_size = 10
# Define a color for the separator.
# possible values are:
@@ -82,7 +119,7 @@
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
- idle_threshold = 120
+ # idle_threshold = 120
### Text ###
@@ -100,7 +137,7 @@
# <u>underline</u>
#
# For a complete reference see
- # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
+ # <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
@@ -132,16 +169,16 @@
# 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
- # Split notifications into multiple lines if they don't fit into
- # geometry.
- word_wrap = yes
-
- # When word_wrap is set to no, specify where to make an ellipsis in long lines.
+ # Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
@@ -159,13 +196,27 @@
### Icons ###
- # Align icons left/right/off
- icon_position = off
+ # Recursive icon lookup. You can set a single theme, instead of having to
+ # define all lookup paths.
+ enable_recursive_icon_lookup = true
+
+ # Set icon theme (only used for recursive icon lookup)
+ icon_theme = Adwaita
+ # You can also set multiple icon themes, with the leftmost one being used first.
+ # icon_theme = "Adwaita, breeze"
+
+ # Align icons left/right/top/off
+ icon_position = left
+
+ # Scale small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 16
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
- # Paths to default icons.
+ # Paths to default icons (only neccesary when not using recursive icon lookup)
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
@@ -183,7 +234,7 @@
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
- browser = /usr/bin/brave -new-tab
+ browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
@@ -194,26 +245,28 @@
# Define the class of the windows spawned by dunst
class = Dunst
- # Print a notification on startup.
- # This is mainly for error detection, since dbus (re-)starts dunst
- # automatically after a crash.
- startup_notification = false
-
- # Manage dunst's desire for talking
- # Can be one of the following values:
- # crit: Critical features. Dunst aborts
- # warn: Only non-fatal warnings
- # mesg: Important Messages
- # info: all unimportant stuff
- # debug: all less than unimportant stuff
- verbosity = mesg
-
# 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
+ corner_radius = 10
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = false
+
+ ### Wayland ###
+ # These settings are Wayland-specific. They have no effect when using X11
+
+ # Uncomment this if you want to let notications appear under fullscreen
+ # applications (default: overlay)
+ # layer = top
+
+ # Set this to true to use X11 output on Wayland.
+ force_xwayland = false
### Legacy
@@ -229,15 +282,21 @@
### mouse
- # Defines action of mouse event
+ # Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
- # * do_action: If the notification has exactly one action, or one is marked as default,
- # invoke it. If there are multiple and no default, open the context menu.
+ # * 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
+ mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
@@ -250,50 +309,33 @@
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
-[shortcuts]
-
- # Shortcuts are specified as [modifier+][modifier+]...key
- # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
- # "mod3" and "mod4" (windows-key).
- # Xev might be helpful to find names for keys.
-
- # Close notification.
- close = ctrl+space
-
- # Close all notifications.
- close_all = ctrl+shift+space
-
- # Redisplay last message(s).
- # On the US keyboard layout "grave" is normally above TAB and left
- # of "1". Make sure this key actually exists on your keyboard layout,
- # e.g. check output of 'xmodmap -pke'
- history = ctrl+grave
-
- # Context menu.
- context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
- background = "#28282888"
+ background = "#282828"
foreground = "#ebdbb2"
+ highlight = "#ebdbb2"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
- #icon = /path/to/icon
+ #default_icon = /path/to/icon
[urgency_normal]
- background = "#28282888"
- foreground = "#ebdbb2"
+ background = "#b16286"
+ foreground = "#dbdbb2"
+ highlight = "#ebdbb2"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
- #icon = /path/to/icon
+ #default_icon = /path/to/icon
[urgency_critical]
- background = "#cc241d88"
- foreground = "#ffffff"
+ background = "#fb4934"
+ foreground = "#282828"
+ frame_color = "#fb4934"
+ highlight = "#282828"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
- #icon = /path/to/icon
+ #default_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
@@ -318,8 +360,17 @@
# new_icon
# set_stack_tag
# set_transient
+# set_category
# timeout
# urgency
+# icon_position
+# skip_display
+# history_ignore
+# action_name
+# word_wrap
+# ellipsize
+# alignment
+# hide_text
#
# Shell-like globbing will get expanded.
#
@@ -334,8 +385,6 @@
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
-# NOTE: if you don't want a notification to be displayed, set the format
-# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
@@ -374,7 +423,7 @@
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
-# format = ""
+# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
index 52d71e8..98e9945 100644
--- a/.config/hypr/hyprland.conf
+++ b/.config/hypr/hyprland.conf
@@ -4,20 +4,18 @@
#
# See https://wiki.hyprland.org/Configuring/Monitors/
-monitor=DP-2,preferred,0x0,1
-monitor=DP-3,preferred,1920x0,1
-monitor=HDMI-A-1,preferred,3840x0,1
+monitor=,preferred,auto,1
+monitor=DP-2,prefered,0x0,1
+monitor=DP-3,preferred,1920x0,1,transform,1
+monitor=HDMI-A-1,preferred,3000x0,1
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
-exec-once = waybar
-exec-once = swaybg -i .config/bg/orion.png
-exec-once = nextcloud --background
-exec-once = blueberry-tray
-exec-once = element-desktop --hidden
-exec-once = /usr/lib/kdeconnectd && kdeconnect-indicator
+exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+exec-once = waybar-autostart
+exec-once = cat .config/bg/hyprland.ff | ffbg
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
@@ -27,78 +25,86 @@ env = XCURSOR_SIZE,24
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
- kb_layout = us
- kb_variant =
- kb_model =
- kb_options = caps:escape
- kb_rules =
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options = caps:escape
+ kb_rules =
- follow_mouse = 1
+ follow_mouse = 1
- touchpad {
- natural_scroll = no
- }
+ touchpad {
+ natural_scroll = yes
+ clickfinger_behavior = true
+ }
- sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
- gaps_in = 10
- gaps_out = 10
- border_size = 3
- col.active_border = rgba(b16286ff)
- col.inactive_border = rgba(3c3836ff)
- layout = dwindle
+ gaps_in = 10
+ gaps_out = 10
+ border_size = 3
+ col.active_border = rgba(b16286ff)
+ col.inactive_border = rgba(3c3836ff)
+ layout = dwindle
}
decoration {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
- rounding = 10
+ rounding = 5
- drop_shadow = yes
- shadow_range = 4
- shadow_render_power = 3
- col.shadow = rgba(1a1a1aee)
+ drop_shadow = yes
+ shadow_range = 4
+ shadow_render_power = 3
+ col.shadow = rgba(1a1a1aee)
}
animations {
- enabled = yes
+ enabled = yes
- # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+ # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
- bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
- animation = windows, 1, 3, myBezier
- animation = windowsOut, 1, 3, default, popin 80%
- animation = border, 1, 10, default
- animation = borderangle, 1, 8, default
- animation = fade, 1, 5, default
- animation = workspaces, 1, 3, default
+ animation = windows, 1, 3, myBezier
+ animation = windowsOut, 1, 3, default, popin 80%
+ animation = border, 1, 10, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 5, default
+ animation = workspaces, 1, 3, default
}
dwindle {
- # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
- pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
- preserve_split = yes # you probably want this
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = yes # you probably want this
}
master {
- # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
- new_is_master = true
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ new_is_master = true
}
gestures {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- workspace_swipe = off
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = on
+ workspace_swipe_fingers = 4
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
-device:epic-mouse-v1 {
- sensitivity = -0.5
+device {
+ name = epic-mouse-v1
+ sensitivity = -0.5
+}
+
+device {
+ name = wacom-intuos-pt-m-2-pen
+ output = DP-3
}
# Example windowrule v1
@@ -111,6 +117,16 @@ windowrulev2 = center,title:^(Hyprmenu)$
windowrulev2 = pin,class:^(floating)$
windowrulev2 = float,class:^(floating)$
windowrulev2 = center,class:^(floating)$
+
+windowrulev2 = float,class:^(waydroid.com.*)$
+
+windowrulev2 = pin,class:^(com.nextcloud.desktopclient.nextcloud)$
+windowrulev2 = float,class:^(com.nextcloud.desktopclient.nextcloud)$
+windowrulev2 = size 300 500,class:^(com.nextcloud.desktopclient.nextcloud)$
+windowrulev2 = move 100%-600 50,class:^(com.nextcloud.desktopclient.nextcloud)$
+windowrulev2 = float,class:^(syncthingtray)$
+windowrulev2 = size 400 500,class:^(syncthingtray)$
+windowrulev2 = move 100%-600 50,class:^(syncthingtray)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
@@ -124,16 +140,24 @@ bind = $mainMod, V, togglefloating,
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, S, togglesplit, # dwindle
bind = $mainMod, Space, exec, hyprmenu_run
+bind = $mainMod+Shift, Space, exec, android-launch
bind = $mainMod+Shift, P, exec, passmenu
-bind = $mainMod+Shift, B, exec, qutebrowser
+bind = $mainMod+Shift, B, exec, firefox
+bind = $mainMod+Alt, B, exec, torbrowser-launcher
bind = $mainMod+Shift, E, exec, alacritty -e neomutt
bind = $mainMod+Shift, Return, exec, alacritty
+bind = $mainMod+Alt, Return, exec, torcritty
bind = $mainMod, F, fullscreen, 0
bind = $mainMod, M, exec, doc
-binde=, XF86AudioMute, exec, wpctl set-mute toggle
+bind = $mainMod+Shift, T, exec, alacritty --class floating -e btop
+bind = $mainMod+Alt+Shift, T, exec, alacritty --class floating -e remotebtop n8-srv
+bind = $mainMod+Alt, W, exec, sh -c 'killall waybar && waybar'
+binde=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
binde=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
binde=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bind =, XF86AudioPlay, exec, playerctl play-pause
+bind =, XF86MonBrightnessDown, exec, brightnessctl set 10%-
+bind =, XF86MonBrightnessUp, exec, brightnessctl set +10%
bind =, Scroll_Lock, exec, wlock
bind = $mainMod, Escape, exec, wlock
bind = , Print, exec, grimshot copy area
@@ -198,3 +222,12 @@ bind = $mainMod+Shift, l, movewindow, r
bind = $mainMod+Shift, h, movewindow, l
bind = $mainMod+Shift, j, movewindow, d
bind = $mainMod+Shift, k, movewindow, u
+
+# Misc
+misc {
+ disable_hyprland_logo = true
+ disable_splash_rendering = true
+ enable_swallow = true
+ swallow_regex = ^(Alacritty)$
+ animate_manual_resizes = true
+}
diff --git a/.config/mimeapps.list b/.config/mimeapps.list
index d1e166b..47f0b11 100644
--- a/.config/mimeapps.list
+++ b/.config/mimeapps.list
@@ -1,12 +1,12 @@
[Default Applications]
-text/html=qutebrowser.desktop
+text/html=firefox.desktop
x-scheme-handler/lbry=lbry.desktop
x-scheme-handler/etcher=balena-etcher.desktop
-x-scheme-handler/http=org.qutebrowser.qutebrowser.desktop
-x-scheme-handler/https=org.qutebrowser.qutebrowser.desktop
-x-scheme-handler/qute=org.qutebrowser.qutebrowser.desktop
+x-scheme-handler/http=firefox.desktop
+x-scheme-handler/https=firefox.desktop
+x-scheme-handler/qute=firefox.desktop
x-scheme-handler/mailto=neomutt.desktop
applications/pdf=org.pwmt.zathura.desktop
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index 9e039af..c75aed9 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -7,4 +7,6 @@
require('plug')
require('keymap')
require('settings')
-require('coc')
+require('lsp')
+require('cmp-config')
+require('tree')
diff --git a/.config/nvim/lua/keymap.lua b/.config/nvim/lua/keymap.lua
index ccab671..5b709cb 100644
--- a/.config/nvim/lua/keymap.lua
+++ b/.config/nvim/lua/keymap.lua
@@ -12,18 +12,9 @@ vim.api.nvim_set_keymap("n", "<leader>ec", ":e $MYVIMRC<CR>", {noremap = true})
vim.api.nvim_set_keymap("n", "<leader>tn", ":tabnew<CR>", {noremap = true})
vim.api.nvim_set_keymap("n", "<leader>tc", ":tabclose<CR>", {noremap = true})
vim.api.nvim_set_keymap("n", "<leader>tt", ":tabnew<CR>:term<CR>a", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>Tn", ":tnext<CR>", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>Tp", ":tprevious<CR>", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>Tf", ":tfirst<CR>", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>Tl", ":tlast<CR>", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>tselect", ":tselect<Space>", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>Tc", ":!ctags -R --sort=yes --c++-kins=+p --filed=+iaS --extras=+q . <CR><CR>", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>f", ":Lexplore<CR>", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>F", ":Lexplore %:p:h<CR>", {noremap = true})
-
-vim.api.nvim_set_keymap("n", "<leader>zt", ":VZKFindTag<CR>", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>zh", ":VZKHistory<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>f", ":NvimTreeToggle<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>F", ":NvimTreeFindFileToggle<CR>", {noremap = true})
vim.api.nvim_set_keymap("i", "(", "()<Esc>i", {noremap = true})
vim.api.nvim_set_keymap("i", ")", "<ESC>:call brackify#putbracket(')')<CR>la", {noremap = true})
@@ -31,25 +22,27 @@ vim.api.nvim_set_keymap("i", "[", "[]<Esc>i", {noremap = true})
vim.api.nvim_set_keymap("i", "]", "<ESC>:call brackify#putbracket(']')<CR>la", {noremap = true})
vim.api.nvim_set_keymap("i", "{", "{}<Esc>i", {noremap = true})
vim.api.nvim_set_keymap("i", "}", "<ESC>:call brackify#putbracket('}')<CR>la", {noremap = true})
+vim.api.nvim_set_keymap("i", '"', "<ESC>:call brackify#putquotes('\"')<CR>a", {noremap = true})
+vim.api.nvim_set_keymap("i", "'", "<ESC>:call brackify#putquotes(\"'\")<CR>a", {noremap = true})
vim.cmd('autocmd Filetype html inoremap <buffer> < <><ESC>i')
vim.cmd('autocmd Filetype html inoremap <buffer> > <ESC>:call brackify#putbracket(">")<CR>la')
+vim.cmd('autocmd FileType tex inoremap <buffer> " "')
+vim.cmd('autocmd FileType tex inoremap <buffer> \' \'')
-vim.api.nvim_set_keymap("i", '"', "<ESC>:call brackify#putquotes('\"')<CR>a", {noremap = true})
-vim.api.nvim_set_keymap("i", "'", "<ESC>:call brackify#putquotes(\"'\")<CR>a", {noremap = true})
vim.api.nvim_set_keymap("v", "(", "s(<ESC>pa)", {noremap = true})
vim.api.nvim_set_keymap("v", "[", "s[<ESC>pa]", {noremap = true})
vim.api.nvim_set_keymap("v", "{", "s{<ESC>pa}", {noremap = true})
vim.api.nvim_set_keymap("v", '"', 's"<ESC>pa"', {noremap = true})
vim.api.nvim_set_keymap("v", "'", "s'<ESC>pa'", {noremap = true})
-vim.cmd('autocmd Filetype c nnoremap <buffer> <tab> :CSelNextArg<Cr>')
-vim.cmd('autocmd Filetype rust nnoremap <buffer> <leader>r :!cargo run<Cr>')
-vim.cmd('autocmd Filetype rust nnoremap <buffer> <leader>R :!cargo run --release<Cr>')
-vim.api.nvim_set_keymap("n", "<leader>dB", ":GdbBreakpointToggle", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>dn", ":GdbNext", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>ds", ":GdbStep", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>dr", ":GdbRun", {noremap = true})
-vim.api.nvim_set_keymap("n", "<leader>dc", ":GdbContinue", {noremap = true})
+vim.api.nvim_set_keymap("i", "<C-u>a", "ä", {noremap = true})
+vim.api.nvim_set_keymap("i", "<C-u>A", "Ä", {noremap = true})
+vim.api.nvim_set_keymap("i", "<C-u>o", "ö", {noremap = true})
+vim.api.nvim_set_keymap("i", "<C-u>O", "Ö", {noremap = true})
+vim.api.nvim_set_keymap("i", "<C-u>u", "ü", {noremap = true})
+vim.api.nvim_set_keymap("i", "<C-u>U", "Ü", {noremap = true})
-vim.cmd("autocmd TextChangedI * lua vim.lsp.omnifunc(1)")
+vim.api.nvim_set_keymap("n", "<space>T", ":lua require('cargotest').test_crate()<cr>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<space>t", ":lua require('cargotest').test_module()<cr>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>z", "va{zfzz", {noremap = true})
diff --git a/.config/nvim/lua/plug.lua b/.config/nvim/lua/plug.lua
index 904b496..1a78aa8 100644
--- a/.config/nvim/lua/plug.lua
+++ b/.config/nvim/lua/plug.lua
@@ -4,16 +4,60 @@
-- ┃ ╹ ╹┗━┛ ┗┛ ╹╹ ╹ ╹ ┗━╸┗━┛┗━┛╹╹ ╹┗━┛ ┃
-- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
-local Plug = vim.fn['plug#']
-
-
-vim.call('plug#begin', '~/.local/share/nvim/plugged')
-
-Plug 'neovim/nvim-lspconfig'
-Plug 'nvim-treesitter/nvim-treesitter'
-Plug('neoclide/coc.nvim', {branch = 'release'})
-Plug("theRealCarneiro/hyprland-vim-syntax", { ft = "hypr" })
-
-vim.call('plug#end')
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not vim.loop.fs_stat(lazypath) then
+ vim.fn.system({
+ "git",
+ "clone",
+ "--filter=blob:none",
+ "https://github.com/folke/lazy.nvim.git",
+ "--branch=stable", -- latest stable release
+ lazypath,
+ })
+end
+vim.opt.rtp:prepend(lazypath)
+require("lazy").setup({
+ { "nvim-treesitter/nvim-treesitter" },
+ { "neovim/nvim-lspconfig" },
+ { "L3MON4D3/LuaSnip" },
+ { "rafamadriz/friendly-snippets" },
+ { "saadparwaiz1/cmp_luasnip" },
+ { "hrsh7th/cmp-nvim-lua" },
+ { "hrsh7th/cmp-nvim-lsp" },
+ { "hrsh7th/cmp-path" },
+ {
+ 'hrsh7th/nvim-cmp',
+ event = "InsertEnter",
+ dependencies = {
+ {
+ -- snippet plugin
+ "L3MON4D3/LuaSnip",
+ dependencies = "rafamadriz/friendly-snippets",
+ opts = { history = true, updateevents = "TextChanged,TextChangedI" },
+ config = function(_, opts)
+ require("luasnip").config.set_config(opts)
+ end,
+ },
+ },
+ {
+ "saadparwaiz1/cmp_luasnip",
+ "hrsh7th/cmp-nvim-lua",
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-path",
+ },
+ },
+ { 'cargotest.nvim', url = 'https://git.nathanreiner.xyz/cargotest.nvim' },
+ {
+ "nvim-tree/nvim-tree.lua",
+ version = "*",
+ lazy = false,
+ dependencies = {
+ "nvim-tree/nvim-web-devicons",
+ },
+ config = function()
+ require("nvim-tree").setup {}
+ end,
+ },
+})
diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/settings.lua
index 02cc457..ca2b1e8 100644
--- a/.config/nvim/lua/settings.lua
+++ b/.config/nvim/lua/settings.lua
@@ -26,7 +26,9 @@ vim.opt.showcmd = true
vim.opt.wildmenu = true
vim.opt.hlsearch = true
vim.opt.conceallevel = 2
-vim.opt.colorcolumn = "80"
+vim.opt.colorcolumn = "120"
+vim.opt.foldmethod = "manual"
+vim.opt.cursorline = true
vim.cmd('filetype indent on')
vim.opt.completeopt = { "menuone", "menu", "longest", "preview", "noinsert", "noselect" }
@@ -40,8 +42,6 @@ vim.g.netrw_keepdir = true
vim.g.netrw_winsize = 30
vim.cmd('autocmd Filetype netrw setlocal nolist')
-vim.g.airline_powerline_fonts = true
-
vim.cmd("call statusbar#refresh()")
local status_ok, configs = pcall(require, "nvim-treesitter.configs")
@@ -63,3 +63,7 @@ configs.setup({
enable = true,
},
})
+
+vim.filetype.add({
+ pattern = { [".*/hypr/.*%.conf"] = "hyprlang" },
+})
diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml
index 602025d..e004fa3 100644
--- a/.config/qutebrowser/autoconfig.yml
+++ b/.config/qutebrowser/autoconfig.yml
@@ -6,144 +6,6 @@
config_version: 2
settings:
- bindings.commands:
- global:
- normal:
- gle: spawn --userscript leo-eng
- glf: spawn --userscript leo-fr
- colors.completion.category.bg:
- global: '#282828'
- colors.completion.category.border.bottom:
- global: '#282828'
- colors.completion.category.border.top:
- global: '#282828'
- colors.completion.even.bg:
- global: '#1d2021'
- colors.completion.item.selected.bg:
- global: '#b16286'
- colors.completion.item.selected.border.bottom:
- global: '#b16286'
- colors.completion.item.selected.border.top:
- global: '#b16286'
- colors.completion.item.selected.match.fg:
- global: '#ffffff'
- colors.completion.match.fg:
- global: '#b16286'
- colors.completion.odd.bg:
- global: '#1d2021'
- colors.completion.scrollbar.bg:
- global: '#282828'
- colors.completion.scrollbar.fg:
- global: '#b16286'
- colors.messages.error.bg:
- global: '#cc241d'
- colors.messages.info.bg:
- global: '#1d2021'
- colors.messages.warning.bg:
- global: '#e8c75c'
- colors.statusbar.command.bg:
- global: '#1d2021'
- colors.statusbar.insert.bg:
- global: '#282828'
- colors.statusbar.normal.bg:
- global: '#1d2021'
- colors.statusbar.progress.bg:
- global: '#b16286'
- colors.statusbar.url.error.fg:
- global: '#cc241d'
- colors.statusbar.url.hover.fg:
- global: '#458588'
- colors.statusbar.url.success.http.fg:
- global: '#989898'
- colors.statusbar.url.success.https.fg:
- global: '#b16286'
- colors.tabs.bar.bg:
- global: '#1d2021'
- colors.tabs.even.bg:
- global: '#1d2021'
- colors.tabs.even.fg:
- global: '#999'
- colors.tabs.indicator.error:
- global: '#e8c75c'
- colors.tabs.indicator.start:
- global: '#458588'
- colors.tabs.indicator.stop:
- global: '#b16286'
- colors.tabs.odd.bg:
- global: '#1d2021'
- colors.tabs.odd.fg:
- global: '#999'
- colors.tabs.selected.even.bg:
- global: '#b16286'
- colors.tabs.selected.odd.bg:
- global: '#b16286'
- colors.webpage.darkmode.algorithm:
- global: lightness-cielab
- colors.webpage.darkmode.enabled:
- global: false
- colors.webpage.darkmode.grayscale.all:
- global: true
- colors.webpage.darkmode.grayscale.images:
- global: 0.5
- colors.webpage.darkmode.policy.images:
- global: never
- colors.webpage.darkmode.policy.page:
- global: always
- colors.webpage.darkmode.threshold.background:
- global: 24
- content.blocking.enabled:
- global: true
- content.blocking.method:
- global: both
content.desktop_capture:
- https://live-samples.mdn.mozilla.net: true
- https://live.mdnplay.dev: true
- https://meet.element.io: true
- content.media.audio_capture:
- https://meet.element.io: true
- content.notifications.enabled:
- https://chat.nathanreiner.xyz: true
- https://lichess.org: true
- https://www.chess.com: false
- https://www.reddit.com: false
- downloads.location.directory:
- global: ~/
- qt.force_platformtheme:
- global: null
- qt.workarounds.locale:
- global: true
- qt.workarounds.remove_service_workers:
- global: false
- statusbar.padding:
- global:
- bottom: 5
- left: 5
- right: 5
- top: 5
- statusbar.position:
- global: bottom
- tabs.indicator.padding:
- global:
- bottom: 4
- left: 2
- right: 5
- top: 4
- tabs.indicator.width:
- global: 9
- tabs.max_width:
- global: 250
- tabs.padding:
- global:
- bottom: 5
- left: 5
- right: 5
- top: 5
- tabs.position:
- global: top
- url.default_page:
- global: https://search.nathanreiner.xyz
- url.searchengines:
- global:
- DEFAULT: https://duckduckgo.com/?q={}
- url.start_pages:
- global: https://search.nathanreiner.xyz
+ https://call.element.io: true
+ https://mozilla.github.io: true
diff --git a/.config/waybar/config b/.config/waybar/config
index 1a5e021..ac10670 100644
--- a/.config/waybar/config
+++ b/.config/waybar/config
@@ -8,24 +8,12 @@
"margin-right": 13,
"modules-left": ["hyprland/workspaces"],
"modules-center": ["hyprland/window"],
- "modules-right": ["tray","custom/keylock","custom/media","pulseaudio","memory","cpu","clock"],
+ "modules-right": ["tray","battery","custom/keylock","mpris","pulseaudio","clock"],
// custom modules ////////////////
"wlr/workspaces": {
"format": "{icon}",
"format-active": "{icon}",
"on-click": "activate",
- "format-icons":{
- "1": "α",
- "2": "β",
- "3": "γ",
- "4": "δ",
- "5": "ε",
- "6": "ζ",
- "7": "η",
- "8": "θ",
- "9": "ι",
- "10":"κ"
- }
},
"hyprland/window": {
"format": "{}",
@@ -34,7 +22,8 @@
"(.*) - qutebrowser": "$1",
"": "Hyprland"
},
- "separate-outputs": true
+ "separate-outputs": true,
+ "max-length": 20
},
"tray": {
// "icon-size": 21,
@@ -56,31 +45,22 @@
"format": "{}%  "
},
"pulseaudio": {
- // "scroll-step": 1, // %, can be a float
- "format": "{format_source}",
- "format-bluetooth": "{volume}% {icon}  {format_source}",
- "format-bluetooth-muted": " {icon} {format_source}",
- "format-muted": " {format_source}",
+ "format": "{volume}% {icon}",
+ "format-bluetooth": "{volume}% {icon} ",
+ "format-muted": "",
"format-icons": {
- "headphone": "󰋋",
- "hands-free": "󰋋",
+ "alsa_output.pci-0000_00_1f.3.analog-stereo": "󰓃",
+ "headphones": "",
+ "handsfree": "󰋋",
"headset": "󰋋",
"phone": "",
"portable": "",
"car": "",
- "default": ["", "", ""]
+ "default": ["", ""]
},
+ "scroll-step": 1,
"on-click": "pavucontrol"
},
- "custom/media": {
- "interval": "once",
- "format": "{}",
- "max-length": 40,
- "on-click": "playerctl play-pause && pkill -RTMIN+9 waybar",
- "on-click-right": "playerctl stop && pkill -RTMIN+9 waybar",
- "exec": "sleep 0.1 && playerctl status",
- "signal": 9
- },
"custom/keylock": {
"interval": "once",
"format": "{}",
@@ -88,5 +68,28 @@
"exec": "keylock",
"exec-on-event" : true,
"signal": 10
+ },
+ "battery": {
+ "interval": 60,
+ "states": {
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}% {icon}",
+ "format-icons": ["", "", "", "", ""],
+ },
+ "mpris": {
+ "format": "{player_icon} {dynamic}",
+ "format-paused": "{status_icon} <i>{dynamic}</i>",
+ "player-icons": {
+ "default": "▶",
+ "mpv": "🎵"
+ },
+ "status-icons": {
+ "paused": "⏸"
+ },
+ "interval": 0.1,
+ "dynamic-len": 20,
+ // "ignored-players": ["firefox"]
}
}
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
index b9e2e8a..724a084 100644
--- a/.config/waybar/style.css
+++ b/.config/waybar/style.css
@@ -1,5 +1,5 @@
* {
- font-family: SauceCodePro Nerd Font,FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+ font-family: SauceCodePro NF,FontAwesome, Roboto, Helvetica, Arial, sans-serif;
font-size: 13px;
font-weight: bold;
color: #ebdbb2;
@@ -7,7 +7,6 @@
window#waybar {
background-color: transparent;
- /*background-color: #1d2021;*/
}
#workspaces{
@@ -40,11 +39,13 @@ window#waybar {
#tray,
#custom-media,
#custom-keylock,
+#mpris,
#pulseaudio,
#memory,
#cpu,
#clock,
-#window
+#window,
+#battery
{
background-color: rgba(60, 56, 54, 0.8);
border-radius: 5px;
@@ -52,6 +53,15 @@ window#waybar {
padding: 5px 10px;
}
+#battery {
+ padding: 5px 10px;
+ padding-right: 18px;
+}
+
#custom-keylock {
padding: 5px 13px;
}
+
+#mpris.playing {
+ background-color: #b16286;
+}
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index 7eb08bb..80f68eb 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -30,7 +30,6 @@ setopt COMPLETE_ALIASES
# History
export HISTSIZE=1000
export SAVEHIST=1000
-export HISTFILE=~/.zsh_history
setopt INC_APPEND_HISTORY
setopt HIST_IGNORE_DUPS
@@ -43,3 +42,4 @@ source ~/.profile
setopt AUTO_CD
export HISTFILE="$XDG_CACHE_HOME"/zsh/history
+mkdir -p $(dirname $HISTFILE)
diff --git a/.config/zsh/knight b/.config/zsh/knight
index 74fd69b..15f8b4a 100644
--- a/.config/zsh/knight
+++ b/.config/zsh/knight
@@ -13,6 +13,8 @@ update_prompt() {
export RPROMPT="$(prompt_git_status)"
}
-PROMPT="%F{cyan}%F{0}%K{cyan}%n%k%f%F{cyan}%k%f %F{cyan}%f%k%K{cyan}%F{0}%m%k%f%F{cyan}%k %f%k%F{magenta}%F{0}%K{magenta}%~%f%k%F{magenta}%k%f "
+TOR_PROMPT="%F{red}$(torsocks show | grep -o '"..*"' | sed 's/.*/ %f%K{red}%F{0}tor%f%k%F{red}/g')%f"
+
+PROMPT="%F{cyan}%F{0}%K{cyan}%n%k%f%F{cyan}%k%f %F{cyan}%f%k%K{cyan}%F{0}%m%k%f%F{cyan}%k %f%k%F{magenta}%F{0}%K{magenta}%~%f%k%F{magenta}%k%f${TOR_PROMPT} "
[[ -z "$precmd_functions" ]] && precmd_functions=() precmd_functions=($precmd_functions update_prompt)