summaryrefslogtreecommitdiffstats
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/abook/abookrc27
-rw-r--r--.config/alacritty/alacritty.toml10
-rw-r--r--.config/amfora/config.toml253
-rw-r--r--.config/ardour8/my-gruvbox-ardour-8.12.colors538
-rw-r--r--.config/browsers/home.html185
-rw-r--r--.config/catgirl/libera7
-rw-r--r--.config/catgirl/synirc8
-rw-r--r--.config/cmus/rc71
-rw-r--r--.config/conky/artix-logo.pngbin24245 -> 0 bytes
-rw-r--r--.config/conky/conkyrc130
-rw-r--r--.config/dunst/dunstrc35
-rw-r--r--.config/emacs/caco.pngbin14493 -> 0 bytes
-rw-r--r--.config/emacs/early-init.el33
-rw-r--r--.config/emacs/init.el125
-rw-r--r--.config/emacs/org/config.org920
-rw-r--r--.config/env42
-rw-r--r--.config/fontconfig/fonts.conf36
-rw-r--r--.config/go2work/go2work.toml23
-rw-r--r--.config/gtk-2.0/gtkrc4
-rw-r--r--.config/gtk-3.0/bookmarks11
-rw-r--r--.config/gtk-3.0/settings.ini4
-rw-r--r--.config/isyncrc121
-rw-r--r--.config/lf/icons267
-rw-r--r--.config/lf/lfrc101
-rwxr-xr-x.config/lf/scope39
-rw-r--r--.config/mbsync/mbsyncrc185
-rw-r--r--.config/mimeapps.list70
-rw-r--r--.config/mostrc62
-rw-r--r--.config/mpd-notification.conf4
-rw-r--r--.config/mpd/mpd.conf408
-rw-r--r--.config/mpv/input.conf1
-rw-r--r--.config/mpv/mpv.conf9
-rw-r--r--.config/mpv/scripts/mpv_thumbnail_script_server-1.lua815
-rw-r--r--.config/msmtp/config27
-rw-r--r--.config/mutt/accounts/1-gmx_rbo.muttrc22
-rw-r--r--.config/mutt/accounts/2-gmx_shop.muttrc49
-rw-r--r--.config/mutt/accounts/3-gmail_br.muttrc (renamed from .config/mutt/accounts/4-gmail_br.muttrc)18
-rw-r--r--.config/mutt/accounts/4-gmail_oon.muttrc (renamed from .config/mutt/accounts/5-gmail_oon.muttrc)24
-rw-r--r--.config/mutt/accounts/4-ss_perso.muttrc47
-rw-r--r--.config/mutt/accounts/5-ss_exploit.muttrc70
-rw-r--r--.config/mutt/accounts/6-ss_support.muttrc86
-rw-r--r--.config/mutt/accounts/off/6-gmail_tos.muttrc (renamed from .config/mutt/accounts/6-gmail_tos.muttrc)0
-rw-r--r--.config/mutt/defaults.muttrc19
-rw-r--r--.config/mutt/mailcap4
-rw-r--r--.config/mutt/muttrc22
-rw-r--r--.config/mutt/sig/1-gmx_rbo3
-rw-r--r--.config/mutt/sig/1-main3
-rw-r--r--.config/mutt/sig/2-gmail_br3
-rw-r--r--.config/mutt/sig/2-gmx_shop3
-rw-r--r--.config/mutt/sig/3-gmail_oon2
-rw-r--r--.config/mutt/sig/4-gmail_tos3
-rw-r--r--.config/mutt/sig/5-ss_perso2
-rw-r--r--.config/ncmpc/config16
-rw-r--r--.config/ncmpc/keys44
-rw-r--r--.config/newsboat/config65
-rwxr-xr-x.config/nnn/plugins/joe_clipper69
-rwxr-xr-x.config/nnn/plugins/joe_cmusq81
-rwxr-xr-x.config/nnn/plugins/joe_dragdrop47
-rwxr-xr-x.config/nnn/plugins/joe_fzfcd21
-rwxr-xr-x.config/nnn/plugins/joe_rand22
-rwxr-xr-x.config/nnn/plugins/preview-tui538
-rw-r--r--.config/nvim/after/plugin/gitsigns.lua42
-rw-r--r--.config/nvim/after/plugin/gruvbox.lua29
-rw-r--r--.config/nvim/after/plugin/kanagawa.lua27
-rw-r--r--.config/nvim/after/plugin/lsp.lua229
-rw-r--r--.config/nvim/after/plugin/lualine.lua349
-rw-r--r--.config/nvim/after/plugin/rainbow.lua23
-rw-r--r--.config/nvim/after/plugin/telescope.lua16
-rw-r--r--.config/nvim/after/plugin/treesitter.lua42
-rw-r--r--.config/nvim/after/plugin/trouble.lua17
-rw-r--r--.config/nvim/init.lua15
-rw-r--r--.config/nvim/lua/config/bindings.lua (renamed from .config/nvim/lua/bindings.lua)31
-rw-r--r--.config/nvim/lua/config/hooks.lua21
-rw-r--r--.config/nvim/lua/config/langs.lua (renamed from .config/nvim/lua/langs.lua)0
-rw-r--r--.config/nvim/lua/config/lazy.lua151
-rw-r--r--.config/nvim/lua/config/settings.lua (renamed from .config/nvim/lua/settings.lua)26
-rw-r--r--.config/nvim/lua/hooks.lua8
-rw-r--r--.config/nvim/lua/lsp/arduino.lua14
-rw-r--r--.config/nvim/lua/lsp/bashls.lua12
-rw-r--r--.config/nvim/lua/lsp/ccls.lua30
-rw-r--r--.config/nvim/lua/lsp/gopls.lua25
-rw-r--r--.config/nvim/lua/lsp/luals.lua14
-rw-r--r--.config/nvim/lua/packs.lua171
-rw-r--r--.config/nvim/lua/plugins/gruvbox.lua39
-rw-r--r--.config/nvim/lua/plugins/lspkind.lua110
-rw-r--r--.config/nvim/lua/plugins/lualine.lua239
-rw-r--r--.config/nvim/lua/plugins/rainbow.lua28
-rw-r--r--.config/nvim/lua/plugins/treesitter.lua53
-rwxr-xr-x.config/openbox/autostart101
-rwxr-xr-x.config/openbox/environment10
-rwxr-xr-x.config/openbox/menu.xml274
-rwxr-xr-x.config/openbox/rc.xml1048
-rw-r--r--.config/picom.conf132
-rw-r--r--.config/pipe-viewer/pipe-viewer.conf7
-rw-r--r--.config/screen/screenrc176
-rw-r--r--.config/tig/config503
-rwxr-xr-x.config/tint2/tint2rc239
-rw-r--r--.config/transmission-daemon/settings.json68
-rw-r--r--.config/tremc/settings.cfg9
-rw-r--r--.config/urlview/config2
-rw-r--r--.config/vimb/config93
-rw-r--r--.config/vimb/style.css55
-rwxr-xr-x.config/wayland/init.sh49
-rw-r--r--.config/wtf/config.yml88
-rw-r--r--.config/x11/xinitrc57
-rw-r--r--.config/x11/xresources4
-rw-r--r--.config/yt-dlp/config1
-rw-r--r--.config/zsh/.zshrc51
-rw-r--r--.config/zsh/alias.zsh57
-rw-r--r--.config/zsh/plugins.zsh2
110 files changed, 3646 insertions, 6995 deletions
diff --git a/.config/abook/abookrc b/.config/abook/abookrc
deleted file mode 100644
index a6d78a0..0000000
--- a/.config/abook/abookrc
+++ /dev/null
@@ -1,27 +0,0 @@
-# vim filetype=conf
-set use_colors = true
-set autosave = true
-set mutt_command = neomutt
-set www_command = w3m
-set index_format = " {name:32} {email:64} {phone:14|workphone|mobile}"
-# colors
-set color_header_fg = yellow
-set color_header_bg = black
-set color_footer_fg = yellow
-set color_footer_bg = black
-set color_list_even_fg = white
-set color_list_even_bg = default
-set color_list_odd_fg = white
-set color_list_odd_bg = default
-set color_list_header_fg = red
-set color_list_header_bg = default
-set color_list_highlight_fg = white
-set color_list_highlight_bg = black
-set color_tab_border_fg = yellow
-set color_tab_border_bg = default
-set color_tab_label_fg = red
-set color_tab_label_bg = default
-set color_field_name_fg = yellow
-set color_field_name_bg = default
-set color_field_value_fg = green
-set color_field_value_bg = default
diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
index 8233a9f..e40fd2e 100644
--- a/.config/alacritty/alacritty.toml
+++ b/.config/alacritty/alacritty.toml
@@ -50,11 +50,12 @@ args = ["--login"]
[font]
#size = 15.0
-size = 14.0
+size = 13.0
[font.normal]
#family = "UbuntuMono Nerd Font"
-family = "Terminess Nerd Font"
+family = "BlexMono Nerd Font"
+# family = "MonaspiceNe Nerd Font"
style = "Regular"
[font.offset]
@@ -62,8 +63,9 @@ x = 0
y = 0
[[hints.enabled]]
-command = "linkview"
+command = { program = "alacritty", args = [ "-e", "linkview" ] }
post_processing = true
+persist = false
regex = "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:..|news:|file:|git:|ssh:|ftp:)[^\u0000-\u001F\u007F-Ÿ<>\"\\s{-}\\^⟨⟩`]+"
[hints.enabled.binding]
@@ -117,7 +119,7 @@ semantic_escape_chars = ",│`|:\"' ()[]{}<>\t"
[window]
decorations = "full"
-opacity = 0.92
+opacity = 1.00
title = "Alacritty"
[window.class]
diff --git a/.config/amfora/config.toml b/.config/amfora/config.toml
deleted file mode 100644
index f6c68c5..0000000
--- a/.config/amfora/config.toml
+++ /dev/null
@@ -1,253 +0,0 @@
-# This is the default config file.
-# It also shows all the default values, if you don't create the file.
-
-# All URL values may omit the scheme and/or port, as well as the beginning double slash
-# Valid URL examples:
-# gemini://example.com
-# //example.com
-# example.com
-# example.com:123
-
-
-[a-general]
-# Press Ctrl-H to access it
-home = "gemini://geminispace.info/"
-
-# Follow up to 5 Gemini redirects without prompting.
-# A prompt is always shown after the 5th redirect and for redirects to protocols other than Gemini.
-# If set to false, a prompt will be shown before following redirects.
-auto_redirect = false
-
-# What command to run to open a HTTP(S) URL.
-# Set to "default" to try to guess the browser, or set to "off" to not open HTTP(S) URLs.
-# If a command is set, than the URL will be added (in quotes) to the end of the command.
-# A space will be prepended to the URL.
-#
-# The best to define a command is using a string array.
-# Examples:
-# http = ['firefox']
-# http = ['custom-browser', '--flag', '--option=2']
-# http = ['/path/with spaces/in it/firefox']
-#
-# Note the use of single quotes, so that backslashes will not be escaped.
-# Using just a string will also work, but it is deprecated, and will degrade if
-# you use paths with spaces.
-
-http = '/usr/local/bin/firefox'
-
-# Any URL that will accept a query string can be put here
-search = "gemini://gus.guru/search"
-
-# Whether colors will be used in the terminal
-color = true
-
-# Whether ANSI color codes from the page content should be rendered
-ansi = true
-
-# Whether to replace list asterisks with unicode bullets
-bullets = true
-
-# Whether to show link after link text
-show_link = false
-
-# A number from 0 to 1, indicating what percentage of the terminal width the left margin should take up.
-left_margin = 0.10
-
-# The max number of columns to wrap a page's text to. Preformatted blocks are not wrapped.
-max_width = 150
-
-# 'downloads' is the path to a downloads folder.
-# An empty value means the code will find the default downloads folder for your system.
-# If the path does not exist it will be created.
-# Note the use of single quotes, so that backslashes will not be escaped.
-downloads = '/home/jozan/dl'
-
-# Max size for displayable content in bytes - after that size a download window pops up
-page_max_size = 2097152 # 2 MiB
-# Max time it takes to load a page in seconds - after that a download window pops up
-page_max_time = 10
-
-# Whether to replace tab numbers with emoji favicons, which are cached.
-emoji_favicons = true
-
-
-[auth]
-# Authentication settings
-# Note the use of single quotes for values, so that backslashes will not be escaped.
-
-[auth.certs]
-# Client certificates
-# Set domain name equal to path to client cert
-# "example.com" = 'mycert.crt'
-
-[auth.keys]
-# Client certificate keys
-# Set domain name equal to path to key for the client cert above
-# "example.com" = 'mycert.key'
-
-
-[keybindings]
-bind_bottom = ":"
-bind_moveup = "k"
-bind_movedown = "j"
-bind_back = "H"
-bind_forward = "L"
-bind_next_tab = "J"
-bind_prev_tab = "K"
-bind_edit = "o"
-bind_new_tab = "O"
-bind_close_tab = "x"
-bind_home = "T"
-bind_tab1 = "!"
-bind_tab2 = "@"
-bind_tab3 = "#"
-bind_tab4 = "$"
-bind_tab5 = "%"
-bind_tab6 = "^"
-bind_tab7 = "&"
-bind_tab8 = "*"
-bind_tab9 = "("
-bind_tab0 = ")"
-# In the future there will be more settings here.
-
-# Hold down shift and press the numbers on your keyboard (1,2,3,4,5,6,7,8,9,0) to set this up.
-# It is default set to be accurate for US keyboards.
-shift_numbers = "!@#$%^&*()"
-
-
-[url-handlers]
-# Allows setting the commands to run for various URL schemes.
-# E.g. to open FTP URLs with FileZilla set the following key:
-# ftp = 'filezilla'
-# You can set any scheme to "off" or "" to disable handling it, or
-# just leave the key unset.
-#
-# DO NOT use this for setting the HTTP command.
-# Use the http setting in the "a-general" section above.
-#
-# NOTE: These settings are overrided by the ones in the proxies section.
-# Note the use of single quotes, so that backslashes will not be escaped.
-
-# This is a special key that defines the handler for all URL schemes for which
-# no handler is defined.
-other = 'off'
-
-
-[cache]
-# Options for page cache - which is only for text pages
-# Increase the cache size to speed up browsing at the expense of memory
-# Zero values mean there is no limit
-
-max_size = 0 # Size in bytes
-max_pages = 30 # The maximum number of pages the cache will store
-
-# How long a page will stay in cache, in seconds.
-timeout = 1800 # 30 mins
-
-[proxies]
-# Allows setting a Gemini proxy for different schemes.
-# The settings are similar to the url-handlers section above.
-# E.g. to open a gopher page by connecting to a Gemini proxy server:
-# gopher = "example.com:123"
-#
-# Port 1965 is assumed if no port is specified.
-#
-# NOTE: These settings override any external handlers specified in
-# the url-handlers section.
-#
-# Note that HTTP and HTTPS are treated as separate protocols here.
-
-
-[subscriptions]
-# For tracking feeds and pages
-
-# Whether a pop-up appears when viewing a potential feed
-popup = true
-
-# How often to check for updates to subscriptions in the background, in seconds.
-# Set it to 0 to disable this feature. You can still update individual feeds
-# manually, or restart the browser.
-#
-# Note Amfora will check for updates on browser start no matter what this setting is.
-update_interval = 1800 # 30 mins
-
-# How many subscriptions can be checked at the same time when updating.
-# If you have many subscriptions you may want to increase this for faster
-# update times. Any value below 1 will be corrected to 1.
-workers = 3
-
-# The number of subscription updates displayed per page.
-entries_per_page = 20
-
-
-[theme]
-# This section is for changing the COLORS used in Amfora.
-# These colors only apply if 'color' is enabled above.
-# Colors can be set using a W3C color name, or a hex value such as "#ffffff".
-
-# Note that not all colors will work on terminals that do not have truecolor support.
-# If you want to stick to the standard 16 or 256 colors, you can get
-# a list of those here: https://jonasjacek.github.io/colors/
-# DO NOT use the names from that site, just the hex codes.
-
-# Definitions:
-# bg = background
-# fg = foreground
-# dl = download
-# btn = button
-# hdg = heading
-# bkmk = bookmark
-# modal = a popup window/box in the middle of the screen
-
-# EXAMPLES:
-# hdg_1 = "green"
-# hdg_2 = "#5f0000"
-
-# Available keys to set:
-
-# bg: background for pages, tab row, app in general
-# tab_num: The number/highlight of the tabs at the top
-# tab_divider: The color of the divider character between tab numbers: |
-# bottombar_label: The color of the prompt that appears when you press space
-# bottombar_text: The color of the text you type
-# bottombar_bg
-
-# hdg_1
-# hdg_2
-# hdg_3
-# amfora_link: A link that Amfora supports viewing. For now this is only gemini://
-# foreign_link: HTTP(S), Gopher, etc
-# link_number: The silver number that appears to the left of a link
-# regular_text: Normal gemini text, and plaintext documents
-# quote_text
-# preformatted_text
-# list_text
-
-# btn_bg: The bg color for all modal buttons
-# btn_text: The text color for all modal buttons
-
-# dl_choice_modal_bg
-# dl_choice_modal_text
-# dl_modal_bg
-# dl_modal_text
-# info_modal_bg
-# info_modal_text
-# error_modal_bg
-# error_modal_text
-# yesno_modal_bg
-# yesno_modal_text
-# tofu_modal_bg
-# tofu_modal_text
-# subscription_modal_bg
-# subscription_modal_text
-
-# input_modal_bg
-# input_modal_text
-# input_modal_field_bg: The bg of the input field, where you type the text
-# input_modal_field_text: The color of the text you type
-
-# bkmk_modal_bg
-# bkmk_modal_text
-# bkmk_modal_label
-# bkmk_modal_field_bg
-# bkmk_modal_field_text
diff --git a/.config/ardour8/my-gruvbox-ardour-8.12.colors b/.config/ardour8/my-gruvbox-ardour-8.12.colors
new file mode 100644
index 0000000..4880b1b
--- /dev/null
+++ b/.config/ardour8/my-gruvbox-ardour-8.12.colors
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Ardour>
+ <Colors>
+ <Color name="alert:blue" value="076678ff"/>
+ <Color name="alert:cyan" value="458588ff"/>
+ <Color name="alert:green" value="689d6aff"/>
+ <Color name="alert:greenish" value="689d6aff"/>
+ <Color name="alert:orange" value="458588ff"/>
+ <Color name="alert:red" value="cc241dff"/>
+ <Color name="alert:ruddy" value="9d0006ff"/>
+ <Color name="alert:yellow" value="cc241dff"/>
+ <Color name="meter color0" value="689d6aff"/>
+ <Color name="meter color1" value="689d6aff"/>
+ <Color name="meter color2" value="b8bb26ff"/>
+ <Color name="meter color3" value="b8bb26ff"/>
+ <Color name="meter color4" value="fabd2fff"/>
+ <Color name="meter color5" value="fabd2fff"/>
+ <Color name="meter color6" value="ff8800ff"/>
+ <Color name="meter color7" value="ff8800ff"/>
+ <Color name="meter color8" value="cc241dff"/>
+ <Color name="meter color9" value="cc241dff"/>
+ <Color name="midi meter 52" value="e8faa1ff"/>
+ <Color name="midi meter 53" value="f2c37dff"/>
+ <Color name="midi meter 54" value="ffac44ff"/>
+ <Color name="midi meter 55" value="f48352ff"/>
+ <Color name="midi meter 56" value="f85813ff"/>
+ <Color name="neutral:background" value="1d2021ff"/>
+ <Color name="neutral:background2" value="282828ff"/>
+ <Color name="neutral:backgroundest" value="1d2021ff"/>
+ <Color name="neutral:foreground" value="ebdbb2ff"/>
+ <Color name="neutral:foreground2" value="ebdbb2ff"/>
+ <Color name="neutral:foregroundest" value="ebdbb2ff"/>
+ <Color name="neutral:midground" value="928374ff"/>
+ <Color name="theme:bg" value="282828ff"/>
+ <Color name="theme:bg1" value="282828ff"/>
+ <Color name="theme:bg2" value="282828ff"/>
+ <Color name="theme:contrasting" value="ebdbb2ff"/>
+ <Color name="theme:contrasting alt" value="fabd2fff"/>
+ <Color name="theme:contrasting clock" value="b8bb26ff"/>
+ <Color name="theme:contrasting less" value="98971aff"/>
+ <Color name="theme:contrasting selection" value="cc241dff"/>
+ <Color name="widget:bg" value="3c3836ff"/>
+ <Color name="widget:blue" value="458588ff"/>
+ <Color name="widget:blue darker" value="39191bff"/>
+ <Color name="widget:blue lighter" value="628db4ff"/>
+ <Color name="widget:gray" value="595755ff"/>
+ <Color name="widget:green" value="617552ff"/>
+ <Color name="widget:green darker" value="3c403aff"/>
+ <Color name="widget:green lighter" value="8ec07cff"/>
+ <Color name="widget:orange" value="904010ff"/>
+ <Color name="widget:ruddy" value="7c3a3aff"/>
+ <Color name="widget:yellow" value="eddc3dff"/>
+ </Colors>
+ <ColorAliases>
+ <ColorAlias name="active crossfade" alias="neutral:foreground"/>
+ <ColorAlias name="arrange base" alias="theme:bg"/>
+ <ColorAlias name="arrangement marker bar" alias="neutral:background2"/>
+ <ColorAlias name="arrangement rect" alias="widget:blue"/>
+ <ColorAlias name="arrangement rect alt" alias="widget:blue lighter"/>
+ <ColorAlias name="audio automation track fill" alias="theme:bg"/>
+ <ColorAlias name="audio bus base" alias="widget:blue darker"/>
+ <ColorAlias name="audio master bus base" alias="neutral:backgroundest"/>
+ <ColorAlias name="audio track base" alias="neutral:background"/>
+ <ColorAlias name="automation line" alias="alert:green"/>
+ <ColorAlias name="automation track outline" alias="theme:bg1"/>
+ <ColorAlias name="big clock active: background" alias="neutral:backgroundest"/>
+ <ColorAlias name="big clock active: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="big clock active: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="big clock active: text" alias="alert:red"/>
+ <ColorAlias name="big clock active:gtk_somewhat_bright_indicator background" alias="neutral:backgroundest"/>
+ <ColorAlias name="big clock: background" alias="theme:bg2"/>
+ <ColorAlias name="big clock: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="big clock: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="big clock: text" alias="theme:contrasting clock"/>
+ <ColorAlias name="border color" alias="neutral:backgroundest"/>
+ <ColorAlias name="cd marker bar" alias="neutral:background2"/>
+ <ColorAlias name="clipped waveform" alias="alert:red"/>
+ <ColorAlias name="clock: background" alias="theme:bg2"/>
+ <ColorAlias name="clock: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="clock: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="clock: text" alias="theme:contrasting clock"/>
+ <ColorAlias name="comment button: fill" alias="widget:bg"/>
+ <ColorAlias name="control point fill" alias="alert:green"/>
+ <ColorAlias name="control point outline" alias="alert:green"/>
+ <ColorAlias name="control point selected fill" alias="alert:orange"/>
+ <ColorAlias name="control point selected outline" alias="alert:red"/>
+ <ColorAlias name="covered region" alias="neutral:background2"/>
+ <ColorAlias name="crossfade editor base" alias="neutral:foreground2"/>
+ <ColorAlias name="crossfade editor line" alias="neutral:backgroundest"/>
+ <ColorAlias name="crossfade editor line shading" alias="widget:blue"/>
+ <ColorAlias name="crossfade editor point fill" alias="alert:green"/>
+ <ColorAlias name="crossfade editor point outline" alias="alert:blue"/>
+ <ColorAlias name="crossfade editor wave" alias="neutral:foregroundest"/>
+ <ColorAlias name="crossfade line" alias="neutral:backgroundest"/>
+ <ColorAlias name="edit point" alias="alert:blue"/>
+ <ColorAlias name="entered automation line" alias="widget:orange"/>
+ <ColorAlias name="entered gain line" alias="widget:orange"/>
+ <ColorAlias name="entered marker" alias="widget:orange"/>
+ <ColorAlias name="fader outline" alias="neutral:backgroundest"/>
+ <ColorAlias name="feedback alert: alt active" alias="alert:ruddy"/>
+ <ColorAlias name="feedback alert: fill" alias="widget:bg"/>
+ <ColorAlias name="feedback alert: fill active" alias="alert:red"/>
+ <ColorAlias name="feedback alert: led active" alias="alert:red"/>
+ <ColorAlias name="foldback knob" alias="widget:bg"/>
+ <ColorAlias name="foldback knob: arc end" alias="widget:blue"/>
+ <ColorAlias name="foldback knob: arc start" alias="widget:blue"/>
+ <ColorAlias name="foldback knob: fill" alias="widget:bg"/>
+ <ColorAlias name="foldback postfader: fill" alias="widget:blue darker"/>
+ <ColorAlias name="foldback postfader: fill active" alias="widget:blue darker"/>
+ <ColorAlias name="foldback postfader: led active" alias="alert:green"/>
+ <ColorAlias name="foldback prefader: fill" alias="widget:blue darker"/>
+ <ColorAlias name="foldback prefader: fill active" alias="widget:blue darker"/>
+ <ColorAlias name="foldback prefader: led active" alias="alert:green"/>
+ <ColorAlias name="frame handle" alias="theme:bg1"/>
+ <ColorAlias name="gain line" alias="alert:green"/>
+ <ColorAlias name="gain line inactive" alias="theme:bg1"/>
+ <ColorAlias name="generic button: fill" alias="widget:bg"/>
+ <ColorAlias name="generic button: fill active" alias="alert:red"/>
+ <ColorAlias name="generic button: led active" alias="alert:green"/>
+ <ColorAlias name="generic button: outline" alias="neutral:backgroundest"/>
+ <ColorAlias name="ghost track base" alias="neutral:background2"/>
+ <ColorAlias name="ghost track midi outline" alias="neutral:backgroundest"/>
+ <ColorAlias name="ghost track wave" alias="neutral:background"/>
+ <ColorAlias name="ghost track wave clip" alias="neutral:background"/>
+ <ColorAlias name="ghost track wave fill" alias="neutral:foregroundest"/>
+ <ColorAlias name="ghost track zero line" alias="neutral:foreground2"/>
+ <ColorAlias name="grid line major" alias="neutral:backgroundest"/>
+ <ColorAlias name="grid line micro" alias="neutral:backgroundest"/>
+ <ColorAlias name="grid line minor" alias="neutral:backgroundest"/>
+ <ColorAlias name="gtk_arm" alias="alert:red"/>
+ <ColorAlias name="gtk_audio_bus" alias="widget:blue darker"/>
+ <ColorAlias name="gtk_audio_track" alias="theme:bg1"/>
+ <ColorAlias name="gtk_automation_track_header" alias="theme:bg"/>
+ <ColorAlias name="gtk_background" alias="theme:bg"/>
+ <ColorAlias name="gtk_bases" alias="theme:bg2"/>
+ <ColorAlias name="gtk_bg_selected" alias="theme:contrasting selection"/>
+ <ColorAlias name="gtk_bg_tooltip" alias="neutral:backgroundest"/>
+ <ColorAlias name="gtk_bright_color" alias="widget:blue"/>
+ <ColorAlias name="gtk_bright_indicator" alias="alert:red"/>
+ <ColorAlias name="gtk_clip_indicator" alias="alert:red"/>
+ <ColorAlias name="gtk_contrasting_indicator" alias="alert:green"/>
+ <ColorAlias name="gtk_control_master" alias="theme:bg1"/>
+ <ColorAlias name="gtk_control_text" alias="neutral:foreground"/>
+ <ColorAlias name="gtk_control_text2" alias="alert:ruddy"/>
+ <ColorAlias name="gtk_darkest" alias="theme:bg2"/>
+ <ColorAlias name="gtk_entry_cursor" alias="alert:red"/>
+ <ColorAlias name="gtk_fg_selected" alias="theme:bg2"/>
+ <ColorAlias name="gtk_fg_tooltip" alias="neutral:foreground"/>
+ <ColorAlias name="gtk_foldback_bg" alias="theme:bg1"/>
+ <ColorAlias name="gtk_foreground" alias="neutral:foreground"/>
+ <ColorAlias name="gtk_light_text_on_dark" alias="neutral:foreground2"/>
+ <ColorAlias name="gtk_lightest" alias="neutral:foregroundest"/>
+ <ColorAlias name="gtk_midi_channel_selector" alias="widget:blue"/>
+ <ColorAlias name="gtk_midi_track" alias="widget:green darker"/>
+ <ColorAlias name="gtk_monitor" alias="alert:orange"/>
+ <ColorAlias name="gtk_mono" alias="neutral:foreground"/>
+ <ColorAlias name="gtk_mute" alias="alert:yellow"/>
+ <ColorAlias name="gtk_not_so_bright_indicator" alias="theme:contrasting"/>
+ <ColorAlias name="gtk_processor_fader" alias="widget:gray"/>
+ <ColorAlias name="gtk_processor_fader_frame" alias="neutral:midground"/>
+ <ColorAlias name="gtk_processor_frame_selected" alias="theme:contrasting"/>
+ <ColorAlias name="gtk_processor_postfader" alias="widget:green"/>
+ <ColorAlias name="gtk_processor_postfader_frame" alias="widget:green"/>
+ <ColorAlias name="gtk_processor_prefader" alias="widget:ruddy"/>
+ <ColorAlias name="gtk_processor_prefader_frame" alias="widget:ruddy"/>
+ <ColorAlias name="gtk_send_bg" alias="theme:bg1"/>
+ <ColorAlias name="gtk_send_fg" alias="widget:blue"/>
+ <ColorAlias name="gtk_solo" alias="alert:green"/>
+ <ColorAlias name="gtk_somewhat_bright_indicator" alias="theme:contrasting alt"/>
+ <ColorAlias name="gtk_texts" alias="neutral:foreground"/>
+ <ColorAlias name="gtk_track_header_inactive" alias="theme:bg"/>
+ <ColorAlias name="gtk_track_header_selected" alias="widget:ruddy"/>
+ <ColorAlias name="image track" alias="neutral:foreground2"/>
+ <ColorAlias name="inactive crossfade" alias="theme:contrasting"/>
+ <ColorAlias name="inactive fade handle" alias="neutral:foreground2"/>
+ <ColorAlias name="inactive group tab" alias="theme:bg"/>
+ <ColorAlias name="invert button: fill" alias="widget:bg"/>
+ <ColorAlias name="invert button: fill active" alias="alert:blue"/>
+ <ColorAlias name="invert button: led active" alias="alert:green"/>
+ <ColorAlias name="latency button: fill" alias="widget:bg"/>
+ <ColorAlias name="latency button: fill active" alias="alert:ruddy"/>
+ <ColorAlias name="latency button: led active" alias="alert:ruddy"/>
+ <ColorAlias name="location arrangement marker" alias="theme:contrasting alt"/>
+ <ColorAlias name="location cd marker" alias="theme:contrasting less"/>
+ <ColorAlias name="location loop" alias="alert:blue"/>
+ <ColorAlias name="location marker" alias="theme:contrasting less"/>
+ <ColorAlias name="location punch" alias="widget:ruddy"/>
+ <ColorAlias name="location range" alias="theme:contrasting less"/>
+ <ColorAlias name="lock button: fill active" alias="widget:bg"/>
+ <ColorAlias name="lock button: led active" alias="alert:red"/>
+ <ColorAlias name="lua action button: fill" alias="widget:bg"/>
+ <ColorAlias name="mapping bar" alias="neutral:background2"/>
+ <ColorAlias name="marker bar" alias="neutral:background2"/>
+ <ColorAlias name="marker bar separator" alias="theme:bg2"/>
+ <ColorAlias name="marker drag line" alias="theme:contrasting clock"/>
+ <ColorAlias name="marker label" alias="neutral:backgroundest"/>
+ <ColorAlias name="marker track" alias="neutral:foreground2"/>
+ <ColorAlias name="master monitor section button active: fill" alias="widget:ruddy"/>
+ <ColorAlias name="master monitor section button active: fill active" alias="alert:yellow"/>
+ <ColorAlias name="master monitor section button normal: fill active" alias="widget:bg"/>
+ <ColorAlias name="measure line bar" alias="neutral:foregroundest"/>
+ <ColorAlias name="measure line beat" alias="widget:blue"/>
+ <ColorAlias name="meter background bottom" alias="neutral:background2"/>
+ <ColorAlias name="meter background top" alias="theme:bg"/>
+ <ColorAlias name="meter bar" alias="theme:bg1"/>
+ <ColorAlias name="meter color BBC" alias="alert:orange"/>
+ <ColorAlias name="meter marker" alias="widget:orange"/>
+ <ColorAlias name="meter marker music" alias="widget:orange"/>
+ <ColorAlias name="meter outline" alias="neutral:backgroundest"/>
+ <ColorAlias name="meterbridge label: fill" alias="theme:bg"/>
+ <ColorAlias name="meterbridge label: fill active" alias="neutral:background2"/>
+ <ColorAlias name="meterbridge label: led" alias="alert:red"/>
+ <ColorAlias name="meterbridge label: led active" alias="alert:red"/>
+ <ColorAlias name="meterbridge peakindicator: fill" alias="widget:bg"/>
+ <ColorAlias name="meterbridge peakindicator: fill active" alias="alert:red"/>
+ <ColorAlias name="meterbridge peakindicator: led" alias="alert:red"/>
+ <ColorAlias name="meterbridge peakindicator: led active" alias="alert:red"/>
+ <ColorAlias name="meterbridge peaklabel" alias="alert:red"/>
+ <ColorAlias name="meterstrip dpm bg" alias="theme:bg2"/>
+ <ColorAlias name="meterstrip dpm fg" alias="neutral:foreground2"/>
+ <ColorAlias name="meterstrip ppm bg" alias="theme:bg2"/>
+ <ColorAlias name="meterstrip ppm fg" alias="neutral:foreground2"/>
+ <ColorAlias name="meterstrip vu bg" alias="widget:yellow"/>
+ <ColorAlias name="meterstrip vu fg" alias="neutral:backgroundest"/>
+ <ColorAlias name="midi automation track fill" alias="widget:green darker"/>
+ <ColorAlias name="midi bus base" alias="neutral:backgroundest"/>
+ <ColorAlias name="midi device: fill" alias="widget:bg"/>
+ <ColorAlias name="midi device: fill active" alias="theme:bg"/>
+ <ColorAlias name="midi device: led active" alias="alert:green"/>
+ <ColorAlias name="midi input button: fill active" alias="alert:green"/>
+ <ColorAlias name="midi input button: led active" alias="alert:red"/>
+ <ColorAlias name="midi meter color0" alias="midi meter 52"/>
+ <ColorAlias name="midi meter color1" alias="midi meter 53"/>
+ <ColorAlias name="midi meter color2" alias="midi meter 53"/>
+ <ColorAlias name="midi meter color3" alias="midi meter 54"/>
+ <ColorAlias name="midi meter color4" alias="midi meter 54"/>
+ <ColorAlias name="midi meter color5" alias="midi meter 55"/>
+ <ColorAlias name="midi meter color6" alias="midi meter 55"/>
+ <ColorAlias name="midi meter color7" alias="midi meter 56"/>
+ <ColorAlias name="midi meter color8" alias="midi meter 56"/>
+ <ColorAlias name="midi meter color9" alias="midi meter 56"/>
+ <ColorAlias name="midi note inactive channel" alias="neutral:backgroundest"/>
+ <ColorAlias name="midi note max" alias="alert:green"/>
+ <ColorAlias name="midi note mid" alias="alert:yellow"/>
+ <ColorAlias name="midi note min" alias="alert:orange"/>
+ <ColorAlias name="midi note selected" alias="widget:ruddy"/>
+ <ColorAlias name="midi note selected outline" alias="alert:red"/>
+ <ColorAlias name="midi note velocity text" alias="theme:contrasting"/>
+ <ColorAlias name="midi patch change fill" alias="theme:contrasting selection"/>
+ <ColorAlias name="midi patch change outline" alias="neutral:foreground"/>
+ <ColorAlias name="midi select rect outline" alias="alert:red"/>
+ <ColorAlias name="midi sysex fill" alias="theme:contrasting"/>
+ <ColorAlias name="midi sysex outline" alias="theme:contrasting alt"/>
+ <ColorAlias name="midi track base" alias="widget:green darker"/>
+ <ColorAlias name="mixer strip button: fill" alias="widget:bg"/>
+ <ColorAlias name="mixer strip button: fill active" alias="alert:orange"/>
+ <ColorAlias name="mixer strip button: led active" alias="alert:green"/>
+ <ColorAlias name="mixer strip name button: fill active" alias="theme:bg2"/>
+ <ColorAlias name="mixer strip name button: led active" alias="alert:green"/>
+ <ColorAlias name="monitor button: fill" alias="widget:bg"/>
+ <ColorAlias name="monitor button: fill active" alias="alert:orange"/>
+ <ColorAlias name="monitor button: led active" alias="alert:ruddy"/>
+ <ColorAlias name="monitor section button: fill" alias="widget:bg"/>
+ <ColorAlias name="monitor section dim: fill" alias="widget:bg"/>
+ <ColorAlias name="monitor section dim: fill active" alias="alert:orange"/>
+ <ColorAlias name="monitor section dim: led active" alias="alert:green"/>
+ <ColorAlias name="monitor section knob" alias="widget:bg"/>
+ <ColorAlias name="monitor section knob: arc end" alias="widget:blue"/>
+ <ColorAlias name="monitor section knob: arc start" alias="widget:blue"/>
+ <ColorAlias name="monitor section mono: fill" alias="widget:bg"/>
+ <ColorAlias name="monitor section mono: fill active" alias="alert:blue"/>
+ <ColorAlias name="monitor section mono: led active" alias="alert:green"/>
+ <ColorAlias name="monitor section processors present: fill" alias="alert:orange"/>
+ <ColorAlias name="monitor section processors toggle: fill" alias="theme:bg"/>
+ <ColorAlias name="monitor section processors toggle: fill active" alias="theme:bg"/>
+ <ColorAlias name="monitor section solo model: fill" alias="widget:bg"/>
+ <ColorAlias name="monitor section solo model: fill active" alias="theme:bg"/>
+ <ColorAlias name="monitor section solo model: led active" alias="alert:green"/>
+ <ColorAlias name="monitor section solo model:punch button: fill active fill" alias="widget:bg"/>
+ <ColorAlias name="monitor section solo option: fill" alias="widget:bg"/>
+ <ColorAlias name="monitor section solo option: fill active" alias="theme:bg"/>
+ <ColorAlias name="monitor section solo option: led active" alias="alert:green"/>
+ <ColorAlias name="mono panner bg" alias="theme:bg2"/>
+ <ColorAlias name="mono panner fill" alias="widget:blue"/>
+ <ColorAlias name="mono panner outline" alias="theme:bg"/>
+ <ColorAlias name="mono panner position fill" alias="theme:contrasting less"/>
+ <ColorAlias name="mono panner position outline" alias="theme:bg"/>
+ <ColorAlias name="mono panner text" alias="neutral:backgroundest"/>
+ <ColorAlias name="mouse mode button: fill" alias="widget:bg"/>
+ <ColorAlias name="mouse mode button: fill active" alias="alert:greenish"/>
+ <ColorAlias name="mouse mode button: led active" alias="alert:green"/>
+ <ColorAlias name="mute button: fill" alias="widget:bg"/>
+ <ColorAlias name="mute button: fill active" alias="alert:yellow"/>
+ <ColorAlias name="mute button: led active" alias="alert:yellow"/>
+ <ColorAlias name="name highlight fill" alias="alert:blue"/>
+ <ColorAlias name="name highlight outline" alias="theme:bg1"/>
+ <ColorAlias name="nudge button: fill" alias="widget:bg"/>
+ <ColorAlias name="nudge button: fill active" alias="widget:bg"/>
+ <ColorAlias name="nudge button: led active" alias="alert:green"/>
+ <ColorAlias name="nudge clock: background" alias="theme:bg2"/>
+ <ColorAlias name="nudge clock: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="nudge clock: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="nudge clock: text" alias="theme:contrasting clock"/>
+ <ColorAlias name="page switch button: fill" alias="widget:bg"/>
+ <ColorAlias name="page switch button: fill active" alias="alert:green"/>
+ <ColorAlias name="pan knob" alias="widget:bg"/>
+ <ColorAlias name="pan knob: arc end" alias="widget:orange"/>
+ <ColorAlias name="pan knob: arc start" alias="widget:orange"/>
+ <ColorAlias name="patch change button unnamed: fill" alias="neutral:background2"/>
+ <ColorAlias name="patch change button unnamed: fill active" alias="widget:blue"/>
+ <ColorAlias name="patch change button: fill" alias="widget:bg"/>
+ <ColorAlias name="patch change button: fill acpunch button: fill activetive" alias="widget:blue"/>
+ <ColorAlias name="patch change button: fill active" alias="widget:blue"/>
+ <ColorAlias name="piano key black" alias="neutral:background2"/>
+ <ColorAlias name="piano key highlight" alias="alert:ruddy"/>
+ <ColorAlias name="piano key white" alias="neutral:foreground2"/>
+ <ColorAlias name="piano roll black" alias="theme:contrasting selection"/>
+ <ColorAlias name="piano roll black outline" alias="neutral:foreground2"/>
+ <ColorAlias name="piano roll white" alias="neutral:foreground2"/>
+ <ColorAlias name="pinrouting custom: led active" alias="alert:ruddy"/>
+ <ColorAlias name="pinrouting sidechain: led active" alias="alert:green"/>
+ <ColorAlias name="play head" alias="theme:contrasting"/>
+ <ColorAlias name="plugin automation state button: fill active" alias="alert:orange"/>
+ <ColorAlias name="plugin bypass button: led active" alias="alert:red"/>
+ <ColorAlias name="pluginlist filter button: fill active" alias="widget:bg"/>
+ <ColorAlias name="pluginlist hide button: led active" alias="alert:cyan"/>
+ <ColorAlias name="pluginlist radio button: led active" alias="alert:cyan"/>
+ <ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
+ <ColorAlias name="pluginui toggle: fill active" alias="widget:blue"/>
+ <ColorAlias name="preference highlight" alias="alert:yellow"/>
+ <ColorAlias name="processor automation line" alias="alert:green"/>
+ <ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
+ <ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
+ <ColorAlias name="processor control button: fill" alias="neutral:background"/>
+ <ColorAlias name="processor control button: fill active" alias="neutral:background2"/>
+ <ColorAlias name="processor control button: led active" alias="widget:blue"/>
+ <ColorAlias name="processor control knob" alias="theme:bg"/>
+ <ColorAlias name="processor control knob: arc end" alias="widget:blue"/>
+ <ColorAlias name="processor control knob: arc start" alias="widget:blue"/>
+ <ColorAlias name="processor fader: fill" alias="widget:blue"/>
+ <ColorAlias name="processor fader: fill active" alias="widget:blue"/>
+ <ColorAlias name="processor fader: led active" alias="alert:green"/>
+ <ColorAlias name="processor postfader: fill" alias="widget:green"/>
+ <ColorAlias name="processor postfader: fill active" alias="widget:green"/>
+ <ColorAlias name="processor postfader: led active" alias="alert:green"/>
+ <ColorAlias name="processor prefader: fill" alias="widget:ruddy"/>
+ <ColorAlias name="processor prefader: fill active" alias="widget:ruddy"/>
+ <ColorAlias name="processor prefader: led active" alias="alert:green"/>
+ <ColorAlias name="processor sidechain: fill" alias="alert:orange"/>
+ <ColorAlias name="processor sidechain: led active" alias="alert:green"/>
+ <ColorAlias name="processor stub: fill" alias="neutral:background2"/>
+ <ColorAlias name="processor stub: fill active" alias="neutral:background2"/>
+ <ColorAlias name="punch button: fill" alias="widget:bg"/>
+ <ColorAlias name="punch button: fill active" alias="alert:ruddy"/>
+ <ColorAlias name="punch button: led active" alias="alert:red"/>
+ <ColorAlias name="punch clock: background" alias="theme:bg2"/>
+ <ColorAlias name="punch clock: cursor" alias="alert:ruddy"/>
+ <ColorAlias name="punch clock: edited text" alias="alert:ruddy"/>
+ <ColorAlias name="punch clock: text" alias="theme:contrasting clock"/>
+ <ColorAlias name="punch line" alias="alert:ruddy"/>
+ <ColorAlias name="range drag bar rect" alias="neutral:midground"/>
+ <ColorAlias name="range drag rect" alias="alert:ruddy"/>
+ <ColorAlias name="range marker bar" alias="neutral:background2"/>
+ <ColorAlias name="record enable button: fill active" alias="alert:ruddy"/>
+ <ColorAlias name="record enable button: led active" alias="alert:red"/>
+ <ColorAlias name="recording note" alias="neutral:foregroundest"/>
+ <ColorAlias name="recording rect" alias="alert:ruddy"/>
+ <ColorAlias name="recording waveform fill" alias="neutral:foregroundest"/>
+ <ColorAlias name="recording waveform outline" alias="neutral:background2"/>
+ <ColorAlias name="region automation line" alias="alert:blue"/>
+ <ColorAlias name="region list automatic" alias="theme:contrasting less"/>
+ <ColorAlias name="region list missing source" alias="alert:red"/>
+ <ColorAlias name="region list whole file" alias="neutral:foreground"/>
+ <ColorAlias name="region mark" alias="theme:contrasting alt"/>
+ <ColorAlias name="route button: fill" alias="widget:bg"/>
+ <ColorAlias name="route button: fill active" alias="theme:bg2"/>
+ <ColorAlias name="route button: led active" alias="alert:green"/>
+ <ColorAlias name="route rec button: led active" alias="alert:red"/>
+ <ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
+ <ColorAlias name="rude audition: fill" alias="widget:bg"/>
+ <ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>
+ <ColorAlias name="rude audition: led active" alias="alert:red"/>
+ <ColorAlias name="rude isolate: fill" alias="widget:bg"/>
+ <ColorAlias name="rude isolate: fill active" alias="theme:contrasting alt"/>
+ <ColorAlias name="rude isolate: led active" alias="alert:red"/>
+ <ColorAlias name="rude solo: fill" alias="widget:bg"/>
+ <ColorAlias name="rude solo: fill active" alias="alert:ruddy"/>
+ <ColorAlias name="rude solo: led active" alias="alert:red"/>
+ <ColorAlias name="ruler base" alias="theme:bg2"/>
+ <ColorAlias name="ruler text" alias="neutral:midground"/>
+ <ColorAlias name="scroomer" alias="alert:red"/>
+ <ColorAlias name="secondary clock: background" alias="theme:bg2"/>
+ <ColorAlias name="secondary clock: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="secondary clock: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="secondary clock: text" alias="theme:contrasting clock"/>
+ <ColorAlias name="secondary delta clock: background" alias="theme:bg2"/>
+ <ColorAlias name="secondary delta clock: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="secondary delta clock: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="secondary delta clock: text" alias="theme:contrasting alt"/>
+ <ColorAlias name="selected midi note frame" alias="alert:ruddy"/>
+ <ColorAlias name="selected region base" alias="alert:ruddy"/>
+ <ColorAlias name="selected time axis frame" alias="alert:ruddy"/>
+ <ColorAlias name="selected waveform fill" alias="alert:orange"/>
+ <ColorAlias name="selected waveform outline" alias="theme:bg2"/>
+ <ColorAlias name="selection" alias="alert:red"/>
+ <ColorAlias name="selection clock: background" alias="theme:bg2"/>
+ <ColorAlias name="selection clock: cursor" alias="alert:ruddy"/>
+ <ColorAlias name="selection clock: edited text" alias="alert:ruddy"/>
+ <ColorAlias name="selection clock: text" alias="theme:contrasting clock"/>
+ <ColorAlias name="selection rect" alias="alert:red"/>
+ <ColorAlias name="send alert button: fill" alias="widget:bg"/>
+ <ColorAlias name="send alert button: fill active" alias="alert:cyan"/>
+ <ColorAlias name="send alert button: led active" alias="alert:red"/>
+ <ColorAlias name="send bg" alias="neutral:backgroundest"/>
+ <ColorAlias name="send pan" alias="theme:contrasting alt"/>
+ <ColorAlias name="shuttle" alias="widget:bg"/>
+ <ColorAlias name="shuttle bg" alias="neutral:backgroundest"/>
+ <ColorAlias name="silence" alias="theme:contrasting alt"/>
+ <ColorAlias name="silence text" alias="neutral:foreground"/>
+ <ColorAlias name="solo button: fill" alias="widget:bg"/>
+ <ColorAlias name="solo button: fill active" alias="alert:green"/>
+ <ColorAlias name="solo button: led active" alias="alert:green"/>
+ <ColorAlias name="solo isolate: fill" alias="widget:bg"/>
+ <ColorAlias name="solo isolate: fill active" alias="widget:bg"/>
+ <ColorAlias name="solo isolate: led active" alias="alert:ruddy"/>
+ <ColorAlias name="solo safe: fill" alias="widget:bg"/>
+ <ColorAlias name="solo safe: fill active" alias="widget:bg"/>
+ <ColorAlias name="solo safe: led active" alias="alert:ruddy"/>
+ <ColorAlias name="stereo panner bg" alias="theme:bg2"/>
+ <ColorAlias name="stereo panner fill" alias="widget:blue"/>
+ <ColorAlias name="stereo panner inverted bg" alias="widget:blue darker"/>
+ <ColorAlias name="stereo panner inverted fill" alias="theme:contrasting less"/>
+ <ColorAlias name="stereo panner inverted outline" alias="alert:ruddy"/>
+ <ColorAlias name="stereo panner inverted text" alias="neutral:backgroundest"/>
+ <ColorAlias name="stereo panner mono bg" alias="theme:bg2"/>
+ <ColorAlias name="stereo panner mono fill" alias="theme:bg"/>
+ <ColorAlias name="stereo panner mono outline" alias="alert:orange"/>
+ <ColorAlias name="stereo panner mono text" alias="neutral:backgroundest"/>
+ <ColorAlias name="stereo panner outline" alias="theme:bg"/>
+ <ColorAlias name="stereo panner rule" alias="theme:bg"/>
+ <ColorAlias name="stereo panner text" alias="neutral:backgroundest"/>
+ <ColorAlias name="stretch clock: background" alias="theme:bg2"/>
+ <ColorAlias name="stretch clock: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="stretch clock: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="stretch clock: text" alias="theme:contrasting clock"/>
+ <ColorAlias name="sync mark" alias="theme:contrasting clock"/>
+ <ColorAlias name="tempo bar" alias="neutral:background2"/>
+ <ColorAlias name="tempo curve" alias="widget:blue"/>
+ <ColorAlias name="tempo marker" alias="widget:orange"/>
+ <ColorAlias name="tempo marker music" alias="widget:orange"/>
+ <ColorAlias name="time axis frame" alias="neutral:backgroundest"/>
+ <ColorAlias name="time axis view item base" alias="widget:gray"/>
+ <ColorAlias name="time stretch fill" alias="theme:contrasting less"/>
+ <ColorAlias name="time stretch outline" alias="widget:gray"/>
+ <ColorAlias name="tracknumber label: fill" alias="theme:bg"/>
+ <ColorAlias name="tracknumber label: fill active" alias="neutral:background2"/>
+ <ColorAlias name="tracknumber label: led active" alias="alert:red"/>
+ <ColorAlias name="transport active option button: fill" alias="widget:bg"/>
+ <ColorAlias name="transport active option button: fill active" alias="alert:green"/>
+ <ColorAlias name="transport active option button: led active" alias="alert:green"/>
+ <ColorAlias name="transport button: fill" alias="widget:bg"/>
+ <ColorAlias name="transport button: fill active" alias="alert:green"/>
+ <ColorAlias name="transport button: led active" alias="alert:green"/>
+ <ColorAlias name="transport clock: background" alias="theme:bg2"/>
+ <ColorAlias name="transport clock: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="transport clock: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="transport clock: text" alias="theme:contrasting clock"/>
+ <ColorAlias name="transport delta clock: background" alias="theme:bg2"/>
+ <ColorAlias name="transport delta clock: cursor" alias="theme:contrasting alt"/>
+ <ColorAlias name="transport delta clock: edited text" alias="theme:contrasting alt"/>
+ <ColorAlias name="transport delta clock: text" alias="theme:contrasting alt"/>
+ <ColorAlias name="transport drag rect" alias="neutral:midground"/>
+ <ColorAlias name="transport loop rect" alias="widget:blue"/>
+ <ColorAlias name="transport marker bar" alias="neutral:background2"/>
+ <ColorAlias name="transport option button: fill" alias="widget:bg"/>
+ <ColorAlias name="transport option button: fill active" alias="widget:bg"/>
+ <ColorAlias name="transport option button: led active" alias="alert:green"/>
+ <ColorAlias name="transport punch rect" alias="widget:ruddy"/>
+ <ColorAlias name="transport recenable button: fill" alias="widget:bg"/>
+ <ColorAlias name="transport recenable button: fill active" alias="alert:ruddy"/>
+ <ColorAlias name="transport recenable button: led active" alias="alert:red"/>
+ <ColorAlias name="trim handle" alias="alert:blue"/>
+ <ColorAlias name="trim handle locked" alias="alert:ruddy"/>
+ <ColorAlias name="trim knob" alias="widget:bg"/>
+ <ColorAlias name="trim knob: arc end" alias="widget:blue"/>
+ <ColorAlias name="trim knob: arc start" alias="widget:blue"/>
+ <ColorAlias name="vari button: fill" alias="widget:bg"/>
+ <ColorAlias name="vari button: fill active" alias="alert:ruddy"/>
+ <ColorAlias name="vca assign button: fill" alias="widget:bg"/>
+ <ColorAlias name="verbose canvas cursor" alias="theme:contrasting clock"/>
+ <ColorAlias name="video timeline bar" alias="neutral:background2"/>
+ <ColorAlias name="waveform fill" alias="neutral:background"/>
+ <ColorAlias name="waveform outline" alias="neutral:backgroundest"/>
+ <ColorAlias name="zero line" alias="neutral:background"/>
+ <ColorAlias name="zoom button: fill" alias="widget:bg"/>
+ <ColorAlias name="zoom button: fill active" alias="alert:green"/>
+ <ColorAlias name="zoom button: led active" alias="alert:green"/>
+ </ColorAliases>
+ <Modifiers>
+ <Modifier name="audio bus base" modifier="= alpha:0.29734219269102991"/>
+ <Modifier name="audio track base" modifier="= alpha:0.30066445182724255"/>
+ <Modifier name="automation line fill" modifier="= alpha:0.29999999999999999"/>
+ <Modifier name="automation track fill" modifier="= alpha:0.29999999999999999"/>
+ <Modifier name="covered region base" modifier="= alpha:0.69999999999999996"/>
+ <Modifier name="crossfade alpha" modifier="= alpha:0.18029999999999999"/>
+ <Modifier name="dragging region" modifier="= alpha:0.5"/>
+ <Modifier name="editable region" modifier="= alpha:0.25"/>
+ <Modifier name="gain line inactive" modifier="= alpha:0.77249999999999996"/>
+ <Modifier name="ghost track base" modifier="= alpha:0.64078199999999996"/>
+ <Modifier name="ghost track midi fill" modifier="= alpha:0.29999999999999999"/>
+ <Modifier name="grid line" modifier="= alpha:1"/>
+ <Modifier name="inactive crossfade" modifier="= alpha:0.46660000000000001"/>
+ <Modifier name="loop rectangle" modifier="= alpha:0.5"/>
+ <Modifier name="marker bar" modifier="= alpha:0.5"/>
+ <Modifier name="midi note" modifier="= alpha:0.80000000000000004"/>
+ <Modifier name="midi note velocity text" modifier="= alpha:0.46660000000000001"/>
+ <Modifier name="midi patch change fill" modifier="= alpha:0.62739999999999996"/>
+ <Modifier name="midi sysex fill" modifier="= alpha:0.46660000000000001"/>
+ <Modifier name="midi track base" modifier="= alpha:0.29999999999999999"/>
+ <Modifier name="mono panner position fill" modifier="= alpha:0.80000000000000004"/>
+ <Modifier name="panner fill" modifier="= alpha:0.78405315614617943"/>
+ <Modifier name="piano roll black" modifier="= alpha:0.20000000000000001"/>
+ <Modifier name="piano roll white" modifier="= alpha:0.20000000000000001"/>
+ <Modifier name="recording rect" modifier="= alpha:0.25538971807628524"/>
+ <Modifier name="region alpha" modifier="= alpha:1"/>
+ <Modifier name="region mark" modifier="= alpha:1"/>
+ <Modifier name="scroomer alpha" modifier="= alpha:0.25"/>
+ <Modifier name="selected midi note" modifier="= alpha:0.75290000000000001"/>
+ <Modifier name="selection rect" modifier="= alpha:0.1111111111111111"/>
+ <Modifier name="silence" modifier="= alpha:0.47839999999999999"/>
+ <Modifier name="stereo panner inverted" modifier="= alpha:0.78820000000000001"/>
+ <Modifier name="stereo panner inverted bg" modifier="= alpha:0.75290000000000001"/>
+ <Modifier name="time axis view item base" modifier="= alpha:0.69999999999999996"/>
+ <Modifier name="time stretch fill" modifier="= alpha:0.5"/>
+ <Modifier name="transparent region base" modifier="= alpha:0.81727574750830567"/>
+ <Modifier name="verbose canvas cursor" modifier="= alpha:0.46660000000000001"/>
+ </Modifiers>
+</Ardour>
diff --git a/.config/browsers/home.html b/.config/browsers/home.html
new file mode 100644
index 0000000..780bfb3
--- /dev/null
+++ b/.config/browsers/home.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style>
+body {
+ width: 100%;
+ height: 100%;
+ padding: 0em;
+ margin: 0em;
+ font-size: 1.1em;
+ font-family: sans-serif;
+ color: #ebdbb2;
+ background-color: #1d2021;
+}
+.page_title {
+ background-color: #282828;
+ margin-left: 40%;
+ margin-right: 40%;
+ margin-top: 1em;
+ margin-bottom: 1em;
+ padding: 0em;
+ color: #ebddb2;
+ border: 2px solid black;
+ border-color: black;
+ justify-content: center;
+ text-align: center;
+ /* width: auto; */
+}
+.page_title h1 {
+ padding: 0em;
+ margin: .2em;
+}
+.page_title:hover {
+ border-color: #ebddb2;
+}
+.bookmarks_div {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ text-align: center;
+ margin-left: 10%;
+ margin-right: 10%;
+ /* width: 60%; */
+}
+@media only screen and (max-width: 960px) {
+ .bookmarks_div {
+ flex-direction: column;
+ width: 60%;
+ }
+ .bookmarks_div > .bookmark_set {
+ width: auto;
+ margin: 1em 0em;
+ }
+}
+.bookmark_set {
+ padding: 1em;
+ background-color: #282828;
+ border: 2px solid black;
+ width: 25%;
+ height: 100%;
+ margin: 0em .5em;
+}
+.bookmark_links {
+ overflow-y: scroll;
+ height: 95%;
+ vertical-align: top;
+}
+.bookmark_title {
+ font-size: 1.2em;
+ font-weight: 600;
+ color: #ebddb2;
+ margin: 0em 0em .35em 0em;
+}
+.bookmark_set a {
+ text-decoration: none;
+ color: #928374;
+ display: block;
+ margin: .4em 0em;
+}
+#joetown:hover {
+ border-color: #cc241d;
+}
+#joetown .bookmark_title {
+ color: #cc241d;
+}
+#joetown a:hover {
+ color: #fb4934;
+}
+#sites:hover {
+ border-color: #98971a;
+}
+#sites .bookmark_title {
+ color: #98971a;
+}
+#sites a:hover {
+ color: #b8bb26;
+}
+#fun:hover {
+ border-color: #d79921;
+}
+#fun .bookmark_title {
+ color: #d79921;
+}
+#fun a:hover {
+ color: #fabd2f;
+}
+#workwork:hover {
+ border-color: #458588;
+}
+#workwork .bookmark_title {
+ color: #458588;
+}
+#workwork a:hover {
+ color: #83a598;
+}
+ </style>
+ <title>joe's homepage</title>
+ <meta charset="UTF-8">
+ </head>
+ <body>
+ <div class="page_title"><h1>hey joe</h1></div>
+ <div class="bookmarks_div">
+ <div class="bookmark_set" id="joetown">
+ <div class="bookmark_title">joe town</div>
+ <div class="bookmark_links">
+ <a href="https://jozan.org/">joe</a>
+ <a href="https://gitjoe.xyz/">gitjoe</a>
+ <a href="https://zhinu.jozan.org/">zhinu</a>
+ <a href="http://graf.joe.town/">graf</a>
+ <a href="http://10.1.1.6/">helios</a>
+ <a href="http://10.2.2.5/">vega</a>
+ <a href="http://127.0.0.1:9091/">ceres</a>
+ <a href="https://my.vultr.com/">vultr</a>
+ <a href="https://epik.com/">epik</a>
+ </div>
+ </div>
+ <div class="bookmark_set" id="sites">
+ <div class="bookmark_title">sites</div>
+ <div class="bookmark_links">
+ <a href="https://perplexity.ai/">perp</a>
+ <a href="https://chatgpt.com/">gpt</a>
+ <a href="https://crontab.guru/">cron</a>
+ </div>
+ </div>
+ <div class="bookmark_set" id="fun">
+ <div class="bookmark_title">fun</div>
+ <div class="bookmark_links">
+ <a href="https://protondb.com/">protondb</a>
+ <a href="https://diablo2.io/">diablo2.io</a>
+ <a href="https://www.icy-veins.com/">icy veins</a>
+ <a href="https://d2-holy-grail.herokuapp.com/">d2 holy grail</a>
+ <a href="https://d4builds.gg/builds/8d39eed7-7344-48a7-95f0-56ff30119abb/?var=0">d4 druid</a>
+ <a href="https://lastminuteengineers.com/wemos-d1-mini-pinout-reference/">esp8266 pinout</a>
+ <a href="https://www.espboards.dev/esp32/nodemcu-32s/">esp32 pinout</a>
+ </div>
+ </div>
+ <div class="bookmark_set" id="workwork">
+ <div class="bookmark_title">work work</div>
+ <div class="bookmark_links">
+ <a href="https://atlas.nuabee.fr/">atlas</a>
+ <a href="https://grafana.nuabee.fr/">grafana</a>
+ <a href="https://grafana.nuabee.fr/d/xfpJB9FGz/linux-servers">gr_linux_servers</a>
+ <a href="https://grafana.nuabee.fr/d/Mz11bd07k/vue-d-ensemble-machines-atelier">gr_restops</a>
+ <a href="https://grafana.nuabee.fr/d/WojOgXTmk/ops-alerts">gr_alertops</a>
+ <a href="https://support.nuabee.fr/">zammad</a>
+ <a href="https://gitlab.int.ysosecure.com/">git</a>
+ <a href="https://gitlab.int.ysosecure.com/ops/NuaProv/-/pipelines">pipes</a>
+ <a href="https://mbs.nuabee.com/">mbs</a>
+ <a href="https://doc.int.ysosecure.com/">doc</a>
+ <a href="https://kb.int.ysosecure.com/">kb</a>
+ <a href="http://hedgedoc.int.ysosecure.com/">hedgedoc</a>
+ <a href="https://share.nuabee.fr/">share</a>
+ <a href="https://windmill.nuabee.fr/">windmill</a>
+ <a href="https://aether.int.ysosecure.com/ui">aether</a>
+ <a href="https://gaia.int.ysosecure.com/">gaia</a>
+ <a href="https://orca1.int.ysosecure.com/certsrv">certsrv</a>
+ <a href="https://sentry.nuabee.fr/">sentry</a>
+ <a href="https://leek.int.ysosecure.com/">leek</a>
+ <a href="https://auth.otc.t-systems.com/">otc</a>
+ <a href="https://dashboard.nm.nuabee.fr/">netmaker</a>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/.config/catgirl/libera b/.config/catgirl/libera
new file mode 100644
index 0000000..34e3dca
--- /dev/null
+++ b/.config/catgirl/libera
@@ -0,0 +1,7 @@
+host = irc.eu.libera.chat
+nick = jozan
+cert = libera.pem
+sasl-external
+join = #linux,#freebsd,#archlinux,##chat,#c,#embedded,#neovim,#perl
+timestamp = %H:%M
+quiet
diff --git a/.config/catgirl/synirc b/.config/catgirl/synirc
new file mode 100644
index 0000000..dd5d3ee
--- /dev/null
+++ b/.config/catgirl/synirc
@@ -0,0 +1,8 @@
+host = irc.eu.synirc.net
+nick = jozan
+cert = synirc.pem
+sasl-external
+join = #sysadmin,#synirc
+timestamp = %H:%M
+mode = +x
+quiet
diff --git a/.config/cmus/rc b/.config/cmus/rc
new file mode 100644
index 0000000..b7dcde5
--- /dev/null
+++ b/.config/cmus/rc
@@ -0,0 +1,71 @@
+bind -f common > player-next
+bind -f common B player-next-album
+bind -f common space player-pause
+bind -f common < player-prev
+bind -f common Z player-prev-album
+bind -f common backspace player-stop
+
+bind -f common b seek -5
+bind -f common f seek +5
+bind -f common h seek -5
+bind -f common l seek +5
+bind -f common J seek -1m
+bind -f common K seek +1m
+
+bind -f common 9 vol -5%
+bind -f common 0 vol +5%
+bind -f common - vol -5%
+bind -f common + vol +5%
+bind -f common = vol +5%
+
+bind -f common x win-remove
+bind -f common D win-remove
+bind -f common d win-remove
+bind -f common delete win-remove
+
+bind -f common A win-add-Q
+bind -f common a win-add-q
+bind -f common e win-add-l
+
+bind -f common v win-toggle
+bind -f common enter win-toggle
+
+fset grunge=genre="Grunge"
+
+set set_term_title=false
+set stop_after_queue=true
+set status_display_program=/usr/local/bin/cmus-notify
+
+set color_error=red
+set color_info=default
+set color_separator=black
+set color_statusline_bg=black
+set color_statusline_fg=yellow
+set color_statusline_progress_bg=black
+set color_statusline_progress_fg=yellow
+set color_titleline_attr=bold
+set color_titleline_bg=black
+set color_titleline_fg=yellow
+set color_trackwin_album_attr=bold
+set color_trackwin_album_bg=default
+set color_trackwin_album_fg=default
+set color_win_bg=default
+set color_win_cur_attr=bold
+set color_win_cur=red
+set color_win_cur_sel_attr=bold
+set color_win_cur_sel_bg=black
+set color_win_cur_sel_fg=red
+set color_win_sel_attr=default
+set color_win_sel_bg=black
+set color_win_sel_fg=default
+set color_win_dir=lightblue
+set color_win_fg=gray
+set color_win_inactive_cur_sel_attr=default
+set color_win_inactive_cur_sel_bg=darkgray
+set color_win_inactive_cur_sel_fg=default
+set color_win_inactive_sel_attr=default
+set color_win_inactive_sel_bg=black
+set color_win_inactive_sel_fg=gray
+set color_win_title_attr=bold
+set color_win_title_bg=black
+set color_win_title_fg=yellow
diff --git a/.config/conky/artix-logo.png b/.config/conky/artix-logo.png
deleted file mode 100644
index aaac8da..0000000
--- a/.config/conky/artix-logo.png
+++ /dev/null
Binary files differ
diff --git a/.config/conky/conkyrc b/.config/conky/conkyrc
deleted file mode 100644
index abe8b24..0000000
--- a/.config/conky/conkyrc
+++ /dev/null
@@ -1,130 +0,0 @@
-# vim ft=sh
-
-conky.config = {
- alignment = 'left',
- background = false,
- own_window = true,
- own_window_class = 'Desktop',
- own_window_type = 'override',
- own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
- own_window_transparent = false,
- own_window_argb_visual = true,
- own_window_argb_value = 255,
- own_window_color = 'FF0000',
- double_buffer = true,
- use_spacer = 'left',
- use_xft = true,
- xinerama_head = 1,
- xftalpha = 1,
- font = 'Terminess Nerd Font:style=Regular:size=12',
- font2 = 'Terminess Nerd Font:style=Bold:size=12',
- font1 = 'ConkySymbols:size=20',
- template0 = '\\n',
- if_up_strictness = address,
- format_human_readable = true,
- update_interval = 1,
- uppercase = false,
- override_utf8_locale = true,
- stippled_borders = 0,
- border_width = 1,
- border_inner_margin = 8,
- border_outer_margin = 0,
- draw_borders = false,
- draw_outline = false,
- draw_shades = false,
- default_shade_color = AAAAAA,
- default_outline_color = AAAAAA,
- default_bar_height = 8,
- default_bar_width = 280,
- draw_graph_borders = true,
- show_graph_scale = false,
- show_graph_range = false,
- alignment = 'top_left',
- minimum_width = 390,
- maximum_width = 390,
- maximum_height = 1440,
- maximum_size = 390,
- gap_x = 1,
- gap_y = 1,
- net_avg_samples = 2,
- cpu_avg_samples = 4,
- short_units = false,
- pad_percents = 2,
- text_buffer_size = 256,
- out_to_console = false,
- out_to_stderr = false,
- extra_newline = false,
- default_color = 'red',
- color0 = '#ebdbb2',
- color1 = '#fb4934',
- color2 = '#98971a',
- color3 = '#d79921',
- color4 = '#458588',
- color5 = '#d3869b',
- color6 = '#8ec07c',
- color9 = '#83a598'
-}
-
-conky.text = [[
-${color0}${alignc}${time %A %e %B %Y - %Hh%M}
-${alignc}${offset 20}${color9}${font2}Terminal: ${color0}${font}${nodename_short}
-${alignc}${offset 20}${color9}${font2}OS: ${color0}${font}${sysname} - ${execi 300 lsb_release -ds}
-${alignc}${offset 20}${color9}${font2}Kernel: ${color0}${font}${kernel}
-${alignc}${offset 20}${color9}${font2}Uptime: ${color0}${font}${uptime_short}${font}${if_match "${nodename_short}" == "po-rbo"}${image ~/.config/conky/popos-logo.png -p 5,10 -s 75x75 -n}${endif}${if_match "${nodename_short}" == "mother"}${image ~/.config/conky/artix-logo.png -p 5,10 -s 75x75 -n}${if_mpd_playing}
-${color0}${hr}${font}
-${color0}${goto 130}${mpd_artist}
-${goto 130}${scroll wait 30 3 5 ${mpd_title}}
-${goto 130}${mpd_date} - ${mpd_album}
-${goto 130}${mpd_elapsed}/${mpd_length} ${mpd_bar}
-${execi 5 ~/.local/bin/conky/cover.sh >/dev/null 2>&1}${image /tmp/conkyCover.png -p 10,115 -n}${endif}${endif}
-${color3}${hr}
-${color3}${font ConkySymbols:size=18}f${font :size=15:bold}${voffset -5} CPU${color0}${font}${goto 115}${if_match "${nodename_short}" == "mother"}Intel i7-4790${endif}${if_match "${nodename_short}" == "po-rbo"}Intel i7-12700H${endif} @ ${freq_g}GHz${alignr}${font :bold:}${cpu}%${font}
-${color3}${offset 3}${cpugraph cpu1 30,93 000000 DDAA00} ${cpugraph cpu2 30,93 000000 DDAA00} ${cpugraph cpu3 30,93 000000 DDAA00} ${cpugraph cpu4 30,93 000000 DDAA00} ${voffset 12} ${color0} ${goto 19}CPU 1: ${cpu cpu1}% ${goto 115}CPU 2: ${cpu cpu2}% ${goto 210}CPU 3: ${cpu cpu3}% ${voffset -29} ${goto 307}CPU 4: ${cpu cpu4}%
-${color3}${offset 3}${cpugraph cpu5 30,93 000000 DDAA00} ${cpugraph cpu6 30,93 000000 DDAA00} ${cpugraph cpu7 30,93 000000 DDAA00} ${cpugraph cpu8 30,93 000000 DDAA00} ${voffset 12} ${color0} ${goto 19}CPU 5: ${cpu cpu5}% ${goto 115}CPU 6: ${cpu cpu6}% ${goto 210}CPU 7: ${cpu cpu7}% ${voffset -29} ${goto 307}CPU 8: ${cpu cpu8}%${if_match "${nodename_short}" == "po-rbo"}
-${color3}${offset 3}${cpugraph cpu9 30,93 000000 DDAA00} ${cpugraph cpu10 30,93 000000 DDAA00} ${cpugraph cpu11 30,93 000000 DDAA00} ${cpugraph cpu12 30,93 000000 DDAA00} ${voffset 12} ${color0} ${goto 19}CPU 9: ${cpu cpu9}% ${goto 115}CPU 10: ${cpu cpu10}% ${goto 210}CPU 11: ${cpu cpu11}% ${voffset -29} ${goto 307}CPU 12: ${cpu cpu12}%
-${color3}${offset 3}${cpugraph cpu13 30,93 000000 DDAA00} ${cpugraph cpu14 30,93 000000 DDAA00} ${cpugraph cpu15 30,93 000000 DDAA00} ${cpugraph cpu16 30,93 000000 DDAA00} ${voffset 12} ${color0} ${goto 19}CPU 13: ${cpu cpu13}% ${goto 115}CPU 14: ${cpu cpu14}% ${goto 210}CPU 15: ${cpu cpu15}% ${voffset -29} ${goto 307}CPU 16: ${cpu cpu16}%
-${color3}${offset 3}${cpugraph cpu17 30,93 000000 DDAA00} ${cpugraph cpu18 30,93 000000 DDAA00} ${cpugraph cpu19 30,93 000000 DDAA00} ${cpugraph cpu20 30,93 000000 DDAA00} ${voffset 12} ${color0} ${goto 19}CPU 17: ${cpu cpu17}% ${goto 115}CPU 18: ${cpu cpu18}% ${goto 210}CPU 19: ${cpu cpu19}% ${voffset -29} ${goto 307}CPU 20: ${cpu cpu20}%${endif}
-${color2}${hr}${font}
-${color2}${font ConkySymbols:size=18}j${font :size=15:bold}${voffset -5} MEMORY${color0}${font}${goto 150}$mem / $memmax${alignr}${font :bold:}${memperc}%${font}
-${color0}${font2}${offset 5}Top Processes ${alignr}${offset -5}CPU%${offset 5}MEM%
-${color2}${memgraph 110,390 000000 98971a}${voffset -124}${font}
-${color0}${offset 5}${top_mem name 1} ${alignr 10}${offset -13}${top_mem cpu 1}${offset 15}${top_mem mem 1}
-${color0}${offset 5}${top_mem name 2} ${alignr 10}${offset -13}${top_mem cpu 2}${offset 15}${top_mem mem 2}
-${color0}${offset 5}${top_mem name 3} ${alignr 10}${offset -13}${top_mem cpu 3}${offset 15}${top_mem mem 3}
-${color0}${offset 5}${top_mem name 4} ${alignr 10}${offset -13}${top_mem cpu 4}${offset 15}${top_mem mem 4}
-${color0}${offset 5}${top_mem name 5} ${alignr 10}${offset -13}${top_mem cpu 5}${offset 15}${top_mem mem 5}${if_match "${nodename_short}" == "mother"}
-${color0}${hr}${font}
-${color0}${font ConkySymbols:size=18}n${font :size=12:bold}${voffset -5} GPU${font}${goto 90}${nvidia modelname} @ ${nvidia gpufreq}MHz${alignr}${font :bold:}${nvidia gpuutil}%${font}
-${color tomato}${offset 3}${nvidiagraph gpuutil 30,190 000000 FF6347} ${nvidiagraph mem 30,190 000000 FF6347} ${voffset 13} ${goto 25}${color0}GPU Usage: ${nvidia gpuutil}%${goto 215}${voffset -29}VRAM Usage: ${nvidia memutil}%
-${color tomato}${offset 3}${nvidiagraph fanlevel 30,190 000000 FF6347} ${nvidiagraph temp 30,190 000000 FF6347} ${voffset 13} ${goto 25}${color0}Fan level: ${nvidia fanlevel}%${goto 215}${voffset -29}Temperature: ${nvidia temp}°C${endif}
-${color4}${hr}${font}
-${color4}${font ConkySymbols:size=18}k${font :size=15:bold}${voffset -5} FILE SYSTEMS${color0}${alignr}NVMe ${fs_used_perc /}%${if_match "${nodename_short}" == "mother"} | HDD ${fs_used_perc /var/hdd}%${endif}${font}
-${voffset 5}${color4}${font2}NVMe ${goto 70}${fs_bar 8,200 /} ${color0}${font}${alignr}${fs_free /} / ${fs_size /}${if_match "${nodename_short}" == "mother"}
-${color4}${font2}HDD ${goto 70}${fs_bar 8,200 /var/hdd} ${color0}${font}${alignr} ${fs_free /var/hdd} / ${fs_size /var/hdd}${if_existing /home/jozan/exthdd}
-${color4}${font2}EXT ${goto 70}${fs_bar 8,200 /home/jozan/exthdd} ${color0}${font}${alignr}${fs_free /home/jozan/exthdd} / ${fs_size /home/jozan/exthdd}${endif}${if_existing /home/jozan/ceres}
-${color4}${font2}CERES ${goto 70}${fs_bar 8,200 /home/jozan/ceres} ${color0}${font}${alignr}${fs_free /home/jozan/ceres} / ${fs_size /home/jozan/ceres}${endif}${endif}${if_match "${nodename_short}" == "po-rbo"}
-${color4}${font2}STOC1 ${goto 70}${fs_bar 8,200 /home/r_bousset/stoc1} ${color0}${font}${alignr}${fs_free /home/r_bousset/stoc1} / ${fs_size /home/r_bousset/stoc1}${endif}
-${color4}${offset 3}${diskiograph_read nvme0n1 30,190 000000 458588} ${diskiograph_write nvme0n1 30,190 000000 458588} ${voffset 13} ${goto 25}${color0}NVMe R: ${diskio_read nvme0n1}${goto 215}NVMe W: ${diskio_write nvme0n1}${voffset -29}${font}${if_match "${nodename_short}" == "mother"}
-${color4}${offset 3}${diskiograph_read sdb1 30,190 000000 458588} ${diskiograph_write sdb1 30,190 000000 458588} ${voffset 13} ${goto 25}${color0}HDD R: ${diskio_read sdb1}${goto 215}HDD W: ${diskio_write sdb1}${voffset -29}${font}${endif}
-${color5}${hr}${font}
-${color5}${font ConkySymbols:size=18}i${font :size=15:bold} ${voffset -5}NETWORK${color0}${alignr}${execpi 5 ~/.local/bin/conky/net.sh}${if_match "${nodename_short}" == "mother"}
-${color2}${offset 3}${downspeedgraph eth1 50,190 000000 81B562 128000000}${goto 205} ${color2}${upspeedgraph eth1 50,190 000000 4682B4 128000000}
-${color0}${voffset -60}${offset 10}Download${goto 210}Upload${offset 10}
-${offset 10} ${downspeed eth1} ${goto 210}${upspeed eth1}${endif}${if_match "${nodename_short}" == "po-rbo"}
-${color2}${offset 3}${downspeedgraph enx34298f762de7 50,190 000000 98971a 128000000} ${color4}${upspeedgraph enx34298f762de7 50,190 000000 458588 128000000}
-${color0}${voffset -60}${offset 10}Download${goto 210}Upload${offset 10}
-${offset 10} ${downspeed enx34298f762de7} ${goto 210}${upspeed enx34298f762de7}${endif}
-${color1}${hr}${font}
-${color1}${font ConkySymbols:size=18:bold}l${font :size=15:bold:} ${voffset -5}TEMPERATURES ${goto 150}${font}${color0}${if_match "${nodename_short}" == "mother"}
-${color1}${execbar sensors 2>/dev/null | grep CPUTIN | awk '{print $2}'}
-${color LightBlue}${execbar sensors 2>/dev/null | grep fan1 | awk 'NR==1{print $2/35}'}
-${color0}GPU: ${hwmon 3 temp 1}°C ${goto 150}Junc: ${hwmon 3 temp 2}°C${goto 260}GPU Fan${alignr}${hwmon 3 fan 1} RPM
-${color EE4444}${execbar sensors 2>/dev/null | grep edge | awk '{print $2}'}
-${color LightBlue}${execbar sensors 2>/dev/null | grep fan1 | awk 'NR==2{print $2/35}'}
-${color0}Mobo: ${hwmon 2 temp 1}°C ${goto 110}Int.Fan: ${hwmon 2 fan 5} RPM${goto 260}Exh.Fan${alignr}${hwmon 2 fan 7} RPM
-${color EE4444}${execbar sensors 2>/dev/null | grep SYSTIN | awk '{print $2}'}
-${color LightBlue}${execbar sensors 2>/dev/null | grep fan2 | awk '{print $2/35}'}
-${endif}${if_match "${nodename_short}" == "po-rbo"}
-${voffset 5}${color1}${font2}CPU ${goto 70}${execbar sensors 2>/dev/null | grep Package | awk '{print $4}'} ${alignr}${color0}${font}${hwmon 5 temp 1}°C
-${color1}${font2}NVMe ${goto 70}${color1}${execbar sensors 2>/dev/null | grep Composite | awk '{print $2}'} ${alignr}${color0}${font}${hwmon 3 temp 1}°C${endif}
-]]
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
index 5171744..c7a855b 100644
--- a/.config/dunst/dunstrc
+++ b/.config/dunst/dunstrc
@@ -1,16 +1,16 @@
[global]
- monitor = 1
+ monitor = 0
follow = none
width = (200, 800)
origin = top-right
- offset = 50x50
+ offset = (0, 0)
indicate_hidden = yes
shrink = yes
transparency = 0
separator_height = 4
- padding = 2
+ padding = 6
horizontal_padding = 10
- frame_width = 2
+ frame_width = 2
close = ctrl+space
history = ctrl+grave
context = ctrl+shift+period
@@ -27,7 +27,8 @@
sort = yes
idle_threshold = 0
- font = "BigBlueTermPlus Nerd Font 16"
+ # font = "Terminess Nerd Font 16"
+ font = "BlexMono Nerd Font Medium 16"
# font = "NotoSans Nerd Font 17"
line_height = 0
markup = full
@@ -75,23 +76,29 @@
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
- background = "#32302f"
- foreground = "#b8a994"
- frame_color = "#887964"
+ background = "#1d2021"
+ foreground = "#a89984"
+ frame_color = "#a89984"
+ highlight = "#458588"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
- background = "#cc241d"
- foreground = "#ebdbb2"
- frame_color = "#ebdbb2"
+ background = "#1d2021"
+ foreground = "#d79921"
+ frame_color = "#d79921"
+ #foreground = "#fb4934"
+ #frame_color = "#fb4934"
timeout = 10
[urgency_critical]
- background = "#cc241d"
- foreground = "#ebdbb2"
- frame_color = "#b77901"
+ background = "#1d2021"
+ foreground = "#cc241d"
+ frame_color = "#cc241d"
+ #background = "#cc241d"
+ #foreground = "#1d2021"
+ #frame_color = "#1d2021"
timeout = 20
# Every section that isn't one of the above is interpreted as a rules to
diff --git a/.config/emacs/caco.png b/.config/emacs/caco.png
deleted file mode 100644
index 7bbe066..0000000
--- a/.config/emacs/caco.png
+++ /dev/null
Binary files differ
diff --git a/.config/emacs/early-init.el b/.config/emacs/early-init.el
deleted file mode 100644
index 056d4dc..0000000
--- a/.config/emacs/early-init.el
+++ /dev/null
@@ -1,33 +0,0 @@
-(defvar my/default-file-name-handler-alist file-name-handler-alist)
-
-(defun my/set-max-gc-cons-threshold ()
- (setq gc-cons-threshold most-positive-fixnum)) ; 2^61 bytes
-(defun my/set-default-gc-cons-threshold ()
- (run-at-time 1 nil
- (lambda () (setq gc-cons-threshold 16777216)))) ; 16 Mb
-
-(defun my/erase-file-name-handler-alist ()
- (setq file-name-handler-alist nil))
-(defun my/restore-file-name-handler-alist ()
- (setq file-name-handler-alist my/default-file-name-handler-alist))
-
-(my/set-max-gc-cons-threshold)
-(my/erase-file-name-handler-alist)
-(add-hook 'emacs-startup-hook 'my/set-default-gc-cons-threshold)
-(add-hook 'emacs-startup-hook 'my/restore-file-name-handler-alist)
-
-(defun my/ad-timestamp-message (FORMAT-STRING &rest args)
- "Advice to run before `message' that prepends a timestamp to each message.
-Activate this advice with:
- (advice-add 'message :before 'my/ad-timestamp-message)
-Deactivate this advice with:
- (advice-remove 'message 'my/ad-timestamp-message)"
- (if message-log-max
- (let ((deactivate-mark nil)
- (inhibit-read-only t))
- (with-current-buffer "*Messages*"
- (goto-char (point-max))
- (if (not (bolp))
- (newline))
- (insert (format-time-string "[%F %T.%3N] "))))))
-(advice-add 'message :before 'my/ad-timestamp-message)
diff --git a/.config/emacs/init.el b/.config/emacs/init.el
deleted file mode 100644
index 7c5958e..0000000
--- a/.config/emacs/init.el
+++ /dev/null
@@ -1,125 +0,0 @@
-(require 'org)
-(org-babel-load-file
- (expand-file-name "org/config.org"
- user-emacs-directory))
-(custom-set-variables
- ;; custom-set-variables was added by Custom.
- ;; If you edit it by hand, you could mess it up, so be careful.
- ;; Your init file should contain only one such instance.
- ;; If there is more than one, they won't work right.
- '(ansi-color-faces-vector
- [default default default italic underline success warning error])
- '(auth-source-save-behavior nil)
- '(ccls-sem-function-colors '("#e5b124"))
- '(ccls-sem-parameter-faces
- [ccls-sem-parameter-face-0 ccls-sem-parameter-face-1 ccls-sem-parameter-face-2 ccls-sem-parameter-face-3 ccls-sem-parameter-face-4 ccls-sem-parameter-face-5 ccls-sem-parameter-face-6 ccls-sem-parameter-face-7 ccls-sem-parameter-face-8 ccls-sem-parameter-face-9])
- '(custom-safe-themes
- '("d445c7b530713eac282ecdeea07a8fa59692c83045bf84dd112dd738c7bcad1d" "d80952c58cf1b06d936b1392c38230b74ae1a2a6729594770762dc0779ac66b7" efault))
- '(fci-rule-color "#676E95")
- '(hl-todo-keyword-faces
- '(("TODO" . "#dc752f")
- ("NEXT" . "#dc752f")
- ("THEM" . "#2aa198")
- ("PROG" . "#268bd2")
- ("OKAY" . "#268bd2")
- ("DONT" . "#d70000")
- ("FAIL" . "#d70000")
- ("DONE" . "#86dc2f")
- ("NOTE" . "#875f00")
- ("KLUDGE" . "#875f00")
- ("HACK" . "#875f00")
- ("TEMP" . "#875f00")
- ("FIXME" . "#dc752f")
- ("XXX+" . "#dc752f")
- ("\\?\\?\\?+" . "#dc752f")))
- '(inhibit-startup-screen t)
- '(jdee-db-active-breakpoint-face-colors (cons "#1c1f2b" "#c792ea"))
- '(jdee-db-requested-breakpoint-face-colors (cons "#1c1f2b" "#c3e88d"))
- '(jdee-db-spec-breakpoint-face-colors (cons "#1c1f2b" "#676E95"))
- '(objed-cursor-color "#ff5370")
- '(package-selected-packages
- '(d2-mode python-mode arduino-cli-mode arduino-mode password-store-otp password-store evil-mu4e helm-fuzzy-find helm-fuzzier fuzzy fuzzy-finder neotree color-theme doom-modeline-now-playing treemacs-icons-dired edit-indirect yaml-mode lua-mode company-nginx company-fuzzy company-go company-shell helm-ag rainbow-identifiers nginx-mode evil-quickscope vc-fossil crontab-mode go-mode mutt-mode pacmacs gemini-mode org-evil glsl-mode vimrc-mode windresize evil evil-collection evil-leader evil-search-highlight-persist evil-mc evil-surround evil-ediff evil-visual-mark-mode evil-nerd-commenter evil-vimish-fold evil-numbers yasnippet yasnippet-classic-snippets yasnippet-snippets auto-yasnippet el-autoyas helm helm-xref helm-etags-plus helm-fuzzy helm-themes helm-make helm-projectile projectile company company-box which-key magit undo-tree shell-pop autopair paredit rainbow-delimiters color-identifiers-mode ibuffer-vc ibuffer-projectile eyebrowse diff-hl fzf font-utils restart-emacs string-utils dired-icon kaolin-themes doom-themes spacemacs-theme dashboard org-superstar toc-org pdf-tools dockerfile-mode web-mode ssh sudo-ext vimish-fold bind-key all-the-icons all-the-icons-dired all-the-icons-ibuffer))
- '(pos-tip-background-color "#2E2A29")
- '(pos-tip-foreground-color "#d4d4d6")
- '(rustic-ansi-faces
- ["#292D3E" "#ff5370" "#c3e88d" "#ffcb6b" "#82aaff" "#c792ea" "#89DDFF" "#EEFFFF"])
- '(send-mail-function 'smtpmail-send-it)
- '(tabbar-separator '(0.2))
- '(vc-annotate-background "#292D3E")
- '(vc-annotate-color-map
- (list
- (cons 20 "#c3e88d")
- (cons 40 "#d7de81")
- (cons 60 "#ebd476")
- (cons 80 "#ffcb6b")
- (cons 100 "#fcb66b")
- (cons 120 "#f9a16b")
- (cons 140 "#f78c6c")
- (cons 160 "#e78e96")
- (cons 180 "#d690c0")
- (cons 200 "#c792ea")
- (cons 220 "#d97dc1")
- (cons 240 "#ec6898")
- (cons 260 "#ff5370")
- (cons 280 "#d95979")
- (cons 300 "#b36082")
- (cons 320 "#8d678b")
- (cons 340 "#676E95")
- (cons 360 "#676E95")))
- '(vc-annotate-very-old-color nil))
-(load-theme 'gruvbox-dark-hard)
-(custom-set-faces
- ;; custom-set-faces was added by Custom.
- ;; If you edit it by hand, you could mess it up, so be careful.
- ;; Your init file should contain only one such instance.
- ;; If there is more than one, they won't work right.
- '(ccls-sem-function-face-0 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-1 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-2 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-3 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-4 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-5 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-6 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-7 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-8 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-function-face-9 ((t (:foreground "#fabd2f"))))
- '(ccls-sem-macro-face-0 ((t (:foreground "#e27a33"))))
- '(ccls-sem-macro-face-1 ((t (:foreground "#e27a33"))))
- '(ccls-sem-macro-face-2 ((t (:foreground "#e27a33"))))
- '(ccls-sem-macro-face-3 ((t (:foreground "#e27a33"))))
- '(ccls-sem-macro-face-4 ((t (:foreground "#e27a33"))))
- '(ccls-sem-macro-face-6 ((t (:foreground "#e27a33"))))
- '(ccls-sem-macro-face-7 ((t (:foreground "#e27a33"))))
- '(ccls-sem-macro-face-8 ((t (:foreground "#e27a33"))))
- '(ccls-sem-macro-face-9 ((t (:foreground "#e27a33"))))
- '(ccls-sem-parameter-face-0 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-parameter-face-2 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-parameter-face-3 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-parameter-face-4 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-parameter-face-5 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-parameter-face-6 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-parameter-face-7 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-parameter-face-8 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-parameter-face-9 ((t (:foreground "#58c1a4"))))
- '(ccls-sem-static-face ((t (:weight bold))))
- '(ccls-sem-type-face-0 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-1 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-2 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-3 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-4 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-5 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-6 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-7 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-8 ((t (:foreground "#d3869b"))))
- '(ccls-sem-type-face-9 ((t (:foreground "#d3869b"))))
- '(ccls-sem-variable-face-0 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-1 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-2 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-3 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-4 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-5 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-6 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-7 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-8 ((t (:foreground "#83a598"))))
- '(ccls-sem-variable-face-9 ((t (:foreground "#83a598")))))
-
diff --git a/.config/emacs/org/config.org b/.config/emacs/org/config.org
deleted file mode 100644
index f041eb9..0000000
--- a/.config/emacs/org/config.org
+++ /dev/null
@@ -1,920 +0,0 @@
-* My emacs config
-** Basic configs
- #+BEGIN_SRC emacs-lisp
- (server-start)
- (setq x-alt-keysym 'meta)
- (set-keyboard-coding-system 'utf-8)
-
- (menu-bar-mode -1)
- (tool-bar-mode -1)
- (scroll-bar-mode -1)
- (blink-cursor-mode -1)
- (setq visible-cursor nil)
- (global-hl-line-mode 1)
- (global-auto-revert-mode t)
- (defun my/disable-scroll-bars (frame)
- (modify-frame-parameters frame
- '((vertical-scroll-bars . nil)
- (horizontal-scroll-bars . nil))))
- (add-hook 'after-make-frame-functions 'my/disable-scroll-bars)
-
- (setq default-frame-alist '((font . "mononoki Nerd Font:pixelsize=17")))
- ;; (set-frame-font "mononoki Nerd Font:pixelsize=15" nil t)
- (add-hook 'prog-mode-hook 'display-line-numbers-mode)
- (add-hook 'text-mode-hook 'display-line-numbers-mode)
-
- (setq scroll-step 1)
- ;; (setq scroll-margin 1)
- (setq echo-keystrokes 0.1)
- (setq initial-scratch-message nil)
- (defalias 'yes-or-no-p 'y-or-n-p)
-
- (setq backup-directory-alist '(("." . "/tmp/emacs-backup"))
- backup-by-copying t
- version-control t
- delete-old-versions t
- kept-new-versions 20
- kept-old-versions 5)
- #+END_SRC
-
-** Desktop-save
- #+BEGIN_SRC emacs-lisp
- (setq desktop-dirname (expand-file-name "desktop" user-emacs-directory)
- desktop-base-file-name "emacs.desktop"
- desktop-base-lock-name "lock"
- desktop-path (list desktop-dirname)
- desktop-save t
- desktop-files-not-to-save "^$"
- desktop-auto-save-timeout 60)
- (desktop-save-mode 1)
- #+END_SRC
-
-** GC
- #+BEGIN_SRC emacs-lisp
- (add-hook 'focus-out-hook 'garbage-collect)
- (add-hook 'minibuffer-setup-hook 'my/set-max-gc-cons-threshold) ;; defined in early-init.el
- (add-hook 'minibuffer-exit-hook 'my/set-default-gc-cons-threshold)
- #+END_SRC
-
-** MELPA and non-MELPA
-#+BEGIN_SRC emacs-lisp
- (require 'package)
- (push (expand-file-name "elpa" user-emacs-directory) package-directory-list)
- (add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t)
- (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
- (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
- (package-initialize)
-
- (add-to-list 'load-path (expand-file-name "font-lock+" user-emacs-directory))
- (add-to-list 'load-path (expand-file-name "header2/" user-emacs-directory))
- (add-to-list 'load-path (expand-file-name "all-the-icons/" user-emacs-directory))
- (add-to-list 'load-path (expand-file-name "all-the-icons-dired/" user-emacs-directory))
-
- (setq package-selected-packages '(
- evil evil-collection evil-leader
- evil-search-highlight-persist evil-mc evil-surround
- evil-visual-mark-mode evil-nerd-commenter evil-vimish-fold
- evil-numbers evil-quickscope
- lsp-mode lsp-ui
- windresize
- yasnippet yasnippet-classic-snippets yasnippet-snippets auto-yasnippet el-autoyas
- helm helm-xref helm-lsp helm-etags-plus helm-fuzzy helm-themes helm-make helm-projectile
- projectile
- org-evil
- company company-box company-go company-fuzzy company-nginx
- which-key
- magit
- undo-tree
- shell-pop
- smartparens
- rainbow-delimiters
- color-identifiers-mode
- ibuffer-vc ibuffer-projectile
- eyebrowse
- diff-hl
- fzf
- font-utils
- restart-emacs
- string-utils
- dired-icon
- kaolin-themes gruvbox-theme doom-themes spacemacs-theme
- doom-modeline
- dashboard
- org-superstar toc-org
- pdf-tools
- dockerfile-mode
- go-mode
- web-mode
- ssh sudo-ext
- vimish-fold
- bind-key
- all-the-icons all-the-icons-dired all-the-icons-ibuffer
- mutt-mode vimrc-mode nginx-mode gemini-mode yaml-mode crontab-mode
- neotree
- ))
-
- (when (cl-find-if-not #'package-installed-p package-selected-packages)
- (package-refresh-contents)
- (mapc #'package-install package-selected-packages))
-#+END_SRC
-
-** Some org
-#+BEGIN_SRC emacs-lisp
- ;; set key for agenda
- ;; (require 'org)
- ;; (global-set-(kbd "C-c a") 'org-agenda)
-
- ;;file to save todo items
- ;; (setq org-agenda-files (quote ("~/.config/emacs/org/todo.org")))
- (setq org-log-done 'time)
-
- ;;set priority range from A to C with default A
- (setq org-highest-priority ?A)
- (setq org-lowest-priority ?C)
- (setq org-default-priority ?A)
-
- ;;set colours for priorities
- (setq org-priority-faces '((?A . (:foreground "#F0DFAF" :weight bold))
- (?B . (:foreground "LightSteelBlue"))
- (?C . (:foreground "OliveDrab"))))
-
- (setq org-todo-keywords
- '((sequence "TODO"
- "DOING"
- "|"
- "DONE"
- "DELAYED"
- "CANCELED")))
-
- (setq org-log-done 'time)
-
- ;;open agenda in current window
- ;; (setq org-agenda-window-setup (quote current-window))
-
- ;;capture todo items using C-c C-t t
- ;; (define-key global-map (kbd "C-c C-t") 'org-capture)
- ;; (setq org-capture-templates
- ;; '(("t" "todo" entry (file+headline "~/.config/emacs/org/todo.org" "Tasks")
- ;; "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n")))
-
- ;;open agenda in current window
- ;; (setq org-agenda-window-setup (quote current-window))
- ;;warn me of any deadlines in next 7 days
- ;; (setq org-deadline-warning-days 7)
- ;;show me tasks scheduled or due in next fortnight
- ;; (setq org-agenda-span (quote fortnight))
- ;;don't show tasks as scheduled if they are already shown as a deadline
- ;; (setq org-agenda-skip-scheduled-if-deadline-is-shown t)
- ;;don't give awarning colour to tasks with impending deadlines
- ;;if they are scheduled to be done
- ;; (setq org-agenda-skip-deadline-prewarning-if-scheduled (quote pre-scheduled))
- ;;don't show tasks that are scheduled or have deadlines in the
- ;;normal todo list
- ;; (setq org-agenda-todo-ignore-deadlines (quote all))
- ;; (setq org-agenda-todo-ignore-scheduled (quote all))
- ;;sort tasks in order of when they are due and then by priority
- ;; (setq org-agenda-sorting-strategy
- ;; (quote
- ;; ((agenda deadline-up priority-down)
- ;; (todo priority-down category-keep)
- ;; (tags priority-down category-keep)
- ;; (search category-keep))))
-
- (org-babel-do-load-languages
- 'org-babel-load-languages '((C . t )))
- (org-babel-do-load-languages
- 'org-babel-load-languages '((lisp . t)))
- (eval-after-load "org"
- '(require 'ox-md nil t))
-#+END_SRC
-
-** header2
-#+BEGIN_SRC emacs-lisp
-#+END_SRC
-
-** Other configs
-#+BEGIN_SRC emacs-lisp
- (setq evil-want-integration t) ;; This is optional since it's already set to t by default.
- (setq evil-want-keybinding nil)
- (setq evil-want-C-u-scroll t)
-
- (add-hook 'html-mode-hook
- (lambda()
- (setq sgml-basic-offset 4)
- (setq indent-tabs-mode t)))
-#+END_SRC
-
-** Files types attribution
- #+BEGIN_SRC emacs-lisp
- (add-to-list 'auto-mode-alist '("xinitrc$" . shell-script-mode))
- (add-to-list 'auto-mode-alist '("env$" . shell-script-mode))
- (add-to-list 'auto-mode-alist '("lfrc$" . vimrc-mode))
- (add-to-list 'auto-mode-alist '("muttrc$" . mutt-mode))
- (add-to-list 'auto-mode-alist '("dunstrc$" . conf-mode))
- (add-to-list 'auto-mode-alist '("loader.conf$" . conf-mode))
- (add-to-list 'auto-mode-alist '("mailcap$" . conf-mode))
- (add-to-list 'auto-mode-alist '("/tmp/neomutt-*" . mail-mode))
- #+END_SRC
-
-** Core packages
-*** Smartparens
-#+BEGIN_SRC emacs-lisp
- (require 'smartparens-config)
-(smartparens-global-mode)
-#+END_SRC
-
-*** Evil mode
-#+BEGIN_SRC emacs-lisp
- (require 'evil)
- (require 'evil-collection)
- (require 'evil-leader)
- (require 'evil-search-highlight-persist)
- (require 'org-evil)
- (evil-mode t)
- (evil-collection-init 'ibuffer)
- (evil-collection-init 'magit)
- (evil-collection-init 'flymake)
- (evil-collection-init 'neotree)
- ;; (evil-collection-init 'mu4e)
-
-
- (setq evil-emacs-state-cursor '("#b16286" box))
- (setq evil-normal-state-cursor '("#d79921" box))
- (setq evil-visual-state-cursor '("#b06597" box))
- (setq evil-insert-state-cursor '("#d79921" bar))
- (setq evil-replace-state-cursor '("#cc241d" hbar))
- (setq evil-operator-state-cursor '("#d79921" hbar))
-
-
- (evil-define-key 'insert global-map (kbd "C-o") 'delete-other-windows)
- (evil-define-key 'insert global-map (kbd "C-u") 'evil-delete-backward-word)
- (evil-define-key 'insert global-map (kbd "C-h") 'evil-delete-backward-char)
- (evil-define-key 'normal global-map (kbd "C-o") 'delete-other-windows)
- (evil-define-key 'normal global-map (kbd "C-k") 'windmove-up)
- (evil-define-key 'normal global-map (kbd "C-j") 'windmove-down)
- (evil-define-key 'normal global-map (kbd "C-h") 'windmove-left)
- (evil-define-key 'normal global-map (kbd "C-l") 'windmove-right)
-
- (global-evil-leader-mode)
- (evil-leader/set-leader "\\")
- (setq evil-leader/in-all-states 1)
-
- (require 'evil-search-highlight-persist)
- (global-evil-search-highlight-persist 1)
-
- (evil-leader/set-key "SPC" 'evil-search-highlight-persist-remove-all)
-
- (global-undo-tree-mode)
- (evil-set-undo-system 'undo-tree)
-#+END_SRC
-
-*** Evil nerd commenter
-#+BEGIN_SRC emacs-lisp
-(require 'evil-nerd-commenter)
-(evilnc-default-hotkeys)
-#+END_SRC
-
-*** Evil surround
-#+BEGIN_SRC emacs-lisp
- (require 'evil-surround)
- (global-evil-surround-mode 1)
-#+END_SRC
-
-*** Evil multiple-cursor
-#+BEGIN_SRC emacs-lisp
- (require 'evil-mc)
- (global-evil-mc-mode 1)
-#+END_SRC
-
-*** Evil vimish Fold
- #+BEGIN_SRC emacs-lisp
- (require 'vimish-fold)
- (require 'evil-vimish-fold)
- (add-hook 'prog-mode-hook 'evil-vimish-fold-mode)
- (add-hook 'text-mode-hook 'evil-vimish-fold-mode)
- #+END_SRC
-
-*** Evil numbers
-#+BEGIN_SRC emacs-lisp
- (require 'evil-numbers)
- (define-key evil-normal-state-map (kbd "C-c C-a") 'evil-numbers/inc-at-pt)
- (define-key evil-normal-state-map (kbd "C-c C-x") 'evil-numbers/dec-at-pt)
-#+END_SRC
-
-*** Evil quickscope
- #+BEGIN_SRC emacs-lisp
- (require 'evil-quickscope)
- (global-evil-quickscope-mode 1)
- #+END_SRC
-
-*** Dashboard
-#+BEGIN_SRC emacs-lisp
- (require 'dashboard)
- (dashboard-setup-startup-hook)
-
- (setq dashboard-banner-logo-title (concat "Welcome back to Emacs " emacs-version ", partner!")
-
- dashboard-startup-banner (expand-file-name "caco.png" user-emacs-directory)
- ;; dashboard-startup-banner 'official
- dashboard-set-init-info nil
- dashboard-set-footer nil
- dashboard-center-content t
- dashboard-show-shortcuts nil
- dashboard-set-heading-icons t
- dashboard-set-file-icons nil
- dashboard-set-navigator t
- show-week-agenda-p t)
-
- (setq dashboard-items '((projects . 10)
- (recents . 10)
- (bookmarks . 10)
- (agenda . 5)))
-
- (add-to-list 'evil-emacs-state-modes 'dashboard-mode)
-#+END_SRC
-
-*** w3m
-#+BEGIN_SRC emacs-lisp
-;; (require 'w3m-load)
-;; (setq w3m-home-page "https://start.duckduckgo.com/")
-;; (setq w3m-default-display-inline-images t)
-;; (define-key w3m-mode-map "w" 'right-word)
-;; (define-key w3m-mode-map "b" 'left-word)
-;; (define-key w3m-mode-map "<" 'scroll-left)
-;; (define-key w3m-mode-map ">" 'scroll-right)
-;; (define-key w3m-mode-map (kbd "C-d") 'evil-scroll-page-down)
-;; (define-key w3m-mode-map (kbd "C-u") 'evil-scroll-page-up)
-;; (define-key w3m-mode-map "H" 'w3m-view-previous-page)
-;; (define-key w3m-mode-map "L" 'w3m-view-next-page)
-;; (define-key w3m-mode-map "o" 'w3m-goto-url)
-;; (define-key w3m-mode-map "O" 'w3m-goto-url-new-session)
-;; (define-key w3m-mode-map "v" 'w3m-view-image)
-;; (define-key w3m-mode-map "$" 'w3m-end-of-line)
-;; (define-key w3m-mode-map "^" 'w3m-beginning-of-line)
-;; (define-key w3m-mode-map (kbd "M-j") 'w3m-next-buffer)
-;; (define-key w3m-mode-map (kbd "M-k") 'w3m-previous-buffer)
-;; (define-key w3m-mode-map "t" 'w3m-copy-buffer)
-#+END_SRC
-
-*** Helm, projectile
- #+BEGIN_SRC emacs-lisp
- (require 'helm-misc)
- (require 'helm-projectile)
- (require 'helm-locate)
- (require 'helm-lsp)
-
- (global-set-key (kbd "M-x") 'helm-M-x)
- (global-set-key (kbd "C-x C-f") #'helm-find-files)
- (global-set-key (kbd "M-p") #'helm-projectile-switch-project)
- (global-set-key (kbd "C-x C-b") #'helm-mini)
- (global-set-key (kbd "C-x p") #'helm-projectile)
- (define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action)
- (define-key helm-map (kbd "C-i") 'helm-execute-persistent-action)
- (define-key helm-map (kbd "C-z") 'helm-select-action)
- (define-key helm-map (kbd "C-j") 'helm-next-line)
- (define-key helm-map (kbd "C-k") 'helm-previous-line)
- (define-key helm-find-files-map (kbd "C-h") 'helm-find-files-up-one-level)
- (define-key helm-find-files-map (kbd "C-l") 'helm-execute-persistent-action)
-
- (setq helm-quick-update t
- helm-bookmark-show-location t
- helm-buffers-fuzzy-matching t
- helm-make-executable "/usr/bin/make"
- helm-make-nproc 12
- helm-split-window-in-side-p t)
-
- (defun helm-my-buffers ()
- (interactive)
- (let ((helm-ff-transformer-show-only-basename nil))
- (helm-other-buffer '(helm-c-source-buffers-list
- helm-c-source-elscreen
- helm-c-source-projectile-files-list
- helm-c-source-ctags
- helm-c-source-recentf
- helm-c-source-locate)
- "*helm-my-buffers*")))
-
- (helm-mode 1)
- (projectile-mode +1)
- #+END_SRC
-
-*** DOOM Modeline
-#+BEGIN_SRC emacs-lisp
-(setq display-time-string-forms
- '((propertize (concat " " 24-hours ":" minutes " "))))
-
-(require 'doom-modeline)
-(doom-modeline-mode 1)
-(setq doom-modeline-height 30)
-(setq doom-modeline-project-detection 'projectile)
-(setq doom-modeline-buffer-file-name-style 'truncate-upto-project)
-(setq doom-modeline-icon (display-graphic-p))
-(setq doom-modeline-major-mode-icon t)
-(setq doom-modeline-major-mode-color-icon t)
-(setq doom-modeline-buffer-state-icon t)
-(setq doom-modeline-buffer-modification-icon t)
-(setq doom-modeline-unicode-fallback t)
-(setq doom-modeline-enable-word-count nil)
-(setq doom-modeline-buffer-encoding nil)
-(setq doom-modeline-indent-info nil)
-(setq doom-modeline-checker-simple-format t)
-(setq doom-modeline-number-limit 99)
-(setq doom-modeline-vcs-max-length 12)
-(setq doom-modeline-persp-name t)
-(setq doom-modeline-lsp t)
-(setq doom-modeline-github nil)
-(setq doom-modeline-github-interval (* 30 60))
-(setq doom-modeline-modal-icon t)
-(setq doom-modeline-gnus nil)
-(setq doom-modeline-irc t)
-(setq doom-modeline-irc-stylize 'identity)
-(setq doom-modeline-env-version t)
-(setq doom-modeline-env-python-executable "python-shell-interpreter")
-(setq doom-modeline-env-ruby-executable "ruby")
-(setq doom-modeline-env-perl-executable "perl")
-(setq doom-modeline-env-go-executable "go")
-(setq doom-modeline-env-elixir-executable "iex")
-(setq doom-modeline-env-rust-executable "rustc")
-(setq doom-modeline-env-load-string "...")
-(setq doom-modeline-before-update-env-hook nil)
-(setq doom-modeline-after-update-env-hook nil)
-(display-battery-mode)
-(column-number-mode)
-(display-time)
-(doom-themes-neotree-config)
-#+END_SRC
-
-*** Colors and rainbows
-#+BEGIN_SRC emacs-lisp
-;; (require 'color-identifiers-mode)
-;; (global-color-identifiers-mode)
-
-(require 'rainbow-delimiters)
-(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
-#+END_SRC
-
-*** C default style
-#+BEGIN_SRC emacs-lisp
- (c-add-style "openbsd"
- '("bsd"
- (c-backspace-function . delete-backward-char)
- (c-syntactic-indentation-in-macros . nil)
- (c-tab-always-indent . nil)
- (c-hanging-braces-alist
- (block-close . c-snug-do-while))
- (c-offsets-alist
- (arglist-cont-nonempty . *)
- (statement-cont . *))
- (indent-tabs-mode . t)))
- (setq c-default-style "openbsd")
-#+END_SRC
-
-*** Magit
-#+BEGIN_SRC emacs-lisp
-(require 'magit)
-
-(defun my/magit-kill-buffers ()
- "Restore window configuration and kill all Magit buffers.
-Attribution: URL `https://manuel-uberti.github.io/emacs/2018/02/17/magit-bury-buffer/'"
- (interactive)
- (let ((buffers (magit-mode-get-buffers)))
- (magit-restore-window-configuration)
- (mapc #'kill-buffer buffers)))
-
-(bind-key "q" #'my/magit-kill-buffers magit-status-mode-map)
-(evil-define-key 'insert magit-status-mode-map (kbd "q") #'my/magit-kill-buffers)
-(evil-define-key 'normal magit-status-mode-map (kbd "q") #'my/magit-kill-buffers)
-#+END_SRC
-
-*** Lock windows
-#+BEGIN_SRC emacs-lisp
-(defun my/toggle-window-dedicated ()
- "Control whether or not Emacs is allowed to display another
-buffer in current window."
- (interactive)
- (message
- (if (let (window (get-buffer-window (current-buffer)))
- (set-window-dedicated-p window (not (window-dedicated-p window))))
- "%s: locked"
- "%s is up for grabs")
- (current-buffer)))
-
-(global-set-key (kbd "C-c t") 'my/toggle-window-dedicated)
-#+END_SRC
-
-*** Tabs and stuff
-#+BEGIN_SRC emacs-lisp
-(defun minibuffer-keyboard-quit ()
- "Abort recursive edit.
-In Delete Selection mode, if the mark is active, just deactivate it;
-then it takes a second \\[keyboard-quit] to abort the minibuffer."
- (interactive)
- (if (and delete-selection-mode transient-mark-mode mark-active)
- (setq deactivate-mark t)
- (when (get-buffer "*Completions*") (delete-windows-on "*Completions*"))
- (abort-recursive-edit)))
-(define-key evil-normal-state-map [escape] 'keyboard-quit)
-(define-key evil-visual-state-map [escape] 'keyboard-quit)
-(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit)
-(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit)
-(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit)
-(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit)
-(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit)
-
-(defun my/insert-tab-char ()
- (interactive)
- (insert "\t"))
-
-(define-key evil-insert-state-map [tab] 'my/insert-tab-char)
-(setq my/tab-stop 4)
-(setq-default indent-tabs-mode t)
-(setq tab-always-indent 'complete)
-(setq-default tab-width my/tab-stop)
-(setq tab-width my/tab-stop)
-(setq-default c-basic-offset my/tab-stop)
-(setq-default cperl-indent-level my/tab-stop)
-#+END_SRC
-
-*** ibuffer
- #+BEGIN_SRC emacs-lisp
- (require 'ibuffer)
- (require 'ibuffer-vc)
- (require 'ibuffer-projectile)
- (add-hook 'ibuffer-hook
- (lambda ()
- (ibuffer-projectile-set-filter-groups)
- (unless (eq ibuffer-sorting-mode 'alphabetic)
- (ibuffer-do-sort-by-alphabetic))))
- #+END_SRC
-
-*** all the icons
-#+BEGIN_SRC emacs-lisp
-(require 'font-lock+)
-(require 'all-the-icons)
-(require 'all-the-icons-dired)
-(require 'all-the-icons-ibuffer)
-(load "all-the-icons-dired.el")
-(add-hook 'dired-mode-hook 'all-the-icons-dired-mode)
-(all-the-icons-ibuffer-mode 1)
-#+END_SRC
-
-*** which-key
-#+BEGIN_SRC emacs-lisp
-(require 'which-key)
-(which-key-mode)
-#+END_SRC
-
-*** shell-pop
-#+BEGIN_SRC emacs-lisp
-(require 'shell-pop)
-(setq my/shell-pop-shell-type
- (quote
- ("ansi-term" "*ansi-term*"
- (lambda nil
- (ansi-term shell-pop-term-shell)))))
-
-(setq shell-pop-term-shell "/usr/bin/zsh")
-(add-to-list 'evil-emacs-state-modes 'term-mode)
-#+END_SRC
-
-*** org-superstar
-#+BEGIN_SRC emacs-lisp
-(require 'org-superstar)
-(add-hook 'org-mode-hook (lambda () (org-superstar-mode 1)))
-#+END_SRC
-
-*** toc-org
-#+BEGIN_SRC emacs-lisp
-(require 'toc-org)
-(add-hook 'org-mode-hook 'toc-org-mode)
-;; enable in markdown, too
-(add-hook 'markdown-mode-hook 'toc-org-mode)
-(define-key markdown-mode-map (kbd "\C-c\C-o") 'toc-org-markdown-follow-thing-at-point)
-#+END_SRC
-
-*** lsp, ccls, clangd, company, yasnippet
-#+BEGIN_SRC emacs-lisp
- (require 'lsp-mode)
- (require 'lsp-ui)
- ;; (require 'ccls)
- (require 'company)
- (require 'company-box)
- (require 'yasnippet)
- (require 'yasnippet-snippets)
- (require 'yasnippet-classic-snippets)
- (yas-reload-all)
- (yas-global-mode)
- (add-hook 'c-mode-hook 'lsp)
- (add-hook 'c++-mode-hook 'lsp)
- (add-hook 'perl-mode-hook 'lsp)
- (add-hook 'go-mode-hook 'lsp)
- (add-hook 'lsp-mode-hook 'lsp-enable-which-key-integration)
-
- (setq lsp-ui-doc-header t
- lsp-ui-doc-position 'top
- lsp-ui-doc-delay 2
- lsp-ui-doc-show-with-cursor t
- lsp-ui-doc-show-with-mouse t)
-
-
- (setq lsp-ui-sideline-enable nil
- lsp-ui-sideline-show-diagnostics t
- lsp-ui-sideline-show-hover nil
- lsp-ui-sideline-show-code-actions nil
- lsp-ui-sideline-update-mode 'line
- lsp-ui-sideline-delay 0)
-
- (setq lsp-enable-indentation nil
- lsp-completion-enable t
- lsp-headerline-breadcrumb-enable nil)
-
- (setq gc-cons-threshold (* 100 1024 1024)
- read-process-output-max (* 1024 1024)
- company-idle-delay 0.0
- company-minimum-prefix-length 1
- lsp-idle-delay 0.1)
-
- (with-eval-after-load 'lsp-mode
- (add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration)
- (yas-global-mode))
-
- (add-hook 'after-init-hook 'global-company-mode)
- (global-company-mode)
-
- (define-key company-active-map (kbd "C-j") 'company-select-next)
- (define-key company-active-map (kbd "C-k") 'company-select-previous)
- (define-key company-search-map (kbd "C-j") 'company-select-next)
- (define-key company-search-map (kbd "C-k") 'company-select-previous)
- (define-key company-search-map (kbd "C-t") 'company-search-toggle-filtering)
- (define-key company-search-map (kbd "C-i") 'company-complete-common)
- ;; (push 'company-lsp company-backends)
- ;; (setq company-transformers nil company-lsp-async t company-lsp-cache-candidates nil)
- (add-hook 'company-mode-hook 'company-box-mode)
-
- (require 'lsp-clangd)
- (setq lsp-clangd-executable "/usr/bin/clangd")
-
- ;; (setq ccls-executable "ccls")
-
- ;; (defun ccls/callee () (interactive) (lsp-ui-peek-find-custom "$ccls/call" '(:callee t)))
- ;; (defun ccls/caller () (interactive) (lsp-ui-peek-find-custom "$ccls/call"))
- ;; (defun ccls/vars (kind) (lsp-ui-peek-find-custom "$ccls/vars" `(:kind ,kind)))
- ;; (defun ccls/base (levels) (lsp-ui-peek-find-custom "$ccls/inheritance" `(:levels ,levels)))
- ;; (defun ccls/derived (levels) (lsp-ui-peek-find-custom "$ccls/inheritance" `(:levels ,levels :derived t)))
- ;; (defun ccls/member (kind) (interactive) (lsp-ui-peek-find-custom "$ccls/member" `(:kind ,kind)))
-
- ;; ;; References w/ Role::Role
- ;; (defun ccls/references-read () (interactive)
- ;; (lsp-ui-peek-find-custom "textDocument/references"
- ;; (plist-put (lsp--text-document-position-params) :role 8)))
-
- ;; ;; References w/ Role::Write
- ;; (defun ccls/references-write ()
- ;; (interactive)
- ;; (lsp-ui-peek-find-custom "textDocument/references"
- ;; (plist-put (lsp--text-document-position-params) :role 16)))
-
- ;; ;; References w/ Role::Dynamic bit (macro expansions)
- ;; (defun ccls/references-macro () (interactive)
- ;; (lsp-ui-peek-find-custom "textDocument/references"
- ;; (plist-put (lsp--text-document-position-params) :role 64)))
-
- ;; ;; References w/o Role::Call bit (e.g. where functions are taken addresses)
- ;; (defun ccls/references-not-call () (interactive)
- ;; (lsp-ui-peek-find-custom "textDocument/references"
- ;; (plist-put (lsp--text-document-position-params) :excludeRole 32)))
-
- ;; ;; ccls/vars ccls/base ccls/derived ccls/members have a parameter while others are interactive.
- ;; ;; (ccls/base 1) direct bases
- ;; ;; (ccls/derived 1) direct derived
- ;; ;; (ccls/member 2) => 2 (Type) => nested classes / types in a namespace
- ;; ;; (ccls/member 3) => 3 (Func) => member functions / functions in a namespace
- ;; ;; (ccls/member 0) => member variables / variables in a namespace
- ;; ;; (ccls/vars 1) => field
- ;; ;; (ccls/vars 2) => local variable
- ;; ;; (ccls/vars 3) => field or local variable. 3 = 1 | 2
- ;; ;; (ccls/vars 4) => parameter
-
- ;; ;; References whose filenames are under this project
- ;; (setq ccls-sem-highlight-method 'overlay)
- ;; (ccls-use-default-rainbow-sem-highlight)
-#+END_SRC
-
-*** diff-hl
-#+BEGIN_SRC emacs-lisp
- (require 'diff-hl)
- (global-diff-hl-mode)
- (add-hook 'magit-pre-refresh-hook 'diff-hl-magit-pre-refresh)
- (add-hook 'magit-post-refresh-hook 'diff-hl-magit-post-refresh)
-#+END_SRC
-
-*** Saveplace, savehist
- #+BEGIN_SRC emacs-lisp
- (require 'saveplace)
- (add-hook 'after-init-hook 'save-place-mode)
- (require 'savehist)
- (setq history-length 1000
- savehist-additional-variables '(search-ring
- regexp-search-ring
- extended-command-history)
- savehist-autosave-interval 60)
- (add-hook 'after-init-hook 'savehist-mode)
- #+END_SRC
-
-*** Eyebrowse
- #+BEGIN_SRC emacs-lisp
- (require 'eyebrowse)
- (define-key eyebrowse-mode-map (kbd "M-1") 'eyebrowse-switch-to-window-config-1)
- (define-key eyebrowse-mode-map (kbd "M-2") 'eyebrowse-switch-to-window-config-2)
- (define-key eyebrowse-mode-map (kbd "M-3") 'eyebrowse-switch-to-window-config-3)
- (define-key eyebrowse-mode-map (kbd "M-4") 'eyebrowse-switch-to-window-config-4)
- (define-key eyebrowse-mode-map (kbd "M-5") 'eyebrowse-switch-to-window-config-5)
- (define-key eyebrowse-mode-map (kbd "M-6") 'eyebrowse-switch-to-window-config-6)
- (define-key eyebrowse-mode-map (kbd "M-7") 'eyebrowse-switch-to-window-config-7)
- (define-key eyebrowse-mode-map (kbd "M-8") 'eyebrowse-switch-to-window-config-8)
- (eyebrowse-mode t)
- (setq eyebrowse-new-workspace t)
- #+END_SRC
-
-*** web-mode
- #+BEGIN_SRC emacs-lisp
- (defun my-setup-php ()
- ;; enable web mode
- (web-mode)
-
- ;; make these variables local
- (make-local-variable 'web-mode-code-indent-offset)
- (make-local-variable 'web-mode-markup-indent-offset)
- (make-local-variable 'web-mode-css-indent-offset)
-
- ;; set indentation, can set different indentation level for different code type
- (setq web-mode-code-indent-offset 4)
- (setq web-mode-css-indent-offset 4)
- (setq web-mode-markup-indent-offset 4))
- (add-to-list 'auto-mode-alist '("\\.php$" . my-setup-php))
- #+END_SRC
-
-*** undo-tree
- #+BEGIN_SRC emacs-lisp
- (require 'undo-tree)
- (setq undo-tree-auto-save-history nil)
- #+END_SRC
-
-*** neotree
-#+BEGIN_SRC emacs-lisp
- (require 'neotree)
- (setq neo-theme (if (display-graphic-p) 'icons 'arrow))
- (setq neo-window-width 35)
-#+END_SRC
-
-*** mu4e
-#+BEGIN_SRC emacs-lisp
-;; (require 'mu4e)
-;; (require 'org-mu4e)
-;; (require 'mu4e-contrib)
-;; (require 'smtpmail)
-;;
-;; (auth-source-pass-enable)
-;; (setq auth-source-debug t)
-;; (setq auth-source-do-cache nil)
-;; (setq auth-sources '(password-store))
-;; (setq message-kill-buffer-on-exit t)
-;; (setq message-send-mail-function 'smtpmail-send-it)
-;; (setq mu4e-attachment-dir "~/dl")
-;; (setq mu4e-change-filenames-when-moving t)
-;; (setq mu4e-completing-read-function 'completing-read)
-;; (setq mu4e-compose-complete-addresses t)
-;; (setq mu4e-compose-context-policy nil)
-;; (setq mu4e-compose-dont-reply-to-self t)
-;; (setq mu4e-compose-keep-self-cc nil)
-;; (setq mu4e-context-policy 'pick-first)
-;; (setq mu4e-get-mail-command "mbsync -a -c ~/.config/mbsync/mbsyncrc")
-;; (setq mu4e-headers-date-format "%d-%m-%Y %H:%M")
-;; (setq mu4e-headers-fields '((:human-date . 20)
-;; (:flags . 6)
-;; (:mailing-list . 10)
-;; (:from . 22)
-;; (:subject)))
-;; (setq mu4e-headers-include-related t)
-;; (setq mu4e-sent-messages-behavior 'delete)
-;; (setq mu4e-view-show-addresses t)
-;; (setq mu4e-view-show-images t)
-;; (setq smtpmail-debug-info t)
-;; (setq smtpmail-stream-type 'starttls)
-;; (setq mm-sign-option 'guided)
-;;
-;; (when (fboundp 'imagemagick-register-types)
-;; (imagemagick-register-types))
-;;
-;; (defun sign-or-encrypt-message ()
-;; (let ((answer (read-from-minibuffer "Sign or encrypt?\nEmpty to do nothing.\n[s/e]: ")))
-;; (cond
-;; ((string-equal answer "s") (progn
-;; (message "Signing message.")
-;; (mml-secure-message-sign-pgpmime)))
-;; ((string-equal answer "e") (progn
-;; (message "Encrypt and signing message.")
-;; (mml-secure-message-encrypt-pgpmime)))
-;; (t (progn
-;; (message "Dont signing or encrypting message.")
-;; nil)))))
-;;
-;; (add-hook 'message-send-hook 'sign-or-encrypt-message)
-;;
-;; (setq mu4e-contexts
-;; `( ,(make-mu4e-context
-;; :name "gmail"
-;; :enter-func (lambda ()
-;; (mu4e-message "Entering gmail context")
-;; (when (string-match-p (buffer-name (current-buffer)) "mu4e-main")
-;; (revert-buffer)))
-;; :leave-func (lambda ()
-;; (mu4e-message "Leaving gmail context")
-;; (when (string-match-p (buffer-name (current-buffer)) "mu4e-main")
-;; (revert-buffer)))
-;; :match-func (lambda (msg)
-;; (when msg
-;; (or (mu4e-message-contact-field-matches msg :to "Rudy Bousset <bousset.rudy@gmail.com>")
-;; (mu4e-message-contact-field-matches msg :from "Rudy Bousset <bousset.rudy@gmail.com>")
-;; (mu4e-message-contact-field-matches msg :cc "Rudy Bousset <bousset.rudy@gmail.com>")
-;; (mu4e-message-contact-field-matches msg :bcc "Rudy Bousset <bousset.rudy@gmail.com>")
-;; (string-match-p "^/bousset.rudy@gmail.com/INBOX" (mu4e-message-field msg :maildir)))))
-;; :vars '( ( user-mail-address . "bousset.rudy@gmail.com" )
-;; ( smtpmail-smtp-user . "bousset.rudy@gmail.com" )
-;; ( mu4e-compose-signature . "Rudy Bousset" )
-;; ( smtpmail-smtp-server . "smtp.gmail.com" )
-;; ( smtpmail-smtp-service . 587 )
-;; ( mu4e-maildir-shortcuts . ((:maildir "/bousset.rudy@gmail.com/INBOX" :key ?i)))
-;; ( mu4e-bookmarks
-;; .
-;; (( :name "Unread messages"
-;; :query "maildir:/bousset.rudy@gmail.com/INBOX AND flag:unread AND NOT flag:trashed AND NOT outdoorexperten"
-;; :key ?u)
-;; ( :name "Today's messages"
-;; :query "maildir:/bousset.rudy@gmail.com/INBOX AND date:today..now"
-;; :key ?t)
-;; ( :name "Last 7 days"
-;; :query "maildir:/bousset.rudy@gmail.com/INBOX AND date:7d..now"
-;; :hide-unread t
-;; :key ?w)
-;; ( :name "Deleted"
-;; :query "flag:trashed"
-;; :key ?d)
-;; ( :name "Possibly garbage"
-;; :query "bokio OR outdoorexperten"
-;; :key ?g)))))
-;; ))
-#+END_SRC
-
-** Custom funcs
-#+BEGIN_SRC emacs-lisp
- (defadvice text-scale-increase (around all-buffers (arg) activate)
- (dolist (buffer (buffer-list))
- (with-current-buffer buffer
- ad-do-it)))
-
- (defun my/insert-current-date () (interactive)
- (insert (shell-command-to-string "echo ' *' $(date -R)")))
-#+END_SRC
-
-** Compilation
-*** Close window after errorless compilation
-#+BEGIN_SRC emacs-lisp
- (defun bury-compile-buffer-if-successful (buffer string)
- "Bury a compilation buffer if succeeded without warnings "
- (when (and
- (buffer-live-p buffer)
- (string-match "compilation" (buffer-name buffer))
- (string-match "finished" string)
- (not
- (with-current-buffer buffer
- (goto-char (point-min))
- (search-forward "warning" nil t))))
- (run-with-timer 0.5 nil
- (lambda (buf)
- (bury-buffer buf)
- (switch-to-prev-buffer (get-buffer-window buf) 'kill)
- (delete-window))
- buffer)))
- (add-hook 'compilation-finish-functions 'bury-compile-buffer-if-successful)
-#+END_SRC
-
-** Other key bindings
- #+BEGIN_SRC emacs-lisp
- (defun my/nothing ())
- (global-set-key [f1] 'shell-pop)
- (global-set-key [f2] 'neotree-toggle)
- (global-set-key [f3] 'flymake-show-diagnostics-buffer)
- (global-set-key [f4] 'helm-make-projectile)
- (global-set-key [f5] 'undo-tree-visualize)
- (global-set-key (kbd "C-x d") 'dired)
- (global-set-key (kbd "C-x d") 'dired)
- (global-set-key (kbd "C-x b") 'ibuffer)
- (global-set-key (kbd "C-c d") 'my/insert-current-date)
- (global-set-key (kbd "M-9") 'shell-command)
- (global-set-key (kbd "M-0") 'async-shell-command)
- (global-set-key (kbd "M-j") 'next-buffer)
- (global-set-key (kbd "M-k") 'previous-buffer)
-
- (shell-pop--set-shell-type 'my/shell-pop-shell-type my/shell-pop-shell-type)
- #+END_SRC
diff --git a/.config/env b/.config/env
index afc6d1d..1df9a2d 100644
--- a/.config/env
+++ b/.config/env
@@ -12,6 +12,7 @@
# ========================
unset MAILCHECK
+
# xdg
export XDG_DATA_HOME="$HOME"/.local/share
export XDG_CONFIG_HOME="$HOME"/.config
@@ -25,22 +26,25 @@ export XDG_MUSIC_DIR="$HOME"/mu
export XDG_PICTURES_DIR="$HOME"/pics
export XDG_VIDEOS_DIR="$HOME"/vids
export XDG_RUNTIME_DIR=/var/run/"$USER"
+
# Apps
export EDITOR='nvim'
export VISUAL="${EDITOR}"
export PAGER='less'
export MANPAGER='less'
-export TERMINAL='alacritty'
+export TERMINAL='st'
export BROWSER='firefox'
export READER='zathura'
export FILE='lf'
+export MAIL="$XDG_DATA_HOME"/mail
# UTF-8
export CHARSET='UTF-8'
-export LANG='en_US.UTF-8'
-# export LANG='C'
+export LC_ALL=en_US.UTF-8
export LC_COLLATE='C'
-export LC_ALL=''
+export LC_CTYPE=en_US.UTF-8
+export LANG=en_US.UTF-8
+export LANGUAGE=en_US.UTF-8
# Cleanup
export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android
@@ -79,6 +83,8 @@ export WGETRC="$XDG_CONFIG_HOME"/wgetrc
export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default
export W3M_DIR="$XDG_STATE_HOME"/w3m
+# Xorg
+export GTK_THEME='Gruvbox-Dark-B:dark'
export XINITRC="$XDG_CONFIG_HOME"/x11/xinitrc
export XSERVERRC="$XDG_CONFIG_HOME"/x11/xserverrc
export _Z_DATA="$XDG_DATA_HOME"/z
@@ -94,12 +100,38 @@ export BAT_PAGER='less'
export FZF_DEFAULT_COMMAND='fd -i -H -c never -j9 -E .git -E dotfiles-bsd -E .ccls-cache -E GIMP -E iridium -E google-chrome -E chromium -E elpa -E Gpredict -E .cache'
# export FZF_DEFAULT_COMMAND='rg --color never --files --hidden'
export FZF_DEFAULT_OPTS='--height 60% --layout=reverse --border=left --tabstop=4'
+export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS"\
+" --color=bg+:#1d2021,bg:#1d2021"\
+" --color=fg:#bdae93,fg+:#ebdbb2"\
+" --color=hl:#cc241d,hl+:#cc241d"\
+" --color=spinner:#458588"\
+" --color=header:#cc241d,info:#665c54,pointer:#cc241d"\
+" --color=marker:#689d6a,prompt:#d79921"
+
+
export LESS='-R -c -S'
+export MORE_SWITCHES='-ct4'
export MPD_HOST="$XDG_DATA_HOME"/mpd/socket
+export NNN_OPTS='aAdcrRQx'
+export NNN_COLORS='4132'
+export NNN_FCOLORS='030304020005060801ac0507'
+export NNN_ARCHIVE="\\.(7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)$"
+export NNN_TERMINAL=$TERMINAL
+export NNN_PAGER='less'
+export NNN_BATTHEME='gruvbox-dark'
+export NNN_BATSTYLE='plain'
+export NNN_PREVIEWIMGPROG='icat'
+export NNN_PREVIEWVIDEO='tct'
+export NNN_ICONLOOKUP=0
+export NNN_PLUG='t:joe_fzfcd;p:-preview-tui;s:-!gdu -s;f:-fzopen;c:-joe_clipper;d:-joe_dragdrop;q:-joe_cmusq;r:joe_rand'
export RUSTFLAGS='-L /usr/local/lib'
+export SFEED_AUTOCMD="t<<<<<<"
+export SFEED_PLUMBER="linkview"
+export SFEED_PLUMBER_INTERACTIVE="1"
+export SFEED_URL_FILE="$XDG_DATA_HOME/sfeed/readfile"
+export WEBKIT_DISABLE_COMPOSITING_MODE=1
export WWW_HOME='https://start.duckduckgo.com/'
export YTFZF_HIST='0'
-export WLR_DRM_NO_ATOMIC=1
# PATH
export PATH="$HOME"/.local/bin:"$HOME"/.local/bin/status:/usr/local/llvm13/bin:"$HOME"/.pyenv/bin:"$PATH"
diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf
index 3c11d8e..b6ea85b 100644
--- a/.config/fontconfig/fonts.conf
+++ b/.config/fontconfig/fonts.conf
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
- <alias>
- <family>serif</family>
- <prefer>
- <family>DejaVu Serif</family>
- </prefer>
- </alias>
- <alias>
- <family>sans-serif</family>
- <prefer>
- <family>DejaVu Sans</family>
- </prefer>
- </alias>
- <alias>
- <family>monospace</family>
- <prefer>
- <family>Terminess Nerd Font</family>
- </prefer>
- </alias>
+ <alias>
+ <family>serif</family>
+ <prefer>
+ <family>DejaVu Sans</family>
+ </prefer>
+ </alias>
+ <alias>
+ <family>sans-serif</family>
+ <prefer>
+ <family>DejaVu Sans</family>
+ </prefer>
+ </alias>
+ <alias>
+ <family>monospace</family>
+ <prefer>
+ <family>BlexMono Nerd Font</family>
+ </prefer>
+ </alias>
</fontconfig>
diff --git a/.config/go2work/go2work.toml b/.config/go2work/go2work.toml
index d0ea976..eea99b0 100644
--- a/.config/go2work/go2work.toml
+++ b/.config/go2work/go2work.toml
@@ -3,26 +3,27 @@
# is set to 'true'
files = [
# '/home/jozan/mu/rock/grunge/alice_in_chains/1992_dirt/01_them_bones.flac',
- # '/var/hdd/files/mu/rock/grunge/pearl_jam/2020_mtv_unplugged_live/02_state_of_love_and_trust.flac',
- # '/home/jozan/mu/rock/stoner_rock/slo_burn/1997_amusing_the_amazing_ep/02_muezli.flac'
+ # '/home/jozan/mu/rock/grunge/pearl_jam/2020_mtv_unplugged_live/02_state_of_love_and_trust.flac',
+ # '/home/jozan/mu/rock/stoner_rock/slo_burn/1997_amusing_the_amazing_ep/02_muezli.flac'
# '/home/jozan/mu/rock/stoner_rock/slo_burn/1997_amusing_the_amazing_ep/03_pilot_the_dune.flac'
- # '/usr/local/hdd/jozan/dl/Songs Of Anarchy/2015 Songs of Anarchy:Vol. 4 (US, 88875 06146 2)/05 Billy Valentine & The Forest Rangers - All Along The Watchtower.flac',
- # 'dl/Songs Of Anarchy/2011 Songs of Anarchy:Music From Sons of Anarchy Seasons 1-4 (US, 88691 91432 2)/09 Paul Brady & The Forest Rangers - Gimme Shelter.flac',
# '/home/jozan/mu/ost/mick_gordon/2020_doom_eternal_original_game_soundtrack/54_meathook.flac',
+ # '/home/jozan/mu/ost/mick_gordon/2020_doom_eternal_original_game_soundtrack/02_cultist_base.flac',
# '/home/jozan/mu/rock/punk/guerilla_poubelle/2007_punk_existentialisme/10_dans_la_diagonale.flac',
- # '/var/hdd/files/mu/rock/punk/guerilla_poubelle/2005_il_faut_repeindre_le_monde_en_noir/15_exception_culturelle_trafic_darmes.flac',
- # '/home/jozan/mu/ost/mick_gordon/2020_doom_eternal_original_game_soundtrack/21_the_super_gore_nest.flac',
+ # '/home/jozan/mu/rock/punk/guerilla_poubelle/2005_il_faut_repeindre_le_monde_en_noir/15_exception_culturelle_trafic_darmes.flac',
+ '/home/jozan/mu/ost/mick_gordon/2020_doom_eternal_original_game_soundtrack/21_the_super_gore_nest.flac',
# '/home/jozan/16-441/06_conflagration.wav',
# '/home/jozan/mu/progressive/progressive_black_metal/deathspell_omega/2010_paracletus/02_wings_of_predation.flac',
# '/home/jozan/mu/metal/technical_death_metal/gojira/2016_magma/04_stranded.flac',
- '/home/jozan/mu/metal/technical_death_metal/gojira/2005_form_mars_to_sirius/02_backbone.flac',
+ # '/home/jozan/mu/metal/technical_death_metal/gojira/2005_form_mars_to_sirius/02_backbone.flac',
# '/usr/home/jozan/mu/metal/technical_death_metal/ulcerate/2011_the_destroyers_of_all/07_the_destroyers_of_all.flac',
- #'/home/jozan/mu/rock/grunge/nirvana/2011_nevermind_20th_anniversary_deluxe_edition/cd_1/04_breed.flac',
+ # '/home/jozan/mu/rock/grunge/nirvana/2011_nevermind_20th_anniversary_deluxe_edition/cd_1/04_breed.flac',
# '/home/jozan/mu/rock/grunge/alice_in_chains/1990_facelift/02_man_in_the_box.flac',
- # '/var/hdd/files/mu/rock/grunge/alice_in_chains/1992_dirt/11_angry_chair.flac',
- # '/var/hdd/files/mu/rock/grunge/soundgarden/1994_superunknown/04_mailman.flac',
- # '/var/hdd/files/mu/rock/grunge/nirvana/2005_sliver_the_best_of_the_box_compilation/03_mrs._butterworth_rehearsal_demo.flac',
+ # '/home/jozan/mu/rock/grunge/alice_in_chains/1992_dirt/11_angry_chair.flac',
+ # '/home/jozan/mu/rock/grunge/alice_in_chains/1995_alice_in_chains/08_god_am.flac',
+ # '/home/jozan/mu/rock/grunge/soundgarden/1994_superunknown/04_mailman.flac',
+ # '/home/jozan/mu/rock/grunge/nirvana/2005_sliver_the_best_of_the_box_compilation/03_mrs._butterworth_rehearsal_demo.flac',
# '/home/jozan/mu/rock/grunge/nirvana/2009_bleach_20th_anniversary_deluxe_edition/04_school.flac',
+ # '/var/dev/mid/sort/headstrong.opus',
]
# The program used to play the music files
# Default: 'mpv'
diff --git a/.config/gtk-2.0/gtkrc b/.config/gtk-2.0/gtkrc
index cd86bd6..db46803 100644
--- a/.config/gtk-2.0/gtkrc
+++ b/.config/gtk-2.0/gtkrc
@@ -3,9 +3,9 @@
include "/home/r_bousset/.gtkrc-2.0.mine"
gtk-theme-name="Gruvbox-Dark-B"
-gtk-icon-theme-name="Gruvbox_Dark"
+gtk-icon-theme-name="Haiku"
gtk-font-name="sans-serif 12"
-gtk-cursor-theme-name="Adwaita"
+gtk-cursor-theme-name="Simp1e-Gruvbox-Dark"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
diff --git a/.config/gtk-3.0/bookmarks b/.config/gtk-3.0/bookmarks
index 890783e..e7d8748 100644
--- a/.config/gtk-3.0/bookmarks
+++ b/.config/gtk-3.0/bookmarks
@@ -3,6 +3,11 @@ file:///home/jozan/pics/scrot scrot
file:///home/jozan/.wine/drive_c drive_c
file:///tmp tmp
file:///mnt mnt
-file:///home/jozan/docs/nextcloud
-file:///home/jozan/hdd/zhinu
-file:///home/jozan/hdd/files/zhinu
+file:///home/jozan/docs/nextcloud nextcloud
+file:///home/jozan/hdd/zhinu zhinu
+file:///home/jozan/hdd/files/zhinu zhinu
+file:///var/dev/fat/zhinu zhinu
+file:///var/dev/ceres ceres
+file:///var/dev/fat fat
+file:///var/dev/mid mid
+file:///var/dev/ssd ssd
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
index 6f157b0..afc20dd 100644
--- a/.config/gtk-3.0/settings.ini
+++ b/.config/gtk-3.0/settings.ini
@@ -1,14 +1,14 @@
[Settings]
gtk-application-prefer-dark-theme=false
gtk-button-images=0
-gtk-cursor-theme-name=Adwaita
+gtk-cursor-theme-name=Simp1e-Gruvbox-Dark
gtk-cursor-theme-size=0
gtk-decoration-layout=icon:minimize,maximize,close
gtk-enable-animations=true
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-font-name=sans-serif 12
-gtk-icon-theme-name=Gruvbox_Dark
+gtk-icon-theme-name=Haiku
gtk-menu-images=0
gtk-primary-button-warps-slider=false
gtk-theme-name=Gruvbox-Dark-B
diff --git a/.config/isyncrc b/.config/isyncrc
new file mode 100644
index 0000000..abd861f
--- /dev/null
+++ b/.config/isyncrc
@@ -0,0 +1,121 @@
+# vim filetype=conf
+
+IMAPStore gmx_rbo-remote
+Host imap.gmx.com
+Port 993
+User rbo@gmx.us
+PassCmd "pass show mutt/gmx_rbo"
+AuthMechs LOGIN
+TLSType IMAPS
+
+MaildirStore gmx_rbo-local
+SubFolders Verbatim
+Path ~/.local/share/mail/gmx_rbo/
+Inbox ~/.local/share/mail/gmx_rbo/INBOX
+
+Channel gmx_rbo
+Expunge Both
+Far :gmx_rbo-remote:
+Near :gmx_rbo-local:
+Patterns *
+Create Both
+SyncState *
+MaxMessages 0
+ExpireUnread no
+# End profile
+
+IMAPStore gmx_shop-remote
+Host imap.gmx.com
+Port 993
+User rbo_shop@gmx.us
+PassCmd "pass show mutt/gmx_shop"
+AuthMechs LOGIN
+TLSType IMAPS
+
+MaildirStore gmx_shop-local
+SubFolders Verbatim
+Path ~/.local/share/mail/gmx_shop/
+Inbox ~/.local/share/mail/gmx_shop/INBOX
+
+Channel gmx_shop
+Expunge Both
+Far :gmx_shop-remote:
+Near :gmx_shop-local:
+Patterns *
+Create Both
+SyncState *
+MaxMessages 0
+ExpireUnread no
+# End profile
+
+IMAPStore gmail_br-remote
+Host imap.gmail.com
+Port 993
+User bousset.rudy@gmail.com
+PassCmd "pass show mutt/gmail_br"
+AuthMechs LOGIN
+TLSType IMAPS
+
+MaildirStore gmail_br-local
+SubFolders Verbatim
+Path ~/.local/share/mail/gmail_br/
+Inbox ~/.local/share/mail/gmail_br/INBOX
+
+Channel gmail_br
+Expunge Both
+Far :gmail_br-remote:
+Near :gmail_br-local:
+Patterns *
+Create Both
+SyncState *
+MaxMessages 0
+ExpireUnread no
+# End profile
+
+IMAPStore gmail_oon-remote
+Host imap.gmail.com
+Port 993
+User olsen.oyvind.nor@gmail.com
+PassCmd "pass show mutt/gmail_oon"
+AuthMechs LOGIN
+TLSType IMAPS
+
+MaildirStore gmail_oon-local
+SubFolders Verbatim
+Path ~/.local/share/mail/gmail_oon/
+Inbox ~/.local/share/mail/gmail_oon/INBOX
+
+Channel gmail_oon
+Expunge Both
+Far :gmail_oon-remote:
+Near :gmail_oon-local:
+Patterns *
+Create Both
+SyncState *
+MaxMessages 0
+ExpireUnread no
+# End profile
+
+## IMAPStore gmail_tos-remote
+## Host imap.gmail.com
+## Port 993
+## User towerofsilence777@gmail.com
+## PassCmd "pass show mutt/gmail_tos"
+## AuthMechs LOGIN
+## SSLType IMAPS
+##
+## MaildirStore gmail_tos-local
+## SubFolders Verbatim
+## Path /var/mail/jozan/gmail_tos/
+## Inbox /var/mail/jozan/gmail_tos/INBOX
+##
+## Channel gmail_tos
+## Expunge Both
+## Far :gmail_tos-remote:
+## Near :gmail_tos-local:
+## Patterns *
+## Create Both
+## SyncState *
+## MaxMessages 0
+## ExpireUnread no
+## # End profile
diff --git a/.config/lf/icons b/.config/lf/icons
deleted file mode 100644
index 249ada9..0000000
--- a/.config/lf/icons
+++ /dev/null
@@ -1,267 +0,0 @@
-fi=
-di=
-ln=
-pi=|
-so=ﯲ
-db=
-cd=c
-or=
-su=
-sg=
-tw=
-ow=w
-st=
-ex=
-*.7z=
-*.a=
-*.aac=
-*.ace=
-*.ai=
-*.alz=
-*.apk=
-*.arc=
-*.arj=
-*.asf=
-*.asm=
-*.asp=
-*.au=
-*.aup=
-*.avi=
-*.avi=
-*.bash=
-*.bat=
-*.bmp=
-*.bz2=
-*.bz=
-*.c++=
-*.c=
-*.cab=
-*.cbr=
-*.cbz=
-*.cc=
-*.cgm=
-*.class=
-*.clj=
-*.cljc=
-*.cljs=
-*.cmake=
-*.cmd=
-*.coffee=
-*.conf=
-*.cp=
-*.cpio=
-*.cpp=
-*.cs=
-*.css=
-*.cue=
-*.cvs=
-*.cxx=
-*.d=
-*.dart=
-*.db=
-*.deb=
-*.diff=
-*.dl=
-*.dll=
-*.doc=
-*.docx=
-*.dump=
-*.dwm=
-*.dz=
-*.ear=
-*.edn=
-*.eex=
-*.efi=
-*.ejs=
-*.elf=
-*.elm=
-*.emf=
-*.epub=
-*.erl=
-*.esd=
-*.ex=
-*.exe=
-*.exs=
-*.f#=
-*.fifo=|
-*.fish=
-*.flac=
-*.flc=
-*.fli=
-*.flv=
-*.flv=
-*.fs=
-*.fsi=
-*.fsscript=
-*.fsx=
-*.gem=
-*.gif=
-*.git=
-*.gl=
-*.go=
-*.gz=
-*.gzip=
-*.h=
-*.hbs=
-*.hh=
-*.hpp=
-*.hrl=
-*.hs=
-*.htaccess=
-*.htm=
-*.html=
-*.htpasswd=
-*.ico=
-*.img=
-*.ini=
-*.iso=
-*.jar=
-*.java=
-*.jl=
-*.jpeg=
-*.jpg=
-*.js=
-*.json=
-*.jsx=
-*.key=
-*.less=
-*.lha=
-*.lhs=
-*.log=
-*.lrz=
-*.lua=
-*.lz4=
-*.lz=
-*.lzh=
-*.lzma=
-*.lzo=
-*.m2v=
-*.m4a=
-*.m4v=
-*.markdown=
-*.md=
-*.mid=
-*.midi=
-*.mjpeg=
-*.mjpg=
-*.mka=
-*.mkv=
-*.ml=λ
-*.mli=λ
-*.mng=
-*.mov=
-*.mp3=
-*.mp4=
-*.mp4v=
-*.mpc=
-*.mpeg=
-*.mpg=
-*.msi=
-*.mustache=
-*.nix=
-*.nuv=
-*.o=
-*.oga=
-*.ogg=
-*.ogm=
-*.ogv=
-*.ogx=
-*.opus=
-*.pbm=
-*.pcx=
-*.pdf=
-*.pgm=
-*.php=
-*.pl=
-*.pm=
-*.png=
-*.ppk=
-*.ppm=
-*.ppt=
-*.pptx=
-*.pro=
-*.ps1=
-*.psb=
-*.psd=
-*.pub=
-*.py=
-*.pyc=
-*.pyd=
-*.pyo=
-*.qt=
-*.ra=
-*.rar=
-*.rb=
-*.rc=
-*.rlib=
-*.rm=
-*.rmvb=
-*.rom=
-*.rpm=
-*.rs=
-*.rss=
-*.rtf=
-*.rz=
-*.s=
-*.sar=
-*.scala=
-*.scss=
-*.sh=
-*.slim=
-*.sln=
-*.so=
-*.spx=
-*.sql=
-*.styl=
-*.suo=
-*.svg=
-*.svgz=
-*.swm=
-*.t7z=
-*.t=
-*.tar=
-*.taz=
-*.tbz2=
-*.tbz=
-*.tga=
-*.tgz=
-*.tif=
-*.tiff=
-*.tlz=
-*.ts=
-*.twig=
-*.txz=
-*.tz=
-*.tzo=
-*.tzst=
-*.vim=
-*.vimrc=
-*.vob=
-*.war=
-*.wav=
-*.wav=
-*.webm=
-*.wim=
-*.wmv=
-*.xbm=
-*.xbps=
-*.xcf=
-*.xhtml=
-*.xls=
-*.xlsx=
-*.xml=
-*.xpm=
-*.xspf=
-*.xul=
-*.xwd=
-*.xz=
-*.yaml=
-*.yml=
-*.yuv=
-*.z=
-*.zip=
-*.zoo=
-*.zsh=
-*.zst=
-*.src=
-*.ebuild= \ No newline at end of file
diff --git a/.config/lf/lfrc b/.config/lf/lfrc
deleted file mode 100644
index 19653c1..0000000
--- a/.config/lf/lfrc
+++ /dev/null
@@ -1,101 +0,0 @@
-# Basic vars
-set shellopts '-eu'
-set ifs "\n"
-set scrolloff 10
-set shell "/bin/sh"
-set icons
-set period 1
-set dirfirst true
-set drawbox true
-set preview true
-set ratios 1:3:5
-set tabstop 4
-set previewer '~/.config/lf/scope'
-
-# cmds/functions
-cmd open ${{
- if [ -n "$WAYLAND_DISPLAY" ]; then
- IMAGER=imv
- else
- IMAGER="nsxiv -aibo"
- fi
- case $(file --mime-type "$(readlink -f $f)" -b) in
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;;
- application/vnd.openxmlformats-officedocument.wordprocessingml.document) docx2txt $f | $PAGER ;;
- image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid zathura $fx >/dev/null 2>&1 ;;
- text/html) $BROWSER $fx ;;
- text/plain) $PAGER $fx ;;
- text/*|application/json|inode/x-empty) bat --style=plain --tabs 4 --paging=always -f $fx ;;
- image/x-xcf) gimp $f >/dev/null 2>&1 ;;
- image/svg+xml) display -- $f ;;
- image/*)
- rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" |
- $IMAGER 2>/dev/null | while read -r file; do
- [ -z "$file" ] && continue
- lf -remote "send select \"$file\""
- lf -remote "send toggle"
- done
- ;;
- audio/*) mpv --no-audio-display --audio-channels=stereo $fx ;;
- video/*) mpv --really-quiet --audio-channels=stereo $fx >/dev/null 2>&1 ;;
- *opendocument*) odt2txt $f | $PAGER ;;
- application/pdf|application/vnd*|application/epub*) zathura $fx >/dev/null 2>&1 ;;
- application/pgp-encrypted) $EDITOR $fx ;;
- *) for f in $fx; do xdg-open $f >/dev/null 2>&1; done;;
- esac
-}}
-
-cmd mkdir $mkdir -p "$(echo $* | sed 's/ /\ /g')"
-cmd bulkrename $vidir $fx
-cmd showallpics $exa *.png *.jpg *.jpeg *.gif *.webp *.tif *.ico 2>/dev/null | nsxiv -taib &
-cmd newtermedit $EDITOR $fx
-
-map gr cd /
-map gm cd ~/hdd
-map gw cd ~/stoc1/work
-map gS cd ~/pics/scrot
-map gc cd ~/.config
-map gb cd ~/.local/bin
-map gs cd ~/.local/share
-map gp cd ~/.local/packs
-map gM cd /mnt
-map gt cd /tmp
-map gf cd ~/dev/c/c_dergods_realm_2
-
-map za set hidden!
-map zh set info size:time
-map <c-f> $lf -remote "send $id select '$(fzf)'"
-map <enter> open
-map D delete
-map W $$SHELL
-map S $$SHELL
-map <c-s> $$SHELL
-map <c-n> push :mkdir<space>
-map <f-7> push :mkdir<space>
-map <c-r> reload
-cmap <c-g> cmd-escape
-map x !$f
-map X $$f
-map o $$PAGER $f
-map V showallpics
-map @ !clear; du -sh .
-map ( set ratios 1
-map ) set ratios 1:1
-map _ set ratios 1:4
-map + set ratios 1:3:5
-map = set ratios 1:3:5
-map P set preview!
-
-map A rename # at the very end
-map c push A<c-u> # new rename
-map I push A<c-a> # at the very beginning
-map i push A<a-b><a-b><a-f> # before extention
-map a push A<a-b> # after extention
-map B bulkrename
-map <f-2> bulkrename
-
-map <c-e> down
-map <c-y> up
-map e $$EDITOR $fx
-map E $st -e $EDITOR $fx &
-map <insert> push :$$EDITOR<space>
diff --git a/.config/lf/scope b/.config/lf/scope
deleted file mode 100755
index 267e5bf..0000000
--- a/.config/lf/scope
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# File preview handler for lf.
-
-set -C -f
-# IFS="$(printf '%b_' '\n')"; IFS="${IFS%_}"
-
-# image() {
-# if [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzug >/dev/null 2>&1; then
-# printf '{"action": "add", "identifier": "PREVIEW", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$4" "$5" "$(($2-1))" "$(($3-1))" "$1" > "$FIFO_UEBERZUG"
-# else
-# mediainfo "$1"
-# fi
-# }
-
-# ifub() {
-# [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzug >/dev/null 2>&1
-# }
-
-# Note that the cache file name is a function of file information, meaning if
-# an image appears in multiple places across the machine, it will not have to
-# be regenerated once seen.
-
-case "$(file --dereference --brief --mime-type -- "$1")" in
- image/*) mediainfo "$1" || exit 1 ;;
- text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;;
- text/troff) man ./ "$1" | col -b ;;
- text/* | */xml | application/json) bat --plain --terminal-width "$4" -f "$1" ;;
- application/zip) atool --list -- "$1" ;;
- application/x-xz) atool --list -- "$1" ;;
- application/gzip) atool --list -- "$1" ;;
- audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;;
- video/* ) mediainfo "$1" || exit 1 ;;
- */pdf) pdftotext "$1" - || exit 1 ;;
- *opendocument*) odt2txt "$1" || exit 1;;
- application/vnd.openxmlformats-officedocument.wordprocessingml.document) docx2txt "$1" ;;
- application/pgp-encrypted) gpg -d -- "$1" ;;
-esac
-exit 1
diff --git a/.config/mbsync/mbsyncrc b/.config/mbsync/mbsyncrc
deleted file mode 100644
index cd1f02e..0000000
--- a/.config/mbsync/mbsyncrc
+++ /dev/null
@@ -1,185 +0,0 @@
-# vim filetype=conf
-
-#IMAPStore main-remote
-#Host 127.0.0.1
-#Port 1143
-#User rrbo@proton.me
-#PassCmd "pass show mutt/main"
-## AuthMechs LOGIN
-#SSLType None
-# CertificateFile /etc/ssl/cert.pem
-
-IMAPStore gmx_rbo-remote
-Host imap.gmx.com
-Port 993
-User rbo@gmx.us
-PassCmd "pass show mutt/gmx_rbo"
-AuthMechs LOGIN
-SSLType IMAPS
-CertificateFile /etc/ssl/cert.pem
-
-MaildirStore gmx_rbo-local
-SubFolders Verbatim
-Path /var/mail/jozan/gmx_rbo/
-Inbox /var/mail/jozan/gmx_rbo/INBOX
-
-Channel gmx_rbo
-Expunge Both
-Far :gmx_rbo-remote:
-Near :gmx_rbo-local:
-Patterns *
-Create Both
-SyncState *
-MaxMessages 0
-ExpireUnread no
-# End profile
-
-IMAPStore gmail_br-remote
-Host imap.gmail.com
-Port 993
-User bousset.rudy@gmail.com
-PassCmd "pass show mutt/gmail_br"
-AuthMechs LOGIN
-SSLType IMAPS
-CertificateFile /etc/ssl/cert.pem
-
-MaildirStore gmail_br-local
-SubFolders Verbatim
-Path /var/mail/jozan/gmail_br/
-Inbox /var/mail/jozan/gmail_br/INBOX
-
-Channel gmail_br
-Expunge Both
-Far :gmail_br-remote:
-Near :gmail_br-local:
-Patterns *
-Create Both
-SyncState *
-MaxMessages 0
-ExpireUnread no
-# End profile
-
-IMAPStore gmail_oon-remote
-Host imap.gmail.com
-Port 993
-User olsen.oyvind.nor@gmail.com
-PassCmd "pass show mutt/gmail_oon"
-AuthMechs LOGIN
-SSLType IMAPS
-CertificateFile /etc/ssl/cert.pem
-
-MaildirStore gmail_oon-local
-SubFolders Verbatim
-Path /var/mail/jozan/gmail_oon/
-Inbox /var/mail/jozan/gmail_oon/INBOX
-
-Channel gmail_oon
-Expunge Both
-Far :gmail_oon-remote:
-Near :gmail_oon-local:
-Patterns *
-Create Both
-SyncState *
-MaxMessages 0
-ExpireUnread no
-# End profile
-
-IMAPStore gmail_tos-remote
-Host imap.gmail.com
-Port 993
-User towerofsilence777@gmail.com
-PassCmd "pass show mutt/gmail_tos"
-AuthMechs LOGIN
-SSLType IMAPS
-CertificateFile /etc/ssl/cert.pem
-
-MaildirStore gmail_tos-local
-SubFolders Verbatim
-Path /var/mail/jozan/gmail_tos/
-Inbox /var/mail/jozan/gmail_tos/INBOX
-
-Channel gmail_tos
-Expunge Both
-Far :gmail_tos-remote:
-Near :gmail_tos-local:
-Patterns *
-Create Both
-SyncState *
-MaxMessages 0
-ExpireUnread no
-# End profile
-
-# IMAPStore ss_perso-remote
-# Host next.optimails.com
-# Port 993
-# User rbousset@secuserve.com
-# PassCmd "pass show mutt/ss_perso"
-# AuthMechs LOGIN
-# SSLType IMAPS
-# CertificateFile /etc/ssl/cert.pem
-#
-# MaildirStore ss_perso-local
-# SubFolders Verbatim
-# Path /var/mail/jozan/ss_perso/
-# Inbox /var/mail/jozan/ss_perso/INBOX
-#
-# Channel ss_perso
-# Expunge Both
-# Far :ss_perso-remote:
-# Near :ss_perso-local:
-# Patterns *
-# Create Both
-# SyncState *
-# MaxMessages 0
-# ExpireUnread no
-# # End profile
-#
-# IMAPStore ss_exploit-remote
-# Host next.optimails.com
-# Port 993
-# User exploitation@secuserve.com
-# PassCmd "pass show mutt/ss_exploit"
-# AuthMechs LOGIN
-# SSLType IMAPS
-# CertificateFile /etc/ssl/cert.pem
-#
-# MaildirStore ss_exploit-local
-# SubFolders Verbatim
-# Path /var/mail/jozan/ss_exploit/
-# Inbox /var/mail/jozan/ss_exploit/INBOX
-#
-# Channel ss_exploit
-# Expunge Both
-# Far :ss_exploit-remote:
-# Near :ss_exploit-local:
-# Patterns *
-# Create Both
-# SyncState *
-# MaxMessages 0
-# ExpireUnread no
-# # End profile
-#
-# IMAPStore ss_support-remote
-# Host next.optimails.com
-# Port 993
-# User support@secuserve.com
-# PassCmd "pass show mutt/ss_support"
-# AuthMechs LOGIN
-# SSLType IMAPS
-# CertificateFile /etc/ssl/cert.pem
-#
-# MaildirStore ss_support-local
-# SubFolders Verbatim
-# Path /var/mail/jozan/ss_support/
-# Inbox /var/mail/jozan/ss_support/INBOX
-#
-# Channel ss_support
-# Expunge Both
-# Far :ss_support-remote:
-# Near :ss_support-local:
-# Patterns *
-# Create Both
-# SyncState *
-# MaxMessages 0
-# ExpireUnread no
-# # End profile
diff --git a/.config/mimeapps.list b/.config/mimeapps.list
index af1787d..fd26af8 100644
--- a/.config/mimeapps.list
+++ b/.config/mimeapps.list
@@ -1,8 +1,7 @@
[Default Applications]
x-scheme-handler/http=userapp-Firefox-SWW0Y1.desktop
x-scheme-handler/https=userapp-Firefox-SWW0Y1.desktop
-x-scheme-handler/ftp=librewolf.desktop
-image/png=sxiv.desktop
+x-scheme-handler/ftp=userapp-Firefox-SWW0Y1.desktop
x-scheme-handler/chrome=userapp-Firefox-SWW0Y1.desktop
text/html=userapp-Firefox-SWW0Y1.desktop
application/x-extension-htm=userapp-Firefox-SWW0Y1.desktop
@@ -11,9 +10,11 @@ application/x-extension-shtml=userapp-Firefox-SWW0Y1.desktop
application/xhtml+xml=userapp-Firefox-SWW0Y1.desktop
application/x-extension-xhtml=userapp-Firefox-SWW0Y1.desktop
application/x-extension-xht=userapp-Firefox-SWW0Y1.desktop
-application/pdf=org.pwmt.zathura-pdf-poppler.desktop
-image/jpeg=sxiv.desktop
-image/gif=nsxiv.desktop
+application/pdf=org.pwmt.zathura.desktop
+image/png=nsxiv-joe.desktop
+image/jpeg=nsxiv-joe.desktop
+image/gif=nsxiv-joe.desktop
+image/webp=nsxiv-joe.desktop
audio/mpeg=mpv.desktop
audio/flac=mpv.desktop
audio/wav=mpv.desktop
@@ -27,23 +28,25 @@ video/ogg=mpv.desktop
video/webm=mpv.desktop
inode/directory=pcmanfm.desktop
text/plain=nvim.desktop
-application/x-shellscript=emacs.desktop
-text/english=emacs.desktop
-text/x-c=emacs.desktop
-text/x-c++=emacs.desktop
-text/x-c++hdr=emacs.desktop
-text/x-c++src=emacs.desktop
-text/x-chdr=emacs.desktop
-text/x-csrc=emacs.desktop
-text/x-java=emacs.desktop
-text/x-makefile=emacs.desktop
-text/x-readme=emacs.desktop
-text/x-tcl=emacs.desktop
+application/x-shellscript=nvim.desktop
+text/english=nvim.desktop
+text/x-c=nvim.desktop
+text/x-c++=nvim.desktop
+text/x-c++hdr=nvim.desktop
+text/x-c++src=nvim.desktop
+text/x-chdr=nvim.desktop
+text/x-csrc=nvim.desktop
+text/x-java=nvim.desktop
+text/x-makefile=nvim.desktop
+text/x-readme=nvim.desktop
+text/x-tcl=nvim.desktop
+text/x-perl=bat-joe.desktop
x-scheme-handler/msteams=teams.desktop
video/mp4=mpv.desktop
application/zip=xarchiver.desktop
video/x-matroska=mpv.desktop
video/x-ms-wmv=mpv.desktop
+video/x-ms-asf=mpv.desktop
application/x-ms-dos-executable=wine.desktop
x-scheme-handler/mailto=userapp-Thunderbird-BXARX2.desktop
message/rfc822=userapp-Thunderbird-BXARX2.desktop
@@ -54,35 +57,4 @@ video/quicktime=mpv.desktop
x-scheme-handler/forticlient=FortiClient.desktop
x-scheme-handler/discord-460807638964371468=discord-460807638964371468.desktop
x-scheme-handler/discord=vesktop.desktop
-
-[Added Associations]
-x-scheme-handler/https=userapp-Firefox-NVLWI0.desktop;librewolf.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-x-scheme-handler/ftp=userapp-Firefox-NVLWI0.desktop;
-x-scheme-handler/chrome=userapp-Firefox-NVLWI0.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-text/html=emacs.desktop;userapp-Firefox-NVLWI0.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-application/x-extension-htm=userapp-Firefox-NVLWI0.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-application/x-extension-html=userapp-Firefox-NVLWI0.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-application/x-extension-shtml=userapp-Firefox-NVLWI0.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-application/xhtml+xml=userapp-Firefox-NVLWI0.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-application/x-extension-xhtml=userapp-Firefox-NVLWI0.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-application/x-extension-xht=userapp-Firefox-NVLWI0.desktop;firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-application/pdf=org.pwmt.zathura-pdf-mupdf.desktop;org.pwmt.zathura-pdf-poppler.desktop;
-video/webm=mpv.desktop;
-text/plain=nvim.desktop;vim.desktop;org.gnome.gedit.desktop;
-video/mp4=mpv.desktop;
-application/zip=xarchiver.desktop;org.gnome.Nautilus.desktop;
-video/x-matroska=mpv.desktop;
-application/x-partial-download=mpv.desktop;
-video/x-ms-wmv=mpv.desktop;
-image/png=userapp-nsxiv -b -a-NUYH01.desktop;userapp-nsxiv -b -a-8PYC01.desktop;sxiv.desktop;userapp-nsxiv -b -a-25V8Z1.desktop;nsxiv.desktop;
-application/x-ms-dos-executable=wine.desktop;
-application/octet-stream=nvim.desktop;
-x-scheme-handler/mailto=userapp-Thunderbird-SJ2821.desktop;userapp-Thunderbird-BXARX2.desktop;
-x-scheme-handler/mid=userapp-Thunderbird-SJ2821.desktop;userapp-Thunderbird-BXARX2.desktop;
-video/x-msvideo=mpv.desktop;
-x-scheme-handler/http=firefox.desktop;userapp-Firefox-SWW0Y1.desktop;
-video/quicktime=mpv.desktop;
-image/jpeg=sxiv.desktop;
-
-[Removed Associations]
-x-scheme-handler/http=librewolf.desktop;
+application/octet-stream=nvim.desktop
diff --git a/.config/mostrc b/.config/mostrc
deleted file mode 100644
index 9bb031d..0000000
--- a/.config/mostrc
+++ /dev/null
@@ -1,62 +0,0 @@
-% This is an example configuration file that provides a `less' emulation
-% for MOST.
-%
-% The format is simple:
-% setkey <function-name> <key-name>
-% unsetkey <key-name>
-% color <object-name> <fg> <bg>
-%
-% Here <key-name> must be enclosed in double quotes. '^' represents Ctrl.
-% The function name is not in double quotes.
-%
-%
-% When MOST starts up, it looks for a keymap file given by the environment
-% variable MOST_INITFILE. If that environment variable does not exist,
-% MOST will look in the users HOME directory for .mostrc on Unix systems
-% and MOST.RC on VMS systems.
-%
-% The file `most.rc' contains a listing of the default MOST keybindings.
-
-% Color settings
-
-color normal default default
-color status yellow black
-color underline magenta default
-color overstrike red default
-
-% Keybindings
-
-unsetkey "^K"
-setkey up "^K"
-
-unsetkey ":"
-setkey next_file ":n"
-setkey find_file ":e"
-setkey next_file ":p"
-setkey toggle_options ":o"
-setkey toggle_case ":c"
-setkey delete_file ":d"
-setkey exit ":q"
-
-setkey down "e"
-setkey down "E"
-setkey down "j"
-setkey down "^N"
-setkey up "y"
-setkey up "^Y"
-setkey up "k"
-setkey up "^P"
-setkey column_left "h"
-setkey column_right "l"
-setkey page_down "f"
-setkey page_down "^F"
-setkey page_up "b"
-setkey page_up "^B"
-setkey other_window "z"
-setkey other_window "w"
-setkey search_backward "?"
-setkey bob "gg"
-setkey eob "G"
-setkey goto_mark "'"
-setkey find_file "E"
-setkey edit "v"
diff --git a/.config/mpd-notification.conf b/.config/mpd-notification.conf
deleted file mode 100644
index 44cabea..0000000
--- a/.config/mpd-notification.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-music-dir = /home/jozan/mu
-oneline = false
-scale = 200
-timeout = 5
diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf
deleted file mode 100644
index 5b0e2ed..0000000
--- a/.config/mpd/mpd.conf
+++ /dev/null
@@ -1,408 +0,0 @@
-# An example configuration file for MPD.
-# Read the user manual for documentation: http://www.musicpd.org/doc/user/
-
-
-# Files and directories #######################################################
-#
-# This setting controls the top directory which MPD will search to discover the
-# available audio files and add them to the daemon's online database. This
-# setting defaults to the XDG directory, otherwise the music directory will be
-# be disabled and audio files will only be accepted over ipc socket (using
-# file:// protocol) or streaming files over an accepted protocol.
-#
-# music_directory "/var/mpd/music"
-music_directory "~/mu"
-#
-# This setting sets the MPD internal playlist directory. The purpose of this
-# directory is storage for playlists created by MPD. The server will use
-# playlist files not created by the server but only if they are in the MPD
-# format. This setting defaults to playlist saving being disabled.
-#
-playlist_directory "~/.local/share/mpd/playlists"
-#
-# This setting sets the location of the MPD database. This file is used to
-# load the database at server start up and store the database while the
-# server is not up. This setting defaults to disabled which will allow
-# MPD to accept files over ipc socket (using file:// protocol) or streaming
-# files over an accepted protocol.
-#
-db_file "~/.local/share/mpd/db"
-#
-# These settings are the locations for the daemon log files for the daemon.
-# These logs are great for troubleshooting, depending on your log_level
-# settings.
-#
-# The special value "syslog" makes MPD use the local syslog daemon. This
-# setting defaults to logging to syslog.
-#
-log_file "~/.local/share/mpd/log"
-#
-# This setting sets the location of the file which stores the process ID
-# for use of mpd --kill and some init scripts. This setting is disabled by
-# default and the pid file will not be stored.
-#
-pid_file "~/.local/share/mpd/pid"
-#
-# This setting sets the location of the file which contains information about
-# most variables to get MPD back into the same general shape it was in before
-# it was brought down. This setting is disabled by default and the server
-# state will be reset on server start up.
-#
-state_file "~/.local/share/mpd/state"
-#
-# The location of the sticker database. This is a database which
-# manages dynamic information attached to songs.
-#
-sticker_file "~/.local/share/mpd/sticker.sql"
-#
-###############################################################################
-
-
-# General music daemon options ################################################
-#
-# This setting specifies the user that MPD will run as. MPD should never run as
-# root and you may use this setting to make MPD change its user ID after
-# initialization. This setting is disabled by default and MPD is run as the
-# current user.
-#
-user "jozan"
-#
-# This setting specifies the group that MPD will run as. If not specified
-# primary group of user specified with "user" setting will be used (if set).
-# This is useful if MPD needs to be a member of group such as "audio" to
-# have permission to use sound card.
-#
-group "jozan"
-#
-# This setting sets the address for the daemon to listen on. Careful attention
-# should be paid if this is assigned to anything other then the default, any.
-# This setting can deny access to control of the daemon. Not effective if
-# systemd socket activiation is in use.
-#
-# For network
-# bind_to_address "any"
-bind_to_address "127.0.0.1"
-#
-# And for Unix Socket
-bind_to_address "~/.local/share/mpd/socket"
-#
-# This setting is the TCP port that is desired for the daemon to get assigned
-# to.
-#
-port "6600"
-#
-# This setting controls the type of information which is logged. Available
-# setting arguments are "default", "secure" or "verbose". The "verbose" setting
-# argument is recommended for troubleshooting, though can quickly stretch
-# available resources on limited hardware storage.
-#
-#log_level "default"
-#
-# Setting "restore_paused" to "yes" puts MPD into pause mode instead
-# of starting playback after startup.
-#
-#restore_paused "no"
-#
-# This setting enables MPD to create playlists in a format usable by other
-# music players.
-#
-#save_absolute_paths_in_playlists "no"
-#
-# This setting defines a list of tag types that will be extracted during the
-# audio file discovery process. The complete list of possible values can be
-# found in the user manual.
-metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
-#
-# This example just enables the "comment" tag without disabling all
-# the other supported tags:
-#metadata_to_use "+comment"
-#
-# This setting enables automatic update of MPD's database when files in
-# music_directory are changed.
-#
-auto_update "yes"
-#
-# Limit the depth of the directories being watched, 0 means only watch
-# the music directory itself. There is no limit by default.
-#
-auto_update_depth "10"
-#
-###############################################################################
-
-
-# Symbolic link behavior ######################################################
-#
-# If this setting is set to "yes", MPD will discover audio files by following
-# symbolic links outside of the configured music_directory.
-#
-#follow_outside_symlinks "yes"
-#
-# If this setting is set to "yes", MPD will discover audio files by following
-# symbolic links inside of the configured music_directory.
-#
-#follow_inside_symlinks "yes"
-#
-###############################################################################
-
-
-# Zeroconf / Avahi Service Discovery ##########################################
-#
-# If this setting is set to "yes", service information will be published with
-# Zeroconf / Avahi.
-#
-#zeroconf_enabled "yes"
-#
-# The argument to this setting will be the Zeroconf / Avahi unique name for
-# this MPD server on the network. %h will be replaced with the hostname.
-#
-#zeroconf_name "Music Player @ %h"
-#
-###############################################################################
-
-
-# Permissions #################################################################
-#
-# If this setting is set, MPD will require password authorization. The password
-# setting can be specified multiple times for different password profiles.
-#
-#password "password@read,add,control,admin"
-#
-# This setting specifies the permissions a user has who has not yet logged in.
-#
-#default_permissions "read,add,control,admin"
-#
-###############################################################################
-
-
-# Database #######################################################################
-#
-
-#database {
-# plugin "proxy"
-# host "other.mpd.host"
-# port "6600"
-#}
-
-# Input #######################################################################
-#
-
-# input {
-# plugin "curl"
-# proxy "proxy.isp.com:8080"
-# proxy_user "user"
-# proxy_password "password"
-# }
-
-#
-###############################################################################
-
-# Audio Output ################################################################
-#
-# MPD supports various audio output types, as well as playing through multiple
-# audio outputs at the same time, through multiple audio_output settings
-# blocks. Setting this block is optional, though the server will only attempt
-# autodetection for one sound card.
-#
-# An example of an ALSA output:
-#
-#audio_output {
-# type "alsa"
-# name "My ALSA Device"
-## device "hw:0,0" # optional
-## mixer_type "hardware" # optional
-## mixer_device "default" # optional
-## mixer_control "PCM" # optional
-## mixer_index "0" # optional
-#}
-#
-# An example of an OSS output:
-#
-# audio_output {
-# type "oss"
-# name "My OSS Device"
-# #device "/dev/dsp" # optional
-# mixer_type "software" # optional
-# #mixer_device "/dev/mixer" # optional
-# #mixer_control "vol" # optional
-# }
-
-#audio_output {
-# type "fifo"
-# name "my_fifo"
-# path "/tmp/mpd.fifo"
-# format "44100:16:2"
-#}
-#
-# An example of a shout output (for streaming to Icecast):
-#
-#audio_output {
-# type "shout"
-# encoder "vorbis" # optional
-# name "My Shout Stream"
-# host "localhost"
-# port "8000"
-# mount "/mpd.ogg"
-# password "hackme"
-# quality "5.0"
-# bitrate "128"
-# format "44100:16:1"
-## protocol "icecast2" # optional
-## user "source" # optional
-## description "My Stream Description" # optional
-## url "http://example.com" # optional
-## genre "jazz" # optional
-## public "no" # optional
-## timeout "2" # optional
-## mixer_type "software" # optional
-#}
-#
-# An example of a recorder output:
-#
-#audio_output {
-# type "recorder"
-# name "My recorder"
-# encoder "vorbis" # optional, vorbis or lame
-# path "/var/lib/mpd/recorder/mpd.ogg"
-## quality "5.0" # do not define if bitrate is defined
-# bitrate "128" # do not define if quality is defined
-# format "44100:16:1"
-#}
-#
-# An example of a httpd output (built-in HTTP streaming server):
-#
-#audio_output {
-# type "httpd"
-# name "My HTTP Stream"
-# encoder "vorbis" # optional, vorbis or lame
-# port "8000"
-# bind_to_address "127.0.0.1" # optional, IPv4 or IPv6
-## quality "5.0" # do not define if bitrate is defined
-# bitrate "320" # do not define if quality is defined
-# format "44100:16:1"
-# max_clients "0" # optional 0=no limit
-#}
-#
-# An example of a pulseaudio output (streaming to a remote pulseaudio server)
-#
-# audio_output {
-# type "pulse"
-# name "My Pulse Output"
-# # server "remote_server" # optional
-# # sink "remote_server_sink" # optional
-# }
-
-# pipewire
-
-audio_output {
- type "pipewire"
- name "My Pipewire Output"
- # server "remote_server" # optional
- # sink "remote_server_sink" # optional
-}
-#
-# An example of a winmm output (Windows multimedia API).
-#
-#audio_output {
-# type "winmm"
-# name "My WinMM output"
-## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
-# or
-## device "0" # optional
-## mixer_type "hardware" # optional
-#}
-#
-# An example of an openal output.
-#
-#audio_output {
-# type "openal"
-# name "My OpenAL output"
-## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
-#}
-#
-# An example of an sndio output.
-#
-#audio_output {
-# type "sndio"
-# name "sndio output"
-# mixer_type "hardware"
-#}
-#
-# An example of an OS X output:
-#
-#audio_output {
-# type "osx"
-# name "My OS X Device"
-## device "Built-in Output" # optional
-## channel_map "-1,-1,0,1" # optional
-#}
-#
-## Example "pipe" output:
-#
-#audio_output {
-# type "pipe"
-# name "my pipe"
-# command "aplay -f cd 2>/dev/null"
-## Or if you're want to use AudioCompress
-# command "AudioCompress -m | aplay -f cd 2>/dev/null"
-## Or to send raw PCM stream through PCM:
-# command "nc example.org 8765"
-# format "44100:16:2"
-#}
-#
-## An example of a null output (for no audio output):
-#
-#audio_output {
-# type "null"
-# name "My Null Output"
-# mixer_type "none" # optional
-#}
-#
-###############################################################################
-
-
-# Normalization automatic volume adjustments ##################################
-#
-# This setting specifies the type of ReplayGain to use. This setting can have
-# the argument "off", "album", "track" or "auto". "auto" is a special mode that
-# chooses between "track" and "album" depending on the current state of
-# random playback. If random playback is enabled then "track" mode is used.
-# See <http://www.replaygain.org> for more details about ReplayGain.
-# This setting is off by default.
-#
-#replaygain "album"
-#
-# This setting sets the pre-amp used for files that have ReplayGain tags. By
-# default this setting is disabled.
-#
-#replaygain_preamp "0"
-#
-# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
-# By default this setting is disabled.
-#
-#replaygain_missing_preamp "0"
-#
-# This setting enables or disables ReplayGain limiting.
-# MPD calculates actual amplification based on the ReplayGain tags
-# and replaygain_preamp / replaygain_missing_preamp setting.
-# If replaygain_limit is enabled MPD will never amplify audio signal
-# above its original level. If replaygain_limit is disabled such amplification
-# might occur. By default this setting is enabled.
-#
-#replaygain_limit "yes"
-#
-# This setting enables on-the-fly normalization volume adjustment. This will
-# result in the volume of all playing audio to be adjusted so the output has
-# equal "loudness". This setting is disabled by default.
-#
-#volume_normalization "no"
-#
-###############################################################################
-
-# Character Encoding ##########################################################
-#
-# If file or directory names do not display correctly for your locale then you
-# may need to modify this setting.
-#
-#filesystem_charset "UTF-8"
-#
-###############################################################################
diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf
index ac8da77..aea926c 100644
--- a/.config/mpv/input.conf
+++ b/.config/mpv/input.conf
@@ -3,6 +3,7 @@ h seek -5
j seek -60
k seek 60
S cycle sub
+K cycle sub
Ctrl+f script-binding quality_menu/video_formats_toggle #! Stream Quality > Video
Alt+f script-binding quality_menu/audio_formats_toggle #! Stream Quality > Audio
Ctrl+r script-binding reload/reload
diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf
index fbb1019..1412e5e 100644
--- a/.config/mpv/mpv.conf
+++ b/.config/mpv/mpv.conf
@@ -1,4 +1,9 @@
-video-sync=display-resample
+# video-sync=display-resample
+vo=gpu-next
osc=yes
-demuxer-max-bytes=1GiB
+cache=yes
+demuxer-max-bytes=4GiB
+demuxer-max-back-bytes=4GiB
+ytdl=yes
script-opts=ytdl_hook-ytdl_path=yt-dlp,ytdl_hook-try_ytdl_first=yes,ytdl_hook-exclude="%.webm$|%.ts$|%.mp3$|%.m3u8$|%.m3u$|%.mkv$|%.mp4$|%.VOB$"
+term-osd-bar=yes
diff --git a/.config/mpv/scripts/mpv_thumbnail_script_server-1.lua b/.config/mpv/scripts/mpv_thumbnail_script_server-1.lua
deleted file mode 100644
index a91db76..0000000
--- a/.config/mpv/scripts/mpv_thumbnail_script_server-1.lua
+++ /dev/null
@@ -1,815 +0,0 @@
---[[
- Copyright (C) 2017 AMM
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-]]--
---[[
- mpv_thumbnail_script.lua 0.5.3 - commit 6b42232 (branch master)
- https://github.com/TheAMM/mpv_thumbnail_script
- Built on 2023-10-19 11:12:04
-]]--
-local assdraw = require 'mp.assdraw'
-local msg = require 'mp.msg'
-local opt = require 'mp.options'
-local utils = require 'mp.utils'
-
--- Determine if the platform is Windows --
-ON_WINDOWS = (package.config:sub(1,1) ~= '/')
-
--- Determine if the platform is MacOS --
-local uname = io.popen("uname -s"):read("*l")
-ON_MAC = not ON_WINDOWS and (uname == "Mac" or uname == "Darwin")
-
--- Some helper functions needed to parse the options --
-function isempty(v) return not v or (v == "") or (v == 0) or (type(v) == "table" and not next(v)) end
-
-function divmod (a, b)
- return math.floor(a / b), a % b
-end
-
--- Better modulo
-function bmod( i, N )
- return (i % N + N) % N
-end
-
-function join_paths(...)
- local sep = ON_WINDOWS and "\\" or "/"
- local result = "";
- for i, p in pairs({...}) do
- if p ~= "" then
- if is_absolute_path(p) then
- result = p
- else
- result = (result ~= "") and (result:gsub("[\\"..sep.."]*$", "") .. sep .. p) or p
- end
- end
- end
- return result:gsub("[\\"..sep.."]*$", "")
-end
-
--- /some/path/file.ext -> /some/path, file.ext
-function split_path( path )
- local sep = ON_WINDOWS and "\\" or "/"
- local first_index, last_index = path:find('^.*' .. sep)
-
- if not last_index then
- return "", path
- else
- local dir = path:sub(0, last_index-1)
- local file = path:sub(last_index+1, -1)
-
- return dir, file
- end
-end
-
-function is_absolute_path( path )
- local tmp, is_win = path:gsub("^[A-Z]:\\", "")
- local tmp, is_unix = path:gsub("^/", "")
- return (is_win > 0) or (is_unix > 0)
-end
-
-function Set(source)
- local set = {}
- for _, l in ipairs(source) do set[l] = true end
- return set
-end
-
----------------------------
--- More helper functions --
----------------------------
-
--- Removes all keys from a table, without destroying the reference to it
-function clear_table(target)
- for key, value in pairs(target) do
- target[key] = nil
- end
-end
-function shallow_copy(target)
- local copy = {}
- for k, v in pairs(target) do
- copy[k] = v
- end
- return copy
-end
-
--- Rounds to given decimals. eg. round_dec(3.145, 0) => 3
-function round_dec(num, idp)
- local mult = 10^(idp or 0)
- return math.floor(num * mult + 0.5) / mult
-end
-
-function file_exists(name)
- local f = io.open(name, "rb")
- if f then
- local ok, err, code = f:read(1)
- io.close(f)
- return not code
- else
- return false
- end
-end
-
-function path_exists(name)
- local f = io.open(name, "rb")
- if f then
- io.close(f)
- return true
- else
- return false
- end
-end
-
-function create_directories(path)
- local cmd
- if ON_WINDOWS then
- cmd = { args = {"cmd", "/c", "mkdir", path} }
- else
- cmd = { args = {"mkdir", "-p", path} }
- end
- utils.subprocess(cmd)
-end
-
--- Find an executable in PATH or CWD with the given name
-function find_executable(name)
- local delim = ON_WINDOWS and ";" or ":"
-
- local pwd = os.getenv("PWD") or utils.getcwd()
- local path = os.getenv("PATH")
-
- local env_path = pwd .. delim .. path -- Check CWD first
-
- local result, filename
- for path_dir in env_path:gmatch("[^"..delim.."]+") do
- filename = join_paths(path_dir, name)
- if file_exists(filename) then
- result = filename
- break
- end
- end
-
- return result
-end
-
-local ExecutableFinder = { path_cache = {} }
--- Searches for an executable and caches the result if any
-function ExecutableFinder:get_executable_path( name, raw_name )
- name = ON_WINDOWS and not raw_name and (name .. ".exe") or name
-
- if not self.path_cache[name] then
- self.path_cache[name] = find_executable(name) or false
- end
- return self.path_cache[name]
-end
-
--- Format seconds to HH.MM.SS.sss
-function format_time(seconds, sep, decimals)
- decimals = decimals or 3
- sep = sep or "."
- local s = seconds
- local h, s = divmod(s, 60*60)
- local m, s = divmod(s, 60)
-
- local second_format = string.format("%%0%d.%df", 2+(decimals > 0 and decimals+1 or 0), decimals)
-
- return string.format("%02d"..sep.."%02d"..sep..second_format, h, m, s)
-end
-
--- Format seconds to 1h 2m 3.4s
-function format_time_hms(seconds, sep, decimals, force_full)
- decimals = decimals or 1
- sep = sep or " "
-
- local s = seconds
- local h, s = divmod(s, 60*60)
- local m, s = divmod(s, 60)
-
- if force_full or h > 0 then
- return string.format("%dh"..sep.."%dm"..sep.."%." .. tostring(decimals) .. "fs", h, m, s)
- elseif m > 0 then
- return string.format("%dm"..sep.."%." .. tostring(decimals) .. "fs", m, s)
- else
- return string.format("%." .. tostring(decimals) .. "fs", s)
- end
-end
-
--- Writes text on OSD and console
-function log_info(txt, timeout)
- timeout = timeout or 1.5
- msg.info(txt)
- mp.osd_message(txt, timeout)
-end
-
--- Join table items, ala ({"a", "b", "c"}, "=", "-", ", ") => "=a-, =b-, =c-"
-function join_table(source, before, after, sep)
- before = before or ""
- after = after or ""
- sep = sep or ", "
- local result = ""
- for i, v in pairs(source) do
- if not isempty(v) then
- local part = before .. v .. after
- if i == 1 then
- result = part
- else
- result = result .. sep .. part
- end
- end
- end
- return result
-end
-
-function wrap(s, char)
- char = char or "'"
- return char .. s .. char
-end
--- Wraps given string into 'string' and escapes any 's in it
-function escape_and_wrap(s, char, replacement)
- char = char or "'"
- replacement = replacement or "\\" .. char
- return wrap(string.gsub(s, char, replacement), char)
-end
--- Escapes single quotes in a string and wraps the input in single quotes
-function escape_single_bash(s)
- return escape_and_wrap(s, "'", "'\\''")
-end
-
--- Returns (a .. b) if b is not empty or nil
-function joined_or_nil(a, b)
- return not isempty(b) and (a .. b) or nil
-end
-
--- Put items from one table into another
-function extend_table(target, source)
- for i, v in pairs(source) do
- table.insert(target, v)
- end
-end
-
--- Creates a handle and filename for a temporary random file (in current directory)
-function create_temporary_file(base, mode, suffix)
- local handle, filename
- suffix = suffix or ""
- while true do
- filename = base .. tostring(math.random(1, 5000)) .. suffix
- handle = io.open(filename, "r")
- if not handle then
- handle = io.open(filename, mode)
- break
- end
- io.close(handle)
- end
- return handle, filename
-end
-
-
-function get_processor_count()
- local proc_count
-
- if ON_WINDOWS then
- proc_count = tonumber(os.getenv("NUMBER_OF_PROCESSORS"))
- else
- local cpuinfo_handle = io.open("/proc/cpuinfo")
- if cpuinfo_handle then
- local cpuinfo_contents = cpuinfo_handle:read("*a")
- local _, replace_count = cpuinfo_contents:gsub('processor', '')
- proc_count = replace_count
- end
- end
-
- if proc_count and proc_count > 0 then
- return proc_count
- end
-end
-
-function substitute_values(string, values)
- local substitutor = function(match)
- if match == "%" then
- return "%"
- else
- -- nil is discarded by gsub
- return values[match]
- end
- end
-
- local substituted = string:gsub('%%(.)', substitutor)
- return substituted
-end
-
--- ASS HELPERS --
-function round_rect_top( ass, x0, y0, x1, y1, r )
- local c = 0.551915024494 * r -- circle approximation
- ass:move_to(x0 + r, y0)
- ass:line_to(x1 - r, y0) -- top line
- if r > 0 then
- ass:bezier_curve(x1 - r + c, y0, x1, y0 + r - c, x1, y0 + r) -- top right corner
- end
- ass:line_to(x1, y1) -- right line
- ass:line_to(x0, y1) -- bottom line
- ass:line_to(x0, y0 + r) -- left line
- if r > 0 then
- ass:bezier_curve(x0, y0 + r - c, x0 + r - c, y0, x0 + r, y0) -- top left corner
- end
-end
-
-function round_rect(ass, x0, y0, x1, y1, rtl, rtr, rbr, rbl)
- local c = 0.551915024494
- ass:move_to(x0 + rtl, y0)
- ass:line_to(x1 - rtr, y0) -- top line
- if rtr > 0 then
- ass:bezier_curve(x1 - rtr + rtr*c, y0, x1, y0 + rtr - rtr*c, x1, y0 + rtr) -- top right corner
- end
- ass:line_to(x1, y1 - rbr) -- right line
- if rbr > 0 then
- ass:bezier_curve(x1, y1 - rbr + rbr*c, x1 - rbr + rbr*c, y1, x1 - rbr, y1) -- bottom right corner
- end
- ass:line_to(x0 + rbl, y1) -- bottom line
- if rbl > 0 then
- ass:bezier_curve(x0 + rbl - rbl*c, y1, x0, y1 - rbl + rbl*c, x0, y1 - rbl) -- bottom left corner
- end
- ass:line_to(x0, y0 + rtl) -- left line
- if rtl > 0 then
- ass:bezier_curve(x0, y0 + rtl - rtl*c, x0 + rtl - rtl*c, y0, x0 + rtl, y0) -- top left corner
- end
-end
-local SCRIPT_NAME = "mpv_thumbnail_script"
-
-local default_cache_base = ON_WINDOWS and os.getenv("TEMP") or (os.getenv("XDG_CACHE_HOME") or "/tmp/")
-
-local thumbnailer_options = {
- -- The thumbnail directory
- cache_directory = join_paths(default_cache_base, "mpv_thumbs_cache"),
-
- ------------------------
- -- Generation options --
- ------------------------
-
- -- Automatically generate the thumbnails on video load, without a keypress
- autogenerate = true,
-
- -- Only automatically thumbnail videos shorter than this (seconds)
- autogenerate_max_duration = 3600, -- 1 hour
-
- -- SHA1-sum filenames over this length
- -- It's nice to know what files the thumbnails are (hence directory names)
- -- but long URLs may approach filesystem limits.
- hash_filename_length = 128,
-
- -- Use mpv to generate thumbnail even if ffmpeg is found in PATH
- -- ffmpeg does not handle ordered chapters (MKVs which rely on other MKVs)!
- -- mpv is a bit slower, but has better support overall (eg. subtitles in the previews)
- prefer_mpv = true,
-
- -- Explicitly disable subtitles on the mpv sub-calls
- mpv_no_sub = false,
- -- Add a "--no-config" to the mpv sub-call arguments
- mpv_no_config = false,
- -- Add a "--profile=<mpv_profile>" to the mpv sub-call arguments
- -- Use "" to disable
- mpv_profile = "",
- -- Hardware decoding
- mpv_hwdec = "no",
- -- High precision seek
- mpv_hr_seek = "yes",
- -- Output debug logs to <thumbnail_path>.log, ala <cache_directory>/<video_filename>/000000.bgra.log
- -- The logs are removed after successful encodes, unless you set mpv_keep_logs below
- mpv_logs = true,
- -- Keep all mpv logs, even the succesfull ones
- mpv_keep_logs = false,
-
- -- Disable the built-in keybind ("T") to add your own
- disable_keybinds = false,
-
- ---------------------
- -- Display options --
- ---------------------
-
- -- Move the thumbnail up or down
- -- For example:
- -- topbar/bottombar: 24
- -- rest: 0
- vertical_offset = 24,
-
- -- Adjust background padding
- -- Examples:
- -- topbar: 0, 10, 10, 10
- -- bottombar: 10, 0, 10, 10
- -- slimbox/box: 10, 10, 10, 10
- pad_top = 10,
- pad_bot = 0,
- pad_left = 10,
- pad_right = 10,
-
- -- If true, pad values are screen-pixels. If false, video-pixels.
- pad_in_screenspace = true,
- -- Calculate pad into the offset
- offset_by_pad = true,
-
- -- Background color in BBGGRR
- background_color = "000000",
- -- Alpha: 0 - fully opaque, 255 - transparent
- background_alpha = 80,
-
- -- Keep thumbnail on the screen near left or right side
- constrain_to_screen = true,
-
- -- Do not display the thumbnailing progress
- hide_progress = false,
-
- -----------------------
- -- Thumbnail options --
- -----------------------
-
- -- The maximum dimensions of the thumbnails (pixels)
- thumbnail_width = 200,
- thumbnail_height = 200,
-
- -- The thumbnail count target
- -- (This will result in a thumbnail every ~10 seconds for a 25 minute video)
- thumbnail_count = 150,
-
- -- The above target count will be adjusted by the minimum and
- -- maximum time difference between thumbnails.
- -- The thumbnail_count will be used to calculate a target separation,
- -- and min/max_delta will be used to constrict it.
-
- -- In other words, thumbnails will be:
- -- at least min_delta seconds apart (limiting the amount)
- -- at most max_delta seconds apart (raising the amount if needed)
- min_delta = 5,
- -- 120 seconds aka 2 minutes will add more thumbnails when the video is over 5 hours!
- max_delta = 90,
-
-
- -- Overrides for remote urls (you generally want less thumbnails!)
- -- Thumbnailing network paths will be done with mpv
-
- -- Allow thumbnailing network paths (naive check for "://")
- thumbnail_network = false,
- -- Same as autogenerate_max_duration but for remote videos
- remote_autogenerate_max_duration = 1200, -- 20 min
- -- Override thumbnail count, min/max delta
- remote_thumbnail_count = 60,
- remote_min_delta = 15,
- remote_max_delta = 120,
-
- -- Try to grab the raw stream and disable ytdl for the mpv subcalls
- -- Much faster than passing the url to ytdl again, but may cause problems with some sites
- remote_direct_stream = true,
-
- -- Enable storyboards (requires yt-dlp in PATH). Currently only supports YouTube and Twitch VoDs
- storyboard_enable = true,
- -- Max thumbnails for storyboards. It only skips processing some of the downloaded thumbnails and doesn't make it much faster
- storyboard_max_thumbnail_count = 800,
- -- Most storyboard thumbnails are 160x90. Enabling this allows upscaling them up to thumbnail_height
- storyboard_upscale = false,
-}
-
-read_options(thumbnailer_options, SCRIPT_NAME)
-function skip_nil(tbl)
- local n = {}
- for k, v in pairs(tbl) do
- table.insert(n, v)
- end
- return n
-end
-
-function create_thumbnail_mpv(file_path, timestamp, size, output_path, options)
- options = options or {}
-
- local ytdl_disabled = not options.enable_ytdl and (mp.get_property_native("ytdl") == false
- or thumbnailer_options.remote_direct_stream)
-
- local header_fields_arg = nil
- local header_fields = mp.get_property_native("http-header-fields")
- if #header_fields > 0 then
- -- We can't escape the headers, mpv won't parse "--http-header-fields='Name: value'" properly
- header_fields_arg = "--http-header-fields=" .. table.concat(header_fields, ",")
- end
-
- local profile_arg = nil
- if thumbnailer_options.mpv_profile ~= "" then
- profile_arg = "--profile=" .. thumbnailer_options.mpv_profile
- end
-
- local log_arg = "--log-file=" .. output_path .. ".log"
-
- local mpv_path = ON_MAC and "/opt/homebrew/bin/mpv" or "mpv"
-
- local mpv_command = skip_nil{
- mpv_path,
- -- Hide console output
- "--msg-level=all=no",
-
- -- Disable ytdl
- (ytdl_disabled and "--no-ytdl" or nil),
- -- Pass HTTP headers from current instance
- header_fields_arg,
- -- Pass User-Agent and Referer - should do no harm even with ytdl active
- "--user-agent=" .. mp.get_property_native("user-agent"),
- "--referrer=" .. mp.get_property_native("referrer"),
- -- User set hardware decoding
- "--hwdec=" .. thumbnailer_options.mpv_hwdec,
-
- -- Insert --no-config, --profile=... and --log-file if enabled
- (thumbnailer_options.mpv_no_config and "--no-config" or nil),
- profile_arg,
- (thumbnailer_options.mpv_logs and log_arg or nil),
-
- "--start=" .. tostring(timestamp),
- "--frames=1",
- "--hr-seek=" .. thumbnailer_options.mpv_hr_seek,
- "--no-audio",
- -- Optionally disable subtitles
- (thumbnailer_options.mpv_no_sub and "--no-sub" or nil),
-
- (options.relative_scale
- and ("--vf=scale=iw*%d:ih*%d"):format(size.w, size.h)
- or ("--vf=scale=%d:%d"):format(size.w, size.h)),
-
- "--vf-add=format=bgra",
- "--of=rawvideo",
- "--ovc=rawvideo",
- ("--o=%s"):format(output_path),
-
- "--",
-
- file_path,
- }
- return mp.command_native{name="subprocess", args=mpv_command}
-end
-
-
-function create_thumbnail_ffmpeg(file_path, timestamp, size, output_path, options)
- options = options or {}
-
- local ffmpeg_path = ON_MAC and "/opt/homebrew/bin/ffmpeg" or "ffmpeg"
-
- local ffmpeg_command = {
- ffmpeg_path,
- "-loglevel", "quiet",
- "-noaccurate_seek",
- "-ss", format_time(timestamp, ":"),
- "-i", file_path,
-
- "-frames:v", "1",
- "-an",
-
- "-vf",
- (options.relative_scale
- and ("scale=iw*%d:ih*%d"):format(size.w, size.h)
- or ("scale=%d:%d"):format(size.w, size.h)),
-
- "-c:v", "rawvideo",
- "-pix_fmt", "bgra",
- "-f", "rawvideo",
-
- "-y", output_path,
- }
- return mp.command_native{name="subprocess", args=ffmpeg_command}
-end
-
-
-function check_output(ret, output_path, is_mpv)
- local log_path = output_path .. ".log"
- local success = true
-
- if ret.killed_by_us then
- return nil
- else
- if ret.error or ret.status ~= 0 then
- msg.error("Thumbnailing command failed!")
- msg.error("mpv process error:", ret.error)
- msg.error("Process stdout:", ret.stdout)
- if is_mpv then
- msg.error("Debug log:", log_path)
- end
-
- success = false
- end
-
- if not file_exists(output_path) then
- msg.error("Output file missing!", output_path)
- success = false
- end
- end
-
- if is_mpv and not thumbnailer_options.mpv_keep_logs then
- -- Remove successful debug logs
- if success and file_exists(log_path) then
- os.remove(log_path)
- end
- end
-
- return success
-end
-
--- split cols x N atlas in BGRA format into many thumbnail files
-function split_atlas(atlas_path, cols, thumbnail_size, output_name)
- local atlas = io.open(atlas_path, "rb")
- local atlas_filesize = atlas:seek("end")
- local atlas_pictures = math.floor(atlas_filesize / (4 * thumbnail_size.w * thumbnail_size.h))
- local stride = 4 * thumbnail_size.w * math.min(cols, atlas_pictures)
- for pic = 0, atlas_pictures-1 do
- local x_start = (pic % cols) * thumbnail_size.w
- local y_start = math.floor(pic / cols) * thumbnail_size.h
- local filename = output_name(pic)
- if filename then
- local thumb_file = io.open(filename, "wb")
- for line = 0, thumbnail_size.h - 1 do
- atlas:seek("set", 4 * x_start + (y_start + line) * stride)
- local data = atlas:read(thumbnail_size.w * 4)
- if data then
- thumb_file:write(data)
- end
- end
- thumb_file:close()
- end
- end
- atlas:close()
-end
-
-function do_worker_job(state_json_string, frames_json_string)
- msg.debug("Handling given job")
- local thumb_state, err = utils.parse_json(state_json_string)
- if err then
- msg.error("Failed to parse state JSON")
- return
- end
-
- local thumbnail_indexes, err = utils.parse_json(frames_json_string)
- if err then
- msg.error("Failed to parse thumbnail frame indexes")
- return
- end
-
- local thumbnail_func = create_thumbnail_mpv
- if not thumbnailer_options.prefer_mpv then
- if ExecutableFinder:get_executable_path("ffmpeg") then
- thumbnail_func = create_thumbnail_ffmpeg
- else
- msg.warn("Could not find ffmpeg in PATH! Falling back on mpv.")
- end
- end
-
- local file_duration = mp.get_property_native("duration")
- local file_path = thumb_state.worker_input_path
-
- if thumb_state.is_remote and not thumb_state.storyboard then
- if (thumbnail_func == create_thumbnail_ffmpeg) then
- msg.warn("Thumbnailing remote path, falling back on mpv.")
- end
- thumbnail_func = create_thumbnail_mpv
- end
-
- local generate_thumbnail_for_index = function(thumbnail_index)
- -- Given a 1-based thumbnail index, generate a thumbnail for it based on the thumbnailer state
- local thumb_idx = thumbnail_index - 1
- msg.debug("Starting work on thumbnail", thumb_idx)
-
- local thumbnail_path = thumb_state.thumbnail_template:format(thumb_idx)
- -- Grab the "middle" of the thumbnail duration instead of the very start, and leave some margin in the end
- local timestamp = math.min(file_duration - 0.25, (thumb_idx + 0.5) * thumb_state.thumbnail_delta)
-
- mp.commandv("script-message", "mpv_thumbnail_script-progress", tostring(thumbnail_index))
-
- -- The expected size (raw BGRA image)
- local thumbnail_raw_size = (thumb_state.thumbnail_size.w * thumb_state.thumbnail_size.h * 4)
-
- local need_thumbnail_generation = false
-
- -- Check if the thumbnail already exists and is the correct size
- local thumbnail_file = io.open(thumbnail_path, "rb")
- if not thumbnail_file then
- need_thumbnail_generation = true
- else
- local existing_thumbnail_filesize = thumbnail_file:seek("end")
- if existing_thumbnail_filesize ~= thumbnail_raw_size then
- -- Size doesn't match, so (re)generate
- msg.warn("Thumbnail", thumb_idx, "did not match expected size, regenerating")
- need_thumbnail_generation = true
- end
- thumbnail_file:close()
- end
-
- if need_thumbnail_generation then
- local success
- if thumb_state.storyboard then
- -- get atlas and then split it into thumbnails
- local rows = thumb_state.storyboard.rows
- local cols = thumb_state.storyboard.cols
- local div = thumb_state.storyboard.divisor
- local atlas_idx = math.floor(thumb_idx * div /(cols*rows))
- local atlas_path = thumb_state.thumbnail_template:format(atlas_idx) .. ".atlas"
- local url = thumb_state.storyboard.fragments[atlas_idx+1].url
- if not url then
- url = thumb_state.storyboard.fragment_base_url .. "/" .. thumb_state.storyboard.fragments[atlas_idx+1].path
- end
- local ret = thumbnail_func(url, 0, { w=thumb_state.storyboard.scale, h=thumb_state.storyboard.scale }, atlas_path, { relative_scale=true })
- success = check_output(ret, atlas_path, thumbnail_func == create_thumbnail_mpv)
- if success then
- split_atlas(atlas_path, cols, thumb_state.thumbnail_size, function(idx)
- if (atlas_idx * cols * rows + idx) % div ~= 0 then
- return nil
- end
- return thumb_state.thumbnail_template:format(math.floor((atlas_idx * cols * rows + idx) / div))
- end)
- os.remove(atlas_path)
- end
- else
- local ret = thumbnail_func(file_path, timestamp, thumb_state.thumbnail_size, thumbnail_path, thumb_state.worker_extra)
- success = check_output(ret, thumbnail_path, thumbnail_func == create_thumbnail_mpv)
- end
-
- if not success then
- -- Killed by us, changing files, ignore
- msg.debug("Changing files, subprocess killed")
- return true
- elseif not success then
- -- Real failure
- mp.osd_message("Thumbnailing failed, check console for details", 3.5)
- return true
- end
- else
- msg.debug("Thumbnail", thumb_idx, "already done!")
- end
-
- -- Verify thumbnail size
- -- Sometimes ffmpeg will output an empty file when seeking to a "bad" section (usually the end)
- thumbnail_file = io.open(thumbnail_path, "rb")
-
- -- Bail if we can't read the file (it should really exist by now, we checked this in check_output!)
- if not thumbnail_file then
- msg.error("Thumbnail suddenly disappeared!")
- return true
- end
-
- -- Check the size of the generated file
- local thumbnail_file_size = thumbnail_file:seek("end")
- thumbnail_file:close()
-
- -- Check if the file is big enough
- local missing_bytes = math.max(0, thumbnail_raw_size - thumbnail_file_size)
- if missing_bytes > 0 then
- msg.warn(("Thumbnail missing %d bytes (expected %d, had %d), padding %s"):format(
- missing_bytes, thumbnail_raw_size, thumbnail_file_size, thumbnail_path
- ))
- -- Pad the file if it's missing content (eg. ffmpeg seek to file end)
- thumbnail_file = io.open(thumbnail_path, "ab")
- thumbnail_file:write(string.rep(string.char(0), missing_bytes))
- thumbnail_file:close()
- end
-
- msg.debug("Finished work on thumbnail", thumb_idx)
- mp.commandv("script-message", "mpv_thumbnail_script-ready", tostring(thumbnail_index), thumbnail_path)
- end
-
- msg.debug(("Generating %d thumbnails @ %dx%d for %q"):format(
- #thumbnail_indexes,
- thumb_state.thumbnail_size.w,
- thumb_state.thumbnail_size.h,
- file_path))
-
- for i, thumbnail_index in ipairs(thumbnail_indexes) do
- local bail = generate_thumbnail_for_index(thumbnail_index)
- if bail then return end
- end
-
-end
-
--- Set up listeners and keybinds
-
--- Job listener
-mp.register_script_message("mpv_thumbnail_script-job", do_worker_job)
-
-
--- Register this worker with the master script
-local register_timer = nil
-local register_timeout = mp.get_time() + 1.5
-
-local register_function = function()
- if mp.get_time() > register_timeout and register_timer then
- msg.error("Thumbnail worker registering timed out")
- register_timer:stop()
- else
- msg.debug("Announcing self to master...")
- mp.commandv("script-message", "mpv_thumbnail_script-worker", mp.get_script_name())
- end
-end
-
-register_timer = mp.add_periodic_timer(0.1, register_function)
-
-mp.register_script_message("mpv_thumbnail_script-slaved", function()
- msg.debug("Successfully registered with master")
- register_timer:stop()
-end)
diff --git a/.config/msmtp/config b/.config/msmtp/config
index 0919535..4ada845 100644
--- a/.config/msmtp/config
+++ b/.config/msmtp/config
@@ -1,7 +1,9 @@
+# vim: filetype=conf
+
defaults
auth on
-tls on
-tls_trust_file /etc/ssl/cert.pem
+tls on
+tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /home/jozan/.config/msmtp/msmtp.log
account gmx_rbo
@@ -11,6 +13,13 @@ account gmx_rbo
user rbo@gmx.us
passwordeval "pass show mutt/gmx_rbo"
+account gmx_shop
+ host mail.gmx.com
+ port 587
+ from rbo_shop@gmx.us
+ user rbo_shop@gmx.us
+ passwordeval "pass show mutt/gmx_shop"
+
account gmail_br
host smtp.gmail.com
port 587
@@ -21,16 +30,16 @@ account gmail_br
account gmail_oon
host smtp.gmail.com
port 587
- from Joe
+ from joe
user olsen.oyvind.nor@gmail.com
passwordeval "pass show mutt/gmail_oon"
-account gmail_tos
- host smtp.gmail.com
- port 587
- from Tower Of Silence
- user towerofsilence777@gmail.com
- passwordeval "pass show mutt/gmail_tos"
+# account gmail_tos
+# host smtp.gmail.com
+# port 587
+# from Tower Of Silence
+# user towerofsilence777@gmail.com
+# passwordeval "pass show mutt/gmail_tos"
# account ss_perso
# host next.optimails.com
diff --git a/.config/mutt/accounts/1-gmx_rbo.muttrc b/.config/mutt/accounts/1-gmx_rbo.muttrc
index 4c260a5..c9c7596 100644
--- a/.config/mutt/accounts/1-gmx_rbo.muttrc
+++ b/.config/mutt/accounts/1-gmx_rbo.muttrc
@@ -1,9 +1,9 @@
# vim: filetype=neomuttrc
# muttrc file for account bousset.rudy@gmail.com
-set realname = "Rudy Bousset"
+set realname = "joe"
set from = "rbo@gmx.us"
set sendmail = "msmtp -a gmx_rbo"
-alias me Rudy Bousset <rbo@gmx.us>
+alias me joe <rbo@gmx.us>
set folder = "$MAIL/gmx_rbo"
set header_cache = $XDG_RUNTIME_DIR/mutt/gmx_rbo/headers
set message_cachedir = $XDG_RUNTIME_DIR/mutt/gmx_rbo/bodies
@@ -18,27 +18,33 @@ bind index,pager C noop
bind index gg first-entry
bind pager gg top
bind pager G bottom
-macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync -c $XDG_CONFIG_HOME/mbsync/mbsyncrc gmx_rbo<enter>" "run mbsync to sync rbo@gmx.us"
+macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync gmx_rbo<enter>" "run mbsync to sync rbo@gmx.us"
unmailboxes *
-mailboxes "=INBOX" "=Sent" "=Drafts" "=Spam" "=Trash" "=Keep"
+named-mailboxes \
+ "󰶉 inbox" =INBOX \
+ " sent" =Sent \
+ "󱩽 draft" =Drafts \
+ " junk" =Spam \
+ " trash" =Trash \
+ " keep" =Keep
macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox"
-set spoolfile = "+INBOX"
+set spoolfile = +INBOX
macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent"
macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent"
-set record = ""
+set record = +Sent
macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts"
macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts"
macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts"
-set postponed = "+Drafts"
+set postponed = +Drafts
macro index,pager gS "<change-folder>=Spam<enter>" "go to spam"
macro index,pager MS ";<save-message>=Spam<enter>" "move mail to spam"
macro index,pager CS ";<copy-message>=Spam<enter>" "copy mail to spam"
macro index,pager gt "<change-folder>=Trash<enter>" "go to trash"
macro index,pager Mt ";<save-message>=Trash<enter>" "move mail to trash"
macro index,pager Ct ";<copy-message>=Trash<enter>" "copy mail to trash"
-set trash = "+Trash"
+set trash = +Trash
diff --git a/.config/mutt/accounts/2-gmx_shop.muttrc b/.config/mutt/accounts/2-gmx_shop.muttrc
new file mode 100644
index 0000000..bfda76c
--- /dev/null
+++ b/.config/mutt/accounts/2-gmx_shop.muttrc
@@ -0,0 +1,49 @@
+# vim: filetype=neomuttrc
+# muttrc file for account bousset.rudy@gmail.com
+set realname = "joe"
+set from = "rbo_shop@gmx.us"
+set sendmail = "msmtp -a gmx_shop"
+alias me joe <rbo_shop@gmx.us>
+set folder = "$MAIL/gmx_shop"
+set header_cache = $XDG_RUNTIME_DIR/mutt/gmx_shop/headers
+set message_cachedir = $XDG_RUNTIME_DIR/mutt/gmx_shop/bodies
+set mbox_type = Maildir
+set crypt_autosign = yes
+set signature = $XDG_CONFIG_HOME/mutt/sig/2-gmx_shop
+
+bind index,pager gg noop
+bind index,pager g noop
+bind index,pager M noop
+bind index,pager C noop
+bind index gg first-entry
+bind pager gg top
+bind pager G bottom
+macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync gmx_shop<enter>" "run mbsync to sync rbo@gmx.us"
+unmailboxes *
+
+named-mailboxes \
+ "󰶉 inbox" =INBOX \
+ " sent" =Sent \
+ "󱩽 draft" =Drafts \
+ " junk" =Spam \
+ " trash" =Trash
+
+macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
+macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
+macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox"
+set spoolfile = +INBOX
+macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
+macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent"
+macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent"
+set record = +Sent
+macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts"
+macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts"
+macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts"
+set postponed = +Drafts
+macro index,pager gS "<change-folder>=Spam<enter>" "go to spam"
+macro index,pager MS ";<save-message>=Spam<enter>" "move mail to spam"
+macro index,pager CS ";<copy-message>=Spam<enter>" "copy mail to spam"
+macro index,pager gt "<change-folder>=Trash<enter>" "go to trash"
+macro index,pager Mt ";<save-message>=Trash<enter>" "move mail to trash"
+macro index,pager Ct ";<copy-message>=Trash<enter>" "copy mail to trash"
+set trash = +Trash
diff --git a/.config/mutt/accounts/4-gmail_br.muttrc b/.config/mutt/accounts/3-gmail_br.muttrc
index ac92a3c..d114173 100644
--- a/.config/mutt/accounts/4-gmail_br.muttrc
+++ b/.config/mutt/accounts/3-gmail_br.muttrc
@@ -9,7 +9,7 @@ set header_cache = $XDG_RUNTIME_DIR/mutt/gmail_br/headers
set message_cachedir = $XDG_RUNTIME_DIR/mutt/gmail_br/bodies
set mbox_type = Maildir
set crypt_autosign = yes
-set signature = $XDG_CONFIG_HOME/mutt/sig/2-gmail_br
+set signature = $XDG_CONFIG_HOME/mutt/sig/3-gmail_br
bind index,pager gg noop
bind index,pager g noop
@@ -18,10 +18,16 @@ bind index,pager C noop
bind index gg first-entry
bind pager gg top
bind pager G bottom
-macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync -c $XDG_CONFIG_HOME/mbsync/mbsyncrc gmail_br<enter>" "run mbsync to sync bousset.rudy@gmail.com"
+macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync gmail_br<enter>" "run mbsync to sync bousset.rudy@gmail.com"
unmailboxes *
-mailboxes "=INBOX" "=[Gmail]/Sent Mail" "=[Gmail]/Drafts" "=[Gmail]/Spam" "=[Gmail]/Trash" "=Keep"
+named-mailboxes \
+ "󰶉 inbox" =INBOX \
+ " sent" "=[Gmail]/Sent Mail" \
+ "󱩽 draft" =[Gmail]/Drafts \
+ " junk" =[Gmail]/Spam \
+ " trash" =[Gmail]/Trash \
+ " keep" =Keep
macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
@@ -30,15 +36,15 @@ set spoolfile = "+INBOX"
macro index,pager gs "<change-folder>=[Gmail]/Sent Mail<enter>" "go to sent"
macro index,pager Ms ";<save-message>=[Gmail]/Sent Mail<enter>" "move mail to sent"
macro index,pager Cs ";<copy-message>=[Gmail]/Sent Mail<enter>" "copy mail to sent"
-set record = ""
+set record = "+[Gmail]/Sent Mail"
macro index,pager gd "<change-folder>=[Gmail]/Drafts<enter>" "go to drafts"
macro index,pager Md ";<save-message>=[Gmail]/Drafts<enter>" "move mail to drafts"
macro index,pager Cd ";<copy-message>=[Gmail]/Drafts<enter>" "copy mail to drafts"
-set postponed = "+[Gmail]/Drafts"
+set postponed = +[Gmail]/Drafts
macro index,pager gS "<change-folder>=[Gmail]/Spam<enter>" "go to spam"
macro index,pager MS ";<save-message>=[Gmail]/Spam<enter>" "move mail to spam"
macro index,pager CS ";<copy-message>=[Gmail]/Spam<enter>" "copy mail to spam"
macro index,pager gt "<change-folder>=[Gmail]/Trash<enter>" "go to trash"
macro index,pager Mt ";<save-message>=[Gmail]/Trash<enter>" "move mail to trash"
macro index,pager Ct ";<copy-message>=[Gmail]/Trash<enter>" "copy mail to trash"
-set trash = "+[Gmail]/Trash"
+set trash = +[Gmail]/Trash
diff --git a/.config/mutt/accounts/5-gmail_oon.muttrc b/.config/mutt/accounts/4-gmail_oon.muttrc
index 09e1b14..c69f27e 100644
--- a/.config/mutt/accounts/5-gmail_oon.muttrc
+++ b/.config/mutt/accounts/4-gmail_oon.muttrc
@@ -1,15 +1,15 @@
# vim: filetype=neomuttrc
# muttrc file for account olsen.oyvind.nor@gmail.com
-set realname = "Joe"
+set realname = "joe"
set from = "olsen.oyvind.nor@gmail.com"
set sendmail = "msmtp -a gmail_oon"
-alias me Joe <olsen.oyvind.nor@gmail.com>
+alias me joe <olsen.oyvind.nor@gmail.com>
set folder = "$MAIL/gmail_oon"
set header_cache = $XDG_RUNTIME_DIR/mutt/gmail_oon/headers
set message_cachedir = $XDG_RUNTIME_DIR/mutt/gmail_oon/bodies
set mbox_type = Maildir
set crypt_autosign = yes
-set signature = $XDG_CONFIG_HOME/mutt/sig/3-gmail_oon
+set signature = $XDG_CONFIG_HOME/mutt/sig/4-gmail_oon
bind index,pager gg noop
bind index,pager g noop
@@ -18,27 +18,33 @@ bind index,pager C noop
bind index gg first-entry
bind pager gg top
bind pager G bottom
-macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync -c $XDG_CONFIG_HOME/mbsync/mbsyncrc gmail_oon<enter>" "run mbsync to sync olsen.oyvind.nor@gmail.com"
+macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync gmail_oon<enter>" "run mbsync to sync olsen.oyvind.nor@gmail.com"
unmailboxes *
-mailboxes "=INBOX" "=[Gmail]/Sent Mail" "=[Gmail]/Drafts" "=[Gmail]/Spam" "=[Gmail]/Trash" "=Keep"
+named-mailboxes \
+ "󰶉 inbox" =INBOX \
+ " sent" "=[Gmail]/Sent Mail" \
+ "󱩽 draft" =[Gmail]/Drafts \
+ " junk" =[Gmail]/Spam \
+ " trash" =[Gmail]/Trash \
+ " keep" =Keep
macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox"
-set spoolfile = "+INBOX"
+set spoolfile = +INBOX
macro index,pager gs "<change-folder>=[Gmail]/Sent Mail<enter>" "go to sent"
macro index,pager Ms ";<save-message>=[Gmail]/Sent Mail<enter>" "move mail to sent"
macro index,pager Cs ";<copy-message>=[Gmail]/Sent Mail<enter>" "copy mail to sent"
-set record = ""
+set record = "+[Gmail]/Sent Mail"
macro index,pager gd "<change-folder>=[Gmail]/Drafts<enter>" "go to drafts"
macro index,pager Md ";<save-message>=[Gmail]/Drafts<enter>" "move mail to drafts"
macro index,pager Cd ";<copy-message>=[Gmail]/Drafts<enter>" "copy mail to drafts"
-set postponed = "+[Gmail]/Drafts"
+set postponed = +[Gmail]/Drafts
macro index,pager gS "<change-folder>=[Gmail]/Spam<enter>" "go to spam"
macro index,pager MS ";<save-message>=[Gmail]/Spam<enter>" "move mail to spam"
macro index,pager CS ";<copy-message>=[Gmail]/Spam<enter>" "copy mail to spam"
macro index,pager gt "<change-folder>=[Gmail]/Trash<enter>" "go to trash"
macro index,pager Mt ";<save-message>=[Gmail]/Trash<enter>" "move mail to trash"
macro index,pager Ct ";<copy-message>=[Gmail]/Trash<enter>" "copy mail to trash"
-set trash = "+[Gmail]/Trash"
+set trash = +[Gmail]/Trash
diff --git a/.config/mutt/accounts/4-ss_perso.muttrc b/.config/mutt/accounts/4-ss_perso.muttrc
deleted file mode 100644
index 9b8d5d1..0000000
--- a/.config/mutt/accounts/4-ss_perso.muttrc
+++ /dev/null
@@ -1,47 +0,0 @@
-# vim: filetype=neomuttrc
-# muttrc file for account rbousset@secuserve.com
-set realname = "Rudy Bousset"
-set from = "rbousset@secuserve.com"
-set sendmail = "msmtp -a ss_perso"
-alias me Rudy Bousset <rbousset@secuserve.com>
-set folder = "$MAIL/ss_perso"
-set header_cache = $XDG_RUNTIME_DIR/mutt/ss_perso/headers
-set message_cachedir = $XDG_RUNTIME_DIR/mutt/ss_perso/bodies
-set mbox_type = Maildir
-set crypt_autosign = yes
-set signature = $XDG_CONFIG_HOME/mutt/sig/5-ss_perso
-
-bind index,pager gg noop
-bind index,pager g noop
-bind index,pager M noop
-bind index,pager C noop
-bind index gg first-entry
-bind pager gg top
-bind pager G bottom
-macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync -c $XDG_CONFIG_HOME/mbsync/mbsyncrc ss_perso<enter>" "run mbsync to sync rbousset@secuserve.com"
-unmailboxes *
-
-mailboxes "=INBOX" "=Sent" "=Drafts" "=Junk" "=Trash" "=Keep" "=NEWS" "=Calendrier" "=T&AOI-ches" "=Notes" "=Reports" "=Reports/OTRS" "=Reports/Trello" "=Reports/Teams" "=Reports/Unimus" "=Reports/vzdump"
-
-macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
-macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
-macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox"
-set spoolfile = "+INBOX"
-macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
-macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent"
-macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent"
-set record = "+Sent"
-macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts"
-macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts"
-macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts"
-set postponed = "+Drafts"
-macro index,pager gS "<change-folder>=Junk<enter>" "go to junk"
-macro index,pager MS ";<save-message>=Junk<enter>" "move mail to junk"
-macro index,pager CS ";<copy-message>=Junk<enter>" "copy mail to junk"
-macro index,pager gt "<change-folder>=Trash<enter>" "go to trash"
-macro index,pager Mt ";<save-message>=Trash<enter>" "move mail to trash"
-macro index,pager Ct ";<copy-message>=Trash<enter>" "copy mail to trash"
-set trash = "+Trash"
-macro index,pager gn "<change-folder>=NEWS<enter>" "go to news"
-macro index,pager Mn ";<save-message>=NEWS<enter>" "move mail to news"
-macro index,pager Cn ";<copy-message>=NEWS<enter>" "copy mail to news"
diff --git a/.config/mutt/accounts/5-ss_exploit.muttrc b/.config/mutt/accounts/5-ss_exploit.muttrc
deleted file mode 100644
index b763ba0..0000000
--- a/.config/mutt/accounts/5-ss_exploit.muttrc
+++ /dev/null
@@ -1,70 +0,0 @@
-# vim: filetype=neomuttrc
-# muttrc file for account support@secuserve.com
-set realname = "Team Exploitation SecuServe"
-set from = "exploitation@secuserve.com"
-set sendmail = "msmtp -a ss_exploit"
-alias me Team Exploitation SecuServe <exploitation@secuserve.com>
-set folder = "$MAIL/ss_exploit"
-set header_cache = $XDG_RUNTIME_DIR/mutt/ss_exploit/headers
-set message_cachedir = $XDG_RUNTIME_DIR/mutt/ss_exploit/bodies
-set mbox_type = Maildir
-set crypt_autosign = no
-set signature = $XDG_CONFIG_HOME/mutt/sig/6-ss_exploit
-
-bind index,pager gg noop
-bind index,pager g noop
-bind index,pager M noop
-bind index,pager C noop
-bind index gg first-entry
-bind pager gg top
-bind pager G bottom
-macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync -c $XDG_CONFIG_HOME/mbsync/mbsyncrc ss_exploit<enter>" "run mbsync to sync exploitation@secuserve.com"
-unmailboxes *
-
-mailboxes "=INBOX" "=INBOX/- Secuserve" "=INBOX/Altospam" "=INBOX/BAT" "=INBOX/DEBUG" "=INBOX/Erreurs (boite recept)" \
- "=INBOX/Erreurs (boite recept)/Erreur SI local" "=INBOX/Erreurs (boite recept)/Erreur diverses" "=INBOX/Erreurs (boite recept)/Erreur transport" "=INBOX/Notification" "=INBOX/Postfix SMTP server errors" "=INBOX/Spamtiometre" \
- "=INBOX/TSRC sync" "=INBOX/Trait&AOk-" "=INBOX/replication" \
- "=Sent" "=Drafts" "=SPAM" "=SPAM/SPAMS_NONTRAITES" "=SPAM/SPAMS_TRAITES" "=SPAM/SPAM_TRAP" \
- "=Trash" "=Trash/DOC-SUPPORT" "=Trash/Deleted Messages" "=Trash/Depassement de quota" "=Trash/ESET Antispam" \
- "=Trash/GIP-RENATER" "=Trash/MIGRATION-CLIENT" "=Trash/MIGRATION-CLIENT/Cahors" "=Trash/Messages journaliers" "=Trash/Messages journaliers/configs" "=Trash/Messages journaliers/quarantaine" "=Trash/Messages journaliers/rapport quarantaine journalier" "=Trash/PUB" \
- "=Trash/Rapport-Astreintes" "=Trash/Reseaux" "=Trash/Stalker" "=Trash/Technique" "=Trash/procedures" \
- "=&AMk-l&AOk-ments envoy&AOk-s" "=Brouillons" "=Calendrier" "=Calendrier/Astreintes" "=Calendrier/Conges" \
- "=&AMk-l&AOk-ments supprim&AOk-s" "=Alert FireWall" \
- "=Alert-Monitoring" "=Archive" "=Archives" "=Archives/2009" "=Archives/2010" "=Archives/2011" \
- "=Archives/2012" "=Archives/2013" "=Archives/2014" "=Archives/2015" "=Archives/2016" "=Archives/2017" \
- "=Archives/2022" "=Backups" \
- "=Complaints" "=Complaints/Complaint La Poste" "=Complaints/Complaint Outlook et Hotmail" "=Contacts" "=Contacts/Clients" "=Courrier ind&AOk-sirable" \
- "=Courrier ind&AOk-sirable/SPAM by St&AOk-phane &- Peggy" "=DNS" "=DNS/DNS - MX Status" "=DNS/MxToolBox" "=DNS/Report domain" "=DNS/Report domain/Report domain - Google" \
- "=DNS/Report domain/Report domain - Yahoo" "=Erreurs" "=Fournisseurs" "=Fournisseurs/Applications" "=Fournisseurs/Applications/Communigate" \
- "=Fournisseurs/Cisco" "=Fournisseurs/DigiCert" "=Fournisseurs/Gandi" "=Fournisseurs/Hebergement" "=Fournisseurs/Hebergement/Global SP" "=Fournisseurs/Hebergement/OVH" \
- "=Fournisseurs/Hebergement/OVH/OVH - Message vocaux" "=Fournisseurs/Hebergement/Online" "=Fournisseurs/Hebergement/Owentis" "=Fournisseurs/Hebergement/Owentis/Equinix" "=Fournisseurs/Hebergement/Owentis/Global Switch" "=Incident" \
- "=Info Exploitation" "=Info Exploitation/Autre-Licence" "=Info Exploitation/Certificat" "=Info Exploitation/History" "=Info Exploitation/Licence-Antivirus" "=Info Exploitation/Maintenance Datacenter" \
- "=Info Exploitation/Pkg-Information" "=Info Exploitation/RBLS" "=Info Exploitation/Support-Technique-Interne" "=Interventions" "=Journal" "=Junk" \
- "=MEP" "=MEP/Attente retour Dev" "=MEP/Done" "=MEP/En-cours" "=MEP/wblist" "=Notes" \
- "=Report domain/Report domain - Google" "=Report domain/Report domain - Yahoo" \
- "=SVN" "=Statistiques" "=Statistiques/Stats clients" "=Statistiques/Stats fournisseurs" "=Supervision" \
- "=Supervision/Alarme Lyon" "=Supervision/Alert-Monitoring" "=Supervision/Alerte-Nagios" "=Supervision/Zabbix" "=T&AOI-ches" \
- "=main courante" "=main courante/Done"
-
-macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
-macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
-macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox"
-set spoolfile = "+INBOX"
-macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
-macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent"
-macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent"
-set record = "+Sent"
-macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts"
-macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts"
-macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts"
-set postponed = "+Drafts"
-macro index,pager gS "<change-folder>=SPAM<enter>" "go to spam"
-macro index,pager MS ";<save-message>=SPAM<enter>" "move mail to spam"
-macro index,pager CS ";<copy-message>=SPAM<enter>" "copy mail to spam"
-macro index,pager gt "<change-folder>=Trash<enter>" "go to trash"
-macro index,pager Mt ";<save-message>=Trash<enter>" "move mail to trash"
-macro index,pager Ct ";<copy-message>=Trash<enter>" "copy mail to trash"
-set trash = "+Trash"
-macro index,pager gc "<change-folder>=Calendrier<enter>" "go to calendar"
-macro index,pager Mc ";<save-message>=Calendrier<enter>" "move mail to calendar"
-macro index,pager Cc ";<copy-message>=Calendrier<enter>" "copy mail to calendar"
diff --git a/.config/mutt/accounts/6-ss_support.muttrc b/.config/mutt/accounts/6-ss_support.muttrc
deleted file mode 100644
index e602796..0000000
--- a/.config/mutt/accounts/6-ss_support.muttrc
+++ /dev/null
@@ -1,86 +0,0 @@
-# vim: filetype=neomuttrc
-# muttrc file for account support@secuserve.com
-set realname = "Support SecuServe"
-set from = "support@secuserve.com"
-set sendmail = "msmtp -a ss_support"
-alias me Support SecuServe <support@secuserve.com>
-set folder = "$MAIL/ss_support"
-set header_cache = $XDG_RUNTIME_DIR/mutt/ss_support/headers
-set message_cachedir = $XDG_RUNTIME_DIR/mutt/ss_support/bodies
-set mbox_type = Maildir
-set crypt_autosign = no
-set signature = $XDG_CONFIG_HOME/mutt/sig/7-ss_support
-
-bind index,pager gg noop
-bind index,pager g noop
-bind index,pager M noop
-bind index,pager C noop
-bind pager gg top
-bind pager G bottom
-bind index gg first-entry
-macro index o "<shell-escape>killall mbsync >/dev/null 2>&1; mbsync -c $XDG_CONFIG_HOME/mbsync/mbsyncrc ss_support<enter>" "run mbsync to sync support@secuserve.com"
-unmailboxes *
-
-mailboxes "=INBOX" "=INBOX/ALFRESCO" "=INBOX/FIN EVAL" "=INBOX/NAS" "=INBOX/Owentis notif" \
- "=INBOX/WEBSITE" "=INBOX/infonews" "=INBOX/mdp Ofii" "=INBOX/retour_fic2020" "=INBOX/support-zammad" \
- "=Sent" "=Drafts" "=SPAM" "=Trash" \
- "=&AMk-l&AOk-ments envoy&AOk-s" "=Brouillons" "=A FAIRE" "=A-NEWS" "=ACT! Support" "=ALERT SMS" \
- "=ALTV2" "=Alerte" "=Archive" "=Archive/2012-07" "=Archive/2012-08" \
- "=Archive/2012-09" "=Archive/2012-10" "=Archive/2012-11" "=Archive/2012-12" "=Archive/2013-01" \
- "=Archive/2013-02" "=Archive/2013-03" "=Archive/2013-04" "=Archive/2013-05" "=Archive/2013-06" \
- "=Archive/2013-07" "=Archive/2013-08" "=Archive/2013-09" "=Archive/2013-10" "=Archive/2013-11" \
- "=Archive/2013-12" "=Archive/2014-01" "=Archive/2014-02" "=Archive/2014-03" "=Archive/2014-04" \
- "=Archive/2014-05" "=Archive/2014-06" "=Archive/2014-07" "=Archive/2014-08" "=Archive/2014-09" \
- "=Archive/2014-10" "=Archive/2014-11" "=Archive/2014-12" "=Archive/2015-01" "=Archive/2015-02" \
- "=Archive/2015-03" "=Archive/2015-04" "=Archive/2015-05" "=Archive/2015-06" "=Archive/2015-07" \
- "=Archive/2015-08" "=Archive/2015-09" "=Archive/2015-10" "=Archive/2015-11" "=Archive/2015-12" \
- "=Archive/2016-01" "=Archive/2016-02" "=Archive/2016-03" "=Archive/2016-04" "=Archive/2016-05" \
- "=Archive/2016-06" "=Archive/2016-07" "=Archive/2016-08" "=Archive/2016-09" "=Archive/2016-10" \
- "=Archive/2016-11" "=Archive/2016-12" "=Archive/2017-01" "=Archive/2017-02" "=Archive/2017-03" \
- "=Archive/2017-04" "=Archive/2017-05" "=Archive/2017-06" "=Archive/2017-07" "=Archive/2017-08" \
- "=Archive/2017-09" "=Archive/2017-10" "=Archive/2017-11" "=Archive/2017-12" "=Archive/2018-01" \
- "=Archives" "=Archives/2020" "=Archives/2021" "=BUG" \
- "=C FAIT" "=CAMPAGNE RETOUR" "=CAMPAGNE RETOUR/Enqu&AOo-te de satisfaction e-securemail" "=CAMPAGNE RETOUR/Infonews@secuserve.com" "=CAMPAGNE RETOUR/feedbackcommunication" \
- "=CAMPAGNE RETOUR/feedbackmails" "=CAMPAGNE RETOUR/feedbackmails-ng" "=Calendrier" "=Commandes" "=Contacts" \
- "=Contacts sugg&AOk-r&AOk-s" "=Contacts/Agenda Secuserve" "=Contacts/Client_test" "=Contacts/TEST CONTACT" \
- "=ESET Antispam" "=ESET Antispam/El&AOk-ments infect&AOk-s" "=El&AOk-ments d&AOk-tect&AOk-s" "=Faux-Negatifs/non_traites.2018" "=Faux-Negatifs/non_traites.2019" \
- "=Faux-Negatifs/non_traites.2020" "=Faux-Negatifs/non_traites.2021" "=Faux-Negatifs/non_traites.2022" "=Faux-Negatifs/traites.2018" "=Faux-Negatifs/traites.2019" \
- "=Faux-Negatifs/traites.2020" "=Faux-Negatifs/traites.2021" "=Faux-Negatifs/traites.2022" "=Faux-Positifs/non_traites.2018" "=Faux-Positifs/non_traites.2019" \
- "=Faux-Positifs/non_traites.2020" "=Faux-Positifs/non_traites.2021" "=Faux-Positifs/non_traites.2022" "=Faux-Positifs/traites.2018" "=Faux-Positifs/traites.2019" \
- "=Faux-Positifs/traites.2020" "=Faux-Positifs/traites.2021" "=Faux-Positifs/traites.2022" "=Flux RSS" "=Flux d&IBk-informations" \
- "=IRD SLA" "=IRD Sympa" "=IRD Sympa/NOTIFICATION" "=Infected Items" "=Informations technique" \
- "=Journal" "=Junk" "=MX out" "=Microsoft Support" "=Migrations" \
- "=NEWS" "=Notes" "=PROJETS" "=PROJETS/AEFE" "=PROJETS/Amplivia" \
- "=PROJETS/Amplivia/GrandLyon" "=PROJETS/CC Erdre Gesvres" "=PROJETS/Chateau de Versailles" "=PROJETS/IRD" "=PROJETS/Lardy" \
- "=PROJETS/MTDS (Maroc)" "=PROJETS/SITTI" "=PROJETS/Secuserve" "=PROJETS/Secuserve/AltermimeV2" "=PROJETS/Secuserve/Bandeau de feedback" \
- "=PROJETS/Secuserve/Captcha" "=PROJETS/Secuserve/Certificats" "=PROJETS/Secuserve/Documentations" "=PROJETS/Secuserve/Gestion des droits" "=PROJETS/Secuserve/Sharecan" \
- "=Param&AOg-tres d&IBk-action de conversation" "=Param&AOg-tres des &AOk-tapes rapides" "=Partenaires" "=Partenaires/BoostMymailSupport" "=Partenaires/Globalsp" \
- "=Partenaires/Globalsp/Ofii" "=Partenaires/Iroquois" "=RAPPORT quarantaine" "=RAPPORT quarantaine/Licences" "=Restaurations GSP" \
- "=SAGE" "=SOCIAL" "=Support" \
- "=Support.CG" "=Support/Formation console d'administration" "=Support_client_secuserve_communigate" "=T&AOI-ches"
-
-macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
-macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
-macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox"
-set spoolfile = "+INBOX"
-macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
-macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent"
-macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent"
-set record = "+Sent"
-macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts"
-macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts"
-macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts"
-set postponed = "+Drafts"
-macro index,pager gS "<change-folder>=SPAM<enter>" "go to spam"
-macro index,pager MS ";<save-message>=SPAM<enter>" "move mail to spam"
-macro index,pager CS ";<copy-message>=SPAM<enter>" "copy mail to spam"
-macro index,pager gt "<change-folder>=Trash<enter>" "go to trash"
-macro index,pager Mt ";<save-message>=Trash<enter>" "move mail to trash"
-macro index,pager Ct ";<copy-message>=Trash<enter>" "copy mail to trash"
-set trash = "+Trash"
-macro index,pager gn "<change-folder>=NEWS<enter>" "go to news"
-macro index,pager Mn ";<save-message>=NEWS<enter>" "move mail to news"
-macro index,pager Cn ";<copy-message>=NEWS<enter>" "copy mail to news"
-macro index,pager gc "<change-folder>=Calendrier<enter>" "go to calendar"
-macro index,pager Mc ";<save-message>=Calendrier<enter>" "move mail to calendar"
-macro index,pager Cc ";<copy-message>=Calendrier<enter>" "copy mail to calendar"
diff --git a/.config/mutt/accounts/6-gmail_tos.muttrc b/.config/mutt/accounts/off/6-gmail_tos.muttrc
index 55bb1a1..55bb1a1 100644
--- a/.config/mutt/accounts/6-gmail_tos.muttrc
+++ b/.config/mutt/accounts/off/6-gmail_tos.muttrc
diff --git a/.config/mutt/defaults.muttrc b/.config/mutt/defaults.muttrc
index 2f4b4bd..e56f6d4 100644
--- a/.config/mutt/defaults.muttrc
+++ b/.config/mutt/defaults.muttrc
@@ -25,15 +25,16 @@ set forward_format = "Fwd: %s" # format of subject when forwarding
set forward_quote # include message in forwards
set reverse_name # reply as whomever it was to
set include # include message in replies
-set mail_check = 30 # to avoid lags using IMAP with some email providers (yahoo for example)
+set mail_check = 10 # to avoid lags using IMAP with some email providers (yahoo for example)
set mail_check_stats
set nobeep
set charset = utf-8
set noallow_8bit
set uncollapse_jump
-set pager_index_lines = 10
+set pager_index_lines = 0
set text_flowed = no
set indent_string = "> "
+set meta_key = no
# set sig_on_top = yes
#set crypt_opportunistic_encrypt = yes
@@ -47,7 +48,7 @@ alternative_order text/plain text/enriched text/html
# Sidebar mappings
set sidebar_visible = yes
-set sidebar_width = 32
+set sidebar_width = 24
set sidebar_short_path = yes
set sidebar_next_new_wrap = yes
set sidebar_delim_chars = '/'
@@ -82,6 +83,7 @@ bind pager j next-line
bind pager k previous-line
bind pager l view-attachments
bind index D delete-message
+bind index x delete-message
bind index U undelete-message
bind index L limit
bind index h noop
@@ -96,6 +98,7 @@ bind pager,browser G bottom-page
bind index,pager,browser d half-down
bind index,pager,browser u half-up
bind index,pager S sync-mailbox
+bind index,pager s sync-mailbox
bind index,pager R group-reply
bind index \031 previous-undeleted # Mouse wheel
bind index \005 next-undeleted # Mouse wheel
@@ -105,7 +108,7 @@ bind editor <Tab> complete-query
macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook -C $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
-macro index O "<shell-escape>fetch_mail.sh<enter>" "run mbsync to sync all mail"
+macro index O "<shell-escape>fetch_mail<enter>" "run mbsync to sync all mail"
macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>printf 'Enter a search term to find with notmuch: '; read x; echo \$x >$XDG_CACHE_HOME/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat $XDG_CACHE_HOME/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern"
macro index A "<limit>all\n" "show all messages (undo limit)"
macro compose Y "<first-entry>\
@@ -178,9 +181,9 @@ color index_author brightred default "~N"
# color index_subject brightred default "~N"
# Tagged mail is highlighted:
-color index default color088 "~T"
-color index_author default default "~T"
-color index_subject default default "~T"
+color index black red "~T"
+color index_author black red "~T"
+color index_subject black red "~T"
# Shaded for deleted
color index brightblack default '~D'
@@ -248,4 +251,4 @@ color body brightyellow default "^gpg: "
color body brightyellow red "^gpg: BAD signature from.*"
mono body bold "^gpg: Good signature"
mono body bold "^gpg: BAD signature from.*"
-color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
+color body green default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
diff --git a/.config/mutt/mailcap b/.config/mutt/mailcap
index 750cbc1..8819812 100644
--- a/.config/mutt/mailcap
+++ b/.config/mutt/mailcap
@@ -1,7 +1,7 @@
-text/plain; $EDITOR %s ;
+text/plain; $PAGER %s ;
text/html; w3m -o display_link_number=1 -I %{charset} -T text/html; copiousoutput;
text/calendar; vcal -all %s; copiousoutput;
-image/*; nsxiv -abf %s ;
+image/*; nsxiv -ab %s ;
video/*; mpv --quiet %s &; copiousoutput;
audio/*; mpv %s ;
application/pdf; zathura %s ;
diff --git a/.config/mutt/muttrc b/.config/mutt/muttrc
index 7877696..8317a09 100644
--- a/.config/mutt/muttrc
+++ b/.config/mutt/muttrc
@@ -1,11 +1,17 @@
# vim: filetype=neomuttrc
source $XDG_CONFIG_HOME/mutt/defaults.muttrc
source $XDG_CONFIG_HOME/mutt/accounts/1-gmx_rbo.muttrc
-macro index,pager <f1> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/1-gmx_rbo.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to bousset.rudy@gmail.com"
-macro index,pager 1 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/1-gmx_rbo.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to bousset.rudy@gmail.com"
-macro index,pager <f4> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/4-gmail_br.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to bousset.rudy@gmail.com"
-macro index,pager 4 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/4-gmail_br.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to bousset.rudy@gmail.com"
-macro index,pager <f5> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/5-gmail_oon.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to olsen.oyvind.nor@gmail.com"
-macro index,pager 5 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/5-gmail_oon.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to olsen.oyvind.nor@gmail.com"
-macro index,pager <f6> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/6-gmail_tos.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to towerofsilence777@gmail.com"
-macro index,pager 6 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/6-gmail_tos.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to towerofsilence777@gmail.com"
+macro index,pager <f1> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/1-gmx_rbo.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to rbo@gmx.us"
+macro index,pager 1 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/1-gmx_rbo.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to rbo@gmx.us"
+macro index,pager <261> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/1-gmx_rbo.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to rbo@gmx.us"
+macro index,pager <f2> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/2-gmx_shop.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to rbo_shop@gmx.us"
+macro index,pager 2 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/2-gmx_shop.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to rbo_shop@gmx.us"
+macro index,pager <262> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/2-gmx_shop.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to rbo_shop@gmx.us"
+macro index,pager <f3> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/3-gmail_br.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to bousset.rudy@gmail.com"
+macro index,pager 3 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/3-gmail_br.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to bousset.rudy@gmail.com"
+macro index,pager <263> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/3-gmail_br.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to bousset.rudy@gmail.com"
+macro index,pager <f4> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/4-gmail_oon.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to olsen.oyvind.nor@gmail.com"
+macro index,pager 4 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/4-gmail_oon.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to olsen.oyvind.nor@gmail.com"
+macro index,pager <264> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/4-gmail_oon.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to olsen.oyvind.nor@gmail.com"
+# macro index,pager <f6> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/6-gmail_tos.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to towerofsilence777@gmail.com"
+# macro index,pager 6 '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/accounts/6-gmail_tos.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to towerofsilence777@gmail.com"
diff --git a/.config/mutt/sig/1-gmx_rbo b/.config/mutt/sig/1-gmx_rbo
new file mode 100644
index 0000000..4df7164
--- /dev/null
+++ b/.config/mutt/sig/1-gmx_rbo
@@ -0,0 +1,3 @@
+joe
+https://jozan.org/
++337 86 27 02 09
diff --git a/.config/mutt/sig/1-main b/.config/mutt/sig/1-main
deleted file mode 100644
index 8dd6a60..0000000
--- a/.config/mutt/sig/1-main
+++ /dev/null
@@ -1,3 +0,0 @@
-Rudy Bousset
-jozanofastora.xyz
-+337 86 27 02 09
diff --git a/.config/mutt/sig/2-gmail_br b/.config/mutt/sig/2-gmail_br
deleted file mode 100644
index 8dd6a60..0000000
--- a/.config/mutt/sig/2-gmail_br
+++ /dev/null
@@ -1,3 +0,0 @@
-Rudy Bousset
-jozanofastora.xyz
-+337 86 27 02 09
diff --git a/.config/mutt/sig/2-gmx_shop b/.config/mutt/sig/2-gmx_shop
new file mode 100644
index 0000000..4df7164
--- /dev/null
+++ b/.config/mutt/sig/2-gmx_shop
@@ -0,0 +1,3 @@
+joe
+https://jozan.org/
++337 86 27 02 09
diff --git a/.config/mutt/sig/3-gmail_oon b/.config/mutt/sig/3-gmail_oon
deleted file mode 100644
index 1fd803a..0000000
--- a/.config/mutt/sig/3-gmail_oon
+++ /dev/null
@@ -1,2 +0,0 @@
-Joe
-jozanofastora.xyz
diff --git a/.config/mutt/sig/4-gmail_tos b/.config/mutt/sig/4-gmail_tos
deleted file mode 100644
index e5378c5..0000000
--- a/.config/mutt/sig/4-gmail_tos
+++ /dev/null
@@ -1,3 +0,0 @@
-Joe <Tower Of Silence>
-+337 86 27 02 09
-777
diff --git a/.config/mutt/sig/5-ss_perso b/.config/mutt/sig/5-ss_perso
deleted file mode 100644
index 93cdcfc..0000000
--- a/.config/mutt/sig/5-ss_perso
+++ /dev/null
@@ -1,2 +0,0 @@
-Rudy Bousset <SecuServe>
-+337 86 27 02 09
diff --git a/.config/ncmpc/config b/.config/ncmpc/config
deleted file mode 100644
index 34d34b6..0000000
--- a/.config/ncmpc/config
+++ /dev/null
@@ -1,16 +0,0 @@
-auto-center = yes
-visible-bitrate = yes
-library-page-tags = genre artist album
-text-editor = nvim
-enable-colors = yes
-color title = yellow/black
-color background = black
-color line = /black
-color list = /none
-color list-bold = red
-color browser-playlist = red/none
-color progressbar = red/black
-color status-state = yellow/black
-color status-song = yellow/black
-color status-time = yellow/black
-list-format = "%artist% - %album% - %title%"
diff --git a/.config/ncmpc/keys b/.config/ncmpc/keys
deleted file mode 100644
index f48b205..0000000
--- a/.config/ncmpc/keys
+++ /dev/null
@@ -1,44 +0,0 @@
-## Key bindings for ncmpc (generated by ncmpc)
-
-## Move cursor to the top of the list
-key home = 262, Ctrl-A, 'g'
-
-## Move cursor to the bottom of the list
-key end = 360, Ctrl-E, 'G'
-
-## Select currently playing song
-key select-playing = 'o'
-
-## Help screen
-key screen-help = '1', F1
-
-## Play/Enter directory
-key play = Ctrl-M, 'l'
-
-## Pause
-key pause = 'P', 32
-
-## Crop
-key crop = 'X'
-
-## Select/deselect song in queue
-key select = 'a'
-
-## Delete song from queue
-key delete = 330, 'd', 'x'
-
-## Toggle crossfade mode
-key crossfade = 0
-
-## Save queue
-key save = 0
-
-## Append song to queue
-key add = 0
-
-## Go to parent directory
-key go-parent-directory = 'h', 34
-
-## Locate song in browser
-key locate = 0
-
diff --git a/.config/newsboat/config b/.config/newsboat/config
index 1a043b7..fe403d5 100644
--- a/.config/newsboat/config
+++ b/.config/newsboat/config
@@ -1,8 +1,20 @@
-#how-read-feeds no
-auto-reload no
+#vim: ft=conf
+
+auto-reload yes
+refresh-on-startup yes
+reload-time 30
confirm-mark-all-feeds-read yes
confirm-mark-feed-read no
-reload-threads 4
+reload-threads 100
+text-width 80
+show-keymap-hint no
+show-title-bar yes
+swap-title-and-hints yes
+history-limit 0
+ignore-mode download
+notify-program ~/.local/bin/newsboat-notif
+notify-always yes
+notify-format "%d"
external-url-viewer "urlview"
@@ -31,22 +43,32 @@ bind-key v show-urls
bind-key x pb-delete
bind-key ^t next-unread
-color listnormal white default
-color listfocus black white standout
-color listnormal_unread red default bold
-color listfocus_unread red black bold
-color info yellow black bold
-color article default default
+ignore-article "*" "title =~ \"#shorts$\""
+ignore-article "*" "link =~ \"youtube.com/shorts/\""
+
+color background default default
+color listnormal white default
+color listnormal_unread default default bold
+color listfocus default black
+color listfocus_unread default black bold
+color info yellow black bold
+color article default default
-browser "linkview %u >/dev/null 2>&1 &"
+search-highlight-colors yellow black bold
+
+browser "linkview %u %T"
macro , open-in-browser
macro t set browser "youtube-dl --add-metadata -ic"; open-in-browser ; set browser linkhandler
macro a set browser "youtube-dl --add-metadata -xic -f bestaudio/best"; open-in-browser ; set browser linkhandler
macro v set browser "linkview"; open-in-browser ; set browser linkhandler
macro w set browser "linkview"; open-in-browser ; set browser linkhandler
-highlight all "---.*---" yellow
-highlight feedlist ".*(0/0))" black
+feedlist-title-format "feeds (%u/%t)%?T? - tag '%T'&?"
+articlelist-title-format "'%T' (%u/%t)"
+datetime-format "%y-%m-%d %H:%M"
+articlelist-format "%D - %t"
+feedlist-format "%?T?%n%8u %t [%T]&#%-8t----------------------------------------------------------?"
+
highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold
highlight article "(^Link:.*|^Date:.*)" default default
highlight article "https?://[^ ]+" green default
@@ -57,3 +79,22 @@ highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold
highlight article ":.*\\(link\\)$" cyan default
highlight article ":.*\\(image\\)$" blue default
highlight article ":.*\\(embedded flash\\)$" magenta default
+
+highlight feedlist ".*(0/0))" black
+highlight feedlist ".* \\[(news|tech|normies|gaming|space|skate|music)\\]$" white default
+highlight feedlist "^N.* \\[tech\\]$" cyan default bold
+highlight feedlist "^N.* \\[normies\\]$" red default bold
+highlight feedlist "^N.* \\[news\\]$" green default bold
+highlight feedlist "^N.* \\[gaming\\]$" yellow default bold
+highlight feedlist "^N.* \\[space\\]$" blue default bold
+highlight feedlist "^N.* \\[skate\\]$" magenta default bold
+highlight feedlist "^N.* \\[music\\]$" white default bold
+highlight feedlist "^#tech .*" cyan default bold
+highlight feedlist "^#normies .*" red default bold
+highlight feedlist "^#news .*" green default bold
+highlight feedlist "^#gaming .*" yellow default bold
+highlight feedlist "^#space .*" blue default bold
+highlight feedlist "^#skate .*" magenta default bold
+highlight feedlist "^#music .*" white default bold
+highlight feedlist "^N" default default invis
+highlight feedlist "\\[(news|tech|normies|gaming|space|skate|music)\\]$" default default invis
diff --git a/.config/nnn/plugins/joe_clipper b/.config/nnn/plugins/joe_clipper
new file mode 100755
index 0000000..661f711
--- /dev/null
+++ b/.config/nnn/plugins/joe_clipper
@@ -0,0 +1,69 @@
+#!/usr/bin/env perl
+
+
+use strict;
+use warnings;
+use Cwd qw(cwd);
+
+use constant XCLIP => 'xclip -selection clipboard ';
+
+sub close_io
+{
+ open STDIN, '<', '/dev/null' or die $!;
+ open STDOUT, '>', '/dev/null' or die $!;
+ open STDERR, '>', '/dev/null' or die $!;
+ return;
+}
+
+sub clip_img
+{
+ my ($file) = @_;
+ my $pid;
+
+ $pid = fork();
+ if ($pid == 0) {
+ system("magick '$file' png:- | " . XCLIP . "-t image/png");
+ exec('herbe', ' clipped image');
+ }
+ return;
+}
+
+sub clip_raw
+{
+ my ($file) = @_;
+
+ my $pid;
+
+ $pid = fork();
+ if ($pid == 0) {
+ system( "xclip -selection clipboard '$file'");
+ exec('herbe', ' clipped file');
+ }
+ return;
+}
+
+sub clip
+{
+ my ($file, $mimetype) = @_;
+
+ return clip_img($file) if $mimetype =~ /^image\//;
+ clip_raw($file);
+ return;
+}
+
+sub joe_clipper
+{
+ my $file = cwd() . '/' . $ARGV[0];
+ my $mimetype;
+
+ if (-d $file) {
+ return;
+ }
+ $mimetype=`file -bL --mime-type -- "$file"`;
+ clip($file, $mimetype);
+ return;
+}
+
+joe_clipper();
+
+__END__
diff --git a/.config/nnn/plugins/joe_cmusq b/.config/nnn/plugins/joe_cmusq
new file mode 100755
index 0000000..0f14899
--- /dev/null
+++ b/.config/nnn/plugins/joe_cmusq
@@ -0,0 +1,81 @@
+#!/usr/bin/env sh
+
+# Description: Add selection or hovered file/directory to cmus queue
+#
+# Dependencies: cmus, pgrep, xdotool (optional)
+#
+# Notes:
+# 1. If adding selection, files/dirs are added in the same order they were selected in nnn
+# 2. A new window will be opened if cmus is not running already, playback will start immediately
+# 3. If cmus is already running, files will be appended to the queue with no forced playback
+#
+# TODO:
+# 1. Add cava and cmus-lyrics as optional dependencies
+# 2. Start cava and/or cmus-lyrics in tmux or kitty panes next to cmus
+#
+# Shell: POSIX compliant
+# Author: Kabouik
+
+# (Optional) Set preferred terminal emulator for cmus if not set in your env,
+# or leave commented out to use OS default
+#TERMINAL="kitty"
+
+if ! type cmus >/dev/null; then
+ printf "cmus missing"
+ read -r _
+ exit 1
+fi
+
+selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
+
+start_cmus() {
+ type xdotool >/dev/null && nnnwindow="$(xdotool getactivewindow)"
+ case "$TERMINAL" in
+ kitty | gnome-terminal | st)
+ nohup "$TERMINAL" -- cmus & ;;
+ havoc)
+ nohup "$TERMINAL" cmus & ;;
+ "")
+ nohup x-terminal-emulator -e cmus & ;;
+ *)
+ nohup "$TERMINAL" -e cmus & ;;
+ esac
+ # Give the new terminal some time to open
+ until cmus-remote -C; do sleep 0.1; done
+ [ -n "$nnnwindow" ] && xdotool windowactivate "$nnnwindow"
+} >/dev/null 2>&1
+
+fill_queue() {
+ if [ "$REPLY" = "s" ]; then
+ xargs < "$selection" -0 cmus-remote -q
+ elif [ -n "$1" ]; then
+ cmus-remote -q "$1"
+ fi
+}
+
+# If active selection,then ask what to do
+if [ -s "$selection" ]; then
+ printf "Queue [s]election or [c]urrently hovered? [default=c]: "
+ read -r REPLY
+fi
+
+# If cmus is not running, start and play queue
+if ! pgrep cmus >/dev/null; then
+ printf "cmus is not running, starting it in a new %s window.\n" "$TERMINAL"
+ start_cmus
+ fill_queue "$1"
+ cmus-remote -p
+ printf "Files added to cmus queue.\n"
+else # Append to existing queue if cmus is already running
+ fill_queue "$1"
+ [ "$(cmus-remote -C status | head -n1 | awk '{print $2}')" != "playing" ] && cmus-remote -p
+ printf "Files appended to current cmus queue.\n"
+fi
+
+# Change view
+cmus-remote -C "view 4"
+
+# Clear selection
+if [ -p "$NNN_PIPE" ]; then
+ printf "-" > "$NNN_PIPE"
+fi
diff --git a/.config/nnn/plugins/joe_dragdrop b/.config/nnn/plugins/joe_dragdrop
new file mode 100755
index 0000000..2623c47
--- /dev/null
+++ b/.config/nnn/plugins/joe_dragdrop
@@ -0,0 +1,47 @@
+#!/usr/bin/env sh
+
+# Description: Open a Drag and drop window, to drop files onto other programs.
+# Also provides drag and drop window for files.
+#
+# Dependencies: dragon - https://github.com/mwh/dragon
+#
+# Notes:
+# 1. Files that are dropped will be added to nnn's selection
+# Some web-based files will be downloaded to current dir
+# with curl and it may overwrite some existing files
+# 2. The user has to mm to clear nnn's selection first
+#
+# Shell: POSIX compliant
+# Author: 0xACE
+
+selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
+resp=f
+all=
+if type dragon-drag-and-drop >/dev/null 2>&1; then
+ dnd="dragon-drag-and-drop"
+elif type dragon-drop >/dev/null 2>&1; then
+ dnd="dragon-drop"
+else
+ dnd="dragon"
+fi
+
+add_file ()
+{
+ printf '%s\0' "$@" >> "$selection"
+}
+
+if [ -s "$selection" ]; then
+ printf "Drag selection (s) or drag current file (f) [default=f]: "
+ read -r resp
+else
+ resp=f
+fi
+
+if [ "$resp" = "s" ]; then
+ all="--all"
+ sed -z 's|'"$PWD/"'||g' < "$selection" | xargs -0 "$dnd" --and-exit "$all" &
+else
+ if [ -n "$1" ] && [ -e "$1" ]; then
+ "$dnd" --and-exit "$1" &
+ fi
+fi
diff --git a/.config/nnn/plugins/joe_fzfcd b/.config/nnn/plugins/joe_fzfcd
new file mode 100755
index 0000000..13ac1a5
--- /dev/null
+++ b/.config/nnn/plugins/joe_fzfcd
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Env qw(NNN_PIPE PWD);
+
+sub main {
+ my $dir;
+
+ $dir = `fd -t d -L | fzf --preview ' eza --color=always --icons -T -L1 {} |
+ head -n 200'`;
+ chomp($dir);
+ open(FH, '>>', $NNN_PIPE) or die $!;
+ print FH '0c' . $PWD . '/' . $dir;
+ close(FH);
+ return;
+}
+
+main();
+
+__END__
diff --git a/.config/nnn/plugins/joe_rand b/.config/nnn/plugins/joe_rand
new file mode 100755
index 0000000..edc71c1
--- /dev/null
+++ b/.config/nnn/plugins/joe_rand
@@ -0,0 +1,22 @@
+#!/usr/bin/env sh
+
+# Description: Find and list files by mime type in smart context
+#
+# Dependencies:
+# - file
+# - mimetype (optional, PERL File MimeInfo)
+#
+# Shell: POSIX compliant
+# Author: Arun Prakash Jana, Michel DHOOGE
+
+# shellcheck disable=SC1090,SC1091
+. "$(dirname "$0")"/.nnn-plugin-helper
+
+file=$(command ls | shuf | head -n1 | tr -d '\n')
+printf "%s" "0l$file" > "$NNN_PIPE"
+# printf "%s" "+l" > "$NNN_PIPE"
+# if type mimetype >/dev/null 2>&1; then
+# find . | mimetype -f - | grep "$mime" | awk -F: '{printf "%s%c", $1, 0}' > "$NNN_PIPE"
+# else
+# find . | file -if- | grep "$mime" | awk -F: '{printf "%s%c", $1, 0}' > "$NNN_PIPE"
+# fi
diff --git a/.config/nnn/plugins/preview-tui b/.config/nnn/plugins/preview-tui
new file mode 100755
index 0000000..7bd1c7d
--- /dev/null
+++ b/.config/nnn/plugins/preview-tui
@@ -0,0 +1,538 @@
+#!/usr/bin/env bash
+
+# Description: Terminal based file previewer
+#
+# Note: This plugin needs a "NNN_FIFO" to work. See man.
+#
+# Dependencies:
+# - Supports 6 independent methods to preview with:
+# - tmux (>=3.0), or
+# - kitty with allow_remote_control and listen_on set in kitty.conf, or
+# - wezterm (https://wezfurlong.org/wezterm), or
+# - QuickLook on WSL (https://github.com/QL-Win/QuickLook), or
+# - Windows Terminal (https://github.com/Microsoft/Terminal | https://aka.ms/terminal) with WSL, or
+# - $NNN_TERMINAL set to a terminal (it's xterm by default).
+# - less or $NNN_PAGER
+# - tree or exa/eza or (GNU) ls
+# - mediainfo or file
+# - mktemp
+# - unzip
+# - tar
+# - man
+# - optional: bsdtar or atool for additional archive preview
+# - optional: bat for code syntax highlighting
+# - optional: ueberzug, kitty terminal, wezterm terminal, img2sixel, viu, catimg, timg or chafa for images
+# - optional: convert(ImageMagick) for playing gif preview (mandatory for kitty image previews)
+# - optional: mpv for gif and video
+# Also requires a terminal supporting the sixel (https://www.arewesixelyet.com/)
+# or kitty (https://sw.kovidgoyal.net/kitty/graphics-protocol) video_output backends.
+# Requires tmux compiled with `./configure --enable-sixel` if used.
+# - optional: ffmpegthumbnailer for video thumbnails (https://github.com/dirkvdb/ffmpegthumbnailer)
+# - optional: ffmpeg for audio thumbnails
+# - optional: libreoffce for opendocument/officedocument preview
+# - optional: pdftoppm(poppler) for pdf thumbnails
+# - optional: gnome-epub-thumbnailer for epub thumbnails (https://gitlab.gnome.org/GNOME/gnome-epub-thumbnailer)
+# - optional: fontpreview for font preview (https://github.com/sdushantha/fontpreview)
+# - optional: djvulibre for djvu
+# - optional: glow or lowdown for markdown
+# - optional: w3m or lynx or elinks for html
+# - optional: set/export NNN_ICONLOOKUP as 1 to enable file icons in front of directory previews with .iconlookup
+# Icons and colors are configurable in .iconlookup
+# - optional: scope.sh file viewer from ranger.
+# 1. drop scope.sh executable in $PATH
+# 2. set/export $NNN_SCOPE as 1
+# - optional: pistol file viewer (https://github.com/doronbehar/pistol).
+# 1. install pistol
+# 2. set/export $NNN_PISTOL as 1
+# - optional: librsvg for rsvg-convert
+#
+# Usage:
+# You need to set a NNN_FIFO path and a key for the plugin with NNN_PLUG,
+# then start `nnn`:
+#
+# $ nnn -a
+#
+# or
+#
+# $ NNN_FIFO=/tmp/nnn.fifo nnn
+#
+# Then launch the `preview-tui` plugin in `nnn`.
+#
+# If you provide the same NNN_FIFO to all nnn instances, there will be a
+# single common preview window. If you provide different FIFO path (e.g.
+# with -a), they will be independent.
+#
+# The previews will be shown in a tmux split. If that isn't possible, it
+# will try to use a kitty terminal split. And as a final fallback, a
+# different terminal window will be used ($NNN_TERMINAL).
+#
+# Kitty users need something similar to the following in their kitty.conf:
+# - `allow_remote_control yes`
+# - `listen_on unix:$TMPDIR/kitty`
+# - `enabled_layouts splits` (optional)
+# With ImageMagick installed, this terminal can use the icat kitten to display images.
+# Refer to kitty documentation for further details.
+#
+# Users with both tmux and kitty can leverage image previews inside tmux with kitty's icat kitten
+# - setup kitty as stated above
+# - tmux >= v3.3a required
+# - add the following to your tmux.conf:
+# - `set -g allow-passthrough on`
+#
+# Wezterm should work out of the box. If `NNN_PREVIEWIMGPROG` is not specified it will use
+# built in iTerm2 image protocol.
+#
+# Note that GNU ls is used for its `--group-directories-first` flag.
+# On MacOS this may be installed with `brew install coreutils`, or the flag can be removed.
+# iTerm2 users are recommended to use viu to view images without getting pixelated.
+#
+# Windows Terminal users can set "Profile termination behavior" under "Profile > Advanced" settings
+# to automatically close pane on quit when exit code is 0.
+#
+# When specifying a different terminal, additional arguments are supported. In particular, you can
+# append a specific title to the terminal and set it to "nofocus" in your WM config.
+# E.g for alacritty and i3, you can set $NNN_TERMINAL to 'alacritty --title preview-tui' and add
+# 'no_focus [title="preview-tui"]' to your i3 config file.
+#
+# Shell: Bash (for environment manipulation through arrays)
+# Authors: Todd Yamakawa, Léo Villeveygoux, @Recidiviste, Mario Ortiz Manero, Luuk van Baal, @WanderLanz, @flipflop133
+
+# Configurable environment variables:
+NNN_SPLIT=${NNN_SPLIT:-} # permanent split direction
+NNN_TERMINAL=${NNN_TERMINAL:-} # external terminal to be used
+NNN_SPLITSIZE=${NNN_SPLITSIZE:-50} # previewer split size percentage
+TMPDIR=${TMPDIR:-/tmp} # location of temporary files
+ENVVARS=(
+ "NNN_SCOPE=${NNN_SCOPE:-0}" # use scope
+ "NNN_PISTOL=${NNN_PISTOL:-0}" # use pistol
+ "NNN_ICONLOOKUP=${NNN_ICONLOOKUP:-0}" # use .iconlookup
+ "NNN_PAGER=${NNN_PAGER:-less -P?n -R -C}" # pager options
+ "NNN_BATTHEME=${NNN_BATTHEME:-ansi}" # bat theme
+ "NNN_BATSTYLE=${NNN_BATSTYLE:-numbers}" # bat style
+ "NNN_PREVIEWWIDTH=${NNN_PREVIEWWIDTH:-1920}" # width of generated preview images
+ "NNN_PREVIEWHEIGHT=${NNN_PREVIEWHEIGHT:-1080}" # height of generated preview images
+ "NNN_PREVIEWDIR=${NNN_PREVIEWDIR:-$TMPDIR/nnn/previews}" # location of generated preview images
+ "NNN_PREVIEWIMGPROG=${NNN_PREVIEWIMGPROG:-}" # command used to preview images
+ "NNN_PREVIEWVIDEO=${NNN_PREVIEWVIDEO:-}" # mpv backend used to preview video
+)
+# Non-configurable environment variables
+NNN_PARENT=${NNN_FIFO#*.}
+[ "$NNN_PARENT" -eq "$NNN_PARENT" ] 2>/dev/null || NNN_PARENT="" # Make empty if non-numeric
+ENVVARS+=(
+ "PWD=$PWD"
+ "PATH=$PATH"
+ "NNN_FIFO=$NNN_FIFO"
+ "FIFOPID=$TMPDIR/nnn-preview-tui-fifopid.$NNN_PARENT"
+ "FIFOPATH=$TMPDIR/nnn-preview-tui-fifo.$NNN_PARENT"
+ "PREVIEWPID=$TMPDIR/nnn-preview-tui-previewpid.$NNN_PARENT"
+ "CURSEL=$TMPDIR/nnn-preview-tui-selection.$NNN_PARENT"
+ "FIFO_UEBERZUG=$TMPDIR/nnn-preview-tui-ueberzug-fifo.$NNN_PARENT"
+ "POSOFFSET=$TMPDIR/nnn-preview-tui-posoffset"
+)
+
+trap '' PIPE
+exists() { type "$1" >/dev/null 2>&1 ;}
+pkill() { command pkill "$@" >/dev/null 2>&1 ;}
+prompt() { clear; printf "%b" "$@"; cfg=$(stty -g); stty raw -echo; head -c 1; stty "$cfg" ;}
+pidkill() {
+ if [ -f "$1" ]; then
+ PID="$(cat "$1" 2>/dev/null)" || return 1
+ kill "$PID" >/dev/null 2>&1
+ RET=$?
+ wait "$PID" 2>/dev/null
+ return $RET
+ fi
+ return 1
+}
+
+start_preview() {
+ if [ -e "${TMUX%%,*}" ] && tmux -V | grep -q '[ -][3456789]\.'; then
+ NNN_TERMINAL=tmux
+ exists mpv && tmux display -p '#{client_termfeatures}' | grep -q 'sixel' && ENVVARS+=("NNN_PREVIEWVIDEO=sixel")
+ elif [ -n "$KITTY_LISTEN_ON" ]; then
+ NNN_TERMINAL=kitty
+ exists mpv && ENVVARS+=("NNN_PREVIEWVIDEO=kitty")
+ elif [ -n "$WEZTERM_PANE" ]; then
+ NNN_TERMINAL=wezterm
+ exists mpv && ENVVARS+=("NNN_PREVIEWVIDEO=kitty")
+ elif [ -z "$NNN_TERMINAL" ] && [ "$TERM_PROGRAM" = "iTerm.app" ]; then
+ NNN_TERMINAL=iterm
+ exists mpv && ENVVARS+=("NNN_PREVIEWVIDEO=sixel")
+ elif [ -n "$WT_SESSION" ]; then
+ NNN_TERMINAL=winterm
+ else
+ NNN_TERMINAL="${NNN_TERMINAL:-xterm}"
+ fi
+
+ if [ -z "$NNN_SPLIT" ] && [ $(($(tput lines) * 2)) -gt "$(tput cols)" ]; then
+ NNN_SPLIT='h'
+ elif [ "$NNN_SPLIT" != 'h' ]; then
+ NNN_SPLIT='v'
+ fi
+
+ ENVVARS+=("NNN_TERMINAL=$NNN_TERMINAL" "NNN_SPLIT=$NNN_SPLIT" "QLPATH=$2" "PREVIEW_MODE=1")
+ case "$NNN_TERMINAL" in
+ iterm|winterm) # has to run in separate shell command: escape
+ ENVVARS=("${ENVVARS[@]/#/\\\"}")
+ ENVVARS=("${ENVVARS[@]/%/\\\"}")
+ command="$SHELL -c 'env ${ENVVARS[*]} \\\"$0\\\" \\\"$1\\\"'" ;;
+ esac
+
+ case "$NNN_TERMINAL" in
+ tmux) # tmux splits are inverted
+ ENVVARS=("${ENVVARS[@]/#/-e}")
+ if [ "$NNN_SPLIT" = "v" ]; then split="h"; else split="v"; fi
+ tmux split-window -l"$NNN_SPLITSIZE"% "${ENVVARS[@]}" -d"$split" -p"$NNN_SPLITSIZE" "$0" "$1" ;;
+ kitty) # Setting the layout for the new window. It will be restored after the script ends.
+ ENVVARS=("${ENVVARS[@]/#/--env=}")
+ kitty @ goto-layout splits
+ # Trying to use kitty's integrated window management as the split window.
+ kitty @ launch --no-response --title "preview-tui" --keep-focus \
+ --cwd "$PWD" "${ENVVARS[@]}" --location "${NNN_SPLIT}split" "$0" "$1" ;;
+ wezterm)
+ export "${ENVVARS[@]}"
+ if [ "$NNN_SPLIT" = "v" ]; then split="--horizontal"; else split="--bottom"; fi
+ wezterm cli split-pane --cwd "$PWD" $split --percent "$NNN_SPLITSIZE" "$0" "$1" >/dev/null
+ wezterm cli activate-pane-direction Prev ;;
+ iterm)
+ if [ "$NNN_SPLIT" = "h" ]; then split="horizontally"; else split="vertically"; fi
+ osascript <<-EOF
+ tell application "iTerm"
+ tell current session of current window
+ split $split with default profile command "$command"
+ end tell
+ end tell
+EOF
+ ;;
+ winterm)
+ if [ "$NNN_SPLIT" = "h" ]; then split="H"; else split="V"; fi
+ wt -w 0 sp -$split -s"0.$NNN_SPLITSIZE" "$command" \; -w 0 mf previous 2>/dev/null ;;
+ *) if [ -n "$2" ]; then
+ env "${ENVVARS[@]}" QUICKLOOK=1 "$0" "$1" &
+ else
+ # shellcheck disable=SC2086 # (allow arguments)
+ env "${ENVVARS[@]}" $NNN_TERMINAL -e "$0" "$1" &
+ fi ;;
+ esac
+}
+
+toggle_preview() {
+ export "${ENVVARS[@]}"
+ if exists QuickLook.exe; then
+ QLPATH="QuickLook.exe"
+ elif exists Bridge.exe; then
+ QLPATH="Bridge.exe"
+ fi
+ if pidkill "$FIFOPID"; then
+ [ -p "$NNN_PPIPE" ] && printf "0" > "$NNN_PPIPE"
+ pidkill "$PREVIEWPID"
+ pkill -f "tail --follow $FIFO_UEBERZUG"
+ if [ -n "$QLPATH" ] && stat "$1"; then
+ f="$(wslpath -w "$1")" && "$QLPATH" "$f" &
+ fi
+ else
+ [ -p "$NNN_PPIPE" ] && printf "1" > "$NNN_PPIPE"
+ start_preview "$1" "$QLPATH"
+ fi
+}
+
+fifo_pager() {
+ cmd="$1"
+ shift
+
+ # We use a FIFO to access $NNN_PAGER PID in jobs control
+ mkfifo "$FIFOPATH" || return
+
+ $NNN_PAGER < "$FIFOPATH" &
+ printf "%s" "$!" > "$PREVIEWPID"
+
+ (
+ exec > "$FIFOPATH"
+ if [ "$cmd" = "pager" ]; then
+ if exists bat; then
+ bat --terminal-width="$cols" --decorations=always --color=always \
+ --paging=never --style="$NNN_BATSTYLE" --theme="$NNN_BATTHEME" "$@" &
+ else
+ $NNN_PAGER "$@" &
+ fi
+ else
+ "$cmd" "$@" &
+ fi
+ )
+
+ rm -- "$FIFOPATH"
+}
+
+# Binary file: show file info inside the pager
+print_bin_info() {
+ printf -- "-------- \033[1;31mBinary file\033[0m --------\n"
+ if exists mediainfo; then
+ mediainfo "$1"
+ else
+ file -b "$1"
+ fi
+}
+
+handle_mime() {
+ case "$2" in
+ image/jpeg) image_preview "$cols" "$lines" "$1" ;;
+ image/gif) generate_preview "$cols" "$lines" "$1" "gif" ;;
+ image/vnd.djvu) generate_preview "$cols" "$lines" "$1" "djvu" ;;
+ image/*) generate_preview "$cols" "$lines" "$1" "image" ;;
+ video/*) generate_preview "$cols" "$lines" "$1" "video" ;;
+ audio/*) generate_preview "$cols" "$lines" "$1" "audio" ;;
+ application/font*|application/*opentype|font/*) generate_preview "$cols" "$lines" "$1" "font" ;;
+ */*office*|*/*document*|*/*msword|*/*ms-excel) generate_preview "$cols" "$lines" "$1" "office" ;;
+ application/zip) fifo_pager unzip -l "$1" ;;
+ text/troff)
+ if exists man; then
+ fifo_pager man -Pcat -l "$1"
+ else
+ fifo_pager pager "$1"
+ fi ;;
+ *) handle_ext "$1" "$3" "$4" ;;
+ esac
+}
+
+handle_ext() {
+ case "$2" in
+ epub) generate_preview "$cols" "$lines" "$1" "epub" ;;
+ pdf) generate_preview "$cols" "$lines" "$1" "pdf" ;;
+ gz|bz2) fifo_pager tar -tvf "$1" ;;
+ md) if exists glow; then
+ fifo_pager glow -s dark "$1"
+ elif exists lowdown; then
+ fifo_pager lowdown -Tterm --term-width="$cols" --term-column="$cols" "$1"
+ else
+ fifo_pager pager "$1"
+ fi ;;
+ htm|html|xhtml)
+ if exists w3m; then
+ fifo_pager w3m "$1"
+ elif exists lynx; then
+ fifo_pager lynx "$1"
+ elif exists elinks; then
+ fifo_pager elinks "$1"
+ else
+ fifo_pager pager "$1"
+ fi ;;
+ 7z|a|ace|alz|arc|arj|bz|cab|cpio|deb|jar|lha|lz|lzh|lzma|lzo\
+ |rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|zst|Z)
+ if exists atool; then
+ fifo_pager atool -l "$1"
+ elif exists bsdtar; then
+ fifo_pager bsdtar -tvf "$1"
+ fi ;;
+ json)
+ if exists jq; then
+ fifo_pager jq --color-output '.' "$1"
+ else
+ fifo_pager pager "$1"
+ fi ;;
+ *) if [ "$3" = "bin" ]; then
+ fifo_pager print_bin_info "$1"
+ else
+ fifo_pager pager "$1"
+ fi ;;
+ esac
+}
+
+preview_file() {
+ clear
+ # Trying to use pistol if it's available.
+ if [ "$NNN_PISTOL" -ne 0 ] && exists pistol; then
+ fifo_pager pistol "$1"
+ return
+ fi
+
+ # Trying to use scope.sh if it's available.
+ if [ "$NNN_SCOPE" -ne 0 ] && exists scope.sh; then
+ fifo_pager scope.sh "$1" "$cols" "$lines" "$(mktemp -d)" "True"
+ return
+ fi
+
+ # Use QuickLook if it's available.
+ if [ -n "$QUICKLOOK" ]; then
+ stat "$1" && f="$(wslpath -w "$1")" && "$QLPATH" "$f" &
+ return
+ fi
+
+ # Detecting the exact type of the file: the encoding, mime type, and extension in lowercase.
+ encoding="$(file -bL --mime-encoding -- "$1")"
+ mimetype="$(file -bL --mime-type -- "$1")"
+ ext="${1##*.}"
+ [ -n "$ext" ] && ext="$(printf "%s" "${ext}" | tr '[:upper:]' '[:lower:]')"
+ lines=$(tput lines)
+ cols=$(tput cols)
+
+ # Otherwise, falling back to the defaults.
+ if [ -d "$1" ]; then
+ cd "$1" || return
+ if [ "$NNN_ICONLOOKUP" -ne 0 ] && [ -f "$(dirname "$0")"/.iconlookup ]; then
+ [ "$NNN_SPLIT" = v ] && BSTR="\n"
+ # shellcheck disable=SC2012
+ ls -F --group-directories-first | head -n "$((lines - 3))" | "$(dirname "$0")"/.iconlookup -l "$cols" -B "$BSTR" -b " "
+ elif exists tree; then
+ fifo_pager tree --filelimit "$(find . -maxdepth 1 | wc -l)" -L 3 -C -F --dirsfirst --noreport
+ elif exists exa; then
+ fifo_pager exa -T --group-directories-first --colour=always -L 3
+ elif exists eza; then # eza is a community fork of exa (exa is unmaintained)
+ fifo_pager eza -T --group-directories-first --colour=always -L 3
+ else
+ fifo_pager ls -F --group-directories-first --color=always
+ fi
+ cd ..
+ elif [ "${encoding#*)}" = "binary" ]; then
+ handle_mime "$1" "$mimetype" "$ext" "bin"
+ else
+ handle_mime "$1" "$mimetype" "$ext"
+ fi
+}
+
+generate_preview() {
+ if [ -n "$QLPATH" ] && stat "$3"; then
+ f="$(wslpath -w "$3")" && "$QLPATH" "$f" &
+ elif [ -n "$NNN_PREVIEWVIDEO" ] && [[ "$4" == +(gif|video) ]]; then
+ [ "$4" = "video" ] && args=(--start=10% --length=4) || args=()
+ video_preview "$1" "$2" "$3" "${args[@]}" && return
+ elif [ ! -f "$NNN_PREVIEWDIR/$3.jpg" ] || [ -n "$(find -L "$3" -newer "$NNN_PREVIEWDIR/$3.jpg")" ]; then
+ mkdir -p "$NNN_PREVIEWDIR/${3%/*}"
+ case $4 in
+ audio) ffmpeg -i "$3" -filter_complex "scale=iw*min(1\,min($NNN_PREVIEWWIDTH/iw\,ih)):-1" "$NNN_PREVIEWDIR/$3.jpg" -y ;;
+ epub) gnome-epub-thumbnailer "$3" "$NNN_PREVIEWDIR/$3.jpg" ;;
+ font) fontpreview -i "$3" -o "$NNN_PREVIEWDIR/$3.jpg" ;;
+ gif) if [ -p "$FIFO_UEBERZUG" ] && exists convert; then
+ frameprefix="$NNN_PREVIEWDIR/$3/${3##*/}"
+ if [ ! -d "$NNN_PREVIEWDIR/$3" ]; then
+ mkdir -p "$NNN_PREVIEWDIR/$3"
+ convert -coalesce -resize "$NNN_PREVIEWWIDTH"x"$NNN_PREVIEWHEIGHT"\> "$3" "$frameprefix.jpg" ||
+ MAGICK_TMPDIR="/tmp" convert -coalesce -resize "$NNN_PREVIEWWIDTH"x"$NNN_PREVIEWHEIGHT"\> "$3" "$frameprefix.jpg"
+ fi
+ frames=$(($(find "$NNN_PREVIEWDIR/$3" | wc -l) - 2))
+ [ $frames -lt 0 ] && return
+ while true; do
+ for i in $(seq 0 $frames); do
+ image_preview "$1" "$2" "$frameprefix-$i.jpg"
+ sleep 0.1
+ done
+ done &
+ printf "%s" "$!" > "$PREVIEWPID"
+ return
+ elif [ -n "$NNN_PREVIEWVIDEO" ]; then
+ video_preview "$1" "$2" "$3" && return
+ else
+ image_preview "$1" "$2" "$3" && return
+ fi ;;
+ image) if exists rsvg-convert && [[ "${3##*.}" == "svg" ]]; then
+ rsvg-convert -a -w "$NNN_PREVIEWWIDTH" -h "$NNN_PREVIEWHEIGHT" -f png -o "$NNN_PREVIEWDIR/$3.png" "$3"
+ elif exists convert; then
+ convert "$3" -flatten -resize "$NNN_PREVIEWWIDTH"x"$NNN_PREVIEWHEIGHT"\> "$NNN_PREVIEWDIR/$3.jpg"
+ else
+ image_preview "$1" "$2" "$3" && return
+ fi ;;
+ office) libreoffice --convert-to jpg "$3" --outdir "$NNN_PREVIEWDIR/${3%/*}"
+ filename="$(printf "%s" "${3##*/}" | cut -d. -f1)"
+ mv -- "$NNN_PREVIEWDIR/${3%/*}/$filename.jpg" "$NNN_PREVIEWDIR/$3.jpg" ;;
+ pdf) pdftoppm -jpeg -f 1 -singlefile "$3" "$NNN_PREVIEWDIR/$3" ;;
+ djvu) ddjvu -format=ppm -page=1 "$3" "$NNN_PREVIEWDIR/$3.jpg" ;;
+ video) video_preview "$1" "$2" "$3" && return ;;
+ esac
+ fi
+ if [ -f "$NNN_PREVIEWDIR/$3.jpg" ]; then
+ image_preview "$1" "$2" "$NNN_PREVIEWDIR/$3.jpg"
+ elif [[ "${3##*.}" == "svg" ]] && [ -f "$NNN_PREVIEWDIR/$3.png" ]; then
+ image_preview "$1" "$2" "$NNN_PREVIEWDIR/$3.png"
+ else
+ fifo_pager print_bin_info "$3"
+ fi
+} >/dev/null 2>&1
+
+image_preview() {
+ clear
+ exec >/dev/tty
+ if [ "$NNN_TERMINAL" = "kitty" ] && [[ "$NNN_PREVIEWIMGPROG" == +(|icat) ]]; then
+ kitty +kitten icat --silent --scale-up --place "$1"x"$2"@0x0 --transfer-mode=stream --stdin=no "$3" &
+ elif [ "$NNN_TERMINAL" = "tmux" ] && [[ -n "$KITTY_LISTEN_ON" ]] && [[ "$NNN_PREVIEWIMGPROG" == +(|icat) ]]; then
+ kitty +kitten icat --silent --scale-up --place "$(($1 - 1))x$(($2 - 1))"@0x0 --transfer-mode=memory --stdin=no "$3" &
+ elif [ "$NNN_TERMINAL" = "wezterm" ] && [[ "$NNN_PREVIEWIMGPROG" == +(|imgcat) ]]; then
+ wezterm imgcat "$3" &
+ elif exists ueberzug && [[ "$NNN_PREVIEWIMGPROG" == +(|ueberzug) ]]; then
+ ueberzug_layer "$1" "$2" "$3" && return
+ elif exists "${NNN_PREVIEWIMGPROG%% *}"; then # can include command flags; only check first word
+ $NNN_PREVIEWIMGPROG -w "$1" "$3" &
+ else
+ fifo_pager print_bin_info "$3" && return
+ fi
+ printf "%s" "$!" > "$PREVIEWPID"
+}
+
+video_preview() {
+ clear
+ exec >/dev/tty
+ if [ -n "$NNN_PREVIEWVIDEO" ]; then
+ mpv --no-config --really-quiet --vo="$NNN_PREVIEWVIDEO" --profile=sw-fast --loop-file --no-audio "$4" "$3" &
+ else
+ ffmpegthumbnailer -m -s0 -i "$3" -o "$NNN_PREVIEWDIR/$3.jpg" || rm -- "$NNN_PREVIEWDIR/$3.jpg" &
+ fi
+ printf "%s" "$!" > "$PREVIEWPID"
+}
+
+ueberzug_layer() {
+ [ -f "$POSOFFSET" ] && read -r x y < "$POSOFFSET"
+ printf '{"action": "add", "identifier": "nnn_ueberzug", "x": %d, "y": %d, "width": "%d", "height": "%d", "scaler": "fit_contain", "path": "%s"}\n'\
+ "${x:-0}" "${y:-0}" "$1" "$2" "$3" > "$FIFO_UEBERZUG"
+}
+
+ueberzug_remove() {
+ printf '{"action": "remove", "identifier": "nnn_ueberzug"}\n' > "$FIFO_UEBERZUG"
+}
+
+winch_handler() {
+ clear
+ pidkill "$PREVIEWPID"
+ if [ -p "$FIFO_UEBERZUG" ]; then
+ pkill -f "tail --follow $FIFO_UEBERZUG"
+ tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser json &
+ fi
+ preview_file "$(cat "$CURSEL")"
+}
+
+preview_fifo() {
+ while read -r selection; do
+ if [ -n "$selection" ]; then
+ pidkill "$PREVIEWPID"
+ [ -p "$FIFO_UEBERZUG" ] && ueberzug_remove
+ [ "$selection" = "close" ] && break
+ preview_file "$selection"
+ printf "%s" "$selection" > "$CURSEL"
+ fi
+ done < "$NNN_FIFO"
+ sleep 0.1 # make sure potential preview by winch_handler is killed
+ pkill -P "$$"
+}
+
+if [ "$PREVIEW_MODE" -eq 1 ] 2>/dev/null; then
+ if exists ueberzug && [ "$NNN_TERMINAL" != "kitty" ] && [[ "$NNN_PREVIEWIMGPROG" == +(|ueberzug) ]]; then
+ mkfifo "$FIFO_UEBERZUG"
+ tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser json &
+ fi
+
+ preview_file "$PWD/$1"
+ preview_fifo & WAITPID=$!
+ printf "%s" "$!" > "$FIFOPID"
+ printf "%s" "$PWD/$1" > "$CURSEL"
+ trap 'winch_handler' WINCH
+ trap 'rm -- "$PREVIEWPID" "$CURSEL" "$FIFO_UEBERZUG" "$FIFOPID" "$POSOFFSET" 2>/dev/null' INT HUP EXIT
+ while kill -s 0 $WAITPID; do
+ wait $WAITPID 2>/dev/null
+ done
+ exit 0
+else
+ if [ ! -r "$NNN_FIFO" ]; then
+ prompt "No FIFO available! (\$NNN_FIFO='$NNN_FIFO')\nPlease read Usage in '$0'."
+ elif [ "$KITTY_WINDOW_ID" ] && [ -z "$TMUX" ] && [ -z "$KITTY_LISTEN_ON" ]; then
+ prompt "\$KITTY_LISTEN_ON not set!\nPlease read Usage in '$0'."
+ else
+ toggle_preview "$1" &
+ fi
+fi
diff --git a/.config/nvim/after/plugin/gitsigns.lua b/.config/nvim/after/plugin/gitsigns.lua
deleted file mode 100644
index 8070d1a..0000000
--- a/.config/nvim/after/plugin/gitsigns.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-require('gitsigns').setup {
- signs = {
- add = { text = '│' },
- change = { text = '┆' },
- delete = { text = '_' },
- topdelete = { text = '‾' },
- changedelete = { text = '~' },
- untracked = { text = '┆' },
- },
- signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
- numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
- linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
- word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
- watch_gitdir = {
- follow_files = true
- },
- attach_to_untracked = true,
- current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
- current_line_blame_opts = {
- virt_text = true,
- virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
- delay = 1000,
- ignore_whitespace = false,
- virt_text_priority = 100,
- },
- current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
- sign_priority = 6,
- update_debounce = 100,
- status_formatter = nil, -- Use default
- max_file_length = 40000, -- Disable if file is longer than this (in lines)
- preview_config = {
- -- Options passed to nvim_open_win
- border = 'single',
- style = 'minimal',
- relative = 'cursor',
- row = 0,
- col = 1
- },
- yadm = {
- enable = false
- },
-}
diff --git a/.config/nvim/after/plugin/gruvbox.lua b/.config/nvim/after/plugin/gruvbox.lua
deleted file mode 100644
index 7ea4f3e..0000000
--- a/.config/nvim/after/plugin/gruvbox.lua
+++ /dev/null
@@ -1,29 +0,0 @@
-require("gruvbox").setup({
- priority = 1000,
- terminal_colors = false, -- add neovim terminal colors
- undercurl = true,
- underline = true,
- bold = false,
- italic = {
- strings = false,
- emphasis = true,
- comments = true,
- operators = false,
- folds = true,
- },
- strikethrough = true,
- invert_selection = false,
- invert_signs = false,
- invert_tabline = false,
- invert_intend_guides = false,
- inverse = true, -- invert background for search, diffs, statuslines and errors
- contrast = "", -- can be "hard", "soft" or empty string
- palette_overrides = {},
- overrides = {
- ["@punctuation.delimiter"] = { fg = "#928374" },
- ["@string"] = { fg = "#8ec07c" },
- },
- dim_inactive = false,
- transparent_mode = true,
-})
-vim.cmd("colorscheme gruvbox")
diff --git a/.config/nvim/after/plugin/kanagawa.lua b/.config/nvim/after/plugin/kanagawa.lua
deleted file mode 100644
index 4eb498f..0000000
--- a/.config/nvim/after/plugin/kanagawa.lua
+++ /dev/null
@@ -1,27 +0,0 @@
--- require('kanagawa').setup({
--- compile = true, -- enable compiling the colorscheme
--- undercurl = true, -- enable undercurls
--- commentStyle = { italic = true },
--- functionStyle = {},
--- keywordStyle = { italic = true, bold = false },
--- statementStyle = { bold = false },
--- typeStyle = {},
--- transparent = true, -- do not set background color
--- dimInactive = false, -- dim inactive window `:h hl-NormalNC`
--- terminalColors = false, -- define vim.g.terminal_color_{0,17}
--- colors = { -- add/modify theme and palette colors
--- palette = {},
--- theme = { wave = {}, lotus = {}, dragon = {}, all = {} },
--- },
--- overrides = function(colors) -- add/modify highlights
--- return {}
--- end,
--- theme = "dragon", -- Load "wave" theme when 'background' option is not set
--- background = { -- map the value of 'background' option to a theme
--- dark = "dragon", -- try "dragon" !
--- light = "lotus"
--- },
--- })
-
--- setup must be called before loading
--- vim.cmd("colorscheme kanagawa")
diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua
deleted file mode 100644
index a0e2316..0000000
--- a/.config/nvim/after/plugin/lsp.lua
+++ /dev/null
@@ -1,229 +0,0 @@
-local lsp = require('lsp-zero')
-
-lsp.preset('recommended')
-
-lsp.on_attach(function(client, bufnr)
- local opts = { buffer = bufnr, remap = false }
-
- vim.keymap.set('n', 'gd', function() vim.lsp.buf.definition() end, opts)
- vim.keymap.set('n', 'K', function() vim.lsp.buf.hover() end, opts)
- vim.keymap.set('n', '<leader>vws', function() vim.lsp.buf.workspace_symbol() end, opts)
- vim.keymap.set('n', '<leader>vd', function() vim.diagnostic.open_float() end, opts)
- vim.keymap.set('n', '[d', function() vim.diagnostic.goto_prev() end, opts)
- vim.keymap.set('n', ']d', function() vim.diagnostic.goto_next() end, opts)
- vim.keymap.set('n', '<leader>vca', function() vim.lsp.buf.code_actions() end, opts)
- vim.keymap.set('n', '<leader>vrr', function() vim.lsp.buf.references() end, opts)
- vim.keymap.set('n', '<leader>vrn', function() vim.lsp.buf.rename() end, opts)
- vim.keymap.set('i', '<C-h>', function() vim.lsp.buf.signature_help() end, opts)
-end)
-
-require('mason').setup({
- servers = {
- 'clangd',
- },
-})
-
-
-require('mason-lspconfig').setup({
- ensure_installed = {
- 'eslint',
- 'rust_analyzer',
- 'lua_ls',
- 'gopls',
- 'arduino_language_server',
- 'bashls',
- 'perlnavigator',
- 'clangd',
- 'yamlls',
- },
- handlers = {
- lsp.default_setup,
- },
-})
-
--- langs
-
-require('lspconfig').gopls.setup({
- settings = {
- gopls = {
- analyses = {
- unreachable = true,
- unusedparams = true,
- },
- codelenses = {
- generate = true,
- gc_details = true,
- },
- annotations = {
- bounds = true,
- escape = true,
- inline = true,
- },
- gofumpt = true,
- },
- },
-})
-
-require('lspconfig').clangd.setup({
- settings = {
- clangd = {
- mason = false,
- },
- },
-})
-
-require'lspconfig'.perlnavigator.setup{
- cmd = { "perlnavigator" },
- settings = {
- perlnavigator = {
- perlPath = 'perl',
- enableWarnings = true,
- perltidyProfile = '',
- perlcriticProfile = '',
- perlcriticEnabled = true,
- }
- }
-}
-
-require('lspconfig').arduino_language_server.setup({
- cmd = {
- "arduino-language-server",
- "-cli-config", "/home/jozan/.arduino15/arduino-cli.yaml",
- "-cli", "arduino-cli",
- "-clangd", "clangd",
- "-fqbn", "esp32:esp32:esp32",
- }
-})
-
-require'lspconfig'.terraformls.setup{}
-vim.api.nvim_create_autocmd({"BufWritePre"}, {
- pattern = {"*.tf", "*.tfvars"},
- callback = function()
- vim.lsp.buf.format()
- end,
-})
-
--- cmp
-
-local cmp = require('cmp')
-local cmp_select = { behavior = cmp.SelectBehavior.Select }
-cmp.setup({
- window = {
- -- completion = cmp.config.window.bordered(),
- -- documentation = cmp.config.window.bordered(),
- },
- mapping = cmp.mapping.preset.insert({
- ['<C-j>'] = cmp.mapping.select_next_item(cmp_select),
- ['<C-k>'] = cmp.mapping.select_prev_item(cmp_select),
- ['<C-b>'] = cmp.mapping.scroll_docs(-4),
- ['<C-f>'] = cmp.mapping.scroll_docs(4),
- ['<C-Space>'] = cmp.mapping.complete(),
- ['<C-e>'] = cmp.mapping.abort(),
- ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
- ['<C-i>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
- }),
- sources = cmp.config.sources({
- { name = 'nvim_lsp' },
- { name = 'vsnip' }, -- For vsnip users.
- -- { name = 'luasnip' }, -- For luasnip users.
- -- { name = 'ultisnips' }, -- For ultisnips users.
- -- { name = 'snippy' }, -- For snippy users.
- }, {
- { name = 'buffer' },
- })
-})
-
- -- Set configuration for specific filetype.
- cmp.setup.filetype('gitcommit', {
- sources = cmp.config.sources({
- { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
- }, {
- { name = 'buffer' },
- })
- })
-
- -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
- cmp.setup.cmdline({ '/', '?' }, {
- mapping = cmp.mapping.preset.cmdline(),
- sources = {
- { name = 'buffer' }
- }
- })
-
- -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
- cmp.setup.cmdline(':', {
- mapping = cmp.mapping.preset.cmdline(),
- sources = cmp.config.sources({
- { name = 'path' }
- }, {
- { name = 'cmdline' }
- })
- })
-
-local cmp_mappings = lsp.defaults.cmp_mappings({
-})
-
-
-lsp.set_preferences({
--- sign_icons = { }
- sign_icons = {
- Text = "󰉿",
- Method = "󰆧",
- Function = "󰊕",
- Constructor = "",
- Field = "󰜢",
- Variable = "󰀫",
- Class = "󰠱",
- Interface = "",
- Module = "",
- Property = "󰜢",
- Unit = "󰑭",
- Value = "󰎠",
- Enum = "",
- Keyword = "󰌋",
- Snippet = "",
- Color = "󰏘",
- File = "󰈙",
- Reference = "󰈇",
- Folder = "󰉋",
- EnumMember = "",
- Constant = "󰏿",
- Struct = "󰙅",
- Event = "",
- Operator = "󰆕",
- TypeParameter = "",
- },
-})
-
-local lspkind = require('lspkind')
-cmp.setup {
-
- formatting = {
- format = lspkind.cmp_format({
- mode = 'symbol', -- show only symbol annotations
- maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
- ellipsis_char = '...', -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first)
-
- -- The function below will be called before any actual modifications from lspkind
- -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30))
- before = function (entry, vim_item)
- return vim_item
- end
- })
- }
-}
-
--- local lspconfig = require'lspconfig'
--- lspconfig.ccls.setup {
--- init_options = {
--- compilationDatabaseDirectory = "build";
--- index = {
--- threads = 0;
--- };
--- clang = {
--- excludeArgs = { "-frounding-math" };
--- };
--- }
--- }
-
-lsp.setup()
diff --git a/.config/nvim/after/plugin/lualine.lua b/.config/nvim/after/plugin/lualine.lua
deleted file mode 100644
index b266af3..0000000
--- a/.config/nvim/after/plugin/lualine.lua
+++ /dev/null
@@ -1,349 +0,0 @@
--- Eviline config for lualine
--- Author: shadmansaleh
--- Credit: glepnir
-local lualine = require('lualine')
-
--- Color table for highlights
--- stylua: ignore
-local colors = {
- bg = '#202328',
- fg = '#a89984',
- yellow = '#ecbe7b',
- cyan = '#008080',
- darkblue = '#081633',
- green = '#98be65',
- orange = '#ff8800',
- violet = '#a9a1e1',
- magenta = '#c678dd',
- blue = '#51afef',
- red = '#ec5f67',
-}
-
-local conditions = {
- buffer_not_empty = function()
- return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
- end,
- hide_in_width = function()
- return vim.fn.winwidth(0) > 80
- end,
- check_git_workspace = function()
- local filepath = vim.fn.expand('%:p:h')
- local gitdir = vim.fn.finddir('.git', filepath .. ';')
- return gitdir and #gitdir > 0 and #gitdir < #filepath
- end,
-}
-
--- Config
-local config = {
- options = {
- -- Disable sections and component separators
- component_separators = '',
- section_separators = '',
- theme = {
- -- We are going to use lualine_c an lualine_x as left and
- -- right section. Both are highlighted by c theme . So we
- -- are just setting default looks o statusline
- normal = { c = { fg = colors.fg, bg = colors.bg } },
- inactive = { c = { fg = colors.fg, bg = colors.bg } },
- },
- },
- sections = {
- -- these are to remove the defaults
- lualine_a = {},
- lualine_b = {},
- lualine_y = {},
- lualine_z = {},
- -- These will be filled later
- lualine_c = {},
- lualine_x = {},
- },
- inactive_sections = {
- -- these are to remove the defaults
- lualine_a = {},
- lualine_b = {},
- lualine_y = {},
- lualine_z = {},
- lualine_c = {},
- lualine_x = {},
- },
-}
-
--- Inserts a component in lualine_c at left section
-local function ins_left(component)
- table.insert(config.sections.lualine_c, component)
-end
-
--- Inserts a component in lualine_x at right section
-local function ins_right(component)
- table.insert(config.sections.lualine_x, component)
-end
-
-ins_left {
- function()
- return '▊'
- end,
- -- color = { fg = colors.green }, -- Sets highlighting of component
- color = function()
- -- auto change color according to neovims mode
- local mode_color = {
- n = colors.green,
- i = colors.blue,
- v = colors.magenta,
- [''] = colors.magenta,
- V = colors.magenta,
- c = colors.yellow,
- no = colors.red,
- s = colors.orange,
- S = colors.orange,
- [''] = colors.orange,
- ic = colors.yellow,
- R = colors.red,
- Rv = colors.violet,
- cv = colors.red,
- ce = colors.red,
- r = colors.cyan,
- rm = colors.cyan,
- ['r?'] = colors.cyan,
- ['!'] = colors.red,
- t = colors.red,
- }
- return { fg = mode_color[vim.fn.mode()] }
- end,
- padding = { left = 0, right = 1 }, -- We don't need space before this
-}
-
-ins_left {
- -- mode component
- function()
- return ''
- end,
- color = function()
- -- auto change color according to neovims mode
- local mode_color = {
- n = colors.green,
- i = colors.blue,
- v = colors.magenta,
- [''] = colors.magenta,
- V = colors.magenta,
- c = colors.yellow,
- no = colors.red,
- s = colors.orange,
- S = colors.orange,
- [''] = colors.orange,
- ic = colors.yellow,
- R = colors.red,
- Rv = colors.violet,
- cv = colors.red,
- ce = colors.red,
- r = colors.cyan,
- rm = colors.cyan,
- ['r?'] = colors.cyan,
- ['!'] = colors.red,
- t = colors.red,
- }
- return { fg = mode_color[vim.fn.mode()] }
- end,
- padding = { right = 1 },
-}
-
--- ins_left {
--- 'filename',
--- cond = conditions.buffer_not_empty,
--- color = { fg = colors.magenta, gui = 'bold' },
--- }
-
-ins_left {
- 'buffers',
- show_filename_only = false,
- hide_filename_extension = false,
- show_modified_status = true,
- icons_enabled = true,
- symbols = {
- modified = ' ●', -- Text to show when the buffer is modified
- alternate_file = '', -- Text to show to identify the alternate file
- directory = '', -- Text to show when the buffer is a directory
- },
- buffers_color = {
- -- Same values as the general color option can be used here.
- active = function()
- -- auto change color according to neovims mode
- local mode_color = {
- n = colors.green,
- i = colors.blue,
- v = colors.magenta,
- [''] = colors.magenta,
- V = colors.magenta,
- c = colors.yellow,
- no = colors.red,
- s = colors.orange,
- S = colors.orange,
- [''] = colors.orange,
- ic = colors.yellow,
- R = colors.red,
- Rv = colors.violet,
- cv = colors.red,
- ce = colors.red,
- r = colors.cyan,
- rm = colors.cyan,
- ['r?'] = colors.cyan,
- ['!'] = colors.red,
- t = colors.red,
- }
- return { fg = mode_color[vim.fn.mode()], gui = 'bold' }
- end,
- },
-}
-
-ins_left {
- 'diagnostics',
- sources = { 'nvim_diagnostic' },
- symbols = { error = ' ', warn = ' ', info = ' ' },
- diagnostics_color = {
- color_error = { fg = colors.red },
- color_warn = { fg = colors.yellow },
- color_info = { fg = colors.cyan },
- },
-}
-
--- Insert mid section. You can make any number of sections in neovim :)
--- for lualine it's any number greater then 2
--- ins_left {
--- function()
--- return '%='
--- end,
--- }
-
-ins_right {
- 'filetype',
- icons_enabled = true, -- I think icons are cool but Eviline doesn't have them. sigh
- color = { fg = colors.blue },
-}
-
-ins_right {
- -- Lsp server name .
- function()
- local msg = 'no lsp'
- local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
- local clients = vim.lsp.get_active_clients()
- if next(clients) == nil then
- icon = ''
- return ''
- end
- for _, client in ipairs(clients) do
- local filetypes = client.config.filetypes
- if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
- return client.name
- end
- end
- return msg
- end,
- icon = ' ',
- color = { fg = colors.cyan },
-}
-
-ins_right {
- 'branch',
- icon = '',
- color = { fg = colors.violet, gui = 'bold' },
-}
-
-ins_right {
- -- filesize component
- 'filesize',
- cond = conditions.buffer_not_empty,
-}
-
-ins_right {
- 'diff',
- -- Is it me or the symbol for modified us really weird
- symbols = { added = ' ', modified = '󰝤 ', removed = ' ' },
- diff_color = {
- added = { fg = colors.green },
- modified = { fg = colors.orange },
- removed = { fg = colors.red },
- },
- cond = conditions.hide_in_width,
-}
-
-ins_right { 'location' }
-
-ins_right {
- function()
- return '▊'
- end,
- -- color = { fg = colors.green },
- color = function()
- -- auto change color according to neovims mode
- local mode_color = {
- n = colors.green,
- i = colors.blue,
- v = colors.magenta,
- [''] = colors.magenta,
- V = colors.magenta,
- c = colors.yellow,
- no = colors.red,
- s = colors.orange,
- S = colors.orange,
- [''] = colors.orange,
- ic = colors.yellow,
- R = colors.red,
- Rv = colors.violet,
- cv = colors.red,
- ce = colors.red,
- r = colors.cyan,
- rm = colors.cyan,
- ['r?'] = colors.cyan,
- ['!'] = colors.red,
- t = colors.red,
- }
- return { fg = mode_color[vim.fn.mode()] }
- end,
- padding = { left = 1 },
-}
-
--- Now don't forget to initialize lualine
-lualine.setup(config)
-
-
-
-
--- require('lualine').setup {
--- options = {
--- icons_enabled = true,
--- theme = 'gruvbox',
--- section_separators = { left = '', right = '' },
--- component_separators = { left = '', right = '' },
--- disabled_filetypes = {
--- statusline = {},
--- winbar = {},
--- },
--- ignore_focus = {},
--- always_divide_middle = true,
--- globalstatus = false,
--- refresh = {
--- statusline = 1000,
--- tabline = 1000,
--- winbar = 1000,
--- }
--- },
--- sections = {
--- lualine_a = { 'mode' },
--- lualine_b = { 'branch', 'diff', 'diagnostics' },
--- lualine_c = { 'filename' },
--- lualine_x = { 'buffers' },
--- lualine_y = { 'filetype' },
--- lualine_z = { 'location' }
--- },
--- inactive_sections = {
--- lualine_a = {},
--- lualine_b = {},
--- lualine_c = { 'filename' },
--- lualine_x = {},
--- lualine_y = {},
--- lualine_z = {}
--- },
--- tabline = {},
--- winbar = {},
--- inactive_winbar = {},
--- extensions = {},
--- }
diff --git a/.config/nvim/after/plugin/rainbow.lua b/.config/nvim/after/plugin/rainbow.lua
deleted file mode 100644
index e0951b8..0000000
--- a/.config/nvim/after/plugin/rainbow.lua
+++ /dev/null
@@ -1,23 +0,0 @@
--- Rainbow
--- This module contains a number of default definitions
-local rainbow_delimiters = require 'rainbow-delimiters'
-
-vim.g.rainbow_delimiters = {
- strategy = {
- [''] = rainbow_delimiters.strategy['global'],
- vim = rainbow_delimiters.strategy['local'],
- },
- query = {
- [''] = 'rainbow-delimiters',
- lua = 'rainbow-blocks',
- },
- highlight = {
- 'RainbowDelimiterOrange',
- 'RainbowDelimiterRed',
- 'RainbowDelimiterYellow',
- 'RainbowDelimiterBlue',
- 'RainbowDelimiterGreen',
- 'RainbowDelimiterViolet',
- 'RainbowDelimiterCyan',
- },
-}
diff --git a/.config/nvim/after/plugin/telescope.lua b/.config/nvim/after/plugin/telescope.lua
deleted file mode 100644
index 2926204..0000000
--- a/.config/nvim/after/plugin/telescope.lua
+++ /dev/null
@@ -1,16 +0,0 @@
-local tele = require('telescope')
-
-tele.setup {
- defaults = {
- mappings = {
- i = {
- ['<C-u>'] = false,
- ['<C-d>'] = require('telescope.actions').delete_buffer,
- ["<C-j>"] = require('telescope.actions').move_selection_next,
- ["<C-k>"] = require('telescope.actions').move_selection_previous,
- },
- },
- },
-}
-
-pcall(tele.load_extension, 'fzf')
diff --git a/.config/nvim/after/plugin/treesitter.lua b/.config/nvim/after/plugin/treesitter.lua
deleted file mode 100644
index 0bc651b..0000000
--- a/.config/nvim/after/plugin/treesitter.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-require'nvim-treesitter.configs'.setup {
- -- A list of parser names, or "all" (the five listed parsers should always be installed)
- ensure_installed = {
- 'c',
- 'cpp',
- 'lua',
- 'vim',
- 'vimdoc',
- 'query',
- 'go',
- 'rust',
- 'yaml',
- 'regex',
- 'markdown',
- 'markdown_inline',
- 'terraform',
- 'comment',
- },
-
- -- Install parsers synchronously (only applied to `ensure_installed`)
- sync_install = false,
-
- -- Automatically install missing parsers when entering buffer
- -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
- auto_install = true,
-
- highlight = {
- enable = true,
-
- -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
- -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
- -- Using this option may slow down your editor, and you may see some duplicate highlights.
- -- Instead of true it can also be a list of languages
- additional_vim_regex_highlighting = false,
- },
- incremental_selection = {
- enable = true,
- },
- indent = {
- enable = true,
- },
-}
diff --git a/.config/nvim/after/plugin/trouble.lua b/.config/nvim/after/plugin/trouble.lua
deleted file mode 100644
index c18491c..0000000
--- a/.config/nvim/after/plugin/trouble.lua
+++ /dev/null
@@ -1,17 +0,0 @@
-require('trouble').setup {
- -- icons = true,
-}
-
--- Diagnostic signs
--- https://github.com/folke/trouble.nvim/issues/52
-local signs = {
- Error = " ",
- Warn = " ",
- Hint = " ",
- Info = " "
-}
-
-for type, icon in pairs(signs) do
- local hl = "DiagnosticSign" .. type
- vim.fn.sign_define(hl, {text = icon, texthl = hl, numhl = hl})
-end
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index 7ae4e52..5b8b6c0 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -15,8 +15,13 @@ Confdir = os.getenv('XDG_CONFIG_HOME')
vim.cmd('set runtimepath^=/home/r_bousset/.config/nvim runtimepath+=/home/jozan/.config/nvim/after')
vim.cmd('let &packpath = &runtimepath')
-require('packs')
-require('settings')
-require('bindings')
-require('langs')
-require('hooks')
+require('config.lazy')
+require('config.settings')
+require('config.bindings')
+require('config.langs')
+require('config.hooks')
+require('lsp.arduino')
+require('lsp.bashls')
+require('lsp.ccls')
+require('lsp.gopls')
+require('lsp.luals')
diff --git a/.config/nvim/lua/bindings.lua b/.config/nvim/lua/config/bindings.lua
index 2b4013c..73dc669 100644
--- a/.config/nvim/lua/bindings.lua
+++ b/.config/nvim/lua/config/bindings.lua
@@ -28,8 +28,7 @@ vim.keymap.set('x', '<leader>p', "\"_dP")
vim.keymap.set('n', 'Q', '<nop>')
vim.keymap.set('n', '<leader><space>', vim.cmd.nohlsearch, { noremap = true, silent = true })
-local ts = require('telescope.builtin')
-require('telescope').load_extension('harpoon')
+local fzf = require('fzf-lua')
local harpoon = require('harpoon')
harpoon:setup()
@@ -46,8 +45,7 @@ vim.keymap.set('n', '<leader>u', vim.cmd.UndotreeToggle, { noremap = true, sile
vim.keymap.set('n', '<leader>u', ':w<CR>', { noremap = true, silent = true })
-- harpoon
vim.keymap.set('n', '<leader>aa', function() harpoon:list():add() end, { noremap = true, silent = true })
-vim.keymap.set('n', '<leader>ae', function() harpoon.ui:toggle_quick_menu(harpoon:list()) end, { noremap = true, silent = true })
-vim.keymap.set('n', '<leader>af', ':Telescope harpoon marks<CR>', { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>af', function() harpoon.ui:toggle_quick_menu(harpoon:list()) end, { noremap = true, silent = true })
-- trouble
vim.keymap.set('n', '<leader>xx', ':Trouble diagnostics toggle focus=true<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>xw', ':Trouble diagnostics toggle focus=true<CR>', { noremap = true, silent = true })
@@ -55,14 +53,21 @@ vim.keymap.set('n', '<leader>xd', ':Trouble diagnostics toggle focus=true filter
vim.keymap.set('n', '<leader>xl', ':Trouble loclist toggle focus=true<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>xq', ':Trouble qflist toggle focus=true<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>xs', ':Trouble lsp toggle focus=true win.position=right<CR>', { noremap = true, silent = true })
--- telescope
-vim.keymap.set('n', '<leader>fb', ts.buffers, { noremap = true, silent = true })
-vim.keymap.set('n', '<leader>fd', ts.diagnostics, { noremap = true, silent = true })
-vim.keymap.set('n', '<leader>fe', ':Telescope harpoon marks<CR>', { noremap = true, silent = true })
-vim.keymap.set('n', '<leader>ff', ts.find_files, { noremap = true, silent = true })
-vim.keymap.set('n', '<leader>fs', ts.live_grep, { noremap = true, silent = true })
-vim.keymap.set('n', '<leader>fg', function() ts.grep_string({ search = vim.fn.input("Grep > ") }) end, { noremap = true, silent = true })
-vim.keymap.set('n', '<leader>ft', ':TodoTelescope keywords=TODO,HACK,WARN,PERF,NOTE,TEST,FIX<CR>', { noremap = true, silent = true })
+-- fzf
+vim.keymap.set('n', '<leader>fb', fzf.buffers, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>fd', fzf.diagnostics_workspace, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>ff', fzf.files, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>fs', fzf.live_grep_native, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>fr', function() fzf.live_grep_native({resume = true}) end, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>ft', ':TodoFzfLua keywords=TODO,HACK,WARN,PERF,NOTE,TEST,FIX<CR>', { noremap = true, silent = true })
-- neovim
-vim.keymap.set('n', '<leader>vu', vim.cmd.PackerSync, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>vu', ':Lazy sync<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>vv', vim.cmd.Ex, { noremap = true, silent = true })
+-- lsp
+vim.keymap.set('n', '<leader>rr', fzf.lsp_references, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>rw', fzf.lsp_definitions, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>ri', fzf.lsp_implementations, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>rt', fzf.lsp_typedefs, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>re', fzf.lsp_document_symbols, { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>s', '<Plug>(leap-anywhere)', { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>S', '<Plug>(leap-backward)', { noremap = true, silent = true })
diff --git a/.config/nvim/lua/config/hooks.lua b/.config/nvim/lua/config/hooks.lua
new file mode 100644
index 0000000..aad9318
--- /dev/null
+++ b/.config/nvim/lua/config/hooks.lua
@@ -0,0 +1,21 @@
+vim.api.nvim_create_autocmd({"BufWritePre"}, {
+ pattern = "*",
+ callback = function(ev)
+ local excluded = { 'mail', 'markdown' }
+ if vim.tbl_contains(excluded, vim.bo.filetype) then
+ return
+ end
+ save_cursor = vim.fn.getpos(".")
+ vim.cmd([[%s/\s\+$//e]])
+ vim.fn.setpos(".", save_cursor)
+ end,
+})
+
+vim.api.nvim_create_autocmd("FileType", {
+ pattern = "*",
+ callback = function()
+ vim.opt_local.tabstop = 4
+ vim.opt_local.softtabstop = 4
+ vim.opt_local.shiftwidth = 4
+ end,
+})
diff --git a/.config/nvim/lua/langs.lua b/.config/nvim/lua/config/langs.lua
index 64fe7ea..64fe7ea 100644
--- a/.config/nvim/lua/langs.lua
+++ b/.config/nvim/lua/config/langs.lua
diff --git a/.config/nvim/lua/config/lazy.lua b/.config/nvim/lua/config/lazy.lua
new file mode 100644
index 0000000..38168cd
--- /dev/null
+++ b/.config/nvim/lua/config/lazy.lua
@@ -0,0 +1,151 @@
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+
+vim.opt.rtp:prepend(lazypath)
+
+-- Make sure to setup `mapleader` and `maplocalleader` before
+-- loading lazy.nvim so that mappings are correct.
+-- This is also a good place to setup other settings (vim.opt)
+vim.g.mapleader = "\\"
+vim.g.maplocalleader = "\\"
+
+require('lazy').setup({
+ spec = {
+ {
+ 'windwp/nvim-autopairs',
+ config = function() require('nvim-autopairs').setup {} end
+ },
+ {
+ 'lewis6991/gitsigns.nvim',
+ config = function() require('gitsigns').setup {} end
+ },
+ {
+ 'numToStr/Comment.nvim',
+ dependencies = { 'JoosepAlviste/nvim-ts-context-commentstring' },
+ config = function() require('Comment').setup {} end
+ },
+ { 'mbbill/undotree' },
+ { 'chrisbra/csv.vim' },
+ {
+ 'ThePrimeagen/harpoon',
+ branch = 'harpoon2',
+ dependencies = { 'nvim-lua/plenary.nvim' }
+ },
+ {
+ 'lukas-reineke/indent-blankline.nvim',
+ config = function()
+ local highlight = {
+ "Whitespace",
+ }
+ require('ibl').setup {
+ debounce = 100,
+ indent = { highlight = highlight, char = '┊', },
+ scope = { show_start = false, show_end = false },
+ }
+ end,
+ },
+ {
+ 'folke/todo-comments.nvim',
+ dependencies = { 'nvim-lua/plenary.nvim' },
+ config = function()
+ require('todo-comments.config').setup{
+ highlight = {
+ multiline = false,
+ },
+ }
+ require('todo-comments')
+ end
+ },
+ {
+ 'lcheylus/overlength.nvim',
+ config = function()
+ require('overlength').setup{
+ enabled = true,
+ colors = {
+ ctermfg = nil,
+ ctermbg = 'darkgrey',
+ fg = nil,
+ bg = '#8B0000',
+ },
+ textwidth_mode = 0,
+ default_overlength = 80,
+ grace_length = 1,
+ highlight_to_eol = true,
+ disable_ft = { 'qf', 'help', 'man', 'checkhealth', 'lazy', 'packer', 'NvimTree', 'Telescope', 'WhichKey', 'text', 'csv', 'lua', 'gosum', 'sh', 'make', 'crontab', 'html', '' }
+ }
+ end
+ },
+ {
+ 'kylechui/nvim-surround',
+ version = "^3.0.0",
+ event = "VeryLazy",
+ config = function() require('nvim-surround').setup {} end
+ },
+ {
+ 'ggandor/leap.nvim',
+ dependencies = { 'tpope/vim-repeat' },
+ config = function()
+ require('leap').opts.preview_filter =
+ function (ch0, ch1, ch2)
+ return not (
+ ch1:match('%s') or
+ ch0:match('%a') and ch1:match('%a') and ch2:match('%a')
+ )
+ end
+ require('leap').setup({})
+ end
+ },
+ {
+ 'ibhagwan/fzf-lua',
+ dependencies = { 'nvim-tree/nvim-web-devicons' },
+ opts = {
+ defaults = {
+ file_icons = false,
+ no_header = true,
+ no_header_i = true,
+ },
+ winopts = {
+ width = 1,
+ height = 0.35,
+ row = 1,
+ border = 'none',
+ preview = {
+ border = 'none',
+ title = false,
+ layout = "horizontal",
+ winopts = {
+ number = false,
+ },
+ },
+ previewers = {
+ builtin = {
+ syntax_limit_b = 1024 * 100,
+ },
+ }
+ }
+ }
+ },
+ {
+ 'folke/trouble.nvim',
+ opts = {},
+ cmd = "Trouble",
+ },
+ { import = "plugins" },
+ },
+})
+
+-- use 'preservim/tagbar'
+-- use 'sainnhe/gruvbox-material'
+-- use 'savq/melange-nvim'
diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/config/settings.lua
index e578062..548fb11 100644
--- a/.config/nvim/lua/settings.lua
+++ b/.config/nvim/lua/config/settings.lua
@@ -38,10 +38,7 @@ vim.opt.fillchars = {eob = " "}
vim.opt.wrap = true
vim.opt.termguicolors = true
vim.opt.bg = 'dark'
-
-vim.g.gruvbox_material_background = 'medium'
-vim.g.gruvbox_material_foreground = 'original'
-vim.g.gruvbox_material_better_performance = 1
+vim.opt.guicursor:remove { 't:block-blinkon500-blinkoff500-TermCursor' }
vim.cmd [[
syntax on
@@ -91,3 +88,24 @@ vim.api.nvim_create_autocmd('TextYankPost', {
group = highlight_group,
pattern = '*',
})
+
+vim.diagnostic.enable = true
+
+vim.diagnostic.config({
+ virtual_text = {
+ source = "if_many",
+ prefix = "|",
+ spacing = 2,
+ },
+ signs = {
+ text = {
+ [vim.diagnostic.severity.ERROR] = " ",
+ [vim.diagnostic.severity.WARN] = " ",
+ [vim.diagnostic.severity.INFO] = " ",
+ [vim.diagnostic.severity.HINT] = " ",
+ },
+ },
+ underline = true,
+ update_in_insert = true,
+ severity_sort = true,
+})
diff --git a/.config/nvim/lua/hooks.lua b/.config/nvim/lua/hooks.lua
deleted file mode 100644
index eaf0687..0000000
--- a/.config/nvim/lua/hooks.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-vim.api.nvim_create_autocmd({"BufWritePre"}, {
- pattern = "*",
- callback = function(ev)
- save_cursor = vim.fn.getpos(".")
- vim.cmd([[%s/\s\+$//e]])
- vim.fn.setpos(".", save_cursor)
- end,
-})
diff --git a/.config/nvim/lua/lsp/arduino.lua b/.config/nvim/lua/lsp/arduino.lua
new file mode 100644
index 0000000..f0df170
--- /dev/null
+++ b/.config/nvim/lua/lsp/arduino.lua
@@ -0,0 +1,14 @@
+vim.lsp.config('arduino-language-server', {
+ cmd = {
+ 'arduino-language-server',
+ '-cli-config', '/home/jozan/.arduino15/arduino-cli.yaml',
+ '-cli', 'arduino-cli',
+ '-clangd', 'clangd',
+ '-fqbn', 'esp8266:esp8266:d1_mini',
+ '-jobs', '3',
+ },
+ filetypes = {'arduino'},
+ root_markers = {'.git'},
+})
+
+vim.lsp.enable('arduino-language-server')
diff --git a/.config/nvim/lua/lsp/bashls.lua b/.config/nvim/lua/lsp/bashls.lua
new file mode 100644
index 0000000..54d562f
--- /dev/null
+++ b/.config/nvim/lua/lsp/bashls.lua
@@ -0,0 +1,12 @@
+vim.lsp.config('bashls', {
+ cmd = { 'bash-language-server', 'start' },
+ settings = {
+ bashIde = {
+ globPattern = vim.env.GLOB_PATTERN or '*@(.sh|.inc|.bash|.command)',
+ },
+ },
+ filetypes = { 'bash', 'sh', 'zsh' },
+ root_markers = { '.git' },
+})
+
+vim.lsp.enable('bashls')
diff --git a/.config/nvim/lua/lsp/ccls.lua b/.config/nvim/lua/lsp/ccls.lua
new file mode 100644
index 0000000..431d547
--- /dev/null
+++ b/.config/nvim/lua/lsp/ccls.lua
@@ -0,0 +1,30 @@
+local function switch_source_header(client, bufnr)
+ local method_name = 'textDocument/switchSourceHeader'
+ local params = vim.lsp.util.make_text_document_params(bufnr)
+ client:request(method_name, params, function(err, result)
+ if err then
+ error(tostring(err))
+ end
+ if not result then
+ vim.notify('corresponding file cannot be determined')
+ return
+ end
+ vim.cmd.edit(vim.uri_to_fname(result))
+ end, bufnr)
+end
+
+vim.lsp.config('ccls', {
+ cmd = { 'ccls' },
+ filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' },
+ root_markers = { 'compile_commands.json', '.ccls', '.git' },
+ offset_encoding = 'utf-32',
+ -- ccls does not support sending a null root directory
+ workspace_required = true,
+ on_attach = function(client, bufnr)
+ vim.api.nvim_buf_create_user_command(bufnr, 'LspCclsSwitchSourceHeader', function()
+ switch_source_header(client, bufnr)
+ end, { desc = 'Switch between source/header' })
+ end,
+})
+
+vim.lsp.enable('ccls')
diff --git a/.config/nvim/lua/lsp/gopls.lua b/.config/nvim/lua/lsp/gopls.lua
new file mode 100644
index 0000000..c37da39
--- /dev/null
+++ b/.config/nvim/lua/lsp/gopls.lua
@@ -0,0 +1,25 @@
+vim.lsp.config('gopls', {
+ cmd = {'gopls'},
+ filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' },
+ root_markers = {'go.mod', 'go.sum', '.git'},
+ settings = {
+ gopls = {
+ analyses = {
+ unreachable = true,
+ unusedparams = true,
+ },
+ codelenses = {
+ generate = true,
+ gc_details = true,
+ },
+ annotations = {
+ bounds = true,
+ escape = true,
+ inline = true,
+ },
+ gofumpt = true,
+ }
+ }
+})
+
+vim.lsp.enable('gopls')
diff --git a/.config/nvim/lua/lsp/luals.lua b/.config/nvim/lua/lsp/luals.lua
new file mode 100644
index 0000000..40d4c3d
--- /dev/null
+++ b/.config/nvim/lua/lsp/luals.lua
@@ -0,0 +1,14 @@
+vim.lsp.config('luals', {
+ cmd = {'lua-language-server'},
+ filetypes = {'lua'},
+ root_markers = {'.luarc.json', '.luarc.jsonc'},
+ settings = {
+ Lua = {
+ diagnostics = {
+ globals = { "vim" }
+ }
+ }
+ }
+})
+
+vim.lsp.enable('luals')
diff --git a/.config/nvim/lua/packs.lua b/.config/nvim/lua/packs.lua
deleted file mode 100644
index dbf3e19..0000000
--- a/.config/nvim/lua/packs.lua
+++ /dev/null
@@ -1,171 +0,0 @@
-vim.cmd.packadd('packer.nvim')
-
-return require('packer').startup({function(use)
- -- Packer can manage itself
- use 'wbthomason/packer.nvim'
- use {
- 'nvim-telescope/telescope.nvim',
- branch = '0.1.x',
- requires = { {'nvim-lua/plenary.nvim'} }
- }
- use {
- 'windwp/nvim-autopairs',
- config = function() require('nvim-autopairs').setup {} end
- }
- -- use 'jiangmiao/auto-pairs'
- -- use 'folke/which-key.nvim'
- use 'lewis6991/gitsigns.nvim'
- -- use 'mhinz/vim-startify'
- -- use 'mg979/vim-visual-multi'
- use 'preservim/tagbar'
- -- use 'preservim/nerdcommenter'
- use {
- 'numToStr/Comment.nvim',
- requires = { {'JoosepAlviste/nvim-ts-context-commentstring'} },
- config = function()
- require('Comment').setup()
- end
- }
- -- use {
- -- 'nvim-tree/nvim-tree.lua',
- -- requires = {'nvim-tree/nvim-web-devicons'}
- -- }
- use 'mbbill/undotree'
- -- use 'brglng/vim-sidebar-manager'
- use 'ellisonleao/gruvbox.nvim'
- use 'sainnhe/gruvbox-material'
- use 'navarasu/onedark.nvim'
- use 'rebelot/kanagawa.nvim'
- use 'theniceboy/nvim-deus'
- use 'savq/melange-nvim'
- use 'tpope/vim-fugitive'
- -- use 'tpope/vim-surround'
- use 'nvim-lualine/lualine.nvim'
- -- use 'voldikss/vim-floaterm'
- -- use 'akinsho/toggleterm.nvim'
- use 'chrisbra/csv.vim'
- use {
- 'ThePrimeagen/harpoon',
- branch = 'harpoon2',
- requires = { {'nvim-lua/plenary.nvim'} }
- }
- use 'HiPhish/rainbow-delimiters.nvim'
- use {
- 'nvim-treesitter/nvim-treesitter-textobjects',
- requires = { {'nvim-treesitter/nvim-treesitter'} },
- run = function()
- local ts_update = require('nvim-treesitter.install').update({ with_sync = true })
- ts_update()
- end,
- }
- use {
- 'VonHeikemen/lsp-zero.nvim',
- branch = 'v3.x',
- requires = {
- -- LSP Support
- {'neovim/nvim-lspconfig'},
- {'williamboman/mason.nvim'},
- {'williamboman/mason-lspconfig.nvim'},
-
- -- Autocompletion
- {'hrsh7th/nvim-cmp'},
- {'hrsh7th/cmp-buffer'},
- {'hrsh7th/cmp-path'},
- {'saadparwaiz1/cmp_luasnip'},
- {'hrsh7th/cmp-nvim-lsp'},
- {'hrsh7th/cmp-nvim-lua'},
-
- -- Snippets
- {'L3MON4D3/LuaSnip'},
- {'rafamadriz/friendly-snippets'},
- }
- }
- use{
- 'folke/trouble.nvim',
- requires = {
- {'nvim-tree/nvim-web-devicons'},
- },
- }
- use {
- 'lukas-reineke/indent-blankline.nvim',
- config = function()
- local highlight = {
- "Whitespace",
- }
- require('ibl').setup {
- debounce = 100,
- indent = { highlight = highlight, char = '┊', },
- scope = { show_start = false, show_end = false },
- }
- end,
- }
- use ({
- 'folke/todo-comments.nvim',
- requires = { {'nvim-lua/plenary.nvim'} },
- config = function()
- require('todo-comments.config').setup{
- highlight = {
- multiline = false,
- },
- }
- require('todo-comments')
- end
- })
- use 'onsails/lspkind.nvim'
- use ({
- 'lcheylus/overlength.nvim',
- config = function()
- require('overlength').setup({
- enabled = true,
- colors = {
- ctermfg = nil,
- ctermbg = 'darkgrey',
- fg = nil,
- bg = '#8B0000',
- },
- textwidth_mode = 0,
- default_overlength = 80,
- grace_length = 1,
- highlight_to_eol = true,
- disable_ft = { 'qf', 'help', 'man', 'checkhealth', 'lazy', 'packer', 'NvimTree', 'Telescope', 'WhichKey', 'text' },
- })
- end
- })
--- use({
--- "tadmccorkle/markdown.nvim",
--- config = function()
--- require("markdown").setup({
--- -- configuration here or empty for defaults
--- })
--- end,
--- })
- use({
- "kylechui/nvim-surround",
- requires = {
- {'nvim-treesitter/nvim-treesitter'},
- {'nvim-treesitter/nvim-treesitter-textobjects'},
- },
- tag = "*", -- Use for stability; omit to use `main` branch for the latest features
- config = function()
- require("nvim-surround").setup({
- -- Configuration here, or leave empty to use defaults
- })
- end
- })
- use({
- 'ggandor/leap.nvim',
- requires = {'tpope/vim-repeat'},
- config = function()
- require('leap').setup({})
- vim.keymap.set({'n', 'x', 'o'}, '<leader>s', '<Plug>(leap-forward-to)')
- vim.keymap.set({'n', 'x', 'o'}, '<leader>S', '<Plug>(leap-backward-to)')
- vim.keymap.set({'n', 'x', 'o'}, '<C-s>', '<Plug>(leap-forward-till)')
- vim.keymap.set({'n', 'x', 'o'}, '<C-S-s>', '<Plug>(leap-backward-till)')
- end
- })
-end,
- config = {
- display = {
- open_fn = require('packer.util').float,
- }
-}})
diff --git a/.config/nvim/lua/plugins/gruvbox.lua b/.config/nvim/lua/plugins/gruvbox.lua
new file mode 100644
index 0000000..a1ffe02
--- /dev/null
+++ b/.config/nvim/lua/plugins/gruvbox.lua
@@ -0,0 +1,39 @@
+return {
+ {
+ 'ellisonleao/gruvbox.nvim',
+ lazy = false,
+ priority = 1000,
+ opts = {
+ terminal_colors = false,
+ undercurl = true,
+ underline = true,
+ bold = false,
+ italic = {
+ strings = false,
+ emphasis = true,
+ comments = true,
+ operators = false,
+ folds = true,
+ },
+ strikethrough = true,
+ invert_selection = false,
+ invert_signs = false,
+ invert_tabline = false,
+ invert_intend_guides = false,
+ inverse = true, -- invert background for search, diffs, statuslines and errors
+ contrast = "hard", -- can be "hard", "soft" or empty string
+ palette_overrides = {},
+ overrides = {
+ ["@comment"] = { fg = "#928374", italic = false },
+ ["@punctuation.delimiter"] = { fg = "#928374" },
+ String = { fg = "#8ec07c" },
+ },
+ dim_inactive = false,
+ transparent_mode = true,
+ },
+ config = function(_, opts)
+ require('gruvbox').setup(opts)
+ vim.cmd([[colorscheme gruvbox]])
+ end
+ }
+}
diff --git a/.config/nvim/lua/plugins/lspkind.lua b/.config/nvim/lua/plugins/lspkind.lua
new file mode 100644
index 0000000..4326c76
--- /dev/null
+++ b/.config/nvim/lua/plugins/lspkind.lua
@@ -0,0 +1,110 @@
+return {
+ {
+ 'onsails/lspkind.nvim',
+ config = function()
+ require('lspkind').setup({
+ mode = 'symbol_text',
+ preset = 'codicons',
+ symbol_map = {
+ Text = "󰉿",
+ Method = "󰆧",
+ Function = "󰊕",
+ Constructor = "",
+ Field = "󰜢",
+ Variable = "󰀫",
+ Class = "󰠱",
+ Interface = "",
+ Module = "",
+ Property = "󰜢",
+ Unit = "󰑭",
+ Value = "󰎠",
+ Enum = "",
+ Keyword = "󰌋",
+ Snippet = "",
+ Color = "󰏘",
+ File = "󰈙",
+ Reference = "󰈇",
+ Folder = "󰉋",
+ EnumMember = "",
+ Constant = "󰏿",
+ Struct = "󰙅",
+ Event = "",
+ Operator = "󰆕",
+ TypeParameter = "",
+ },
+ })
+ end
+ },
+ {
+ "hrsh7th/nvim-cmp",
+ dependencies = {
+ "onsails/lspkind.nvim",
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-buffer",
+ "hrsh7th/cmp-path",
+ "L3MON4D3/LuaSnip",
+ },
+ event = "InsertEnter",
+ config = function()
+ vim.api.nvim_set_hl(0, "CmpNormal", { bg = "#32302f" })
+ vim.api.nvim_set_hl(0, "PmenuSel", { bg = "#504945" })
+ local cmp = require('cmp')
+ local lspkind = require('lspkind')
+
+ cmp.setup({
+ snippet = {
+ expand = function(args)
+ require('luasnip').lsp_expand(args.body)
+ end,
+ },
+ formatting = {
+ format = lspkind.cmp_format({
+ mode = 'symbol_text',
+ maxwidth = {
+ menu = 50,
+ abbr = 50,
+ },
+ ellipsis_char = '...',
+ show_labelDetails = true,
+ before = function(entry, vim_item)
+ -- Add source name to menu
+ vim_item.menu = ({
+ nvim_lsp = "[LSP]",
+ luasnip = "[LuaSnip]",
+ buffer = "[Buffer]",
+ path = "[Path]",
+ })[entry.source.name]
+ return vim_item
+ end
+ })
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-j>'] = cmp.mapping.select_next_item(cmp_select),
+ ['<C-k>'] = cmp.mapping.select_prev_item(cmp_select),
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = cmp.mapping.confirm({ select = true }),
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' },
+ }, {
+ { name = 'buffer' },
+ { name = 'path' },
+ }),
+ window = {
+ completion = {
+ border = 'none',
+ winhighlight = "Normal:CmpNormal,FloatBorder:CmpNormal,CursorLine:PmenuSel,Search:None",
+ },
+ documentation = {
+ border = 'none',
+ winhighlight = "Normal:CmpNormal,FloatBorder:CmpNormal,CursorLine:PmenuSel,Search:None",
+ },
+ },
+ })
+ end,
+ },
+}
diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua
new file mode 100644
index 0000000..53d22ff
--- /dev/null
+++ b/.config/nvim/lua/plugins/lualine.lua
@@ -0,0 +1,239 @@
+return {
+ {
+ 'nvim-lualine/lualine.nvim',
+ dependencies = { 'nvim-tree/nvim-web-devicons' },
+ config = function()
+ local colors = {
+ bg = '#32302f',
+ fg = '#a89984',
+ orange = '#fe8019',
+ red = '#cc241d',
+ green = '#98971a',
+ yellow = '#d79921',
+ blue = '#458588',
+ magenta = '#b16286',
+ cyan = '#689d6a',
+ white = '#ebdbb2',
+ bright_red = '#fb4934',
+ bright_green = '#b8bb26',
+ bright_yellow = '#fabd2f',
+ bright_blue = '#83a598',
+ bright_magenta = '#d3869b',
+ bright_cyan = '#8ec07c',
+ bright_white = '#ebdbb2',
+ }
+
+ local mode_color = {
+ n = colors.bright_cyan,
+ i = colors.bright_blue,
+ v = colors.bright_magenta,
+ [''] = colors.bright_magenta,
+ V = colors.bright_magenta,
+ c = colors.yellow,
+ no = colors.red,
+ s = colors.orange,
+ S = colors.orange,
+ [''] = colors.orange,
+ ic = colors.yellow,
+ R = colors.bright_red,
+ Rv = colors.bright_magenta,
+ cv = colors.red,
+ ce = colors.red,
+ r = colors.cyan,
+ rm = colors.cyan,
+ ['r?'] = colors.cyan,
+ ['!'] = colors.red,
+ t = colors.red,
+ }
+
+ local conditions = {
+ buffer_not_empty = function()
+ return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
+ end,
+ hide_in_width = function()
+ return vim.fn.winwidth(0) > 80
+ end,
+ check_git_workspace = function()
+ local filepath = vim.fn.expand('%:p:h')
+ local gitdir = vim.fn.finddir('.git', filepath .. ';')
+ return gitdir and #gitdir > 0 and #gitdir < #filepath
+ end,
+ }
+
+ local config = {
+ options = {
+ -- Disable sections and component separators
+ component_separators = '',
+ section_separators = '',
+ theme = {
+ -- We are going to use lualine_c an lualine_x as left and
+ -- right section. Both are highlighted by c theme . So we
+ -- are just setting default looks o statusline
+ normal = { c = { fg = colors.fg, bg = colors.bg } },
+ inactive = { c = { fg = colors.fg, bg = colors.bg } },
+ },
+ },
+ sections = {
+ -- these are to remove the defaults
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ -- These will be filled later
+ lualine_c = {},
+ lualine_x = {},
+ },
+ inactive_sections = {
+ -- these are to remove the defaults
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ lualine_c = {},
+ lualine_x = {},
+ },
+ }
+
+ -- Inserts a component in lualine_c at left section
+ local function ins_left(component)
+ table.insert(config.sections.lualine_c, component)
+ end
+
+ -- Inserts a component in lualine_x at right section
+ local function ins_right(component)
+ table.insert(config.sections.lualine_x, component)
+ end
+
+ ins_left {
+ function()
+ return '▊'
+ end,
+ -- color = { fg = colors.green }, -- Sets highlighting of component
+ color = function()
+ -- auto change color according to neovims mode
+ return { fg = mode_color[vim.fn.mode()] }
+ end,
+ padding = { left = 0, right = 1 }, -- We don't need space before this
+ }
+
+ ins_left {
+ -- mode component
+ function()
+ return ''
+ end,
+ color = function()
+ -- auto change color according to neovims mode
+ return { fg = mode_color[vim.fn.mode()] }
+ end,
+ padding = { right = 1 },
+ }
+
+ ins_left {
+ 'buffers',
+ show_filename_only = false,
+ hide_filename_extension = false,
+ show_modified_status = true,
+ icons_enabled = true,
+ symbols = {
+ modified = ' ●', -- Text to show when the buffer is modified
+ alternate_file = '', -- Text to show to identify the alternate file
+ directory = '', -- Text to show when the buffer is a directory
+ },
+ buffers_color = {
+ -- Same values as the general color option can be used here.
+ active = function()
+ -- auto change color according to neovims mode
+ return { fg = mode_color[vim.fn.mode()], gui = 'bold' }
+ end,
+ },
+ }
+
+ ins_left {
+ 'diagnostics',
+ sources = { 'nvim_diagnostic' },
+ symbols = { error = ' ', warn = ' ', info = ' ' },
+ diagnostics_color = {
+ color_error = { fg = colors.red },
+ color_warn = { fg = colors.yellow },
+ color_info = { fg = colors.cyan },
+ },
+ }
+
+ -- Insert mid section. You can make any number of sections in neovim :)
+ -- for lualine it's any number greater then 2
+ -- ins_left {
+ -- function()
+ -- return '%='
+ -- end,
+ -- }
+
+ ins_right {
+ 'filetype',
+ icons_enabled = true, -- I think icons are cool but Eviline doesn't have them. sigh
+ color = { fg = colors.blue },
+ }
+
+ ins_right {
+ -- Lsp server name .
+ function()
+ local msg = 'no lsp'
+ local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
+ local clients = vim.lsp.get_clients()
+ if next(clients) == nil then
+ icon = ''
+ return ''
+ end
+ for _, client in ipairs(clients) do
+ local filetypes = client.config.filetypes
+ if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
+ return client.name
+ end
+ end
+ return msg
+ end,
+ icon = ' ',
+ color = { fg = colors.cyan },
+ }
+
+ ins_right {
+ 'branch',
+ icon = '',
+ color = { fg = colors.blue, gui = 'bold' },
+ }
+
+ ins_right {
+ -- filesize component
+ 'filesize',
+ cond = conditions.buffer_not_empty,
+ }
+
+ ins_right {
+ 'diff',
+ -- Is it me or the symbol for modified us really weird
+ symbols = { added = ' ', modified = '󰝤 ', removed = ' ' },
+ diff_color = {
+ added = { fg = colors.bright_green },
+ modified = { fg = colors.yellow },
+ removed = { fg = colors.bright_red },
+ },
+ cond = conditions.hide_in_width,
+ }
+
+ ins_right { 'location' }
+
+ ins_right {
+ function()
+ return '▊'
+ end,
+ -- color = { fg = colors.green },
+ color = function()
+ -- auto change color according to neovims mode
+ return { fg = mode_color[vim.fn.mode()] }
+ end,
+ padding = { left = 1 },
+ }
+
+ require('lualine').setup(config)
+ end
+ }
+}
diff --git a/.config/nvim/lua/plugins/rainbow.lua b/.config/nvim/lua/plugins/rainbow.lua
new file mode 100644
index 0000000..740b712
--- /dev/null
+++ b/.config/nvim/lua/plugins/rainbow.lua
@@ -0,0 +1,28 @@
+return {
+ {
+ 'HiPhish/rainbow-delimiters.nvim',
+ config = function()
+ local rainbow_delimiters = require('rainbow-delimiters')
+
+ vim.g.rainbow_delimiters = {
+ strategy = {
+ [''] = rainbow_delimiters.strategy['global'],
+ vim = rainbow_delimiters.strategy['local'],
+ },
+ query = {
+ [''] = 'rainbow-delimiters',
+ lua = 'rainbow-blocks',
+ },
+ highlight = {
+ 'RainbowDelimiterOrange',
+ 'RainbowDelimiterRed',
+ 'RainbowDelimiterYellow',
+ 'RainbowDelimiterBlue',
+ 'RainbowDelimiterGreen',
+ 'RainbowDelimiterViolet',
+ 'RainbowDelimiterCyan',
+ },
+ }
+ end
+ }
+}
diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua
new file mode 100644
index 0000000..5387ac6
--- /dev/null
+++ b/.config/nvim/lua/plugins/treesitter.lua
@@ -0,0 +1,53 @@
+return {
+ {
+ 'nvim-treesitter/nvim-treesitter',
+ branch = 'master',
+ lazy = false,
+ build = ':TSUpdate',
+ config = function()
+ require('nvim-treesitter.configs').setup {
+ -- A list of parser names, or "all" (the five listed parsers should always be installed)
+ ensure_installed = {
+ 'c',
+ 'cpp',
+ 'lua',
+ 'vim',
+ 'vimdoc',
+ 'query',
+ 'go',
+ 'perl',
+ 'rust',
+ 'yaml',
+ 'regex',
+ 'markdown',
+ 'markdown_inline',
+ 'terraform',
+ 'comment',
+ },
+
+ -- Install parsers synchronously (only applied to `ensure_installed`)
+ sync_install = false,
+
+ -- Automatically install missing parsers when entering buffer
+ -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
+ auto_install = true,
+
+ highlight = {
+ enable = true,
+
+ -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
+ -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
+ -- Using this option may slow down your editor, and you may see some duplicate highlights.
+ -- Instead of true it can also be a list of languages
+ additional_vim_regex_highlighting = false,
+ },
+ incremental_selection = {
+ enable = true,
+ },
+ indent = {
+ enable = true,
+ },
+ }
+ end
+ }
+}
diff --git a/.config/openbox/autostart b/.config/openbox/autostart
deleted file mode 100755
index 12a1dad..0000000
--- a/.config/openbox/autostart
+++ /dev/null
@@ -1,101 +0,0 @@
-# vim: ft=sh
-#
-# These things are run when an Openbox X Session is started.
-# You may place a similar script in $HOME/.config/openbox/autostart
-# to run user-specific things.
-#
-
-# If you want to use GNOME config tools...
-#
-#if test -x /usr/lib/openbox/gnome-settings-daemon >/dev/null; then
-# /usr/lib/openbox/gnome-settings-daemon &
-#elif which gnome-settings-daemon >/dev/null 2>&1; then
-# gnome-settings-daemon &
-#fi
-
-# If you want to use XFCE config tools...
-#
-#xfce-mcs-manager &
-
-# select OS
-
-case $(hostname -s) in
- mother)
- icon=" "
- mpd="mpd"
- xscr="xscreensaver --no-splash"
- sleep="sleep 1"
- ping="ping -c1 -w1 9.9.9.9 >/dev/null 2>&1"
- ;;
- po-rbo)
- icon=" "
- mpd="mpd"
- xscr="xscreensaver"
- sleep="sleep 1"
- ping="ping -c1 -w1 9.9.9.9 >/dev/null 2>&1"
- ;;
- mars)
- icon=" "
- mpd="musicpd"
- xscr="xscreensaver --no-splash"
- sleep="gsleep 1"
- ping="ping -c1 -t1 9.9.9.9 >/dev/null 2>&1"
- ;;
-esac
-
-doas mkdir /var/run/jozan && doas chown -v jozan: /var/run/jozan
-
-$ping && git --git-dir="$HOME"/docs/dotfiles-bsd --work-tree="$HOME" pull
-
-startif() {
- pgrep "$(basename "$1")" >/dev/null || "$@" >/dev/null 2>&1 &
-}
-
-export LANG='en_US.UTF-8'
-[ "$(hostname -s)" = "mother" ] && xrandr --output HDMI-0 --off \
- --output DP-0 --mode 1440x900 --pos 0x0 --rotate normal \
- --output DP-2 --mode 1440x900 --pos 3120x0 --rotate normal \
- --output DP-4 --primary --mode 1680x1050 --pos 1440x0 --rotate normal \
- --output DP-1 --off \
- --output DP-3 --off \
- --output DP-5 --off
-[ "$(hostname -s)" = "po-rbo" ] && xrandr \
- --output eDP-1 --mode 1920x1200 --pos 5120x0 --rotate normal \
- --output DP-1 --mode 2560x1440 --pos 0x0 --rotate normal \
- --output HDMI-1 --primary --mode 2560x1440 --pos 2560x0 --rotate normal \
- --output HDMI-2 --off \
- --output VIRTUAL-1 --off
-
-startif dunst
-startif picom
-startif mpd-notification
-pgrep $mpd >/dev/null || $mpd >/dev/null 2>&1
-"$HOME"/.local/bin/setwp "$HOME"/pics/the_wall.png
-"$HOME"/.local/bin/kb
-xset s off
-xset -dpms
-sleep 2
-$sleep
-startif $xscr
-$sleep
-# doas rc-service wireguard start &&
-# notify-send -u normal 'wireguard' 'WireGuard started'
-# $sleep
-startif tint2
-$sleep
-startif plank
-$sleep
-startif conky -d -c "$HOME"/.config/conky/conkyrc
-$sleep
-startif pipewire
-$sleep
-startif pipewire-pulse
-$sleep
-startif wireplumber
-$sleep
-startif copyq
-$sleep
-startif nextcloud
-cd "$HOME"
-xrdb "$HOME"/.config/x11/xresources
-notify-send -u normal 'Welcome' "$icon Welcome back, partner!"
diff --git a/.config/openbox/environment b/.config/openbox/environment
deleted file mode 100755
index 3311bd6..0000000
--- a/.config/openbox/environment
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# Set system-wide environment variables here for Openbox
-# User-specific variables should be placed in $HOME/.config/openbox/environment
-#
-
-# To set your language for displaying messages and time/date formats, use the following:
-#LANG=en_CA.UTF8
-
-# To set your keyboard layout, you need to modify your X config:
-# http://www.google.com/search?q=how+to+set+keyboard+layout+xorg
diff --git a/.config/openbox/menu.xml b/.config/openbox/menu.xml
deleted file mode 100755
index aa944e7..0000000
--- a/.config/openbox/menu.xml
+++ /dev/null
@@ -1,274 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<openbox_menu xmlns="http://openbox.org/3.4/menu">
-
- <menu id="apps-accessories-menu" label="Accessories">
- <item label="Alacritty">
- <action name="Execute">
- <command>alacritty</command>
- </action>
- </item>
- <item label="st">
- <action name="Execute">
- <command>st</command>
- </action>
- </item>
- <item label="PCMan File Manager">
- <action name="Execute">
- <command>pcmanfm</command>
- </action>
- </item>
- <item label="Qalculate!">
- <action name="Execute">
- <command>qalculate-gtk</command>
- </action>
- </item>
- <item label="Kleopatra">
- <action name="Execute">
- <command>kleopatra</command>
- </action>
- </item>
- <item label="Transmission">
- <action name="Execute">
- <command>transmission-gtk</command>
- </action>
- </item>
- <item label="Wireshark">
- <action name="Execute">
- <command>sudo wireshark</command>
- </action>
- </item>
- <item label="MKVToolNix">
- <action name="Execute">
- <command>mkvtoolnix-gui</command>
- </action>
- </item>
- <item label="Google Earth">
- <action name="Execute">
- <command>google-earth-pro</command>
- </action>
- </item>
- </menu>
-
- <menu id="apps-editors-menu" label="Editors">
- <item label="NeoVim">
- <action name="Execute">
- <command>alacritty -e nvim</command>
- </action>
- </item>
- <item label="Emacs">
- <action name="Execute">
- <command>emacs</command>
- </action>
- </item>
- <item label="Emacs-NoX">
- <action name="Execute">
- <command>alacritty -e emacs-nw</command>
- </action>
- </item>
- </menu>
-
- <menu id="apps-games-menu" label="Games">
- <item label="Steam">
- <action name="Execute"><command>steam</command></action>
- </item>
- <item label="Lutris">
- <action name="Execute"><command>lutris</command></action>
- </item>
- <item label="GZDoom">
- <action name="Execute"><command>gzdoom</command></action>
- </item>
- <item label="DOSBox">
- <action name="Execute"><command>dosbox</command></action>
- </item>
- </menu>
-
- <menu id="apps-net-menu" label="Internet">
- <item label="LibreWolf">
- <action name="Execute">
- <command>librewolf</command>
- </action>
- </item>
- <item label="Firefox">
- <action name="Execute">
- <command>firefox</command>
- </action>
- </item>
- <item label="Iridium">
- <action name="Execute">
- <command>iridium --force-dark-mode</command>
- </action>
- </item>
- <item label="Discord">
- <action name="Execute">
- <command>discord</command>
- </action>
- </item>
- <item label="Signal">
- <action name="Execute">
- <command>signal-desktop</command>
- </action>
- </item>
- <item label="Liferea">
- <action name="Execute">
- <command>liferea</command>
- </action>
- </item>
- <item label="HexChat">
- <action name="Execute">
- <command>hexchat</command>
- </action>
- </item>
- </menu>
-
- <menu id="apps-audio-menu" label="Audio">
- <item label="REAPER">
- <action name="Execute">
- <command>reaper</command>
- </action>
- </item>
- <item label="Mixbus 32C">
- <action name="Execute">
- <command>Mixbus32C9</command>
- </action>
- </item>
- <separator />
- <item label="Pusle Control Pannel">
- <action name="Execute">
- <command>pavucontrol</command>
- </action>
- </item>
- <item label="JACK Audio Connection">
- <action name="Execute">
- <command>qjackctl</command>
- </action>
- </item>
- </menu>
-
- <menu id="apps-multimedia-menu" label="Multimedia">
- <item label="Ario">
- <action name="Execute">
- <command>ario</command>
- </action>
- </item>
- <item label="Kdenlive">
- <action name="Execute">
- <command>kdenlive</command>
- </action>
- </item>
- <item label="ossia score">
- <action name="Execute">
- <command>ossia-score</command>
- </action>
- </item>
- </menu>
-
- <menu id="apps-graphics-menu" label="Graphics">
- <item label="Gimp">
- <action name="Execute">
- <command>gimp</command>
- </action>
- </item>
- <item label="Inkscape">
- <action name="Execute">
- <command>inkscape</command>
- </action>
- </item>
- </menu>
-
- <menu id="system-menu" label="Settings">
- <item label="Network settings">
- <action name="Execute">
- <command>connman-gtk</command>
- </action>
- </item>
- <item label="Openbox configuration">
- <action name="Execute">
- <command>obconf</command>
- </action>
- </item>
- <item label="tint2 configuration">
- <action name="Execute">
- <command>tint2conf</command>
- </action>
- </item>
- <item label="Theme manager">
- <action name="Execute">
- <command>lxappearance</command>
- </action>
- </item>
- <item label="XScreenSaver configuration">
- <action name="Execute">
- <command>xscreensaver-settings</command>
- </action>
- </item>
- <item label="Displays configuration">
- <action name="Execute">
- <command>arandr</command>
- </action>
- </item>
- <separator />
- <item label="Reconfigure Openbox">
- <action name="Reconfigure" />
- </item>
- </menu>
-
- <menu id="root-menu" label="Openbox 3">
- <separator label="Applications" />
- <item label="Alacritty">
- <action name="Execute">
- <command>alacritty</command>
- </action>
- </item>
- <item label="PCMan File Manager">
- <action name="Execute">
- <command>pcmanfm</command>
- </action>
- </item>
- <item label="LibreWolf">
- <action name="Execute">
- <command>librewolf</command>
- </action>
- </item>
- <separator />
- <menu id="apps-accessories-menu"/>
- <menu id="apps-editors-menu"/>
- <menu id="apps-graphics-menu"/>
- <menu id="apps-net-menu"/>
- <menu id="apps-audio-menu"/>
- <menu id="apps-multimedia-menu"/>
- <menu id="apps-games-menu"/>
- <separator label="System" />
- <menu id="system-menu"/>
- <separator />
- <item label="Reconfigure Openbox">
- <action name="Reconfigure" />
- </item>
- <item label="Lock screen">
- <action name="Execute">
- <command>~/.local/bin/powercmd lock</command>
- </action>
- </item>
- <item label="Sleep">
- <action name="Execute">
- <command>~/.local/bin/powercmd sleep</command>
- </action>
- </item>
- <item label="Log Out">
- <action name="Exit">
- <prompt>yes</prompt>
- </action>
- </item>
- <item label="Reboot">
- <action name="Execute">
- <command>~/.local/bin/powercmd reboot</command>
- </action>
- </item>
- <item label="Shutdown">
- <action name="Execute">
- <command>~/.local/bin/powercmd poweroff</command>
- </action>
- </item>
- </menu>
-
-</openbox_menu>
diff --git a/.config/openbox/rc.xml b/.config/openbox/rc.xml
deleted file mode 100755
index 442384b..0000000
--- a/.config/openbox/rc.xml
+++ /dev/null
@@ -1,1048 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Do not edit this file, it will be overwritten on install.
- Copy the file to $HOME/.config/openbox/ instead. -->
-<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
- <resistance>
- <strength>0</strength>
- <screen_edge_strength>100</screen_edge_strength>
- </resistance>
- <focus>
- <focusNew>yes</focusNew>
- <!-- always try to focus new windows when they appear. other rules do
- apply -->
- <followMouse>no</followMouse>
- <!-- move focus to a window when you move the mouse into it -->
- <focusLast>yes</focusLast>
- <!-- focus the last used window when changing desktops, instead of the one
- under the mouse pointer. when followMouse is enabled -->
- <underMouse>no</underMouse>
- <!-- move focus under the mouse, even when the mouse is not moving -->
- <focusDelay>200</focusDelay>
- <!-- when followMouse is enabled, the mouse must be inside the window for
- this many milliseconds (1000 = 1 sec) before moving focus to it -->
- <raiseOnFocus>no</raiseOnFocus>
- <!-- when followMouse is enabled, and a window is given focus by moving the
- mouse into it, also raise the window -->
- </focus>
- <placement>
- <policy>Smart</policy>
- <!-- 'Smart' or 'UnderMouse' -->
- <center>yes</center>
- <!-- whether to place windows in the center of the free area found or
- the top left corner -->
- <monitor>Active</monitor>
- <!-- with Smart placement on a multi-monitor system, try to place new windows
- on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
- the active window is, 'Primary' - only on the primary monitor -->
- <primaryMonitor>1</primaryMonitor>
- <!-- The monitor where Openbox should place popup dialogs such as the
- focus cycling popup, or the desktop switch popup. It can be an index
- from 1, specifying a particular monitor. Or it can be one of the
- following: 'Mouse' - where the mouse is, or
- 'Active' - where the active window is -->
- </placement>
- <theme>
- <name>gruvbox-material-dark-blocks</name>
- <titleLayout>SDNLIMC</titleLayout>
- <!--
- available characters are NDSLIMC, each can occur at most once.
- N: window icon
- L: window label (AKA title).
- I: iconify
- M: maximize
- C: close
- S: shade (roll up/down)
- D: omnipresent (on all desktops).
- -->
- <keepBorder>yes</keepBorder>
- <animateIconify>yes</animateIconify>
- <font place="ActiveWindow">
- <name>NotoSans Nerd Font</name>
- <size>11</size>
- <!-- font size in points -->
- <weight>Normal</weight>
- <!-- 'bold' or 'normal' -->
- <slant>Normal</slant>
- <!-- 'italic' or 'normal' -->
- </font>
- <font place="InactiveWindow">
- <name>NotoSans Nerd Font</name>
- <size>11</size>
- <!-- font size in points -->
- <weight>Normal</weight>
- <!-- 'bold' or 'normal' -->
- <slant>Normal</slant>
- <!-- 'italic' or 'normal' -->
- </font>
- <font place="MenuHeader">
- <name>NotoSans Nerd Font</name>
- <size>14</size>
- <!-- font size in points -->
- <weight>Normal</weight>
- <!-- 'bold' or 'normal' -->
- <slant>Normal</slant>
- <!-- 'italic' or 'normal' -->
- </font>
- <font place="MenuItem">
- <name>NotoSans Nerd Font</name>
- <size>14</size>
- <!-- font size in points -->
- <weight>Normal</weight>
- <!-- 'bold' or 'normal' -->
- <slant>Normal</slant>
- <!-- 'italic' or 'normal' -->
- </font>
- <font place="ActiveOnScreenDisplay">
- <name>NotoSans Nerd Font</name>
- <size>11</size>
- <!-- font size in points -->
- <weight>Normal</weight>
- <!-- 'bold' or 'normal' -->
- <slant>Normal</slant>
- <!-- 'italic' or 'normal' -->
- </font>
- <font place="InactiveOnScreenDisplay">
- <name>NotoSans Nerd Font</name>
- <size>11</size>
- <!-- font size in points -->
- <weight>Normal</weight>
- <!-- 'bold' or 'normal' -->
- <slant>Normal</slant>
- <!-- 'italic' or 'normal' -->
- </font>
- </theme>
- <desktops>
- <!-- this stuff is only used at startup, pagers allow you to change them
- during a session
-
- these are default values to use when other ones are not already set
- by other applications, or saved in your session
-
- use obconf if you want to change these without having to log out
- and back in -->
- <number>4</number>
- <firstdesk>1</firstdesk>
- <names>
- <name>work</name>
- <name>play</name>
- <name>dull</name>
- <name>boy</name>
- </names>
- <popupTime>500</popupTime>
- <!-- The number of milliseconds to show the popup for when switching
- desktops. Set this to 0 to disable the popup. -->
- </desktops>
- <resize>
- <drawContents>no</drawContents>
- <popupShow>Nonpixel</popupShow>
- <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
- <popupPosition>Center</popupPosition>
- <!-- 'Center', 'Top', or 'Fixed' -->
- <popupFixedPosition>
- <!-- these are used if popupPosition is set to 'Fixed' -->
- <x>10</x>
- <!-- positive number for distance from left edge, negative number for
- distance from right edge, or 'Center' -->
- <y>10</y>
- <!-- positive number for distance from top edge, negative number for
- distance from bottom edge, or 'Center' -->
- </popupFixedPosition>
- </resize>
- <!-- You can reserve a portion of your screen where windows will not cover when
- they are maximized, or when they are initially placed.
- Many programs reserve space automatically, but you can use this in other
- cases. -->
- <margins>
- <top>0</top>
- <bottom>0</bottom>
- <left>0</left>
- <right>0</right>
- </margins>
- <dock>
- <position>TopLeft</position>
- <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
- <floatingX>0</floatingX>
- <floatingY>0</floatingY>
- <noStrut>no</noStrut>
- <stacking>Above</stacking>
- <!-- 'Above', 'Normal', or 'Below' -->
- <direction>Vertical</direction>
- <!-- 'Vertical' or 'Horizontal' -->
- <autoHide>no</autoHide>
- <hideDelay>300</hideDelay>
- <!-- in milliseconds (1000 = 1 second) -->
- <showDelay>300</showDelay>
- <!-- in milliseconds (1000 = 1 second) -->
- <moveButton>Middle</moveButton>
- <!-- 'Left', 'Middle', 'Right' -->
- </dock>
- <keyboard>
- <chainQuitKey>C-g</chainQuitKey>
- <!-- Keybindings for desktop switching -->
- <keybind key="W-1">
- <action name="GoToDesktop">
- <to>1</to>
- </action>
- </keybind>
- <keybind key="W-2">
- <action name="GoToDesktop">
- <to>2</to>
- </action>
- </keybind>
- <keybind key="W-3">
- <action name="GoToDesktop">
- <to>3</to>
- </action>
- </keybind>
- <keybind key="W-4">
- <action name="GoToDesktop">
- <to>4</to>
- </action>
- </keybind>
- <keybind key="W-5">
- <action name="GoToDesktop">
- <to>5</to>
- </action>
- </keybind>
- <keybind key="W-5">
- <action name="GoToDesktop">
- <to>5</to>
- </action>
- </keybind>
- <keybind key="W-6">
- <action name="GoToDesktop">
- <to>6</to>
- </action>
- </keybind>
- <keybind key="W-7">
- <action name="GoToDesktop">
- <to>7</to>
- </action>
- </keybind>
- <keybind key="W-8">
- <action name="GoToDesktop">
- <to>8</to>
- </action>
- </keybind>
- <keybind key="W-9">
- <action name="GoToDesktop">
- <to>9</to>
- </action>
- </keybind>
- <keybind key="W-S-1">
- <action name="SendToDesktop">
- <to>1</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-2">
- <action name="SendToDesktop">
- <to>2</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-3">
- <action name="SendToDesktop">
- <to>3</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-4">
- <action name="SendToDesktop">
- <to>4</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-5">
- <action name="SendToDesktop">
- <to>5</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-6">
- <action name="SendToDesktop">
- <to>6</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-7">
- <action name="SendToDesktop">
- <to>7</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-8">
- <action name="SendToDesktop">
- <to>8</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-9">
- <action name="SendToDesktop">
- <to>9</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-0">
- <action name="ToggleOmnipresent"/>
- </keybind>
- <keybind key="W-S-h">
- <action name="SendToDesktop">
- <to>previous</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-S-l">
- <action name="SendToDesktop">
- <to>next</to>
- <wrap>no</wrap>
- </action>
- </keybind>
- <keybind key="W-C-h">
- <action name="MoveResizeTo">
- <monitor>next</monitor>
- </action>
- </keybind>
- <keybind key="W-C-l">
- <action name="MoveResizeTo">
- <monitor>prev</monitor>
- </action>
- </keybind>
- <!-- <keybind key="W-d"> -->
- <!-- <action name="ToggleShowDesktop"/> -->
- <!-- </keybind> -->
- <!-- Keybindings for windows -->
- <keybind key="A-F4">
- <action name="Close"/>
- </keybind>
- <keybind key="W-q">
- <action name="Close"/>
- </keybind>
- <keybind key="W-f">
- <action name="ToggleMaximize"/>
- </keybind>
- <keybind key="A-Tab">
- <action name="Lower"/>
- <action name="FocusToBottom"/>
- <action name="Unfocus"/>
- </keybind>
- <keybind key="A-space">
- <action name="ShowMenu">
- <menu>client-menu</menu>
- </action>
- </keybind>
- <!-- Keybindings for window switching -->
- <keybind key="A-Escape">
- <action name="PreviousWindow">
- <finalactions>
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </finalactions>
- </action>
- </keybind>
- <keybind key="A-S-Tab">
- <action name="PreviousWindow">
- <finalactions>
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </finalactions>
- </action>
- </keybind>
- <keybind key="C-A-Tab">
- <action name="NextWindow">
- <panels>yes</panels>
- <desktop>yes</desktop>
- <finalactions>
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </finalactions>
- </action>
- </keybind>
- <!-- Keybindings for window switching with the arrow keys -->
- <keybind key="W-l">
- <action name="DirectionalCycleWindows">
- <direction>right</direction>
- </action>
- </keybind>
- <keybind key="W-h">
- <action name="DirectionalCycleWindows">
- <direction>left</direction>
- </action>
- </keybind>
- <keybind key="W-k">
- <action name="DirectionalCycleWindows">
- <direction>up</direction>
- </action>
- </keybind>
- <keybind key="W-j">
- <action name="DirectionalCycleWindows">
- <direction>down</direction>
- </action>
- </keybind>
- <!-- Keybindings for running applications -->
- <keybind key="W-p">
- <action name="Execute">
- <command>dmenu_run -m 0</command>
- </action>
- </keybind>
- <keybind key="W-Return">
- <action name="Execute">
- <command>alacritty</command>
- </action>
- </keybind>
- <keybind key="W-S-Return">
- <action name="Execute">
- <command>cool-retro-term</command>
- </action>
- </keybind>
- <keybind key="W-F1">
- <action name="Execute">
- <command>pcmanfm</command>
- </action>
- </keybind>
- <keybind key="W-F2">
- <action name="Execute">
- <command>emacsclient -c</command>
- </action>
- </keybind>
- <keybind key="W-F3">
- <action name="Execute">
- <command>firefox</command>
- </action>
- </keybind>
- <keybind key="W-S-F3">
- <action name="Execute">
- <command>torify librewolf --force-dark-mode</command>
- </action>
- </keybind>
- <keybind key="W-F4">
- <action name="Execute">
- <command>alacritty -e w3m https://start.duckduckgo.com/</command>
- </action>
- </keybind>
- <keybind key="W-F5">
- <action name="Execute">
- <!-- <command>alacritty -e ncmpc</command> -->
- <command>ario</command>
- </action>
- </keybind>
- <keybind key="W-F6">
- <action name="Execute">
- <command>alacritty -e newsboat</command>
- </action>
- </keybind>
- <keybind key="W-F7">
- <action name="Execute">
- <command>alacritty -e calcurse -C ~/.config/calcurse -D ~/.local/share/calcurse</command>
- </action>
- </keybind>
- <keybind key="W-F8">
- <action name="Execute">
- <command>alacritty -e scli</command>
- </action>
- </keybind>
- <keybind key="W-F9">
- <action name="Execute">
- <command>alacritty -e neomutt</command>
- </action>
- </keybind>
- <keybind key="W-F10">
- <action name="Execute">
- <command>alacritty -e gotop</command>
- </action>
- </keybind>
- <keybind key="W-F11">
- <action name="Execute">
- <command>alacritty -e htop</command>
- </action>
- </keybind>
- <keybind key="W-F12">
- <action name="Execute">
- <command>alacritty -e top</command>
- </action>
- </keybind>
- <keybind key="W-S-F6">
- <action name="Execute">
- <command>mpc prev</command>
- </action>
- </keybind>
- <keybind key="W-S-F7">
- <action name="Execute">
- <command>mpc toggle</command>
- </action>
- </keybind>
- <keybind key="W-S-F8">
- <action name="Execute">
- <command>mpc next</command>
- </action>
- </keybind>
- <keybind key="W-S-F9">
- <action name="Execute">
- <command>mpc stop</command>
- </action>
- </keybind>
- <keybind key="W-S-F10">
- <action name="Execute">
- <command>~/.local/bin/mixer-set toggle</command>
- </action>
- </keybind>
- <keybind key="W-S-F11">
- <action name="Execute">
- <command>~/.local/bin/mixer-set lower</command>
- </action>
- </keybind>
- <keybind key="W-S-F12">
- <action name="Execute">
- <command>~/.local/bin/mixer-set raise</command>
- </action>
- </keybind>
- <keybind key="W-S-Delete">
- <action name="Execute">
- <command>~/.local/bin/mic</command>
- </action>
- </keybind>
- <keybind key="W-C-F9">
- <action name="Execute">
- <command>~/.local/bin/dmkill</command>
- </action>
- </keybind>
- <keybind key="W-C-F10">
- <action name="Execute">
- <command>~/.local/bin/dmscrot</command>
- </action>
- </keybind>
- <keybind key="W-C-F11">
- <action name="Execute">
- <command>~/.local/bin/dmsearch</command>
- </action>
- </keybind>
- <keybind key="W-C-F12">
- <action name="Execute">
- <command>~/.local/bin/dmlog</command>
- </action>
- </keybind>
- <keybind key="W-BackSpace">
- <action name="Execute">
- <command>~/.local/bin/dmpc</command>
- </action>
- </keybind>
- <keybind key="W-C-BackSpace">
- <action name="Execute">
- <command>~/.local/bin/dmlog</command>
- </action>
- </keybind>
- <keybind key="W-C-p">
- <action name="Execute">
- <command>~/.local/bin/dmpass</command>
- </action>
- </keybind>
- <keybind key="W-C-S-p">
- <action name="Execute">
- <command>~/.local/bin/dmpass --full</command>
- </action>
- </keybind>
- <keybind key="W-C-o">
- <action name="Execute">
- <command>~/.local/bin/dmotp</command>
- </action>
- </keybind>
- <keybind key="W-End">
- <action name="Execute">
- <command>~/.local/bin/ndate</command>
- </action>
- </keybind>
- <keybind key="W-Delete">
- <action name="Execute">
- <command>~/.local/bin/shutup</command>
- </action>
- </keybind>
- <keybind key="W-S-e">
- <action name="Exit">
- <prompt>yes</prompt>
- </action>
- </keybind>
- <keybind key="W-S-r">
- <action name="Reconfigure"/>
- </keybind>
- <keybind key="W-space">
- <action name="ShowMenu">
- <menu>root-menu</menu>
- </action>
- </keybind>
- <keybind key="W-o">
- <action name="ShowMenu">
- <menu>client-list-combined-menu</menu>
- </action>
- </keybind>
- <keybind key="W-w">
- <action name="Move"/>
- </keybind>
- <keybind key="W-C-w">
- <action name="Move"/>
- </keybind>
- <keybind key="W-S-w">
- <action name="Resize"/>
- </keybind>
- </keyboard>
- <mouse>
- <dragThreshold>1</dragThreshold>
- <!-- number of pixels the mouse must move before a drag begins -->
- <doubleClickTime>500</doubleClickTime>
- <!-- in milliseconds (1000 = 1 second) -->
- <screenEdgeWarpTime>400</screenEdgeWarpTime>
- <!-- Time before changing desktops when the pointer touches the edge of the
- screen while moving a window, in milliseconds (1000 = 1 second).
- Set this to 0 to disable warping -->
- <screenEdgeWarpMouse>true</screenEdgeWarpMouse>
- <!-- Set this to TRUE to move the mouse pointer across the desktop when
- switching due to hitting the edge of the screen -->
- <context name="Frame">
- <mousebind button="W-Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- </mousebind>
- <mousebind button="W-Left" action="Click">
- <action name="Unshade"/>
- </mousebind>
- <mousebind button="W-Left" action="Drag">
- <action name="Move"/>
- </mousebind>
- <mousebind button="W-Right" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </mousebind>
- <mousebind button="W-Right" action="Drag">
- <action name="Resize"/>
- </mousebind>
- <!-- <mousebind button="A-Middle" action="Press"> -->
- <!-- <action name="Lower"/> -->
- <!-- <action name="FocusToBottom"/> -->
- <!-- <action name="Unfocus"/> -->
- <!-- </mousebind> -->
- <!-- <mousebind button="A-Up" action="Click"> -->
- <!-- <action name="GoToDesktop"><to>previous</to></action> -->
- <!-- </mousebind> -->
- <!-- <mousebind button="A-Down" action="Click"> -->
- <!-- <action name="GoToDesktop"><to>next</to></action> -->
- <!-- </mousebind> -->
- <!-- <mousebind button="C-A-Up" action="Click"> -->
- <!-- <action name="GoToDesktop"><to>previous</to></action> -->
- <!-- </mousebind> -->
- <!-- <mousebind button="C-A-Down" action="Click"> -->
- <!-- <action name="GoToDesktop"><to>next</to></action> -->
- <!-- </mousebind> -->
- <!-- <mousebind button="A-S-Up" action="Click"> -->
- <!-- <action name="SendToDesktop"><to>previous</to></action> -->
- <!-- </mousebind> -->
- <!-- <mousebind button="A-S-Down" action="Click"> -->
- <!-- <action name="SendToDesktop"><to>next</to></action> -->
- <!-- </mousebind> -->
- </context>
- <context name="Titlebar">
- <mousebind button="Left" action="Drag">
- <action name="Move"/>
- </mousebind>
- <mousebind button="Left" action="DoubleClick">
- <action name="Lower"/>
- <action name="FocusToBottom"/>
- <action name="Unfocus"/>
- </mousebind>
- <mousebind button="Up" action="Click">
- <action name="if">
- <shaded>no</shaded>
- <then>
- <action name="Shade"/>
- <action name="FocusToBottom"/>
- <action name="Unfocus"/>
- <action name="Lower"/>
- </then>
- </action>
- </mousebind>
- <mousebind button="Down" action="Click">
- <action name="if">
- <shaded>yes</shaded>
- <then>
- <action name="Unshade"/>
- <action name="Raise"/>
- </then>
- </action>
- </mousebind>
- </context>
- <context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <!-- <action name="Unshade"/> -->
- </mousebind>
- <mousebind button="Middle" action="Click">
- <action name="ToggleShade"/>
- <action name="if">
- <shaded>no</shaded>
- <then>
- <action name="Focus"/>
- <action name="Raise"/>
- </then>
- </action>
- <action name="if">
- <shaded>yes</shaded>
- <then>
- <action name="FocusToBottom"/>
- <action name="Unfocus"/>
- <action name="Lower"/>
- </then>
- </action>
- </mousebind>
- <mousebind button="Right" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="ShowMenu">
- <menu>client-menu</menu>
- </action>
- </mousebind>
- </context>
- <context name="Top">
- <mousebind button="Left" action="Drag">
- <action name="Resize">
- <edge>top</edge>
- </action>
- </mousebind>
- </context>
- <context name="Left">
- <mousebind button="Left" action="Drag">
- <action name="Resize">
- <edge>left</edge>
- </action>
- </mousebind>
- </context>
- <context name="Right">
- <mousebind button="Left" action="Drag">
- <action name="Resize">
- <edge>right</edge>
- </action>
- </mousebind>
- </context>
- <context name="Bottom">
- <mousebind button="Left" action="Drag">
- <action name="Resize">
- <edge>bottom</edge>
- </action>
- </mousebind>
- <mousebind button="Right" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="ShowMenu">
- <menu>client-menu</menu>
- </action>
- </mousebind>
- </context>
- <context name="TRCorner BRCorner TLCorner BLCorner">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </mousebind>
- <mousebind button="Left" action="Drag">
- <action name="Resize"/>
- </mousebind>
- </context>
- <context name="Client">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- </mousebind>
- <mousebind button="Middle" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- </mousebind>
- <mousebind button="Right" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- </mousebind>
- </context>
- <context name="Icon">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <!-- <action name="Unshade"/> -->
- <action name="ShowMenu">
- <menu>client-menu</menu>
- </action>
- </mousebind>
- <mousebind button="Right" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="ShowMenu">
- <menu>client-menu</menu>
- </action>
- </mousebind>
- </context>
- <context name="AllDesktops">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </mousebind>
- <mousebind button="Left" action="Click">
- <action name="ToggleOmnipresent"/>
- </mousebind>
- </context>
- <context name="Shade">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- </mousebind>
- <mousebind button="Left" action="Click">
- <action name="ToggleShade"/>
- </mousebind>
- </context>
- <context name="Iconify">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- </mousebind>
- <mousebind button="Left" action="Click">
- <action name="Iconify"/>
- </mousebind>
- </context>
- <context name="Maximize">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </mousebind>
- <mousebind button="Middle" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </mousebind>
- <mousebind button="Right" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <action name="Unshade"/>
- </mousebind>
- <mousebind button="Left" action="Click">
- <action name="ToggleMaximize"/>
- </mousebind>
- <mousebind button="Middle" action="Click">
- <action name="ToggleMaximize">
- <direction>vertical</direction>
- </action>
- </mousebind>
- <mousebind button="Right" action="Click">
- <action name="ToggleMaximize">
- <direction>horizontal</direction>
- </action>
- </mousebind>
- </context>
- <context name="Close">
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- <!-- <action name="Unshade"/> -->
- </mousebind>
- <mousebind button="Left" action="Click">
- <action name="Close"/>
- </mousebind>
- </context>
- <context name="Desktop">
- <mousebind button="Up" action="Click">
- <action name="GoToDesktop">
- <to>previous</to>
- </action>
- </mousebind>
- <mousebind button="Down" action="Click">
- <action name="GoToDesktop">
- <to>next</to>
- </action>
- </mousebind>
- <mousebind button="A-Up" action="Click">
- <action name="GoToDesktop">
- <to>previous</to>
- </action>
- </mousebind>
- <mousebind button="A-Down" action="Click">
- <action name="GoToDesktop">
- <to>next</to>
- </action>
- </mousebind>
- <mousebind button="C-A-Up" action="Click">
- <action name="GoToDesktop">
- <to>previous</to>
- </action>
- </mousebind>
- <mousebind button="C-A-Down" action="Click">
- <action name="GoToDesktop">
- <to>next</to>
- </action>
- </mousebind>
- <mousebind button="Left" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- </mousebind>
- <mousebind button="Right" action="Press">
- <action name="Focus"/>
- <action name="Raise"/>
- </mousebind>
- </context>
- <context name="Root">
- <!-- Menus -->
- <mousebind button="Middle" action="Press">
- <action name="ShowMenu">
- <menu>client-list-combined-menu</menu>
- </action>
- </mousebind>
- <mousebind button="Right" action="Press">
- <action name="ShowMenu">
- <menu>root-menu</menu>
- </action>
- </mousebind>
- </context>
- <context name="MoveResize">
- <mousebind button="Up" action="Click">
- <action name="GoToDesktop">
- <to>previous</to>
- </action>
- </mousebind>
- <mousebind button="Down" action="Click">
- <action name="GoToDesktop">
- <to>next</to>
- </action>
- </mousebind>
- <mousebind button="A-Up" action="Click">
- <action name="GoToDesktop">
- <to>previous</to>
- </action>
- </mousebind>
- <mousebind button="A-Down" action="Click">
- <action name="GoToDesktop">
- <to>next</to>
- </action>
- </mousebind>
- </context>
- </mouse>
- <menu>
- <!-- You can specify more than one menu file in here and they are all loaded,
- just don't make menu ids clash or, well, it'll be kind of pointless -->
- <!-- default menu file (or custom one in $HOME/.config/openbox/) -->
- <file>menu.xml</file>
- <hideDelay>200</hideDelay>
- <!-- if a press-release lasts longer than this setting (in milliseconds), the
- menu is hidden again -->
- <middle>no</middle>
- <!-- center submenus vertically about the parent entry -->
- <submenuShowDelay>0</submenuShowDelay>
- <!-- time to delay before showing a submenu after hovering over the parent
- entry.
- if this is a negative value, then the delay is infinite and the
- submenu will not be shown until it is clicked on -->
- <submenuHideDelay>400</submenuHideDelay>
- <!-- time to delay before hiding a submenu when selecting another
- entry in parent menu
- if this is a negative value, then the delay is infinite and the
- submenu will not be hidden until a different submenu is opened -->
- <showIcons>yes</showIcons>
- <!-- controls if icons appear in the client-list-(combined-)menu -->
- <manageDesktops>yes</manageDesktops>
- <!-- show the manage desktops section in the client-list-(combined-)menu -->
- </menu>
- <applications>
- <!--
- # this is an example with comments through out. use these to make your
- # own rules, but without the comments of course.
- # you may use one or more of the name/class/role/title/type rules to specify
- # windows to match
-
- <application name="the window's _OB_APP_NAME property (see obxprop)"
- class="the window's _OB_APP_CLASS property (see obxprop)"
- groupname="the window's _OB_APP_GROUP_NAME property (see obxprop)"
- groupclass="the window's _OB_APP_GROUP_CLASS property (see obxprop)"
- role="the window's _OB_APP_ROLE property (see obxprop)"
- title="the window's _OB_APP_TITLE property (see obxprop)"
- type="the window's _OB_APP_TYPE property (see obxprob)..
- (if unspecified, then it is 'dialog' for child windows)">
- # you may set only one of name/class/role/title/type, or you may use more
- # than one together to restrict your matches.
-
- # the name, class, role, and title use simple wildcard matching such as those
- # used by a shell. you can use * to match any characters and ? to match
- # any single character.
-
- # the type is one of: normal, dialog, splash, utility, menu, toolbar, dock,
- # or desktop
-
- # when multiple rules match a window, they will all be applied, in the
- # order that they appear in this list
-
-
- # each rule element can be left out or set to 'default' to specify to not
- # change that attribute of the window
-
- <decor>yes</decor>
- # enable or disable window decorations
-
- <shade>no</shade>
- # make the window shaded when it appears, or not
-
- <position force="no">
- # the position is only used if both an x and y coordinate are provided
- # (and not set to 'default')
- # when force is "yes", then the window will be placed here even if it
- # says you want it placed elsewhere. this is to override buggy
- # applications who refuse to behave
- <x>center</x>
- # a number like 50, or 'center' to center on screen. use a negative number
- # to start from the right (or bottom for <y>), ie -50 is 50 pixels from
- # the right edge (or bottom). use 'default' to specify using value
- # provided by the application, or chosen by openbox, instead.
- <y>200</y>
- <monitor>1</monitor>
- # specifies the monitor in a xinerama setup.
- # 1 is the first head, or 'mouse' for wherever the mouse is
- </position>
-
- <size>
- # the size to make the window.
- <width>20</width>
- # a number like 20, or 'default' to use the size given by the application.
- # you can use fractions such as 1/2 or percentages such as 75% in which
- # case the value is relative to the size of the monitor that the window
- # appears on.
- <height>30%</height>
- </size>
-
- <focus>yes</focus>
- # if the window should try be given focus when it appears. if this is set
- # to yes it doesn't guarantee the window will be given focus. some
- # restrictions may apply, but Openbox will try to
-
- <desktop>1</desktop>
- # 1 is the first desktop, 'all' for all desktops
-
- <layer>normal</layer>
- # 'above', 'normal', or 'below'
-
- <iconic>no</iconic>
- # make the window iconified when it appears, or not
-
- <skip_pager>no</skip_pager>
- # asks to not be shown in pagers
-
- <skip_taskbar>no</skip_taskbar>
- # asks to not be shown in taskbars. window cycling actions will also
- # skip past such windows
-
- <fullscreen>yes</fullscreen>
- # make the window in fullscreen mode when it appears
-
- <maximized>true</maximized>
- # 'Horizontal', 'Vertical' or boolean (yes/no)
- </application>
-
- # end of the example
--->
- </applications>
-</openbox_config>
diff --git a/.config/picom.conf b/.config/picom.conf
index dc1dfb2..e4018b8 100644
--- a/.config/picom.conf
+++ b/.config/picom.conf
@@ -1,10 +1,10 @@
# basic configuration
# experimental-backends = true;
backend = "glx";
-paint-on-overlay = true;
+# paint-on-overlay = true;
vsync = true;
-unredir-if-possible = false;
-no-use-damage = true;
+unredir-if-possible = true;
+no-use-damage = false;
# Inactive windows diming
# inactive-dim = 0.10;
@@ -23,44 +23,44 @@ no-use-damage = true;
# detect-rounded-corners = true;
# Enabled client-side shadows on windows.
-shadow = true;
+shadow = false;
# The blur radius for shadows. (default 12)
-shadow-radius = 12;
+# shadow-radius = 12;
# The left offset for shadows. (default -15)
-shadow-offset-x = -12;
+# shadow-offset-x = -12;
# The top offset for shadows. (default -15)
-shadow-offset-y = -12;
+# shadow-offset-y = -12;
# The translucency for shadows. (default .75)
-shadow-opacity = 0.8;
+# shadow-opacity = 0.8;
# Set if you want different colour shadows
-shadow-red = 0.0;
-shadow-green = 0.0;
-shadow-blue = 0.0;
+# shadow-red = 0.0;
+# shadow-green = 0.0;
+# shadow-blue = 0.0;
# The shadow exclude options are helpful if you have shadows enabled. Due to the way picom draws its shadows, certain applications will have visual glitches
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
-shadow-exclude = [
- "! name~=''",
- "name = 'Notification'",
- "name = 'Docky'",
- "name = 'Kupfer'",
- "name = 'xfce4-notifyd'",
- "name *= 'compton'",
- "name *= 'picom'",
- "name *= 'cpt_frame_window'",
- "name *= 'wrapper-2.0'",
- "name *= 'tint2'",
- "class_g = 'Plank'",
- "class_g = 'Conky'",
- "class_g = 'Kupfer'",
- "class_g = 'Synapse'",
- "class_g ?= 'Notify-osd'",
- "class_g ?= 'Cairo-dock'",
- "_GTK_FRAME_EXTENTS@:c",
- "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
-];
+# shadow-exclude = [
+# "! name~=''",
+# "name = 'Notification'",
+# "name = 'Docky'",
+# "name = 'Kupfer'",
+# "name = 'xfce4-notifyd'",
+# "name *= 'compton'",
+# "name *= 'picom'",
+# "name *= 'cpt_frame_window'",
+# "name *= 'wrapper-2.0'",
+# "name *= 'tint2'",
+# "class_g = 'Plank'",
+# "class_g = 'Conky'",
+# "class_g = 'Kupfer'",
+# "class_g = 'Synapse'",
+# "class_g ?= 'Notify-osd'",
+# "class_g ?= 'Cairo-dock'",
+# "_GTK_FRAME_EXTENTS@:c",
+# "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
+# ];
inactive-opacity = 1;
active-opacity = 1;
@@ -70,49 +70,49 @@ inactive-opacity-override = false;
# Fade windows during opacity changes.
fading = false;
# The time between steps in a fade in milliseconds. (default 10).
-fade-delta = 3;
-# Opacity change between steps while fading in. (default 0.028).
-fade-in-step = 0.04;
-# Opacity change between steps while fading out. (default 0.03).
-fade-out-step = 0.04;
-# Fade windows in/out when opening/closing
-no-fading-openclose = true;
+# fade-delta = 10;
+# # Opacity change between steps while fading in. (default 0.028).
+# fade-in-step = 0.04;
+# # Opacity change between steps while fading out. (default 0.03).
+# fade-out-step = 0.04;
+# # Fade windows in/out when opening/closing
+# no-fading-openclose = true;
# Specify a list of conditions of windows that should not be faded.
fade-exclude = [ ];
xinerama-shadow-crop = true;
-wintypes:
-{
- tooltip =
- {
- # fade: Fade the particular type of windows.
- fade = true;
- # shadow: Give those windows shadow
- shadow = false;
- # opacity: Default opacity for the type of windows.
- opacity = 0.85;
- # focus: Whether to always consider windows of this type focused.
- focus = true;
- };
- dock = { shadow = true; }
- dnd = { shadow = false; }
- popup_menu = {
- opacity = 1.0;
- shadow = false;
- fade = false;
- }
- dropdown_menu = {
- opacity = 1.0;
- fade = false;
- }
-};
+# wintypes:
+# {
+# tooltip =
+# {
+# # fade: Fade the particular type of windows.
+# fade = true;
+# # shadow: Give those windows shadow
+# shadow = false;
+# # opacity: Default opacity for the type of windows.
+# opacity = 0.85;
+# # focus: Whether to always consider windows of this type focused.
+# focus = true;
+# };
+# dock = { shadow = true; }
+# dnd = { shadow = false; }
+# popup_menu = {
+# opacity = 1.0;
+# shadow = false;
+# fade = false;
+# }
+# dropdown_menu = {
+# opacity = 1.0;
+# fade = false;
+# }
+# };
#blur: {
# method = "dual_kawase";
# strength = 8;
#};
-blur-background-exclude = [
- "! class_g = 'Alacritty'"
-];
+# blur-background-exclude = [
+# "! class_g = 'Alacritty'"
+# ];
diff --git a/.config/pipe-viewer/pipe-viewer.conf b/.config/pipe-viewer/pipe-viewer.conf
index c656d8b..6c0d13f 100644
--- a/.config/pipe-viewer/pipe-viewer.conf
+++ b/.config/pipe-viewer/pipe-viewer.conf
@@ -1,6 +1,6 @@
-#!/usr/bin/perl -I/nix/store/3vq9qasxlqpyq1k95nq3s13g2m6w59ay-perl-5.40.0/lib/perl5/site_perl -I/nix/store/l02g9sqkb5625739p07v9a7c5r2q167c-perl5.40.0-Test-Pod-1.52/lib/perl5/site_perl -I/nix/store/ld4ajgzsdkyjh1bpnns8ymm0xrvzdzvy-perl-5.40.0-env/lib/perl5/site_perl -I/nix/store/jy6wvmgmddhh4d82ciq1r3dwgfcialll-perl5.40.0-Module-Build-0.4234/lib/perl5/site_perl -I/nix/store/39z485wv6fl420p04v9dxcf5fz7p64pi-perl5.40.0-pipe-viewer-0.5.3/lib/perl5/site_perl
+#!/usr/bin/perl -I/nix/store/gndky4p2sjhsh0zdlqs3dnyzyslccxha-perl-5.40.0/lib/perl5/site_perl -I/nix/store/v9p0424f6q65zmjq29lqdbr1bj917j9c-perl5.40.0-Test-Pod-1.52/lib/perl5/site_perl -I/nix/store/sfz5ykgb8dg7zb9d0yqf3kxiw3ld4gmv-perl-5.40.0-env/lib/perl5/site_perl -I/nix/store/v37hnszhgvq3c68p3knbhva2dmb3lwna-perl5.40.0-Gtk3-0.038/lib/perl5/site_perl -I/nix/store/mbm6vxxhsadm5b0c4bcl174f8c456n60-perl5.40.0-Cairo-GObject-1.005/lib/perl5/site_perl -I/nix/store/3qbxs296i5znxv9g8p3vr7z6xhpb5mc3-perl5.40.0-Cairo-1.109/lib/perl5/site_perl -I/nix/store/rrkcxg15312yiy9axx6qr5s7wi6djsk0-perl5.40.0-ExtUtils-Depends-0.8001/lib/perl5/site_perl -I/nix/store/3wq4i7l0fvqmkjqv74pz5lkdmwamc22d-perl5.40.0-ExtUtils-PkgConfig-1.16/lib/perl5/site_perl -I/nix/store/hs6y91z06r9j95k35j5y143cvkw718sz-perl5.40.0-Glib-1.3294/lib/perl5/site_perl -I/nix/store/2g298acj7fsnj9grc1h9sl1whmks7gjj-perl5.40.0-Glib-Object-Introspection-0.051/lib/perl5/site_perl -I/nix/store/cg11rf957k3h37h4inyqx4y5gq53nkyz-perl5.40.0-Module-Build-0.4234/lib/perl5/site_perl -I/nix/store/jx8cqiwd6j0163qmfvd1c56a1401y03a-perl5.40.0-pipe-viewer-0.5.4/lib/perl5/site_perl
-# CLI Pipe Viewer 0.5.3 - configuration file
+# CLI Pipe Viewer 0.5.4 - configuration file
use utf8;
@@ -48,6 +48,8 @@ our $CONFIG = {
date => undef,
debug => 0,
download_and_play => 0,
+ download_in_subdir => 0,
+ download_in_subdir_format => "*AUTHOR*",
download_with_wget => 0,
download_with_ytdl => 1,
downloads_dir => ".",
@@ -86,6 +88,7 @@ our $CONFIG = {
remove_played_file => 0,
resolution => "best",
saved_channels_file => "$ENV{HOME}/.config/pipe-viewer/users.txt",
+ set_mtime => 1,
show_video_info => 1,
skip_if_exists => 1,
skip_watched => 0,
diff --git a/.config/screen/screenrc b/.config/screen/screenrc
deleted file mode 100644
index e96cb3d..0000000
--- a/.config/screen/screenrc
+++ /dev/null
@@ -1,176 +0,0 @@
-#$HOME/.screenrc
-#################################################################################
-# Usage:
-# [kent]@rd1-2:~$ screen -r ==> resumes a detached screen session
-# [kent]@rd1-2:~$ screen -x ==> Cool, Attach to a not detached screen session. (Multi display mode)
-# detach : Press F10 or "C-a d"
-# HELP: "C-a, ?"
-# "C-a C-a" : fast switch between 2 screens
-#################################################################################
-
-altscreen on # Refresh the display when exiting programs like vim, nano, irssi and etc.
-defutf8 on
-defc1 off # treat input chars 128 ~ 159 as control functions
-defflow on
-vbell_msg "Ding ding!!"
-vbell off # i.e. set to audible bell, used to redirect bell to terminal (putty) for "flashing effect"
-defencoding utf8
-# cjkwidth on
-
-# 256 Color Support
-termcapinfo xterm "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"
-#for Mac
-termcapinfo xterm-color "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"
-
-term $TERM # depend on $TERM
-term xterm-256color # or specified term
-
-# allow bold colors - necessary for some reason
-# attrcolor b ".I"
-attrcolor i "+b"
-
-# erase background with current bg color
-defbce on
-
-# some environment setting
-autodetach on
-startup_message off
-shell /usr/bin/zsh
-
-# dynamically udpate shell title, Sometimes it's bothersome...XD
-# Need to add this line PROMPT_COMMAND='echo -n -e "\033k\033\134"' to $HOME/.bashrc
-# shelltitle '$ |Bash'
-
-# setup 10,000 lines of available scrollback copy/paste
-# NOTE: memory eating monster...
-defscrollback 10000
-
-# If a window goes unresponsive, don't block the whole session waiting for it.
-nonblock on
-
-# fix scrollback in putty, this is cool!
-termcapinfo xterm* ti@:te@
-#termcapinfo xterm|xterms|xs|rxvt ti@:te@
-
-# turn-off log
-#log off
-logfile $HOME/tmp/screen-%Y%m%d-%n.log
-#deflog on
-
-# caption style
-# caption always "%{.KW} %-w%{.mW}[%n] %t%{.KW}%+w"
-# caption always "%{=u .G} %-w%<%{=ub .y}%n %t%{=u .G}%+w "
-# caption always "%{=u kC} %= %-w%L>%{=b G}[:%n %t:]%{-}%52<%+w %L="
-caption always "%{= KW}%-w%{= ky} [%n] %t %{-}%+w %-= %{= Kk}[%l] %{= Kk}[%Y/%m/%d %c]"
-# caption always "%{= KW}%-w%{= kc} [%n] %t %{-}%+w %-= %{= Kk}[%H | %l | %m/%d %c]"
-
-# hardstatus style
-# hardstatus alwaysignore
-# hardstatus alwayslastline "%{= .K} [%l]%<%=%{= .W}@%H %=%{= .y} %Y/%m/%d%{= .m} %C %A"
-# hardstatus alwayslastline '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'
-# hardstatus alwayslastline "%{R}[ %{w}%1` %{R}]%=%{M}%e %{G}%H %{Y} %c %{R} %d/%m/%Y %{K} Load: %l %{w}"
-# hardstatus alwayslastline "%{= wk} %{by} %H %{wk} | %-Lw%{kw}◣%{= g}%n%f* %t%{wk}◤%{wk}%+Lw%< %= %{kw}◣%{= R} [%m/%d %c] %{-}"
-# Ctrl + left : prev
-# Ctrl + right : next
-bindkey "^[O5D" prev
-bindkey "^[O5C" next
-bindkey "^[Od" prev
-bindkey "^[Oc" next
-bindkey "\033[D" prev
-bindkey "\033[C" next
-# putty
-bindkey "^[[D" prev
-bindkey "^[[C" next
-# gnome-terminal
-bindkey "^[[1;5D" prev
-bindkey "^[[1;5C" next
-
-# Vim HJKL-style
-# Alt + H : prev
-# Alt + L : next
-bindkey "^[H" prev
-bindkey "^[L" next
-
-# /*Need to hack putty*/
-# (Mac - iTerm) just add key mapping! Cool iTerm
-# (Win - PuTTY) Resolved by AutoHotkey
-#Ctrl + , : prev
-#Ctrl + . : next
-#bindkey "\274" prev
-#bindkey "\276" next
-
-# (Win - PuTTY) Resolved by AutoHotkey
-# <s>/*Need to hack putty*/</s>
-# Ctrl + Tab : prev (Firefox-way)
-# Ctrl + Shift + Tab : next (Firefox-way)
-#bindkey "^[[27;5;9~" next
-#bindkey "^[[27;6;9~" prev
-
-# Ctrl + t : new screen (Firefox-way), shit conflict with cscope
-#bindkey "\024" screen
-# Ctrl + w : close screen (Firefox-way), shit conflict with vim - window control
-#bindkey "\027" kill
-
-
-# Alt + left/right, will conflict with my vimrc mapping
-#bindkey "^[^[OC" next
-#bindkey "^[^[OD" prev
-#Alt + ,/.
-#bindkey ^[, next
-#bindkey ^[. prev
-
-# C-a b : encoding big5
-# C-a u : encoding utf8
-bind b encoding big5 utf8
-bind u encoding utf8 utf8
-
-# C-a $num : Switch to window number 0 - 9, or to the blank window.
-bindkey "^[[A" number 1
-
-# F10 : detach
-bindkey -k k; detach
-
-# set the title for the default shell or specified program.
-# screen -t gotop 1 gotop
-# screen -t lf 2 lf
-# screen -t emacs 3 zsh
-# screen -t todo 4 zsh -c 'cd ~/Documents/_custom_apps/; zsh -i'
-# screen -t shell 5 zsh
-
-# Start at window 1
-bind c screen 1
-# bind 0 select 10
-select 1
-
-#backtick 1 60 60 $HOME/Tools/get_freemem
-#hardstatus alwayslastline "Free: %1`"
-
-#Hotkey for window resizing
-bind = resize =
-bind + resize +1
-bind - resize -1
-bind _ resize max
-
-# Ctrl + ARROW_UP/ARROW_DOWN
-bindkey "^[[A" resize +1
-bindkey "^[[B" resize -1
-
-# Useful bindings as Vim(hjkl)
-bind j focus down
-bind k focus up
-bind h focus left
-bind l focus right
-
-# Integrating GNU Screen copy/scrollback mode with the local system clipboard. i.e. Copying to the Mac Clipboard
-# bind y eval "writebuf" "exec sh -c 'pbcopy < /tmp/screen-exchange'"
-
-# hardcopydir: The directory which contains all hardcopies.
-hardcopydir ~/.config/screen
-
-msgwait 10
-setenv DISPLAY ':0'
-
-# mouse tracking allows to switch region focus by clicking
-mousetrack on
-# source .screen_layout
-# layout save def
diff --git a/.config/tig/config b/.config/tig/config
new file mode 100644
index 0000000..1ee76e7
--- /dev/null
+++ b/.config/tig/config
@@ -0,0 +1,503 @@
+# Tig default configuration
+#
+# Please see 'man tigrc' for a complete reference.
+
+# Settings
+# --------
+# Most of these settings can be toggleable, either via the toggle-*
+# actions or via the option menu (bound to `o` by default).
+
+# View settings
+#
+# Supported column types and their options:
+#
+# author, committer
+# - display (enum) [no|full|abbreviated|email|email-user]
+# : Show author/committer information?
+# - width (int) : Fixed width when nonzero
+# - maxwidth (int) : Autosize limit
+#
+# commit-title
+# - display (bool) : Show the commit title?
+# - graph (enum) [no|v2|v1] : Show the commit graph? (main view only)
+# - refs (bool) : Show branches, tags and remotes? (main view only)
+# - overflow (boolint) : Highlight overflows? Defaults to 50 when enabled.
+#
+# date
+# - display (enum) [no|default|relative|relative-compact|custom]
+# : Show dates?
+# - use-author (bool) : Show author date instead of committer date?
+# - local (bool) : Show local dates?
+# - format (string) : Custom strftime(3) format
+# Note: %Z is formatted as %z
+# - width (int) : Fixed width when nonzero
+#
+# file-name
+# - display (enum) [no|always|auto] : Show file names?
+# - width (int) : Fixed width when nonzero
+# - maxwidth (int) : Autosize limit
+#
+# file-size
+# - display (enum) [no|default|units]
+# : Show file sizes?
+# - width (int) : Fixed width when nonzero
+#
+# id
+# - display (bool) : Show commit/tree ID?
+# - width (int) : Fixed width when nonzero
+#
+# line-number
+# - display (bool) : Show line numbers?
+# - interval (int) : Interval between line numbers; defaults to 5
+# - width (int) : Fixed width when nonzero
+#
+# mode
+# - display (bool) : Show file modes?
+# - width (int) : Fixed width when nonzero
+#
+# ref
+# - display (bool) : Show ref names?
+# - width (int) : Fixed width when nonzero
+# - maxwidth (int) : Autosize limit
+#
+# status
+# - display (enum) [no|short|long] : Show status label?
+#
+# text
+# - display (bool) : Show text?
+# - commit-title-overflow (boolint) : Highlight overflow in log and diff view?
+#
+
+set blame-view = id:yes,color file-name:auto author:full committer:no date:default,format="%Y-%m-%d" line-number:yes,interval=1 text
+set grep-view = file-name:no line-number:yes,interval=1 text
+set main-view = line-number:no,interval=5 id:no date:default,format="%Y-%m-%d" author:full committer:no commit-title:yes,graph,refs,overflow=no
+set reflog-view = line-number:no,interval=5 id:yes date:no,format="%Y-%m-%d" author:no committer:no commit-title:yes,refs,overflow=no
+set refs-view = line-number:no id:no date:default,format="%Y-%m-%d" author:full committer:no ref commit-title
+set stash-view = line-number:no,interval=5 id:no date:default,format="%Y-%m-%d" author:full commit-title
+set status-view = line-number:no,interval=5 status:short file-name
+set tree-view = line-number:no,interval=5 mode author:full committer:no file-size date:default,format="%Y-%m-%d" id:no file-name
+
+# Pager based views
+set pager-view = line-number:no,interval=5 text
+set stage-view = line-number:no,interval=5 text
+set log-view = line-number:no,interval=5 text
+set blob-view = line-number:no,interval=5 text
+set diff-view = line-number:no,interval=5 text:yes,commit-title-overflow=no
+
+# UI display settings
+set show-changes = yes # Show changes commits in the main view?
+set show-untracked = yes # Show also untracked changes?
+set wrap-lines = no # Wrap long lines in pager views?
+set tab-size = 8 # Number of spaces to use when expanding tabs
+set line-graphics = default # Enum: ascii, default, utf-8, auto
+set truncation-delimiter = ~ # Character drawn for truncations, or "utf-8"
+
+# Format reference names based on type:
+# - head : The current HEAD.
+# - tag : An annotated tag.
+# - local-tag : A lightweight tag.
+# - remote : A remote.
+# - tracked-remote : The remote tracked by current HEAD.
+# - replace : A replaced reference.
+# - branch : A branch.
+# - stash : The stash.
+# - note : Notes.
+# - prefetch : Refs prefetched by `git maintenance`.
+# - other : Any other reference.
+#
+# Expects a space-separated list of format strings.
+# If no format is specified for `local-tag`, the format for `tag` is used.
+# Similarly, if no format is specified for `tracked-remote`, the format for
+# `remote` is used, and if no format is specified for any other reference
+# type, the format for `branch` is used.
+# Prefix with `hide:` to not show that reference type, e.g. `hide:prefetch`.
+set reference-format = [branch] <tag> {remote} ~replace~
+
+# Settings controlling how content is read from Git
+set commit-order = auto # Enum: auto, default, topo, date, reverse (main)
+set status-show-untracked-dirs = yes # Show files in untracked directories? (status)
+set status-show-untracked-files = yes # Show untracked files?
+set ignore-space = no # Enum: no, all, some, at-eol (diff)
+set show-notes = yes # When non-bool passed as `--show-notes=...` (diff)
+#set diff-context = 3 # Number of lines to show around diff changes (diff)
+#set word-diff = yes # Show a word diff? (diff)
+#set diff-options = -C # User-defined options for `tig show` (git-diff)
+#set diff-highlight = yes # String (or bool): Path to diff-highlight script,
+ # defaults to `diff-highlight`.
+set diff-indicator = yes # Show diff +/- signs?
+#set blame-options = -C -C -C # User-defined options for `tig blame` (git-blame)
+set log-options = --cc --stat # User-defined options for `tig log` (git-log)
+#set main-options = -n 1000 # User-defined options for `tig` (git-log)
+set mailmap = yes # Use .mailmap to show canonical name and email address?
+
+# Misc
+set start-on-head = no # Start with cursor on HEAD commit?
+set refresh-mode = auto # Enum: manual, auto, after-command, periodic
+set refresh-interval = 10 # Interval in seconds between refreshes
+set ignore-case = no # Enum: no, yes, smart-case
+ # Ignore case when searching?
+set wrap-search = yes # Wrap around to top/bottom of view when searching?
+set focus-child = yes # Move focus to child view when opened?
+set send-child-enter = yes # Propagate "enter" keypresses to child views?
+set horizontal-scroll = 50% # Number of columns to scroll as % of width
+set split-view-height = 67% # Height of the bottom view for horizontal splits
+set vertical-split = auto # Enum: horizontal, vertical, auto; Use auto to
+ # switch to horizontal split when width allows it
+set split-view-width = 50% # Width of right-most view for vertical splits
+set editor-line-number = yes # Automatically pass line number to editor? Used
+ # for opening file at specific line e.g. from a diff
+set history-size = 500 # Size of persistent history, 0 to disable
+set mouse = no # Enable mouse support?
+set mouse-scroll = 3 # Number of lines to scroll via the mouse
+set mouse-wheel-cursor = no # Prefer moving the cursor to scrolling the view?
+set pgrp = no # Make tig process-group leader?
+set pager-autoscroll = no # Scroll the pager view automatically while loading?
+
+# User-defined commands
+# ---------------------
+# These commands allow to run shell commands directly from within Tig.
+# Unless otherwise specified, commands are run in the foreground with
+# their console output shown (as if '!' was specified). When multiple
+# command options are specified their behavior are combined, e.g. "?<git
+# commit" will prompt the user whether to execute the command and will
+# exit Tig after completion.
+#
+# ! Run the command in the foreground with output shown.
+# @ Run the command in the background with no output.
+# ? Prompt the user before executing the command.
+# + Run the command synchronously, and echo the first line of output to the status bar.
+# < Exit Tig after executing the command.
+# > Re-open Tig instantly in the last displayed view after executing the command.
+#
+# User-defined commands can optionally refer to Tig's internal state
+# using the following variable names, which are substituted before
+# commands are run (see 'man tigrc' for the full list):
+#
+# %(head) The current ref ID. Defaults to HEAD
+# %(commit) The current commit ID.
+# %(blob) The current blob ID.
+# %(branch) The current branch name.
+# %(remote) The current remote name.
+# %(tag) The current tag name.
+# %(stash) The current stash name.
+# %(directory) The current directory path in the tree view;
+# empty for the root directory.
+# %(file) The currently selected file.
+# %(ref) The reference given to blame or HEAD if undefined.
+# %(revargs) The revision arguments passed on the command line.
+# %(fileargs) The file arguments passed on the command line.
+# %(cmdlineargs) All other options passed on the command line.
+# %(diffargs) The diff options from `diff-options` or `TIG_DIFF_OPTS`
+# %(prompt) Prompt for the argument value.
+# %(repo:head) The name of the checked out branch.
+# %(repo:remote) The remote name associated with the checked out branch.
+# %(repo:upstream) The upstream branch associated with the checked out branch.
+
+bind main C ?git cherry-pick %(commit)
+bind status C !git commit
+bind stash A ?git stash apply %(stash)
+bind stash P ?git stash pop %(stash)
+bind stash ! ?git stash drop %(stash)
+bind refs C ?git checkout %(branch)
+bind refs ! ?git branch -D %(branch)
+bind reflog C ?git checkout %(branch)
+bind reflog ! ?git reset --hard %(commit)
+
+# Normal commands
+# ---------------
+
+# View switching
+bind generic m view-main
+bind generic d view-diff
+bind generic l view-log
+bind generic L view-reflog
+bind generic t view-tree
+bind generic f view-blob
+bind generic b view-blame
+bind generic r view-refs
+bind generic p view-pager
+bind generic h view-help
+bind generic s view-status
+bind generic S view-status # Compat binding to avoid going crazy!
+bind generic c view-stage
+bind generic y view-stash
+bind generic g view-grep
+
+# View manipulation
+bind generic <Enter> enter # Enter and open selected entry
+bind generic <Lt> back # Go back to the previous view state
+bind generic <Down> next # Move to next
+bind generic <C-N> next
+bind generic J next
+bind generic <Up> previous # Move to previous
+bind generic <C-P> previous
+bind generic K previous
+bind generic , parent # Move to parent
+bind generic <Tab> view-next # Move focus to the next view
+bind generic R refresh # Reload and refresh view
+bind generic <F5> refresh
+bind generic O maximize # Maximize the current view
+bind generic q view-close # Close the current view
+bind generic Q quit # Close all views and quit
+bind generic <C-C> quit # Close all views and quit
+
+# View specific
+bind status u status-update # Stage/unstage changes in file
+bind status ! status-revert # Revert changes in file
+bind status M status-merge # Open git-mergetool(1)
+# bind status ??? :toggle status # Show short or long status labels
+bind stage u status-update # Stage/unstage current diff (c)hunk
+bind stage 1 stage-update-line # Stage/unstage current line
+bind stage 2 stage-update-part # Stage/unstage part of chunk
+bind stage ! status-revert # Revert current diff (c)hunk
+bind stage \ stage-split-chunk # Split current diff (c)hunk
+bind stage @ :/^@@ # Jump to next (c)hunk
+bind stage [ :toggle diff-context -1 # Decrease the diff context
+bind stage ] :toggle diff-context +1 # Increase the diff context
+bind diff @ :/^@@ # Jump to next (c)hunk
+bind diff [ :toggle diff-context -1 # Decrease the diff context
+bind diff ] :toggle diff-context +1 # Increase the diff context
+bind pager @ :/^@@ # Jump to next (c)hunk
+bind main H :goto HEAD # Jump to HEAD commit
+bind main G :toggle commit-title-graph # Toggle revision graph visualization
+bind main F :toggle commit-title-refs # Toggle reference display (tags/branches)
+bind reflog F :toggle commit-title-refs # Toggle reference display (tags/branches)
+
+# Cursor navigation
+bind generic j move-down
+bind generic k move-up
+bind generic <C-D> move-half-page-down
+bind generic <C-U> move-half-page-up
+bind generic <PgDown> move-page-down
+bind generic <Space> move-page-down
+bind generic <PgUp> move-page-up
+bind generic - move-page-up
+bind generic <Home> move-first-line
+bind generic <End> move-last-line
+
+# Scrolling
+bind generic | scroll-first-col
+bind generic <Left> scroll-left
+bind generic <Right> scroll-right
+bind generic <Ins> scroll-line-up
+bind generic <C-Y> scroll-line-up
+bind generic <Del> scroll-line-down
+bind generic <C-E> scroll-line-down
+bind generic <SBack> scroll-page-up
+bind generic <SFwd> scroll-page-down
+# bind generic ??? scroll-half-page-up
+# bind generic ??? scroll-half-page-down
+
+# Searching
+bind generic / search
+bind generic ? search-back
+bind generic n find-next
+bind generic N find-prev
+# Navigation keys used while searching
+bind search <Down> find-next
+bind search <C-N> find-next
+bind search <C-J> find-next
+bind search <Up> find-prev
+bind search <C-P> find-prev
+bind search <C-K> find-prev
+bind search <C-C> view-close
+
+# Option manipulation
+bind generic o options # Open the options menu
+# Bindings for toggling settings
+bind generic I :toggle sort-order # Toggle ascending/descending sort order
+bind generic i :toggle sort-field # Toggle field to sort by
+bind generic <Hash> :toggle line-number # Toggle line numbers
+bind generic D :toggle date # Toggle date display
+bind generic A :toggle author # Toggle author display
+bind generic T :toggle committer # Toggle committer display
+# bind generic ??? :toggle commit-title-display
+ # Toggle commit title display
+bind generic ~ :toggle line-graphics # Toggle (line) graphics mode
+bind generic F :toggle file-name # Toggle file name display
+# bind generic ??? :toggle show-changes # Toggle local changes display in the main view
+bind generic W :toggle ignore-space # Toggle ignoring whitespace in diffs
+# bind generic ??? :toggle ignore-case # Toggle ignoring case when searching
+# bind generic ??? :toggle commit-order # Toggle commit ordering
+bind generic X :toggle id # Toggle commit ID display
+bind generic $ :toggle commit-title-overflow
+ # Toggle highlighting of commit title overflow
+# bind generic ??? :toggle file-size # Toggle file size format
+# bind generic ??? :toggle status # Toggle status display
+# bind generic ??? :toggle status-show-untracked-dirs
+ # Toggle display of file in untracked directories
+# bind generic ??? :toggle vertical-split # Toggle vertical split
+# bind generic ??? :toggle word-diff # Toggle word diff
+# bind generic ??? :toggle diff-indicator # Toggle display of diff +/- signs
+bind generic % :toggle file-filter # Toggle filtering by pathspecs in file-args
+bind generic ^ :toggle rev-filter # Toggle filtering by revisions in rev-args
+
+# Misc
+bind generic e edit # Open in editor
+bind generic : prompt # Open the prompt
+bind generic <C-L> screen-redraw # Redraw the screen
+bind generic z stop-loading # Stop all loading views
+bind generic v show-version # Show Tig version
+
+# Colors
+# ------
+
+# The colors in the UI can be customized. In addition to the colors used
+# for the UI you can also define new colors to use in the pager, blob,
+# diff, and stage views by placing the text to match for in quotes.
+#
+# Prefix the name of a view to set a color only for that view, e.g.
+#
+# color grep.file blue default
+#
+# As an example, this setting will to color Signed-off-by lines with a
+# yellow foreground color and use the default background color.
+#
+# color " Signed-off-by" yellow default
+#
+# Note the four leading spaces in the string to match. This is because
+# Git automatically indents commit messages by four spaces.
+
+color "---" blue default
+color "diff --" yellow default
+color "--- " yellow default
+color "+++ " yellow default
+color "@@" magenta default
+color "+" green default
+color " +" green default
+color "-" red default
+color " -" red default
+color "index " blue default
+color "old mode " yellow default
+color "new mode " yellow default
+color "new file mode " yellow default
+color "deleted file mode " yellow default
+color "copy from " yellow default
+color "copy to " yellow default
+color "rename from " yellow default
+color "rename to " yellow default
+color "similarity " yellow default
+color "dissimilarity " yellow default
+color "\ No newline at end of file" blue default
+color "diff-tree " blue default
+color "Author: " cyan default
+color "Commit: " magenta default
+color "Tagger: " magenta default
+color "Merge: " blue default
+color "Date: " yellow default
+color "AuthorDate: " yellow default
+color "CommitDate: " yellow default
+color "TaggerDate: " yellow default
+color "Refs: " red default
+color "Reflog: " red default
+color "Reflog message: " yellow default
+color "stash@{" magenta default
+color "commit " green default
+color "parent " blue default
+color "tree " blue default
+color "author " green default
+color "committer " magenta default
+color " Signed-off-by:" yellow default
+color " Acked-by:" yellow default
+color " Reviewed-by:" yellow default
+color " Helped-by:" yellow default
+color " Reported-by:" yellow default
+color " Mentored-by:" yellow default
+color " Suggested-by:" yellow default
+color " Cc:" yellow default
+color " Noticed-by:" yellow default
+color " Tested-by:" yellow default
+color " Improved-by:" yellow default
+color " Thanks-to:" yellow default
+color " Based-on-patch-by:" yellow default
+color " Contributions-by:" yellow default
+color " Co-authored-by:" yellow default
+color " Requested-by:" yellow default
+color " Original-patch-by:" yellow default
+color " Inspired-by:" yellow default
+color default white default normal
+color cursor default black bold
+color cursor-blur default black
+color status green default
+color delimiter magenta default
+color date blue default
+color mode cyan default
+color id magenta default
+color overflow red default
+color header yellow default
+color section cyan default
+color directory yellow default
+color file default default
+color grep.file blue default
+color file-size default default
+color line-number cyan default
+color title-blur yellow black
+color title-focus yellow black bold
+color main-commit default default
+color main-annotated default default bold
+color main-tag magenta default bold
+color main-local-tag magenta default
+color main-remote yellow default
+color main-stash blue default
+color main-note blue default
+color main-prefetch blue default
+color main-other blue default
+color main-replace cyan default
+color main-tracked yellow default bold
+color main-ref cyan default
+color main-head cyan default bold
+color stat-none default default
+color stat-staged magenta default
+color stat-unstaged magenta default
+color stat-untracked magenta default
+color help-group blue default
+color help-action yellow default
+color diff-stat blue default
+color diff-add-highlight green default standout
+color diff-del-highlight red default standout
+color palette-0 magenta default
+color palette-1 yellow default
+color palette-2 cyan default
+color palette-3 green default
+color palette-4 default default
+color palette-5 white default
+color palette-6 red default
+color palette-7 magenta default bold
+color palette-8 yellow default bold
+color palette-9 cyan default bold
+color palette-10 green default bold
+color palette-11 default default bold
+color palette-12 white default bold
+color palette-13 red default bold
+color graph-commit blue default
+color search-result black yellow
+
+# Mappings for colors read from git configuration.
+# Set to "no" to disable.
+set git-colors = \
+ branch.current=main-head \
+ branch.local=main-ref \
+ branch.plain=main-ref \
+ branch.remote=main-remote \
+ \
+ diff.meta=diff-header \
+ diff.meta=diff-index \
+ diff.meta=diff-oldmode \
+ diff.meta=diff-newmode \
+ diff.frag=diff-chunk \
+ diff.old=diff-del \
+ diff.new=diff-add \
+ \
+ diff-highlight.oldHighlight=diff-del-highlight \
+ diff-highlight.newHighlight=diff-add-highlight \
+ \
+ grep.filename=grep.file \
+ grep.linenumber=grep.line-number \
+ grep.separator=grep.delimiter \
+ \
+ status.branch=status.header \
+ status.added=stat-staged \
+ status.updated=stat-staged \
+ status.changed=stat-unstaged \
+ status.untracked=stat-untracked
+
diff --git a/.config/tint2/tint2rc b/.config/tint2/tint2rc
deleted file mode 100755
index bde4275..0000000
--- a/.config/tint2/tint2rc
+++ /dev/null
@@ -1,239 +0,0 @@
-#---- Generated by tint2conf 2593 ----
-# See https://gitlab.com/o9000/tint2/wikis/Configure for
-# full documentation of the configuration options.
-#-------------------------------------
-# Backgrounds
-# Background 1:
-rounded = 0
-border_width = 1
-background_color = #eeeeee 0
-border_color = #bbbbbb 10
-background_color_hover = #eeeeee 0
-border_color_hover = #bbbbbb 10
-background_color_pressed = #eeeeee 0
-border_color_pressed = #bbbbbb 10
-
-# Background 2: Active taskbar
-rounded = 2
-border_width = 0
-background_color = #e3e3e3 0
-border_color = #cccccc 44
-background_color_hover = #eeeeee 22
-border_color_hover = #eaeaea 44
-background_color_pressed = #dddddd 4
-border_color_pressed = #eaeaea 44
-
-# Background 3: Active task
-rounded = 2
-border_width = 1
-background_color = #dddddd 4
-border_color = #dbdbdb 100
-background_color_hover = #eeeeee 22
-border_color_hover = #999999 100
-background_color_pressed = #dddddd 4
-border_color_pressed = #999999 100
-
-# Background 4: Urgent task
-rounded = 2
-border_width = 1
-background_color = #ffa348 100
-border_color = #aa7733 100
-background_color_hover = #ffa348 100
-border_color_hover = #aa7733 100
-background_color_pressed = #ffa348 100
-border_color_pressed = #aa7733 100
-
-# Background 5: Tooltip
-rounded = 2
-border_width = 1
-background_color = #ffffaa 100
-border_color = #999999 100
-background_color_hover = #ffffaa 100
-border_color_hover = #999999 100
-background_color_pressed = #ffffaa 100
-border_color_pressed = #999999 100
-
-# Background 6: Inactive desktop name
-rounded = 2
-border_width = 1
-background_color = #eeeeee 4
-border_color = #cccccc 30
-background_color_hover = #eeeeee 22
-border_color_hover = #999999 30
-background_color_pressed = #dddddd 4
-border_color_pressed = #999999 30
-
-# Background 7:
-rounded = 2
-border_width = 1
-background_color = #dddddd 3
-border_color = #999999 100
-background_color_hover = #dddddd 3
-border_color_hover = #999999 100
-background_color_pressed = #dddddd 3
-border_color_pressed = #999999 100
-
-# Background 8: Panel
-rounded = 0
-border_width = 0
-background_color = #c6c6c6 17
-border_color = #000000 0
-background_color_hover = #000000 0
-border_color_hover = #000000 0
-background_color_pressed = #dddddd 4
-border_color_pressed = #eaeaea 44
-
-# Background 9: Active desktop name, Default task, Iconified task
-rounded = 2
-border_width = 1
-background_color = #eeeeee 4
-border_color = #cccccc 44
-background_color_hover = #cccccc 44
-border_color_hover = #eaeaea 44
-background_color_pressed = #dddddd 4
-border_color_pressed = #eaeaea 44
-
-#-------------------------------------
-# Panel
-panel_items = TSBC
-panel_size = 100% 26
-panel_margin = 0 0
-panel_padding = 4 2 4
-panel_background_id = 8
-wm_menu = 1
-panel_dock = 0
-panel_position = top center horizontal
-panel_layer = bottom
-panel_monitor = all
-primary_monitor_first = 0
-autohide = 0
-autohide_show_timeout = 0
-autohide_hide_timeout = 0.5
-autohide_height = 2
-strut_policy = follow_size
-panel_window_name = tint2
-disable_transparency = 0
-mouse_effects = 1
-font_shadow = 0
-mouse_hover_icon_asb = 100 0 10
-mouse_pressed_icon_asb = 100 0 0
-
-#-------------------------------------
-# Taskbar
-taskbar_mode = single_desktop
-taskbar_padding = 1 0 2
-taskbar_background_id = 0
-taskbar_active_background_id = 2
-taskbar_name = 1
-taskbar_hide_inactive_tasks = 0
-taskbar_hide_different_monitor = 1
-taskbar_always_show_all_desktop_tasks = 0
-taskbar_name_padding = 6 3
-taskbar_name_background_id = 6
-taskbar_name_active_background_id = 9
-taskbar_name_font = sans Bold 9
-taskbar_name_font_color = #ffffff 100
-taskbar_name_active_font_color = #ffffff 100
-taskbar_distribute_size = 1
-taskbar_sort_order = none
-task_align = left
-
-#-------------------------------------
-# Task
-task_text = 1
-task_icon = 1
-task_centered = 1
-urgent_nb_of_blink = 100000
-task_maximum_size = 180 40
-task_padding = 4 4 4
-task_font = Sans 9
-task_tooltip = 1
-task_font_color = #eeeeee 100
-task_active_font_color = #ffffff 100
-task_iconified_font_color = #ffffff 60
-task_icon_asb = 100 0 -15
-task_active_icon_asb = 100 0 0
-task_iconified_icon_asb = 70 -50 -50
-task_background_id = 9
-task_active_background_id = 3
-task_urgent_background_id = 4
-task_iconified_background_id = 9
-mouse_left = toggle_iconify
-mouse_middle = none
-mouse_right = none
-mouse_scroll_up = none
-mouse_scroll_down = none
-
-#-------------------------------------
-# System tray (notification area)
-systray_padding = 4 0 2
-systray_background_id = 0
-systray_sort = ascending
-systray_icon_size = 22
-systray_icon_asb = 100 0 0
-systray_monitor = 2
-
-#-------------------------------------
-# Launcher
-launcher_padding = 0 0 2
-launcher_background_id = 0
-launcher_icon_background_id = 0
-launcher_icon_size = 22
-launcher_icon_asb = 100 0 0
-launcher_icon_theme_override = 0
-startup_notifications = 1
-launcher_tooltip = 1
-launcher_item_app = /usr/share/applications/pcmanfm.desktop
-launcher_item_app = /usr/share/applications/com.alacritty.Alacritty.desktop
-launcher_item_app = /usr/share/applications/emacs.desktop
-launcher_item_app = /usr/share/applications/ario.desktop
-launcher_item_app = firefox.desktop
-launcher_item_app = /usr/share/applications/thunderbird.desktop
-
-#-------------------------------------
-# Clock
-time1_format = %H:%M
-time2_format = %A %d %B
-time1_font = sans Bold 10
-time1_timezone =
-time2_timezone =
-time2_font = sans 7
-clock_font_color = #ffffff 100
-clock_padding = 1 0
-clock_background_id = 0
-clock_tooltip =
-clock_tooltip_timezone =
-clock_lclick_command = zenity --calendar --text ""
-clock_rclick_command = thunderbird -calendar
-clock_mclick_command =
-clock_uwheel_command =
-clock_dwheel_command =
-
-#-------------------------------------
-# Battery
-battery_tooltip = 1
-battery_low_status = 10
-battery_low_cmd = notify-send -u critical 'battery' "You're low, partner!"
-bat1_font = Sans Bold 10
-bat2_font = sans 6
-battery_font_color = #ffffff 100
-battery_padding = 1 0
-battery_background_id = 0
-battery_hide = 101
-battery_lclick_command =
-battery_rclick_command =
-battery_mclick_command =
-battery_uwheel_command =
-battery_dwheel_command =
-ac_connected_cmd =
-ac_disconnected_cmd =
-
-#-------------------------------------
-# Tooltip
-tooltip_show_timeout = 0.5
-tooltip_hide_timeout = 0.1
-tooltip_padding = 2 2
-tooltip_background_id = 5
-tooltip_font_color = #222222 100
-tooltip_font = sans 9
-
diff --git a/.config/transmission-daemon/settings.json b/.config/transmission-daemon/settings.json
deleted file mode 100644
index 357ef31..0000000
--- a/.config/transmission-daemon/settings.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "alt-speed-down": 50,
- "alt-speed-enabled": false,
- "alt-speed-time-begin": 540,
- "alt-speed-time-day": 127,
- "alt-speed-time-enabled": false,
- "alt-speed-time-end": 1020,
- "alt-speed-up": 50,
- "bind-address-ipv4": "0.0.0.0",
- "bind-address-ipv6": "::",
- "blocklist-enabled": false,
- "blocklist-url": "http://www.example.com/blocklist",
- "cache-size-mb": 4,
- "dht-enabled": true,
- "download-dir": "/home/jozan/dl/torrents",
- "download-queue-enabled": true,
- "download-queue-size": 5,
- "encryption": 1,
- "idle-seeding-limit": 30,
- "idle-seeding-limit-enabled": false,
- "incomplete-dir": "/home/jozan/dl",
- "incomplete-dir-enabled": false,
- "lpd-enabled": false,
- "message-level": 2,
- "peer-congestion-algorithm": "",
- "peer-id-ttl-hours": 6,
- "peer-limit-global": 200,
- "peer-limit-per-torrent": 50,
- "peer-port": 51413,
- "peer-port-random-high": 65535,
- "peer-port-random-low": 49152,
- "peer-port-random-on-start": false,
- "peer-socket-tos": "default",
- "pex-enabled": true,
- "port-forwarding-enabled": true,
- "preallocation": 1,
- "prefetch-enabled": true,
- "queue-stalled-enabled": true,
- "queue-stalled-minutes": 30,
- "ratio-limit": 2,
- "ratio-limit-enabled": false,
- "rename-partial-files": true,
- "rpc-authentication-required": false,
- "rpc-bind-address": "0.0.0.0",
- "rpc-enabled": true,
- "rpc-host-whitelist": "",
- "rpc-host-whitelist-enabled": true,
- "rpc-password": "{e1d6a56beeae6e1981161ffac9dd03cc13ff335cgHQInMhA",
- "rpc-port": 9091,
- "rpc-url": "/transmission/",
- "rpc-username": "",
- "rpc-whitelist": "127.0.0.1,::1",
- "rpc-whitelist-enabled": true,
- "scrape-paused-torrents-enabled": true,
- "script-torrent-done-enabled": true,
- "script-torrent-done-filename": "/home/jozan/.local/bin/tsm-done.sh",
- "seed-queue-enabled": false,
- "seed-queue-size": 10,
- "speed-limit-down": 10,
- "speed-limit-down-enabled": false,
- "speed-limit-up": 5,
- "speed-limit-up-enabled": false,
- "start-added-torrents": true,
- "trash-original-torrent-files": false,
- "umask": 18,
- "upload-slots-per-torrent": 14,
- "utp-enabled": true
-}
diff --git a/.config/tremc/settings.cfg b/.config/tremc/settings.cfg
index 8775c9b..8234a8a 100644
--- a/.config/tremc/settings.cfg
+++ b/.config/tremc/settings.cfg
@@ -1,5 +1,5 @@
[Connection]
-host = ceres
+host = 127.0.0.1
port = 9091
path = /transmission/rpc
username =
@@ -9,7 +9,7 @@ password =
order = name
[Filtering]
-filter =
+filter =
invert = False
[Misc]
@@ -19,9 +19,7 @@ file_viewer = xdg-open %%s
file_open_in_terminal = True
[Colors]
-header = bg:yellow,fg:black
-footer = bg:yellow,fg:black
-title_seed = bg:red,fg:black
+title_seed = bg:yellow,fg:black
title_download = bg:red,fg:black
title_idle = bg:cyan,fg:black
title_incomplete = bg:default,fg:default
@@ -33,7 +31,6 @@ upload_rate = bg:black,fg:red
eta+ratio = bg:default,fg:default
filter_status = bg:red,fg:black
multi_filter_status = bg:blue,fg:black
-window = bg:default,fg:default
dialog = bg:default,fg:default
dialog_important = bg:default,fg:red
file_prio_high = fg:red,bg:default
diff --git a/.config/urlview/config b/.config/urlview/config
new file mode 100644
index 0000000..022f145
--- /dev/null
+++ b/.config/urlview/config
@@ -0,0 +1,2 @@
+COMMAND linkview %s
+QUITONLAUNCH
diff --git a/.config/vimb/config b/.config/vimb/config
new file mode 100644
index 0000000..708ab74
--- /dev/null
+++ b/.config/vimb/config
@@ -0,0 +1,93 @@
+# vim: ft=conf
+# Homepage that vimb opens if started without a URI.
+set home-page=https://duckduckgo.com/
+
+# Path to the default download directory. If no download directory is set,
+# download will be written into current directory. The following pattern will
+# be expanded if the download is started '~/', '~user', '$VAR' and '${VAR}'.
+set download-path=~/dl/
+
+# Command with placeholder '%s' called if form field is opened with $EDITOR to
+# spawn the editor-like `x-terminal-emulator -e vim %s'. To use Gvim as the
+# editor, it's necessary to call it with `-f' to run it in the foreground.
+set editor-command=st -e nvim %s
+
+# If enabled the inputbox will be hidden whenever it contains no text.
+set input-autohide=true
+
+# Enable or disable the spell checking feature.
+set spell-checking=true
+
+# Set comma separated list of spell checking languages to be used for
+# spell checking.
+set spell-checking-languages=en
+
+# Enable or disable support for WebGL on pages.
+set webgl=false
+
+# While typing a search command, show where the pattern typed so far matches.
+set incsearch=true
+
+# The font family to use as the default for content that does not specify a
+# font.
+set default-font=BlexMono Nerd Font
+
+# The font family used as the default for content using monospace font.
+set monospace-font=BlexMono Nerd Font
+
+# The font family used as the default for content using sans-serif font.
+set sans-serif-font=BlexMono Nerd Font
+
+# The font family used as the default for content using serif font.
+set serif-font=BlexMono Nerd Font
+
+# The default font size used to display text.
+set font-size=16
+
+# Default font size for the monospace font.
+set monospace-font-size=13
+
+# Default Full-Content zoom level in percent. Default is 100.
+set default-zoom=110
+
+# Shortcuts allow the opening of an URI built up from a named template with
+# additional parameters.
+shortcut-add duck=https://duckduckgo.com/?q=$0
+shortcut-add d=http://dict.cc/?s=$0
+shortcut-add g=https://encrypted.google.com/search?q=$0
+shortcut-add y=http://www.youtube.com/results?search_query=$0
+shortcut-add s=https://www.startpage.com/do/dsearch?query=$0
+
+# Set the shortcut as the default, that is the shortcut to be used if no
+# shortcut is given and the string to open is not an URI.
+shortcut-default duck
+
+# Map page zoom in normal mode to keys commonly used across applications
+# + (zoom in), - (zoom out), = (zoom reset)
+nmap + zI
+nmap - zO
+nmap = zz
+nmap H <C-o>
+nmap L <C-o>
+nmap , :set stylesheet=false<CR>
+nmap . :set stylesheet=true<CR>
+nmap <C-b> :set status-bar=true<CR>
+nmap <C-n> :set status-bar=false<CR>
+
+set dark-mode=true
+set status-bar=false
+set javascript-can-access-clipboard=false
+set intelligent-tracking-prevention=true
+set geolocation=never
+set user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
+
+# GUI color settings
+# Color scheme: Base16 Eighties (https://github.com/chriskempson/base16)
+set completion-css=color:#ebdbb2;background-color:#32302f;font:12pt BlexMono Nerd Font;
+set completion-hover-css=color:#ebdbb2;background-color:#32302f;font:12pt BlexMono Nerd Font;
+set completion-selected-css=color:#ebdbb2;background-color:#515151;font:12pt BlexMono Nerd Font;
+set input-css=color:#ebdbb2;background-color:#32302f;font:12pt BlexMono Nerd Font;
+set input-error-css=color:#f2777a;background-color:#393939;font:12pt BlexMono Nerd Font;
+set status-css=color:#ffcc66;background-color:#32302f;font:12pt BlexMono Nerd Font;
+set status-ssl-css=color:#99cc99;background-color:#32302f;font:12pt BlexMono Nerd Font;
+set status-ssl-invalid-css=color:#f2777a;background-color:#32302f;font:12pt BlexMono Nerd Font;
diff --git a/.config/vimb/style.css b/.config/vimb/style.css
new file mode 100644
index 0000000..85e1b95
--- /dev/null
+++ b/.config/vimb/style.css
@@ -0,0 +1,55 @@
+body::-webkit-scrollbar {
+ display: none;
+}
+
+*,div,pre,textarea,body,input,td,tr,p {
+ background-color: #1d2021 !important;
+ background-image: none !important;
+ color: #ebdbb2 !important;
+}
+h1,h2,h3,h4 {
+ background-color: #1d2021 !important;
+ color: #ebdbb2 !important;
+}
+a {
+ color: #458588 !important;
+}
+a:hover,a:focus {
+ color: #458588 !important;
+}
+a:visited {
+ color: #458588 !important;
+}
+/* img {
+ opacity: .5;
+}
+img:hover {
+ opacity: 1;
+} */
+
+/* Hint mode color styling
+ * Color scheme: Base16 Eighties (https://github.com/chriskempson/base16)
+ *
+ * The precedence of the user style is lower than that of the website so you
+ * have to mark your style definition to have higher priority.
+ */
+span[vimbhint^='label'] {
+ background-color: #f2f0ec !important;
+ border: 1px solid #2d2d2d !important;
+ color: #2d2d2d !important;
+ font: bold 10pt monospace !important;
+ opacity: 1 !important;
+ padding: .1em .4em !important;
+ text-transform: uppercase !important;
+}
+span[vimbhint='label focus'] {
+ font: bold 13pt monospace !important;
+}
+*[vimbhint^='hint'] {
+ background-color: #ffcc66 !important;
+ color: #2d2d2d !important;
+}
+*[vimbhint='hint focus'] {
+ background-color: #6699cc !important;
+ color: #2d2d2d !important;
+}
diff --git a/.config/wayland/init.sh b/.config/wayland/init.sh
deleted file mode 100755
index d9231bc..0000000
--- a/.config/wayland/init.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-case $(hostname -s) in
- mother)
- icon=" "
- mpd="mpd"
- xscr="xscreensaver --no-splash"
- sleep="sleep 1"
- ping="ping -c1 -w1 9.9.9.9 >/dev/null 2>&1"
- host="mother"
- doas mkdir /var/run/jozan && doas chown -v jozan: /var/run/jozan
- wlr-randr --output DP-3 --off
- ;;
- po-rbo)
- icon=" "
- mpd="mpd"
- xscr="xscreensaver"
- sleep="sleep 0.1"
- ping="ping -c1 -w1 9.9.9.9 >/dev/null 2>&1"
- host="po-rbo"
- doas mkdir /var/run/r_bousset && doas chown -v r_bousset: /var/run/r_bousset
- ;;
- mars)
- icon=" "
- mpd="musicpd"
- xscr="xscreensaver --no-splash"
- sleep="gsleep 1"
- ping="ping -c1 -t1 9.9.9.9 >/dev/null 2>&1"
- host="mars"
- doas mkdir /var/run/jozan && doas chown -v jozan: /var/run/jozan
- ;;
-esac
-
-startif() {
- pidof "$(basename "$1")" >/dev/null || "$@" >/dev/null 2>&1 &
-}
-
-startif ydotoold
-startif dunst
-startif swaybg --image pics/wp.png &
-pgrep $mpd >/dev/null || $mpd >/dev/null 2>&1
-startif pipewire
-sleep 1
-startif pipewire-pulse
-sleep 1
-startif wireplumber
-startif copyq
-notify-send -u normal 'Welcome' "$icon Welcome back, partner!"
-firefox &
diff --git a/.config/wtf/config.yml b/.config/wtf/config.yml
deleted file mode 100644
index 5853ddb..0000000
--- a/.config/wtf/config.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-wtf:
- colors:
- border:
- focusable: darkslateblue
- focused: orange
- normal: gray
- grid:
- columns: [50, 50, 50, 50, 90]
- rows: [8, 10, 12, 3, 4, 90]
- refreshInterval: 1
- mods:
- digitalclock:
- color: orange
- enabled: true
- font: digitalfont
- hourFormat: 24
- position:
- top: 0
- left: 1
- height: 1
- width: 1
- refreshInterval: 1
- title: "big clock"
- type: "digitalclock"
- ipinfo:
- colors:
- name: "lightblue"
- value: "white"
- enabled: true
- position:
- top: 1
- left: 1
- height: 1
- width: 1
- refreshInterval: 150
- power:
- enabled: true
- position:
- top: 1
- left: 2
- height: 1
- width: 1
- refreshInterval: 15
- title: "⚡️"
- feedreader:
- enabled: true
- feeds:
- - http://feeds.bbci.co.uk/news/rss.xml
- feedLimit: 10
- position:
- top: 2
- left: 0
- width: 2
- height: 1
- refreshInterval: 900
- hackernews:
- enabled: true
- numberOfStories: 10
- position:
- top: 2
- left: 2
- width: 2
- height: 1
- storyType: top
- refreshInterval: 900
- uptime:
- args: [""]
- cmd: "uptime"
- enabled: true
- position:
- top: 3
- left: 0
- height: 1
- width: 2
- refreshInterval: 30
- type: cmdrunner
- resourceusage:
- cpuCombined: false
- enabled: true
- position:
- top: 0
- left: 0
- height: 2
- width: 1
- refreshInterval: 1
- showCPU: true
- showMem: true
- showSwp: true
diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc
index 2b73786..7f48d1a 100644
--- a/.config/x11/xinitrc
+++ b/.config/x11/xinitrc
@@ -3,17 +3,13 @@
case $(hostname -s) in
mother)
icon=" "
- mpd="mpd"
- xscr="xscreensaver --no-splash"
- sleep="sleep 1"
+ sleep="sleep 0.1"
ping="ping -c1 -w1 9.9.9.9 >/dev/null 2>&1"
host="mother"
doas mkdir /var/run/jozan && doas chown -v jozan: /var/run/jozan
;;
po-rbo)
icon=" "
- mpd="mpd"
- xscr="xscreensaver"
sleep="sleep 0.1"
ping="ping -c1 -w1 9.9.9.9 >/dev/null 2>&1"
host="po-rbo"
@@ -21,8 +17,6 @@ case $(hostname -s) in
;;
mars)
icon=" "
- mpd="musicpd"
- xscr="xscreensaver --no-splash"
sleep="gsleep 1"
ping="ping -c1 -t1 9.9.9.9 >/dev/null 2>&1"
host="mars"
@@ -35,41 +29,25 @@ esac
$ping && git --git-dir="$HOME"/docs/dotfiles-bsd --work-tree="$HOME" pull
startif() {
- pgrep "$(basename "$1")" >/dev/null || "$@" >/dev/null 2>&1 &
+ pidof "$(basename "$1")" >/dev/null || $@ >/dev/null 2>&1 &
}
dunst_shit() {
sleep 1
- [ $host = "po-rbo" ] && startif /home/r_bousset/.nix-profile/bin/dunst || startif dunst
+ startif dunst
sleep 2
- startif mpd-notification
startif lowbat
- for pid in $(ps aux | grep local/bin/kb | awk '{print $2}'); do
- kill -9 $pid
- done
- [ $host = "mother" ] && "$HOME"/.local/bin/setwp "$HOME"/pics/wp.png || "$HOME"/.local/bin/setwp "$HOME"/pics/wp/129.jpg
- "$HOME"/.local/bin/kb &
}
start_apps() {
- [ $host = "po-rbo" ] && /home/r_bousset/.local/bin/pipe
CM_SELECTIONS=clipboard startif clipmenud
startif copyq
startif nextcloud
- QT_SCALE_FACTOR=1.35 startif rclone-browser
- startif nixGL teams-for-linux
- startif thunderbird
- startif firefox
+ # [ $host = "po-rbo" ] && QT_SCALE_FACTOR=1.35 startif rclone-browser
}
export LANG='en_US.UTF-8'
-[ $host = "mother" ] && xrandr --output HDMI-0 --primary --mode 1920x1080 --pos 1440x0 --rotate normal \
- --output DP-0 --mode 1680x1050 --pos 3360x0 --rotate normal \
- --output DP-1 --off \
- --output DP-2 --off \
- --output DP-3 --off \
- --output DP-4 --mode 1440x900 --pos 0x0 --rotate normal \
- --output DP-5 --off
+[ $host = "mother" ] && "$HOME"/.local/bin/scr3
[ $host = "po-rbo" ] && xrandr \
--output eDP-1 --mode 1920x1200 --pos 0x0 --rotate normal \
--output HDMI-1 --primary --mode 2560x1440 --pos 1920x0 --rotate normal \
@@ -78,14 +56,15 @@ export LANG='en_US.UTF-8'
--output VIRTUAL-1 --off
dunst_shit
-startif picom
-pgrep $mpd >/dev/null || $mpd >/dev/null 2>&1
xset s off
xset -dpms
-startif $xscr
-# doas rc-service wireguard start &&
-# notify-send -u normal 'wireguard' 'WireGuard started'
-# $sleep
+[ $host = "mother" ] && hc 85 30 0
+for pid in $(ps aux | grep local/bin/kb | awk '{print $2}'); do
+ kill -9 $pid
+done
+"$HOME"/.local/bin/kb &
+[ $host = "po-rbo" ] && feh --no-fehbg --image-bg '#1d2021' --no-xinerama \
+ --bg-fill "$HOME"/pics/wp.jpg && herbe ' wp set' &
pkill wireplumber
pkill pipewire-pulse
pkill pipewire
@@ -94,13 +73,13 @@ $sleep
startif pipewire-pulse
$sleep
startif wireplumber
-$sleep
-startif nm-applet
-$sleep
-startif blueman-applet
+startif picom
+[ $host = "po-rbo" ] && startif nm-applet
+[ $host = "po-rbo" ] && startif blueman-applet
cd "$HOME"
xrdb "$HOME"/.config/x11/xresources
start_apps &
-notify-send -u normal 'Welcome' "$icon Welcome back, partner!"
+startif fetch_sfeed
+herbe "$icon welcome back, partner!" &
-[ $host = "po-rbo" ] && exec dwm
+[ $host = "po-rbo" ] && exec dbus-run-session dwm
diff --git a/.config/x11/xresources b/.config/x11/xresources
index 6db99f1..91a3b6f 100644
--- a/.config/x11/xresources
+++ b/.config/x11/xresources
@@ -5,10 +5,10 @@ Xft.rgba: rgb
Xft.autohint: false
Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault
-Xcursor.theme: Adwaita
+Xcursor.theme: "Simp1e-Gruvbox-Dark"
Xcursor.size: 18
Nsxiv.window.background: #1d2021
Nsxiv.window.foreground: #ebdbb2
-Nsxiv.bar.font: UbuntuMono Nerd Font-11
+Nsxiv.bar.font: BlexMono Nerd Font-13
Vncviewer.grabKeyboard: true
Vncviewer.FullScreen: 1
diff --git a/.config/yt-dlp/config b/.config/yt-dlp/config
new file mode 100644
index 0000000..b996746
--- /dev/null
+++ b/.config/yt-dlp/config
@@ -0,0 +1 @@
+--extractor-args=youtube:player-client=default,-tv_simply
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index 4f09b46..1046db4 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -79,6 +79,16 @@ eza_after_cd() {
}
add-zsh-hook chpwd eza_after_cd
+_fzf_comprun() {
+ local command=$1
+ shift
+
+ case "$command" in
+ cd) fzf "$@" --preview 'tree -C {} | head -200' ;;
+ *) fzf "$@" ;;
+ esac
+}
+
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
autoload -Uz bracketed-paste-magic
@@ -88,10 +98,10 @@ zle -N bracketed-paste bracketed-paste-magic
[ -f "$ZDOTDIR"/plugins.zsh ] && source "$ZDOTDIR"/plugins.zsh
[ -f "$XDG_PACKAGE_HOME"/fzf/shell/completion.zsh ] && source "$XDG_PACKAGE_HOME"/fzf/shell/completion.zsh
[ -f "$XDG_PACKAGE_HOME"/fzf/shell/key-bindings.zsh ] && source "$XDG_PACKAGE_HOME"/fzf/shell/key-bindings.zsh
-[ -f "$XDG_CONFIG_HOME"/lf/icons ] && {
- LF_ICONS="$(tr '\n' ':' <"$XDG_CONFIG_HOME"/lf/icons)" \
- && export LF_ICONS
-}
+# [ -f "$XDG_CONFIG_HOME"/lf/icons ] && {
+# LF_ICONS="$(tr '\n' ':' <"$XDG_CONFIG_HOME"/lf/icons)" \
+# && export LF_ICONS
+# }
globalias() {
if [[ $LBUFFER =~ ^[a-z0-9]+$ ]]; then
@@ -113,7 +123,38 @@ lfcd () {
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
fi
}
-bindkey -s '^o' '^ulfcd\n'
+
+nnncd ()
+{
+ # Block nesting of nnn in subshells
+ [ "${NNNLVL:-0}" -eq 0 ] || {
+ echo "nnn is already running"
+ return
+ }
+
+ # The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set)
+ # If NNN_TMPFILE is set to a custom path, it must be exported for nnn to
+ # see. To cd on quit only on ^G, remove the "export" and make sure not to
+ # use a custom path, i.e. set NNN_TMPFILE *exactly* as follows:
+ # NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd"
+ export NNN_TMPFILE="/tmp/nnn_lastd"
+
+ # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn
+ # stty start undef
+ # stty stop undef
+ # stty lwrap undef
+ # stty lnext undef
+
+ # The command builtin allows one to alias nnn to n, if desired, without
+ # making an infinitely recursive alias
+ command nnn "$@"
+
+ [ ! -f "$NNN_TMPFILE" ] || {
+ . "$NNN_TMPFILE"
+ rm -f -- "$NNN_TMPFILE" > /dev/null
+ }
+}
+bindkey -s '^o' '^unnncd\n'
bindkey -v "^ " globalias
bindkey -v " " magic-space
diff --git a/.config/zsh/alias.zsh b/.config/zsh/alias.zsh
index 4cd4099..cfab06d 100644
--- a/.config/zsh/alias.zsh
+++ b/.config/zsh/alias.zsh
@@ -17,6 +17,7 @@ tree() {
eza -T $@ | $PAGER
}
alias hff='cd ~/dev/go/hardflip'
+alias kk='cd ~/dev/c/kirc'
alias \
e='nvim' \
vim='nvim' \
@@ -46,28 +47,39 @@ alias \
rsync='rsync -v -h' \
grep='grep --color=always' \
rgrep='grep -R -n -H' \
- most='most -t4' \
fsl='fossil' \
diff='colordiff' \
xclip='xclip -selection clipboard' \
ctags='uctags "--exclude=.ccls*"' \
yt='pipe-viewer' \
yta='pipe-viewer -n' \
- gyt='gtk-pipe-viewer' \
ytdl='yt-dlp --add-metadata' \
ytdlist='yt-dlp -F' \
ytdl1080="yt-dlp --add-metadata -f '[height<=1080]'" \
- irssi='irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi' \
- irc='irssi' \
+ irc='TERM=st-16color catgirl' \
free='freecolor' \
+ n='nnn' \
gt='gpg-tui' \
- lg='lazygit' \
tf='terraform' \
gjdo="$HOME/dev/perl/gitjoe-scripts/gitjoe-do.pl" \
ddgit='git --git-dir=$HOME/docs/redot --work-tree=$HOME' \
dgit='git --git-dir=$HOME/docs/dotfiles-bsd --work-tree=$HOME' \
confgit='git --git-dir=$HOME/docs/conffiles-bsd --work-tree=/' \
git-pull-all='git branch -r | sed "1d;s,\x1B\[[0-9;]*[a-zA-Z],,g" | while read remote; do git branch --track "${remote#origin/}" "$remote"; git checkout "${remote#origin/}"; git pull; done'
+b() {
+ oldpath="$(pwd)"
+ cd $HOME/.config/nnn/bookmarks
+ dir=$(fzf)
+ if [ -z "$dir" ]; then
+ cd "$oldpath"
+ return
+ fi
+ if ! cd "$dir"; then
+ cd "$oldpath"
+ return
+ fi
+ nnn
+}
bssh() {
user='rbousset'
host='bastion'
@@ -87,10 +99,9 @@ bssh() {
ssh $user@$host -t -- $*
fi
}
-assh() {
- user='admin'
- host='bastion'
- ssh $user@$host -- --osh $*
+j() {
+ job=$(jobs -l | sed 's/ suspended //' | fzf --reverse --prompt='job > ') || return
+ [ -n "$job" ] && fg %$(awk '{print $1}' <<< "$job" | tr -d '[]')
}
upsrc() {
doas git -C /usr/src pull --ff-only
@@ -123,8 +134,12 @@ dgg() {
}
alias \
srcnt='find . -type f -name "*.c" -exec cat {} \; | sed "/^\//d" | sed "/^\*/d" | sed "/^ \*/d" | sed "/^\/\//d" | sed "/^$/d" | wc -l | tr -d " "' \
- v='nvim $(fzf --preview="head -$FZF_PREVIEW_LINES {}")' \
tohex='printf "0x%x\n"'
+v() {
+ file=$(fzf --preview="head -$FZF_PREVIEW_LINES {}")
+ [ -z $file ] && return
+ nvim $file
+}
ebin() {
p=$(pwd)
cd "$HOME"/.local/bin || return
@@ -158,24 +173,6 @@ de() {
$VISUAL $sc
cd $p
}
-eebin() {
- file=$(find "$HOME"/.local/bin -type f | fzf)
- [ $? -ne 0 ] && return
- bsdsetsid emacsclient -c "$file"
- kill -9 "$(ps -p $$ -oppid=)"
-}
-eeconf() {
- file=$(find "$HOME"/.config -type f | fzf)
- [ $? -ne 0 ] && return
- bsdsetsid emacsclient -c "$file"
- kill -9 "$(ps -p $$ -oppid=)"
-}
-ee() {
- file=$(find . -type f | fzf)
- [ $? -ne 0 ] && return
- bsdsetsid emacsclient -c "$file"
- kill -9 "$(ps -p $$ -oppid=)"
-}
pa() {
if [ -d $HOME/.local/packs ] && cd $HOME/.local/packs || return 1
dir=$(\ls $HOME/.local/packs | fzf)
@@ -211,6 +208,8 @@ twi() {
alias mutt='neomutt' \
sxiv='nsxiv -b -a' \
nsxiv='nsxiv -b -a' \
+ arduino-cli='arduino-cli --config-file $XDG_CONFIG_HOME/arduino-cli/arduino-cli.yaml' \
+ ac='arduino-cli' \
pinfo='pkg info -x' \
psearch='pkg search' \
pinstall='doas pkg install'
@@ -220,7 +219,7 @@ update() {
yay
;;
po-rbo)
- doas apt update && doas apt dist-upgrade
+ doas apt update; doas apt dist-upgrade
nix-channel --update
nix-env -u
# git -C $HOME/.local/packs/neovim checkout master
diff --git a/.config/zsh/plugins.zsh b/.config/zsh/plugins.zsh
index 9e13701..77bffa1 100644
--- a/.config/zsh/plugins.zsh
+++ b/.config/zsh/plugins.zsh
@@ -13,4 +13,4 @@
source $HOME/.local/packs/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh >/dev/null
source $HOME/.local/packs/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh >/dev/null
-[[ -r "/usr/share/z/z.sh" ]] && source /usr/share/z/z.sh
+# [[ -r "/usr/share/z/z.sh" ]] && source /usr/share/z/z.sh