Compare commits
	
		
			19 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 91893fb986 | |||
| 779fded05c | |||
| 42116f4fae | |||
| d5c4d917df | |||
| 5adad59b39 | |||
| 2a6eb125d6 | |||
| 377f19c997 | |||
| 750a43c708 | |||
| 446a7a9e1e | |||
| e5c35cde47 | |||
| b582b5daab | |||
| 37ba913453 | |||
| f5f394f8f7 | |||
| 39e2301518 | |||
| c301c0c984 | |||
| 244ccad598 | |||
| 9baf9fe901 | |||
| 4f5edb6932 | |||
| a009c1049b | 
							
								
								
									
										4
									
								
								bin/.bin/0x0
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								bin/.bin/0x0
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,4 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| curl -F"file=@$@" https://0x0.st | tee >(xclip -sel clip) | ||||
|  | ||||
							
								
								
									
										8
									
								
								bin/.bin/disc
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								bin/.bin/disc
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,8 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| tmux ls -F \#S | grep disc && \ | ||||
| 	tmux attach -t disc \ | ||||
| || \ | ||||
| 	tmux new-session -s disc 'scli --save-history' \; \ | ||||
| 		split-window -h -l 75% 'aerc' \; \ | ||||
| 		split-window -v 'weechat' \; \ | ||||
							
								
								
									
										141
									
								
								bin/.bin/emailbook
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										141
									
								
								bin/.bin/emailbook
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,141 @@ | ||||
| #!/bin/sh | ||||
| VERSION="0.2.1" | ||||
| usage() { | ||||
|     echo "emailbook $VERSION"' | ||||
| A minimalistic address book for e-mails only. | ||||
|  | ||||
| Usage: emailbook FILE [OPTIONS] | ||||
|  | ||||
| Prints all values in FILE if no option is given. | ||||
|  | ||||
| Options: | ||||
| -a, --add [KEY] VALUE  Add KEY/VALUE pair to FILE. If KEY is omitted, | ||||
|                        VALUE is used as key, too. | ||||
| [-s, --search] QUERY   Search FILE for entries with keys or values containing QUERY. | ||||
| -k, --key QUERY        Like `--search` but limit search to keys/aliases. | ||||
| -v, --value QUERY      Like `--search` but limit search to values. | ||||
| -p, --parse SOURCE     Parse stdin for e-mail addresses in header and add them to FILE. | ||||
|                        SOURCE might be either --from, --to , --cc, --bcc, or --all. | ||||
| -h, --help             Show this help. | ||||
| -V, --version          Print version. | ||||
| ' | ||||
| } | ||||
|  | ||||
| checkfilename() { | ||||
|     [ $QUIET ] || [ -e "$filename" ] \ | ||||
|         || echo "File $filename not found. Creating it." 1>&2 | ||||
| } | ||||
|  | ||||
| keyexists() { | ||||
|     escaped=$(echo "$*" | sed 's/[][\.|$(){}?+*^]/\\&/g') | ||||
|     # also check display name with/without double quotes | ||||
|     quotestoggled=$(echo "$*" | sed -E 's/^"([^"]+)"( +<[^>]+>)/\1\2/;t;s/^([^"]+?)( +<[^>]+>)/"\1"\2/') | ||||
|     quotestoggledescaped=$(echo "$quotestoggled" | sed 's/[][\.|$(){}?+*^]/\\&/g') | ||||
|     grep -q -E "^$escaped( :|\$)" "$filename" 2> /dev/null \ | ||||
|         || grep -q -E "^$quotestoggledescaped( :|\$)" "$filename" 2> /dev/null | ||||
| } | ||||
|  | ||||
| addentry() { | ||||
|     if keyexists "$1"; then | ||||
|         [ $QUIET ] || echo "! $1 (skipped)" | ||||
|     else | ||||
|         [ "$2" ] && line="$1 : $2" || line="$1" | ||||
|         [ $QUIET ] || echo "+ $line" | ||||
|         echo "$line" >> "$filename" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| add() { | ||||
|     checkfilename | ||||
|     case $# in | ||||
|     1|2) addentry "$@" ;; | ||||
|     *) echo "Expected one or two arguments after -a!"; exit 1 ;; | ||||
|     esac | ||||
| } | ||||
|  | ||||
| addfromstdin() { | ||||
|     # Skip lines without "@", skip lines containing no-reply (or similar), | ||||
|     # strip \r, strip leading spaces, do the following replacements: | ||||
|     # "'John Doe'" <xxx> → "John Doe" <xxx> | ||||
|     # 'John Doe' <xxx> → John Doe <xxx> | ||||
|     # "john.doe@example.com" <john.doe@example.com> → <john.doe@example.com> | ||||
|     # "<john.doe@example.com>" <john.doe@example.com> → <john.doe@example.com> | ||||
|     # john.doe@example.com → <john.doe@example.com> | ||||
|     grep '@' \ | ||||
|         | grep -v -i -E '\bnot?[_-]?reply' \ | ||||
|         | sed 's/\r$//' \ | ||||
|         | sed -E 's/^ +//g' \ | ||||
|         | sed -E "s/(\"?)'([^'\"]+)'(\"?)/\1\2\3/" \ | ||||
|         | sed -E 's/^"<?([^">]*)>?" +<\1>/<\1>/' \ | ||||
|         | sed -E 's/^[^<>@ ]*@[^<>@ ]+$/<\0>/' \ | ||||
|         | sort -u \ | ||||
|         | while read -r line; do addentry "$line"; done | ||||
| } | ||||
|  | ||||
| searchall() { | ||||
|     # show entries with matching alias first | ||||
|     searchbyalias "$*" | ||||
|     searchbyvalueonly "$*" | ||||
| } | ||||
|  | ||||
| searchbyalias() { | ||||
|     grep -i -E "$* :" "$filename" | sed -E 's/^[^:]+:\s*//' | ||||
| } | ||||
|  | ||||
| searchbyvalue() { | ||||
|     sed -E 's/^[^:]+:\s*//' "$filename" | grep -i -E "$*" | ||||
| } | ||||
|  | ||||
| searchbyvalueonly() { | ||||
|     # exclude matches found by searchbyalias | ||||
|     grep -i -E -v "$* :" "$filename" | sed -E 's/^[^:]+:\s*//' | grep -i -E "$*" | ||||
| } | ||||
|  | ||||
| parsefields() { | ||||
|     # Find header fields starting with $1 (p.e. 'To:') plus following lines | ||||
|     # starting with a space. Split entries at commas except when quoted. Skip | ||||
|     # empty lines. Decode encoded strings. Squeeze double spaces. | ||||
|     sed -E '/^\r?$/Q' - \ | ||||
|         | sed -E -n "/^$1:/{:a ; \$!N ; s/\n\s+/ / ; ta ; P ; D}" \ | ||||
|         | sed -E "s/^$1:\\s*//" \ | ||||
|         | grep -v -P '[\x80-\xFF]' \ | ||||
|         | awk -vFPAT='([^,"]*)("[^"]+")?([^,]*)?' -vOFS='\n' \ | ||||
|           '{for(i=1;i<=NF;i++) printf("%s\n",$i)}' \ | ||||
|         | sed -E -e '/^ *$/d' \ | ||||
|         | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' \ | ||||
|         | sed -E -e 's/  +/ /g' \ | ||||
|         | addfromstdin | ||||
| } | ||||
|  | ||||
| parse() { | ||||
|     checkfilename | ||||
|     case "$1" in | ||||
|     --all)  parsefields '(From|To|Cc|CC|Bcc)' ;; | ||||
|     # TODO: Include References, In-Reply-To, Reply-To, Return-Path? | ||||
|     --from) parsefields 'From' ;; | ||||
|     --to)   parsefields 'To' ;; | ||||
|     --cc)   parsefields '(Cc|CC)' ;; | ||||
|     --bcc)  parsefields 'Bcc' ;; | ||||
|     esac | ||||
| } | ||||
|  | ||||
|  | ||||
| case "$1" in | ||||
| -h|--help|'') usage; exit ;; | ||||
| -V|--version) echo "$VERSION"; exit ;; | ||||
| esac | ||||
|  | ||||
| filename="$1"; shift | ||||
|  | ||||
| case "$1" in | ||||
| -q|--quiet) shift; QUIET=1 ;; | ||||
| esac | ||||
|  | ||||
| case "$1" in | ||||
| -a|--add)     shift; add "$@" ;; | ||||
| -s|--search)  shift; searchall "$*" ;; | ||||
| -k|--key)     shift; searchbyalias "$*" ;; | ||||
| -v|--value)   shift; searchbyvalue "$*" ;; | ||||
| -p|--parse)   shift; parse "$@" ;; | ||||
| *)            searchall "$*" ;; | ||||
| esac | ||||
							
								
								
									
										9
									
								
								bin/.bin/zoom_screen
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								bin/.bin/zoom_screen
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,9 @@ | ||||
| current_resolution=$(xrandr | awk '/DSI1/ {print $4}') | ||||
|  | ||||
| if [[ $current_resolution == 1920x1200* ]]; | ||||
| then | ||||
| 	xrandr --size 600x960 | ||||
| else | ||||
| 	xrandr --size 1200x1920 | ||||
| fi | ||||
| chwp | ||||
							
								
								
									
										151
									
								
								conky/.config/conky/conky.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								conky/.config/conky/conky.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,151 @@ | ||||
