diff options
Diffstat (limited to '.config')
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 Binary files differdeleted file mode 100644 index aaac8da..0000000 --- a/.config/conky/artix-logo.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 7bbe066..0000000 --- a/.config/emacs/caco.png +++ /dev/null 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 |