| -- Conky, a system monitor https://github.com/brndnmtthws/conky | ||||
| -- | ||||
| -- This configuration file is Lua code. You can write code in here, and it will | ||||
| -- execute when Conky loads. You can use it to generate your own advanced | ||||
| -- configurations. | ||||
| -- | ||||
| -- Try this (remove the `--`): | ||||
| -- | ||||
| --   print("Loading Conky config") | ||||
| -- | ||||
| -- For more on Lua, see: | ||||
| -- https://www.lua.org/pil/contents.html | ||||
| -- | ||||
| -- Conky Lua API: https://conky.cc/lua | ||||
|  | ||||
| -- Configuration settings: https://conky.cc/config_settings | ||||
|  | ||||
| io.input("/etc/hostname") | ||||
| hostname = io.read() | ||||
|  | ||||
| conky.config = { | ||||
|     alignment = 'top_right', | ||||
|     background = false, | ||||
|     border_width = 1, | ||||
|  | ||||
|     cpu_avg_samples = 2, | ||||
|     double_buffer = true, | ||||
|     update_interval = 1.0, | ||||
|  | ||||
|     default_color = 'green', | ||||
|     default_outline_color = 'green', | ||||
|     default_shade_color = 'dark green', | ||||
|     draw_borders = false, | ||||
|     draw_graph_borders = true, | ||||
|     draw_outline = false, | ||||
|     draw_shades = true, | ||||
|     extra_newline = false, | ||||
|     font = 'Fira Code:size=10', | ||||
|     gap_x = -1800, | ||||
|     gap_y = 50, | ||||
|     minimum_height = 950, | ||||
|     minimum_width = 300, | ||||
|  | ||||
|     net_avg_samples = 2, | ||||
|     no_buffers = true, | ||||
|  | ||||
|     out_to_console = false, | ||||
|     out_to_ncurses = false, | ||||
|     out_to_stderr = false, | ||||
|     out_to_wayland = false, | ||||
|     out_to_x = true, | ||||
|  | ||||
|     own_window = true, | ||||
|     own_window_class = 'Conky', | ||||
|     own_window_type = 'desktop', | ||||
|     own_window_hints = 'undecorated,sticky,below,skip_taskbar,skip_pager', | ||||
| 	own_window_argb_visual = true, | ||||
| 	own_window_argb_value = 200, | ||||
| 	own_window_colour = "#222222", | ||||
|  | ||||
|     show_graph_range = false, | ||||
|     show_graph_scale = false, | ||||
|     stippled_borders = 0, | ||||
|     uppercase = false, | ||||
|     use_spacer = 'none', | ||||
|     use_xft = true, | ||||
| } | ||||
|  | ||||
|  | ||||
| if hostname == "minitonitchtop" then | ||||
| 	conky.config.gap_x = 20 | ||||
|     conky.config.font = 'Fira Code:size=14' | ||||
| end | ||||
|  | ||||
| function disksbars() | ||||
| 	if hostname == "minitonitchtop" then | ||||
| 		return [[ | ||||
| ${color grey}root $color${fs_bar 6 /} | ||||
| ]] | ||||
| 	else | ||||
| 		return [[ | ||||
| ${color grey}root $color${fs_bar 6 /} | ||||
| ${color grey}home $color${fs_bar 6 /home} | ||||
| ${color grey}OneT $color${fs_bar 6 /disks/OneTO/} | ||||
| ${color grey}TwoT $color${fs_bar 6 /disks/TwoTO/} | ||||
| ]] | ||||
| 	end | ||||
|  | ||||
| end | ||||
|  | ||||
| function cpubars() | ||||
| 	if hostname == "minitonitchtop" then | ||||
| 		return [[ | ||||
|  ${color}${cpubar cpu1 8, 150} ${cpubar cpu2 8, 150} | ||||
|  ${cpubar cpu3 8, 150} ${cpubar cpu4 8, 150} | ||||
| ]] | ||||
| 	else | ||||
| 		return [[ | ||||
|  ${color}${cpubar cpu1 8, 120} ${cpubar cpu2 8, 120} ${cpubar cpu3 8, 120} | ||||
|  ${cpubar cpu4 8, 120} ${cpubar cpu5 8, 120} ${cpubar cpu6 8, 120} | ||||
|  ${cpubar cpu7 8, 120} ${cpubar cpu8 8, 120} ${cpubar cpu9 8, 120} | ||||
|  ${cpubar cpu10 8, 120} ${cpubar cpu11 8, 120} ${cpubar cpu12 8, 120} | ||||
| ]] | ||||
| 	end | ||||
| end | ||||
|  | ||||
| function networks() | ||||
| 	if hostname == "minitonitchtop" then | ||||
| 		return [[ | ||||
|  IP: $color${addrs wlo1} | ||||
|  ${color grey}UP   $color${upspeedgraph wlo1 -x -t} | ||||
|  ${color grey}DOWN $color${downspeedgraph wlo1 -x -t } | ||||
| ]] | ||||
| 	else | ||||
| 		return [[ | ||||
|  IP: $color${addrs enp3s0} | ||||
|  ${color grey}UP   $color${upspeedgraph enp3s0 -x -t} | ||||
|  ${color grey}DOWN $color${downspeedgraph enp3s0 -x -t } | ||||
| ]] | ||||
| 	end | ||||
| end | ||||
|  | ||||
| -- Variables: https://conky.cc/variables | ||||
| conky.text = [[ | ||||
|  ${color gray}Date: $color${time %a %d %b %Y %H:%M} | ||||
|  ${color gray}Uptime: $color$uptime on $kernel | ||||
| ${color gray}RAM + SWAP $hr | ||||
|  ${color gray}$color$memperc% ${membar 6} | ||||
|  ${color gray}$color$swapperc% ${swapbar 6} | ||||
| ${color gray}CPU $hr | ||||
| ]]..cpubars()..[[ | ||||
| ${color grey}File systems $hr | ||||
| ]]..disksbars()..[[ | ||||
| ${color grey}Networking $hr | ||||
| ]]..networks()..[[ | ||||
| ${color grey}Processes $hr | ||||
|  ${color grey}Name                 PID   CPU%   MEM% | ||||
|  ${color}${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} | ||||
|  ${color}${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} | ||||
|  ${color}${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} | ||||
|  ${color}${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} | ||||
|  ${color gray}Count: $color$processes | ||||
| ${color grey}Infos $hr | ||||
|  $color${font FiraCode Nerd Font:size=10}${execi 1800 curl -s 'wttr.in/?format=4'}$font | ||||
| ${color grey}TODO $hr | ||||
| $color${execi 60 pandoc -f markdown -t plain ~/todo.md} | ||||
| ]] | ||||
|  | ||||
| if hostname == "minitonitchtop" then | ||||
| 	conky.config.gap_x = 10 | ||||
| end | ||||
							
								
								
									
										258
									
								
								dunst/.config/dunst/dunstrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										258
									
								
								dunst/.config/dunst/dunstrc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,258 @@ | ||||
| [global] | ||||
|  | ||||
| font =Fira Code 14 | ||||
|  | ||||
| # Allow a small subset of html markup: | ||||
| #   <b>bold</b> | ||||
| #   <i>italic</i> | ||||
| #   <s>strikethrough</s> | ||||
| #   <u>underline</u> | ||||
| # | ||||
| # For a complete reference see | ||||
| # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>. | ||||
| # If markup is not allowed, those tags will be stripped out of the | ||||
| # message. | ||||
| markup = yes | ||||
| plain_text = no | ||||
|  | ||||
| # The format of the message.  Possible variables are: | ||||
| #   %a  appname | ||||
| #   %s  summary | ||||
| #   %b  body | ||||
| #   %i  iconname (including its path) | ||||
| #   %I  iconname (without its path) | ||||
| #   %p  progress value if set ([  0%] to [100%]) or nothing | ||||
| # Markup is allowed | ||||
| format = "<b>%s</b>\n%b" | ||||
|  | ||||
| # Sort messages by urgency. | ||||
| sort = no | ||||
|  | ||||
| # Show how many messages are currently hidden (because of geometry). | ||||
| indicate_hidden = yes | ||||
|  | ||||
| # Alignment of message text. | ||||
| # Possible values are "left", "center" and "right". | ||||
| alignment = center | ||||
|  | ||||
| # The frequency with wich text that is longer than the notification | ||||
| # window allows bounces back and forth. | ||||
| # This option conflicts with "word_wrap". | ||||
| # Set to 0 to disable. | ||||
| bounce_freq = 0 | ||||
|  | ||||
| # Show age of message if message is older than show_age_threshold | ||||
| # seconds. | ||||
| # Set to -1 to disable. | ||||
| show_age_threshold = -1 | ||||
|  | ||||
| # Split notifications into multiple lines if they don't fit into | ||||
| # geometry. | ||||
| word_wrap = yes | ||||
|  | ||||
| # Ignore newlines '\n' in notifications. | ||||
| ignore_newline = no | ||||
|  | ||||
| # Hide duplicate's count and stack them | ||||
| stack_duplicates = yes | ||||
| hide_duplicates_count = yes | ||||
|  | ||||
|  | ||||
| # The geometry of the window: | ||||
| #   [{width}]x{height}[+/-{x}+/-{y}] | ||||
| # The geometry of the message window. | ||||
| # The height is measured in number of notifications everything else | ||||
| # in pixels.  If the width is omitted but the height is given | ||||
| # ("-geometry x2"), the message window expands over the whole screen | ||||
| # (dmenu-like).  If width is 0, the window expands to the longest | ||||
| # message displayed.  A positive x is measured from the left, a | ||||
| # negative from the right side of the screen.  Y is measured from | ||||
| # the top and down respectevly. | ||||
| # The width can be negative.  In this case the actual width is the | ||||
| # screen width minus the width defined in within the geometry option. | ||||
| #geometry = "250x50-40+40" | ||||
| geometry = "300x50-15+49" | ||||
|  | ||||
| # Shrink window if it's smaller than the width.  Will be ignored if | ||||
| # width is 0. | ||||
| shrink = no | ||||
|  | ||||
| # The transparency of the window.  Range: [0; 100]. | ||||
| # This option will only work if a compositing windowmanager is | ||||
| # present (e.g. xcompmgr, compiz, etc.). | ||||
| transparency = 5  | ||||
|  | ||||
| # Don't remove messages, if the user is idle (no mouse or keyboard input) | ||||
| # for longer than idle_threshold seconds. | ||||
| # Set to 0 to disable. | ||||
| idle_threshold = 0 | ||||
|  | ||||
| # Which monitor should the notifications be displayed on. | ||||
| monitor = 1 | ||||
|  | ||||
| # Display notification on focused monitor.  Possible modes are: | ||||
| #   mouse: follow mouse pointer | ||||
| #   keyboard: follow window with keyboard focus | ||||
| #   none: don't follow anything | ||||
| # | ||||
| # "keyboard" needs a windowmanager that exports the | ||||
| # _NET_ACTIVE_WINDOW property. | ||||
| # This should be the case for almost all modern windowmanagers. | ||||
| # | ||||
| # If this option is set to mouse or keyboard, the monitor option | ||||
| # will be ignored. | ||||
| follow = none | ||||
|  | ||||
| # Should a notification popped up from history be sticky or timeout | ||||
| # as if it would normally do. | ||||
| sticky_history = yes | ||||
|  | ||||
| # Maximum amount of notifications kept in history | ||||
| history_length = 15 | ||||
|  | ||||
| # Display indicators for URLs (U) and actions (A). | ||||
| show_indicators = no | ||||
|  | ||||
| # The height of a single line.  If the height is smaller than the | ||||
| # font height, it will get raised to the font height. | ||||
| # This adds empty space above and under the text. | ||||
| line_height = 3 | ||||
|  | ||||
| # Draw a line of "separatpr_height" pixel height between two | ||||
| # notifications. | ||||
| # Set to 0 to disable. | ||||
| separator_height = 2 | ||||
|  | ||||
| # Padding between text and separator. | ||||
| padding = 6 | ||||
|  | ||||
| # Horizontal padding. | ||||
| horizontal_padding = 6 | ||||
|  | ||||
| # Define a color for the separator. | ||||
| # possible values are: | ||||
| #  * auto: dunst tries to find a color fitting to the background; | ||||
| #  * foreground: use the same color as the foreground; | ||||
| #  * frame: use the same color as the frame; | ||||
| #  * anything else will be interpreted as a X color. | ||||
| separator_color = auto | ||||
|  | ||||
| # Print a notification on startup. | ||||
| # This is mainly for error detection, since dbus (re-)starts dunst | ||||
| # automatically after a crash. | ||||
| startup_notification = false | ||||
|  | ||||
| # dmenu path. | ||||
| dmenu = /usr/bin/dmenu -p dunst: | ||||
|  | ||||
| # Browser for opening urls in context menu. | ||||
| browser = /usr/bin/qutebrowser -t  | ||||
|  | ||||
| # Align icons left/right/off | ||||
| icon_position = off | ||||
| max_icon_size = 80 | ||||
|  | ||||
| # Paths to default icons. | ||||
| icon_path = /usr/share/icons/Paper/16x16/mimetypes/:/usr/share/icons/Paper/48x48/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/48x48/notifications/:/usr/share/icons/Paper/48x48/emblems/ | ||||
|  | ||||
| frame_width = 1 | ||||
| frame_color = "#8EC07C" | ||||
|  | ||||
| [shortcuts] | ||||
|  | ||||
| # Shortcuts are specified as [modifier+][modifier+]...key | ||||
| # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", | ||||
| # "mod3" and "mod4" (windows-key). | ||||
| # Xev might be helpful to find names for keys. | ||||
|  | ||||
| # Close notification. | ||||
| close = ctrl+space | ||||
|  | ||||
| # Close all notifications. | ||||
| close_all = ctrl+shift+space | ||||
|  | ||||
| # Redisplay last message(s). | ||||
| # On the US keyboard layout "grave" is normally above TAB and left | ||||
| # of "1". | ||||
| history = ctrl+grave | ||||
|  | ||||
| # Context menu. | ||||
| context = ctrl+shift+period | ||||
|  | ||||
| [urgency_low] | ||||
| # IMPORTANT: colors have to be defined in quotation marks. | ||||
| # Otherwise the "#" and following would be interpreted as a comment. | ||||
| frame_color = "#3B7C87" | ||||
| foreground = "#3B7C87" | ||||
| background = "#191311" | ||||
| #background = "#2B313C" | ||||
| timeout = 4 | ||||
|  | ||||
| [urgency_normal] | ||||
| frame_color = "#5B8234" | ||||
| foreground = "#5B8234" | ||||
| background = "#191311" | ||||
| #background = "#2B313C" | ||||
| timeout = 6 | ||||
|  | ||||
| [urgency_critical] | ||||
| frame_color = "#B7472A" | ||||
| foreground = "#B7472A" | ||||
| background = "#191311" | ||||
| #background = "#2B313C" | ||||
| timeout = 8 | ||||
|  | ||||
|  | ||||
| # Every section that isn't one of the above is interpreted as a rules to | ||||
| # override settings for certain messages. | ||||
| # Messages can be matched by "appname", "summary", "body", "icon", "category", | ||||
| # "msg_urgency" and you can override the "timeout", "urgency", "foreground", | ||||
| # "background", "new_icon" and "format". | ||||
| # Shell-like globbing will get expanded. | ||||
| # | ||||
| # SCRIPTING | ||||
| # You can specify a script that gets run when the rule matches by | ||||
| # setting the "script" option. | ||||
| # The script will be called as follows: | ||||
| #   script appname summary body icon urgency | ||||
| # where urgency can be "LOW", "NORMAL" or "CRITICAL". | ||||
| # | ||||
| # NOTE: if you don't want a notification to be displayed, set the format | ||||
| # to "". | ||||
| # NOTE: It might be helpful to run dunst -print in a terminal in order | ||||
| # to find fitting options for rules. | ||||
|  | ||||
| #[espeak] | ||||
| #    summary = "*" | ||||
| #    script = dunst_espeak.sh | ||||
|  | ||||
| #[script-test] | ||||
| #    summary = "*script*" | ||||
| #    script = dunst_test.sh | ||||
|  | ||||
| #[ignore] | ||||
| #    # This notification will not be displayed | ||||
| #    summary = "foobar" | ||||
| #    format = "" | ||||
|  | ||||
| #[signed_on] | ||||
| #    appname = Pidgin | ||||
| #    summary = "*signed on*" | ||||
| #    urgency = low | ||||
| # | ||||
| #[signed_off] | ||||
| #    appname = Pidgin | ||||
| #    summary = *signed off* | ||||
| #    urgency = low | ||||
| # | ||||
| #[says] | ||||
| #    appname = Pidgin | ||||
| #    summary = *says* | ||||
| #    urgency = critical | ||||
| # | ||||
| #[twitter] | ||||
| #    appname = Pidgin | ||||
| #    summary = *twitter.com* | ||||
| #    urgency = normal | ||||
| # | ||||
| # vim: ft=cfg | ||||
| @ -1,5 +0,0 @@ | ||||
| vim.lsp.start({ | ||||
| 	name = 'clangd', | ||||
| 	cmd = {'clangd'}, | ||||
| 	-- root_dir = vim.fs.root(args.buf, {'Makefile'}) | ||||
| }) | ||||
| @ -1,4 +0,0 @@ | ||||
| vim.lsp.start({ | ||||
| 	name = 'cmake-language-server', | ||||
| 	cmd = {'cmake-language-server'}, | ||||
| }) | ||||
| @ -1,4 +0,0 @@ | ||||
| vim.lsp.start({ | ||||
| 	name = 'lua-language-server', | ||||
| 	cmd = {'lua-language-server'}, | ||||
| }) | ||||
							
								
								
									
										1
									
								
								nvim/.config/nvim/after/ftplugin/markdown.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								nvim/.config/nvim/after/ftplugin/markdown.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| vim.opt.textwidth = 100 | ||||
| @ -2,3 +2,9 @@ vim.lsp.start({ | ||||
| 	name = 'jedi', | ||||
| 	cmd = {'jedi-language-server'}, | ||||
| }) | ||||
|  | ||||
| vim.keymap.set('n', '<F12>', ":Repl<cr>") | ||||
| vim.keymap.set('v', '<F12>', ":'<,'>Repl<cr>") | ||||
|  | ||||
| vim.keymap.set('n', '<F11>', ":ReplSend<cr>") | ||||
| vim.keymap.set('v', '<F11>', ":'<,'>ReplSend<cr>") | ||||
|  | ||||
							
								
								
									
										5
									
								
								nvim/.config/nvim/after/ftplugin/racket.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								nvim/.config/nvim/after/ftplugin/racket.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| vim.keymap.set('n', '<F12>', ":Repl<cr>") | ||||
| vim.keymap.set('v', '<F12>', ":'<,'>Repl<cr>") | ||||
|  | ||||
| vim.keymap.set('n', '<F11>', ":ReplSend<cr>") | ||||
| vim.keymap.set('v', '<F11>', ":'<,'>ReplSend<cr>") | ||||
| @ -1,4 +0,0 @@ | ||||
| vim.lsp.start({ | ||||
| 	name = 'bash-language-server', | ||||
| 	cmd = {'bash-language-server'}, | ||||
| }) | ||||
| @ -1,4 +0,0 @@ | ||||
| vim.lsp.start({ | ||||
| 	name = 'texlab', | ||||
| 	cmd = {'texlab'}, | ||||
| }) | ||||
							
								
								
									
										10
									
								
								nvim/.config/nvim/after/ftplugin/zig.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								nvim/.config/nvim/after/ftplugin/zig.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| vim.lsp.start({ | ||||
| 	name = 'zls', | ||||
| 	cmd = {'zls'}, | ||||
| 	on_attach = function(client, bufnr) | ||||
| 		vim.lsp.completion.enable(true, client.id, bufnr, { | ||||
| 			autotrigger = true, | ||||
| 		}) | ||||
| 	end, | ||||
| }) | ||||
| vim.g.zig_fmt_autosave = 0 | ||||
							
								
								
									
										13
									
								
								nvim/.config/nvim/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								nvim/.config/nvim/init.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| vim.cmd('set runtimepath^=~/.vim runtimepath+=~/.vim/after') | ||||
| vim.cmd('let &packpath = &runtimepath') | ||||
| vim.cmd('let g:python3_host_prog="/usr/bin/python"') | ||||
| vim.cmd('source ~/.vimrc"') | ||||
|  | ||||
|  | ||||
| -- Enable LSPs | ||||
| vim.lsp.enable("clangd") | ||||
| vim.lsp.enable("cmake") | ||||
| vim.lsp.enable("lua_ls") | ||||
| vim.lsp.enable('bashls') | ||||
| vim.lsp.enable('jedi_language_server') | ||||
| vim.lsp.enable('texlab') | ||||
| @ -1,4 +0,0 @@ | ||||
| set runtimepath^=~/.vim runtimepath+=~/.vim/after | ||||
| let &packpath = &runtimepath | ||||
| let g:python3_host_prog="/usr/bin/python" | ||||
| source ~/.vimrc | ||||
							
								
								
									
										51
									
								
								nvim/.config/nvim/lua/plugin/dap/c.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								nvim/.config/nvim/lua/plugin/dap/c.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | ||||
| local dap = require('dap') | ||||
|  | ||||
| dap.adapters.gdb = { | ||||
|     id = 'gdb', | ||||
|     type = 'executable', | ||||
|     command = 'gdb', | ||||
|     args = { '--quiet', '--interpreter=dap' }, | ||||
| } | ||||
|  | ||||
| dap.configurations.c = { | ||||
| 	{ | ||||
| 		name = 'Run executable (GDB)', | ||||
| 		type = 'gdb', | ||||
| 		request = 'launch', | ||||
| 		program = function() | ||||
| 			local path = vim.fn.input({ | ||||
| 				prompt = 'Path to executable: ', | ||||
| 				default = vim.fn.getcwd() .. '/', | ||||
| 				completion = 'file', | ||||
| 			}) | ||||
| 			return (path and path ~= '') and path or dap.ABORT | ||||
| 		end, | ||||
| 	}, | ||||
| 	{ | ||||
| 		name = 'Run executable with arguments (GDB)', | ||||
| 		type = 'gdb', | ||||
| 		request = 'launch', | ||||
| 		program = function() | ||||
| 			local path = vim.fn.input({ | ||||
| 				prompt = 'Path to executable: ', | ||||
| 				default = vim.fn.getcwd() .. '/', | ||||
| 				completion = 'file', | ||||
| 			}) | ||||
| 			return (path and path ~= '') and path or dap.ABORT | ||||
| 		end, | ||||
| 		args = function() | ||||
| 			local args_str = vim.fn.input({ | ||||
| 				prompt = 'Arguments: ', | ||||
| 			}) | ||||
| 			return vim.split(args_str, ' +') | ||||
| 		end | ||||
| 	}, | ||||
| 	{ | ||||
| 		name = 'Attach to process (GDB)', | ||||
| 		type = 'gdb', | ||||
| 		request = 'gdb', | ||||
| 		processId = require('dap.utils').pick_process, | ||||
| 	}, | ||||
| } | ||||
|  | ||||
| dap.configurations.rust = dap.configurations.c | ||||
							
								
								
									
										48
									
								
								nvim/.config/nvim/lua/plugin/dap/zig.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								nvim/.config/nvim/lua/plugin/dap/zig.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | ||||
| local dap = require('dap') | ||||
|  | ||||
| dap.adapters.lldb = { | ||||
|     id = 'lldb', | ||||
|     type = 'executable', | ||||
|     command = 'lldb-dap', | ||||
| } | ||||
|  | ||||
| dap.configurations.zig = { | ||||
| 	{ | ||||
| 		name = 'Run executable (lldb)', | ||||
| 		type = 'lldb', | ||||
| 		request = 'launch', | ||||
| 		program = function() | ||||
| 			local path = vim.fn.input({ | ||||
| 				prompt = 'Path to executable: ', | ||||
| 				default = vim.fn.getcwd() .. '/', | ||||
| 				completion = 'file', | ||||
| 			}) | ||||
| 			return (path and path ~= '') and path or dap.ABORT | ||||
| 		end, | ||||
| 	}, | ||||
| 	{ | ||||
| 		name = 'Run executable with arguments (lldb)', | ||||
| 		type = 'lldb', | ||||
| 		request = 'launch', | ||||
| 		program = function() | ||||
| 			local path = vim.fn.input({ | ||||
| 				prompt = 'Path to executable: ', | ||||
| 				default = vim.fn.getcwd() .. '/', | ||||
| 				completion = 'file', | ||||
| 			}) | ||||
| 			return (path and path ~= '') and path or dap.ABORT | ||||
| 		end, | ||||
| 		args = function() | ||||
| 			local args_str = vim.fn.input({ | ||||
| 				prompt = 'Arguments: ', | ||||
| 			}) | ||||
| 			return vim.split(args_str, ' +') | ||||
| 		end | ||||
| 	}, | ||||
| 	{ | ||||
| 		name = 'Attach to process (lldb)', | ||||
| 		type = 'lldb', | ||||
| 		request = 'lldb', | ||||
| 		processId = require('dap.utils').pick_process, | ||||
| 	}, | ||||
| } | ||||
| @ -1,2 +1,7 @@ | ||||
| vim.g.vimtex_view_method="zathura" | ||||
| vim.opt.completeopt="menu,popup,noinsert,noselect" | ||||
| vim.g.python3_host_prog="/bin/python" | ||||
|  | ||||
| require("dapui").setup() | ||||
| require("plugin.dap.c") | ||||
| require("plugin.dap.zig") | ||||
|  | ||||
							
								
								
									
										3
									
								
								nvim/.config/nvim/plugin/configs.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								nvim/.config/nvim/plugin/configs.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| nnoremap sd :lua vim.diagnostic.open_float()<CR> | ||||
| nnoremap <c-t> :FloatermToggle<CR> | ||||
| let g:neomake_open_list = 2 | ||||
							
								
								
									
										26
									
								
								nvim/.config/nvim/plugin/dap_keybinds.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								nvim/.config/nvim/plugin/dap_keybinds.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| vim.keymap.set('n', '<F5>', function() require('dap').continue() end) | ||||
| vim.keymap.set('n', '<F10>', function() require('dap').step_over() end) | ||||
| vim.keymap.set('n', '<F11>', function() require('dap').step_into() end) | ||||
| vim.keymap.set('n', '<F12>', function() require('dap').step_out() end) | ||||
| vim.keymap.set('n', '<Leader>b', function() require('dap').toggle_breakpoint() end) | ||||
| vim.keymap.set('n', '<Leader>B', function() require('dap').set_breakpoint() end) | ||||
| vim.keymap.set('n', '<Leader>lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end) | ||||
| vim.keymap.set('n', '<Leader>dr', function() require('dap').repl.open() end) | ||||
| vim.keymap.set('n', '<Leader>dl', function() require('dap').run_last() end) | ||||
| vim.keymap.set({'n', 'v'}, '<Leader>dh', function() | ||||
|   require('dap.ui.widgets').hover() | ||||
| end) | ||||
| vim.keymap.set({'n', 'v'}, '<Leader>dp', function() | ||||
|   require('dap.ui.widgets').preview() | ||||
| end) | ||||
| vim.keymap.set('n', '<Leader>df', function() | ||||
|   local widgets = require('dap.ui.widgets') | ||||
|   widgets.centered_float(widgets.frames) | ||||
| end) | ||||
| vim.keymap.set('n', '<Leader>ds', function() | ||||
|   local widgets = require('dap.ui.widgets') | ||||
|   widgets.centered_float(widgets.scopes) | ||||
| end) | ||||
| vim.keymap.set('n', '<F9>', function() require("dapui").toggle() end) | ||||
| vim.keymap.set('n', '<M-k>', function() require("dapui").eval() end) | ||||
| vim.keymap.set('v', '<M-k>', function() require("dapui").eval() end) | ||||
| @ -1,6 +1,7 @@ | ||||
| bin | ||||
| bspwm | ||||
| dmenu | ||||
| dunst | ||||
| feh | ||||
| git | ||||
| nvim | ||||
|  | ||||
| @ -1,8 +1,8 @@ | ||||
| # bspwm hotkeys | ||||
| # | ||||
| # Cleanly quit bspwm | ||||
| super + shift + a | ||||
| 	bspc quit 1 && pkill lemonpanel && pkill lemonbar | ||||
| super + shift + q | ||||
| 	bspc quit 1  | ||||
|  | ||||
| # Show keybindings | ||||
| super + F1 | ||||
| @ -96,7 +96,7 @@ super + Return | ||||
| # 	bspc node -n @/ | ||||
| 	 | ||||
| # go (Shift=move) to desktop (and focus the monitor that the desktop is located on. Bspwm style) | ||||
| super + {_,shift + }{ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave} | ||||
| super + {_,shift + }{1,2,3,4,5,6,7,8,9,0} | ||||
|     bspc {desktop -f,node -d} ^{1-9,10} | ||||
|  | ||||
| ## Alternative: i3 style behavior (focus nth, desktop of the focused monitor) | ||||
| @ -125,7 +125,7 @@ super + Tab | ||||
| 	WindowSelector | ||||
| 	 | ||||
| #Focus windows by direction, works with multihead | ||||
| super + {q,s,z,d} | ||||
| super + {a,s,w,d} | ||||
|     focusmover {west,south,north,east} | ||||
|  | ||||
| super + {h,j,k,l} | ||||
| @ -137,7 +137,7 @@ super + {Left,Down,Up,Right} | ||||
| # Move tiled windows. Moving a tiled window to  | ||||
| # preselected one moves into preselection instead.  | ||||
| # Moving out of the screen should move the window to next monitor if possible | ||||
| super + shift + {q,s,z,d} | ||||
| super + shift + {q,s,w,d} | ||||
| 	windowgrabber {west,south,north,east} | ||||
|  | ||||
| super + shift + {h,j,k,l} | ||||
| @ -148,7 +148,7 @@ super + shift + {Left,Down,Up,Right} | ||||
| 	euclid_mover {west,south,north,east} | ||||
|  | ||||
| #resize windows | ||||
| super + ctrl + {q,s,z,d} | ||||
| super + ctrl + {a,s,w,d} | ||||
| 	bspwm_resize.sh {west,south,north,east} | ||||
|  | ||||
| super + ctrl + {h,j,k,l} | ||||
| @ -334,6 +334,9 @@ super + ctrl + space | ||||
| 	{pkill picom ,\ | ||||
| 	picom -b } | ||||
|  | ||||
| ctrl + alt +t  | ||||
| 	pkill rotateScreen_au || rotateScreen_auto | ||||
|  | ||||
| # Remove receptacles | ||||
| super + BackSpace | ||||
|   for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done | ||||
|  | ||||
							
								
								
									
										1
									
								
								vim/.vim/ftplugin/markdown.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								vim/.vim/ftplugin/markdown.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| set tw=120 | ||||
 Submodule vim/.vim/pack/autoload/start/loremipsum deleted from 39354ae1c8
									
								
							 Submodule vim/.vim/pack/autoload/start/vimspector deleted from ee3bd01205
									
								
							| @ -188,7 +188,8 @@ bindkey '^[[B' history-substring-search-down | ||||
| # Apply different settigns for different terminals | ||||
| case $(basename "$(cat "/proc/$PPID/comm")") in | ||||
|   login) | ||||
|     	RPROMPT="%{$fg[red]%} %(?..[%?])"  | ||||
| 		RPROMPT="%(?.%{$fg[green]%}✓ %{$reset_color%}.%{$fg[red]%}✗ %{$reset_color%})" | ||||
|     	# RPROMPT="%{$fg[red]%} %(?..[%?])"  | ||||
|     	alias x='startx ~/.xinitrc'      # Type name of desired desktop after x, xinitrc is configured for it | ||||
|     ;; | ||||
| #  'tmux: server') | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	